今回はひさしぶりに Open JTalk 関連です。
旧式の hts_engine_API 用の音響モデルの設定ファイル群を htsvoiceフォーマットのファイルに変換する実行ファイルを作ってみました。
必要な方は以下のリンクからダウンロードできます。自己責任でお使いください。
ダウンロード: htsvconv002.zip
(更新2013/02/09:config.txt がそばに無いとき、alphaを標準値にする処理が抜けていたので修正しました。)
内容物は、htsvconv.exe、config.txt、htsvconv.cs、test.bat の4つです。実際に必要なのは htsvconv.exe のみで、必要に応じてパラメータを初期値から変更するためのファイルconfig.txt、C#ソースファイルhtsvconv.cs、そして実際に声が出るかテストするためのWindows用バッチファイルです。
コマンドラインから、
htsvconv {ファイル群のあるフォルダ名}
で使います(上記の{}は省略可能かつ繰り返し可能の意味)。マウス操作のときはhtsvconv.exe の上に音声ファイル群のあるフォルダを重ねて落として使います。うまくいくとhtsvconv .exeと同じ場所にそのフォルダ名に.htsvoiceを付けたファイルが生成されます。なおパラメータ無しで実行すると、htsvconv .exeと同じ場所にファイル群があるとみなして処理を始めます。
exeファイルなのでWindows限定かというとそうでもありません。mono 環境下での実行もコンパイルも問題ないはずです。環境が整っていれば、Windows 以外でも実行できるはずです。
htsvoiceフォーマットはいくつかのパラメータを内部に持つことができます。特に重要なのがSAMPLING_FREQUENCYとFRAME_PERIODです。また、OPTIONパラメータとして、ALPHA、GAMMA
LN_GAINの値も記述できます。
htsvconv.exe のあるフォルダに config.txt というファイルを入れておくと、そこに書いてある定数をhtsvoiceに埋め込むようにしています。表記法は「定数名=値」です。一行に一つの式です。指定が無ければ標準値SAMPLING_FREQUENCY=48000、FRAME_PERIOD=240、ALPHA=0.55が使われます。
Windows版 のopen_jtalk.exe 1.06の作成は、以前公開したビルドバッチで生成できます。ただし修正パッチなどは今回のバージョン向けに作っていないので、64ビットなどの特殊なビルドはできません。またopen_jtalkのオプションが変わっているので、ojtalk.bat による発声もできません。
今回のアーカイブはそのビルドバッチでできたvoiceフォルダに直接それぞれのファイルを展開すると使いやすいようにしています。音声が使えるか試すための test.bat はvoiceフォルダから使うことを前提として書いています。内容は以下の通りです。ディレクトリの構成が違うときは必要に応じて内容を書き換えます。
set VOICE=hts_voice_nitech_jp_atr503_m001\nitech_jp_atr503
rem set VOICE=mei_normal
..\bin\open_jtalk -x ..\dic -m ..\voice\%VOICE%.htsvoice -z 2000 ..\text.txt
mei の各音声と nitech_jp_atr503_m001 バージョン1.04での変換は確認できましたが、それ以外のデータでの動作は分かりません。うまくいかないときはソースを修正しビルドし直して対応するか、あきらめてください。
ソースのビルドは、.NET Framework だと 「csc htsvconv.cs」、mono だと 「mcs htsvconv.cs」 です。
以下、制作動機など:
上記のopen jtalk というのは、オープンソースの音声合成エンジンです。WindowsやLinuxなどでそれなりの技術があれば無料でパソコンに言葉をしゃべらせられるようになります。おもしろそうだったので何度かここで紹介してきました。毎年恒例ですが年末に最新版1.06が出ました。
今回のバージョンアップで一番の変化は、hts_engine_APIの仕様が変わったのに伴い、音声データのフォーマットが変わったことです。いままでは、音声についての設定が複数のファイルに分かれていたので、これをコマンドラインのオプションスイッチで20個くらいのファイルを一つ一つ指定しなくてはいけなくて、設定がとてもわかりにくかったのですが、1.06から-mスイッチでファイルを一つ指定するだけになりました。
ただ、このフォーマットの日本語の音響モデルのデータは、2013/01/25現在、標準音声の hts_voice_nitech_jp_atr503_m001 だけしかありません。今までは MMDAgent_Example に入っている mei_normal などを転用できたのですが、mei の htsvoice 版のデータはまだ出ていないようです。待っていれば、いずれは正式に出てくるでしょう。待っていれば、いずれはね。
でも待ちきれなかったので、作ってみました、変換器。新しい nitech_jp_atr503_m001.htsvoice を使った音声を聞いてみても、ほとんど違いは分からなかったので、おそらくデータそのものは同じで、格納方法が変更になっただけだろうと予想を立てて、新旧のHTS_model.cでの処理の違いを調べ、htsvoiceファイルへの変換器を作ってみました。言語はC#。
公式の htsvoice フォーマットの音声が出てくるのは時間の問題だと思いますので、とりあえずそれまでのつなぎということで。
関連リンク:
・Open JTalk 公式サイト、Open Jtalk のダウンロードはここから。
・mmdagent.jp MMDAgentの公式サイト
・mono 公式サイト。Windows以外で利用するときは、この mono の環境があれば実行できます。
・まほろば::オープンソース音声合成エンジン「Open JTalk 1.06」 ビルドの方法やテストの仕方があります
当ブログ関係記事:
・Open JTalk を Windows でビルドするバッチファイル
(英語からの翻訳)
残念ながらこのプログラムでCeVIO用のファイルを変換することはできません。
ここで公開しているプログラムでhtsvoiceファイルの変換ができたのは、そのデータの処理を行うhts_engine APIのソースコードが公開されていて、その構造を理解できたからです。
CeVIOではhtsvoiceファイルの代わりに、tsvoiceファイルが使われています。しかし、このtsvoiceファイルを処理するソースコードは非公開です。またCeVIOではリバースエンジニアリングなどによるソースコードの解析が明確に禁じられています。そのためtsvoiceファイルの構造を知ることはできません。
Open JTalk SAPI Ver.1.01 なるものが出来ています。
http://2sen.dip.jp/2sen/top.html
これは、コメントにあるCeVIOのSAPI5化の技術を転用して
出来たそうでして、この記事で記載されているプログラムを使って、
音響モデルファイルを作る事もできるそうです。
読み上げは出来るものの、音声出力は出来ない模様です。
CeVIOのSAPI5化は、表向き非公開となっております。
http://blog.livedoor.jp/sgnw/archives/28930076.html
アップして頂けないでしょうか?
無料で男性のSAPI5は無いと思われるので、需要があると思います。
おんぶにだっこで申し訳ありませんが、宜しくお願いします。
SasaraPadはCeVIOに注意を受ける前に見つけて試したことがあります。SAPI5で使えたら本当に便利だったのですが、CeVIO側が認めてくれなければ仕方がないですね。
それはそうと「男性版のノーマルの音響モデル」って何でしょう。Open JTalk標準のnitech_jp_atr503_m001.htsvoice のことでしょうか?
これならば、http://open-jtalk.sourceforge.net/
のHTS voiceのところからダウンロードすれば手に入ります。
これは Open JTalk SAPI の読み手として追加して使えたはずです。
それとも、独自にhtsvoiceファイルを作れってことでしょうか?
ちょっとそれは難しいですね。
代わりに、こういうのはどうでしょう。
次のリンクのSHABERUで使えるhtsvoiceファイルが配布されています。
http://akihiro0105.blog55.fc2.com/blog-entry-135.html
そして、その追加音響モデルのページ
http://akihiro0105.blog55.fc2.com/blog-entry-136.html
ここに男声のファイルもあります。
これらのhtsvoiceファイルも Open JTalk SAPI に登録可能なはずです。
うまくいけば、これで相当数の音声が使えるようになります。
もちろんSHABERUの規約などに違反しないように使ってください。
が、リンク切れです
別のダウンロード先は、ありますでしょうか?
よろしくお願いいたします
現在もリンク切れのようで、ダウンロード出来ないようです。
恐縮ですが、よろしくお願いいたします。
もしよろしければ再配布を何卒よろしくお願い申し上げます。
私もそのコンバータを使用したいのでゲス。
・メディアファイア
・ドロップボックス
謎の「siritori」プロジェクト、頑張れ