2012年04月10日

Open JTalk 1.05 を Windows でビルドするバッチファイル

以前作ったものがOpen JTalkのバージョンアップで使えなくなっていたので、また作ってみました。

Visual C++20087-zip がパソコンにインストールされていればビルドできるバッチファイルです。

ダウンロード→ openjtalk_buildbatch-002.zip
(MD5:661e1d709444198d99105baec627cc91)
(2012/04/11 更新)

興味がある人は使ってみてください。自己責任でお願いします。

通常の読み上げテキストはシフトJISの文字コードを使っていますが、Python2.7がインストールされていて、ちゃんと環境変数Pathに追加してあれば、文字コードがutf_8やeuc_jpの辞書用のopen_jtalk.exe もビルドできます。

■ 使い方

上記のファイルを展開して、展開したフォルダ内に次の3つのファイルを置いてください。

・open_jtalk-1.05.tar.gz
・hts_engine_API-1.05.tar.gz
・hts_voice_nitech_jp_atr503_m001-1.04.tar.gz

環境さえ整っていれば、build.bat を実行すると、自動的にビルドしてくれます。無事終わったら、確認を兼ねたOpen JTalkの音声が完了したと報告してくれます。

たぶん、Open JTalk などが細かなバージョンアップをしても、バッチファイル内のそれぞれのバージョン番号を書き換えれば対応できるでしょう。

ビルドが終われば、2つのファイルopen_jtalk.exe、ojtalk.bat と2つのフォルダーhts_voice_nitech_jp_atr503_m001-1.04フォルダ、dic フォルダを残して全部削除してしまってもかまいません。

■ ojtalk.bat

展開したファイル群の中に、ojtalk.bat というのがあります。これをダブルクリックしたり、コマンドプロンプトから実行すると、Open JTalk を使って text.txt の内容を簡単な読み上げのテストができます。

このフォルダを C:\openktalk などに配置して、そこにパスを通すと、簡易読み上げコマンドとして利用できるようにも作ってあります。

シフトを押しながら右クリックなどで、コマンドプロンプトを開き、そこに次のような文字列を入力しエンターを押すと、しゃべります。もしくはこの行をメモ帳などに書いて、hoge.batという「.bat」で終わる名前にして保存して、それをダブルクリックするとしゃべってくれます。

ojtalk こんにちは

いろいろなオプションスイッチの指定ができるようにしてあります。基本的に open_jtalk.exe と同じままですが、コマンドラインの文字列を読ませることをメインにしたかったので、読み上げファイルは -f で指定します。他に、-vdir で音声モデルファイルのディレクトリを指定できます。なおスイッチの引数は空白を空けて書きます。

例えば、

ojtalk みなさん –p 60 –jm 1.2 こんにちは

このように指定すると、早口で、少し大きな声でしゃべります。Open_JTalk にはまだたくさんオプションがありますが、詳しい一覧は、まほろばさんのオープンソース音声合成エンジン「Open JTalk 1.05」などに分かりやすい表があります。

今回は、Open JTalk が直接しゃべるように設定していますが、しゃべらせずに、音声ファイルだけを作ってほしいというときは、オーディオバッファのサイズを指定する -z スイッチを使って、 -z 0 とします。 てくてくラボさんの Open JTalk    [ja.nishimotz.com] の「オーディオデバイスを無効化する」という記事を参考にしてソースを修正すればできるでしょう。 (打ち消し線で消した内容は-zスイッチがなかった頃の解決法でした。)

■ 他の音響モデル

ojtalk.bat の設定を少し書き換えると、標準の hts_voice_nitech_jp_atr503_m001 以外の音響モデルも利用できます。いろいろなMMDAgent 用の音声データも転用できます。open_jtalk.exe を作ったフォルダに音声データをフォルダをごとコピーして、ojtalk.bat の最初の方にある次の行

set VDIR=%CURDIR%hts_voice_nitech_jp_atr503_m001-1.04

この hts_voice_nitech_jp_atr503_m001-1.04 の部分を、そのフォルダの名前に変えると使えるようになります。

MMDAgent の Mei の音声は、mmdagent にある MMDAgent_Example の中にあります。Voiceフォルダをまるごと、今回作った open_jtalk.bat のあるフォルダにコピーしてきて、例の箇所を例えば次のように書き換えます。もしくは、新しく追加した -vdir スイッチでこのフォルダの絶対パスを指定します。

set VDIR=%CURDIR%Voice\mei_normal

 

標準音声のパラメータの数値のままでは、いい声ではありませんので、数値を多少変える必要があります。先ほどのまほろばさんのページに設定値が何通りか書いてあります。

なお、Open JTalk は長文を読ませると、発音がおかしくなる現象が起きます。これを解決するには、てくてくラボさんの Open JTalk    [ja.nishimotz.com]  に書かれている音素継続長の処理を参考にして、ソースを修正するとうまくいくかもしれません。

(2012/04/11最終更新)



posted by takayan at 02:35 | Comment(2) | TrackBack(0) | 音声合成 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
音を出さずに音声だけ生成したいなら、わざわざソースを書き換えなくても「-z 0」で可能です。
再生が終わるのを待つ必要もないので、生成時間も短縮できます。

それから、長文を読み上げさせると音がおかしくなってしまうバグがあるらしいです。
ソースに手を加えることで回避できるそうなので、「jpcommon_label.c」で検索してみてください。

あと、VOCALOIDの出力音声を他の音声合成ソフトで利用することは規約で禁止されているので
そのWikiで配布されている音源は規約違反になるはずです。
Posted by 下手の横好き at 2012年04月10日 13:45
下手の横好きさん、補足となるコメントありがとうございます。本文記事を修正させてもらいました。
今は、-z でバッファサイズが指定できるので、ソースの改造をしなくても、良くなっていたんですね。
Ubuntuの音声ガイドをミクさんにやってもらうことを妄想していたんですが、それが規約違反だったらいけませんね。手順は本文記事から消しておきます。
Posted by takayan at 2012年04月11日 01:32
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]


この記事へのトラックバック