Linuxでのロシア語音声の合成

SAPIとPowershellについての記事を読んで( PowerShellで話すこと教えています)、ネイティブOSであるLinuxでロシア語の音声を合成する方法について疑問に思いました。 結局のところ、すべてがそれほどバラ色であるとはほど遠く、合成の品質はアレナの声とはほど遠いが、それでもまだだ。

伝統的にFestivalは linux'eの音声合成に使用され、最新の安定バージョンは1.95ですが、配信にはロシア語の声がありません。少し検索した後、 Festivalを通じてロシア語の音声を合成するプロジェクトに出会いました。 ロシア語で動作するには少なくともバージョン1.96ベータが必要であると書かれています。 さて、Ubuntu 9.04でそれだけではありません。 次に、パッケージを自分でビルドするか、DebianまたはUbuntuユーザー用に別のパッケージをインストールするかの2つのオプションがあります。この奇跡の重さは約190メートルです。 Ubuntuが私のためにパッケージをインストールすることを決めたので。
パッケージはFestvox-ruと呼ばれ、9.04が手元にあるため、バージョン9.10以降のubuntuで利用可能になります。その後、パッケージをダウンロードして手動でインストールします。 そして、小さな問題が明らかになりました。
彼がフェスティバルにロシア語で何かを言うように頼んだとき、彼は言葉が示されていれば、単に黙っていた
echo "" | festival --tts --language russian echo "" | festival --tts --language russian 、その後エラーでecho "" | festival --tts --language russianました:
「サポートされていない言語、英語を使用」
SIODエラー:非バインド変数:voice_rab_diphone
festival:致命的なエラーの終了。

ダム、マニュアルのようにそれをやろうとし、フェスティバルをインタラクティブモードで実行し、音声を強制的に指定し(voice_msu_ru_nsh_clunits)、何か言うように頼み(SayText“ Check”)、出来上がりすべてがうまくいき、bashスクリプトとして整理して取得します

#!/bin/sh
festival -b "(begin (voice_msu_ru_nsh_clunits) (SayText \"$1\" nil))"


これをsayit.shファイルに保存し、chmod a + x sayit.shを実行する権限を割り当ててチェックします
./sayit.sh「検証」
やった! すべてが機能します。
ファイルを読みたい場合は、次を使用します。

#!/bin/sh
festival -b "(begin (voice_msu_ru_nsh_clunits) (tts_file \"$1\" nil))"


それでも、なぜロシア語がデフォルトで機能しなかったのか、さらに掘り下げます。
少しグーグルで、Sergey Kirpichevからdebianへのバグレポートを見つけました。 このバグレポートです。 languages.scmファイルを修正する必要があるようです/
したがって、/ usr / share / festivalディレクトリに移動し、このファイルを見つけて変更を加えます。
最初に追加します:

(define (language_russian)
"(language_russian)
Set up language parameters for Russian."
(set! male1 voice_msu_ru_nsh_clunits)
(male1)
(Parameter.set 'Language 'russian)
)

そして、定義中(select_language言語)。 数行追加します

((equal? language 'russian)
(language_russian))

現在、すべてがロシア語でサポートされています。
ファイルを読み取ろうとしています。
festival --languageロシア語-tts festival.txt
まあ、すべてはそれほど悪くはありませんが、唯一の「しかし」は、フェスティバルが発音を開始する前に非常に顕著に考えていることです。たとえば、彼はテキストが好きではない場合がありますについて
LTS_Ruleset russian_downcase:一致するルールはありません:
LTS_Ruleset:#*こちら* <a#
さて、リンクテキストを削除するとはどういう意味ですか。
これまでのところ、結果は私にとって特に喜ばしいものではありません。原則として、Linuxでのロシア語音声の合成は一方では可能であり、他方では、この合成の品質は貧弱です。 そして、2つの新しいシェルスクリプトを入手しました。 sayit.shおよびreadit.sh ^ _ ^
スコアリングの例は、記事「iPod Shuffle G3でロシア語を話す」に記載されています。

使用されたソース:

シェルスクリプトの技術
フェスティバルのロシア語
音声合成の新しいベースとフェスティバルの音声
Debianバグレポートログ-#516262 festival:--language russianのサポートを追加してください
PS、 rengel_systemのアドバイスにより、ペンでパッケージをインストールするよりも、 このリポジトリを接続する方が良い
eugenex15のアドバイスに関するPPSは、 espeakを試すことにしました。 インストールは非常に簡単です。ロシア語はすぐに使用でき、音声サンプルを保存するために追加できるパラメーターは1つだけですが、品質はひどく思えました。 たぶん、発音を構築して民生の結果を得ることができますが、私は成功しませんでした。
PPPSは、espeakおよびfestivalでデフォルトパラメータを使用した合成フレーズの2つの例を投稿しました
言う
祭り
(誰かがwavを置くことがより便利になる別の場所を提案できるなら、私は喜んでそれを使用します)
UPD:AlbraのHabrauser vk2 音声からの返信

Source: https://habr.com/ru/post/J60977/


All Articles