事前準備
ソースコードからフルビルドするので、Microsoft Visual Studioが必要です。
Visual Studio Community - Visual Studio
https://www.microsoft.com/ja-jp/dev/products/community.aspx
無料のCommunityエディションで大丈夫。ビルドに時間はかかりません。
中でもVisual C++が必要なので、Visual Studioのインストール時に選択すること。
Visual Studio入ってるけどVisual C++入ってないって人は、Visual Studio起動して、
ファイルメニューの「ツール」から「ツールと機能を取得」で、
「C++によるデスクトップ開発」をインストール出来ます。
また、tar.gzを解凍できるツールをご準備ください。
HTSエンジンをDL
hts_engine_API-1.10.tar.gz
hts_engine download | SourceForge.net
https://sourceforge.net/projects/hts-engine/
ちょっとスクロールして、Project Activityから、
hts_engine_API-1.10.tar.gzのように名前にAPIと入っているファイルをDL。
見当たらなかったらメニューのFilesからhts_engine APIに入れば見つかるはず。
Open JTalkをDL
open_jtalk-1.10.tar.gz
Open JTalk download | SourceForge.net
https://sourceforge.net/projects/open-jtalk/
緑色のDownloadボタンからopen_jtalk-1.10.tar.gzをDL。
open_jtalk_dic_shift_jis-1.10.tar.gz
前項のサイトから、ちょっとスクロールして、Project Activityから、
open_jtalk_dic_shift_jis-1.10.tar.gzをDL。
本当はUTF-8でやれたら良かったんだけど、WindowsではShift JISでないとダメなようなので泣く泣くShift JISを選択しました。
(2023/12/09追記:UTF-8でのビルド方法をコメントをいただきました。この場合open_jtalk_dic_utf_8-1.11.tar.gzをダウンロードすればいいはず)
hts_voice_nitech_jp_atr503_m001-1.05.tar.gz
前項のサイトから、メニューのFilesからHTS Voiceディレクトリに入り、
hts_voice_nitech_jp_atr503_m001-1.05ディレクトリの、
hts_voice_nitech_jp_atr503_m001-1.05.tar.gzをDL。
hts_engine_APIをビルド
DLしておいたhts_engine_API-1.10.tar.gzを解凍。
解凍先ディレクトリのパスが2バイト文字を含んでいると面倒なことが起こる時があるので、
2バイト文字を含まないディレクトリに移動しておくと楽です。
以降はコマンドプロンプトで、解凍後のファイル一式が入っているディレクトリに移動して、
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary/Build/vcvarsall.bat" x64
nmake -f Makefile.mak
nmake -f Makefile.mak install
筆者は横着してGit Bashでやろうとしたらvcvarsall.batの結果を環境変数に適用できず、
nmakeが動かせなくてコマンドプロンプトを立ち上げました。無念。
ビルドが完了すると、C:\hts_engine_API が出来上がっています。
この中のincludeディレクトリにあるヘッダファイル等をOpen JTalkのビルドで利用する模様。
Open JTalkをビルド
DLしておいたopen_jtalk-1.10.tar.gzを解凍
ディレクトリを移動して、さっきと同じく
nmake -f Makefile.mak
nmake -f Makefile.mak install
すると今度は、
cd ..
cd mecab-naist-jdic
nmake /f Makefile.mak
で処理が止まって、
NMAKE : fatal error U1073: 'left-id.def' のビルド方法が指定されていません。
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\bin\HostX64\x64\nmake.EXE"' : リターン コード '0x2'
Stop.
でエラーが出ました。
が、色々確認したり試したりした結果、ビルドがここまで進んでいればC:\open_jtalk\bin\open_jtalk.exeの生成には成功しており、
辞書データファイルの生成に失敗しているだけで、辞書データファイルは別途DLしたものを使用するため、
このエラーは無視しても支障ないようです。
ggっても他にこのエラーが出てる方は見当たらなかったので、筆者の環境の問題の可能性が高そうです。
(2021/08/08追記:このエラーについて問題箇所の可能性がある部分をコメントいただきました。検証はしていないのでご自身でご確認ください)
(2021/09/07追記:上記コメントの修正でうまくいったというコメントをいただきました。漢字の読みも改善されたとのことで、手間をかけても辞書データもビルドしたほうが良いかもしれません)
Open JTalkの稼動準備
辞書データファイルの準備
open_jtalk_dic_shift_jis-1.10.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にコピー。
こちらは一式ではなくファイル単体で良いので注意。
Open JTalkの動作テスト
Shift JISの辞書データファイルを選択したので、入力用のテキストファイルもShift JISで記述します。
C:\open_jtalk\bin直下にinput.txtを作成し、テスト再生用のテキストを保存。
コマンドプロンプトから
open_jtalk.exe -m nitech_jp_atr503_m001.htsvoice -x dic -ow output.wav input.txt
を実行。
生成されたoutput.wavを再生すると、某CeVIOの某タカハシさんに似た男性声で音声が再生されます。
UTF-8の辞書データファイルで、テスト用のテキストファイルをUTF-8で書いてもダメだったので、
Windowsでは内部処理自体がShift JISに依存しているのではと愚考していますが、それ以上は調べてないので詳細は分からず。
(2023/12/09追記:辞書ファイルのLDのところでも書きましたが、UTF-8でのビルド方法をコメントをいただきました。Makefile.makファイルの修正が必要とのこと)
女性の声に変更
MMDAgent - Toolkit for Building Voice Interactoin Systems
http://mmdagent.sourceforge.net/
から、Sample ScriptのほうのSource CodeをDL。
解凍して出てきたファイルのVoice/meiディレクトリにhtsvoiceファイルがいくつか入っているので、
このディレクトリをもらってきます。
C:\open_jtalk\binにmeiディレクトリをコピー。
open_jtalk.exe -m mei/mei_normal.htsvoice -x dic -ow output.wav input.txt
を実行すると、今度はoutput.wavで女性声が再生されます。
ライセンス
対象 | ライセンス |
---|---|
hts_engine_API | Modified BSD license |
Open JTalk | Modified BSD license |
男性ボイス | Creative Commons Attribution 3.0 |
女性ボイス | Creative Commons Attribution 3.0 |
誤りがあればご指摘ください
参考資料
Open JTalkをWindowsでビルドして動かしてみる - 真実の楽譜(フルスコア)
http://truthfullscore.hatenablog.com/entry/2015/05/31/102221
Raspberry piで日本語音声合成(Open JTalk)を試してみる。 - Qiita
http://qiita.com/lutecia16v/items/8d220885082e40ace252#%E5%A5%B3%E6%80%A7%E3%81%AE%E5%A3%B0%E3%81%AB%E5%A4%89%E3%81%88%E3%81%A6%E3%81%BF%E3%82%8B