Open JTalkをWindowsでビルドして動かしてみる
オープンソースの日本語の音声合成エンジンOpen JTalk
Open JTalk - HMM-based Text-to-Speech System
日本語合成エンジンなのに公式解説は英語だらけだし、
Windowsに導入する際にはソースファイルからビルドが必要だったりと、
一癖あったので忘備録として導入手順をご紹介。
準備
必要なもの
- Open JTalk本体, open_jtalk-1.xx (記述時1.08)
- 解析用辞書ファイル, open_jtalk_dic-1.xx (記述時1.08)
- 音声合成エンジン, hts_engine_API-1.xx (記述時1.09)
- 音響モデルデータ, hts_voice_nitech_jp_atr503_m001-1.xx (記述時1.05)
- Visual Studio Community 2013 (VC++12.0)
ファイルのダウンロード
http://sourceforge.net/projects/hts-engine/から以下のファイルをダウンロード
- hts_engine_API-1.09.tar.gz
http://sourceforge.net/projects/open-jtalk/から以下のファイルをダウンロード。
- open_jtalk-1.08.tar.gz
- open_jtalk_dic_shift_jis-1.08.tar.gz
- hts_voice_nitech_jp_atr503_m001-1.05.tar.gz
辞書ファイル(open_jtalk_dic)は文字コード毎に用意されている模様で、
今回はWindows環境なのでshift_jisを選択。
他の文字コードだとどうなるか不明。
ビルド
hts_engine_APIのビルド
hts_engine_APIがないとOpen JTalkをビルドできないので、
先にhts_engine_APIを以下の手順でビルドします。
call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat"
nmake -f Makefile.mak
nmake -f Makefile.mak install
ビルドに成功すると以下のパスにhts_engine_APIが作成されます。
C:\hts_engine_API
※環境変数のPATHにダブルクォーテーション["]が含まれていると、
「vcvarsall.bat」を呼び出した時点でエラーが発生してビルドが行われません。
環境変数設定のGUI上では入力できないのですが、自分の環境ではDirectX関連のパスが
何故かダブルクォーテーションで囲まれていたのでご注意を。
音声合成
辞書・音響モデルの配置
Open JTalkはコマンドライン実行プログラムであり、
コマンドライン引数として辞書データファイルと音響モデルファイルを指定する必要があるため、
使いやすくするために予め実行ファイルディレクトリに配置しておきます。
- ダウンロートした「open_jtalk_dic_shift_jis-1.08.tar.gz」を解凍
- 解凍したフォルダ名を「dic」にして「C:\open_jtalk\bin」直下に配置
- ダウンロートしたhts_voice_nitech_jp_atr503_m001-1.05.tar.gzを解凍
- 解凍したフォルダ内の「nitech_jp_atr503_m001.htsvoice」を「C:\open_jtalk\bin」直下に配置
input.txt例
こんにちは、お元気ですか
データ配置例
実行
コマンドプロンプトを起動し以下のコマンドを入力
open_jtalk.exe -m nitech_jp_atr503_m001.htsvoice -x dic -ow output.wav input.txt
同一フォルダ内に「output.wav」の音声合成した音声ファイルの出来上がり〜
音声のモデルはどこぞやの男性っぽいですね。
声質を変化させる場合は、コマンドライン引数のパラメータを弄ればいいけど、
別の人の声に変えるにはhtsvoiceファイルを用意しないと無理そうです。
名工大の音声案内端末として使われいるメイちゃん声は落とせるようだけど、
好きな声を使うにはモデル生成する必要があるようでまだまだ謎が多いです。