Windows10でOpenJTalkを使い合成音声をつくる
Windows10でOpenJTalkを使って合成音声を作る手順を調べました。
OpenJTalkとは
OpenJTalkとは、テキストを日本語音声に変換することができるソフトウェアです。
声データによっては、生成した音声は、営利目的での使用も可能であるため、無料の日本語音声を機械読み上げで合成したい、ということを実現することができます。
OpenJTalkを使えるようにする手順
必要なファイルのダウンロード
OpenJTalkをWindowsで使えるようにするには若干手間がかかります。まず、以下のファイルを用意します。
Microsoft Visual Studio Communityエディション
MicrosoftのVisual Studioのダウンロードページ
Visual Studioにはいくつかのバージョンがあります。
無料で使えるのはCommunityエディションです。
制限もありますが、OpenJTalkを使えるようにするには、Communityエディションで十分です。
まず、Visual Studio Communityをインストールします。
今回はVisual Studio Community 2017をダウンロードしました。
.tar.gzファイルを解凍できるソフト
以降のファイルは.tar.gzという圧縮形式で配布されているので、このファイル形式を解凍できるソフトを先にインストールしておきます。
わたしは7-zipを使いました。
HTSエンジンAPI
HTSとは、名古屋工業大学徳田・李研究室が提供する音声合成基盤ソフトウェアです。
hts_engine APIというAPIをインストールしたうえでOpenJTalkと組み合わせます。
hts_engine_APIのダウンロード
今回はhts_engine API verstion 1.10をダウンロードします。
Source Codeと書かれたリンクから「hts_engine_API-1.10.tar.gz」をダウンロードします。
OpenJTalk
OpenJTalkは名古屋工業大学徳田・李研究室が開発した、日本語テキスト音声合成システムです。
OpenJTalkのダウンロード
Sourcd Codeと書かれたリンクから、「open_jtalk-1.10.tar.gz」をダウンロードします。
OpenJTalk用辞書ファイル
OpenJTalk用のテキスト音声変換用辞書ファイルです。
上記OpenJTalkのダウンロード先から、ダウンロードすることができます。
Shift-JISでしか認識しないようなので、Binary Package(Shift-JIS)から、「open_jtalk_dic_shift_jis-1.10.tar.gz」をダウンロードします。
Voiceファイル
声データです。
上記のOpenJTalkのダウンロード先の、「HTS voice version 1.05」の「Binary Package」からダウンロードします。
「hts_voice_nitech_jp_atr503_m001-1.05.tar.gz」というファイルがダウンロードされます。
声データはこのほかにも配布している場合があります。
インストール
Microsoft Visual Studio Communityエディション
ダウンロードしたファイル「vs_community__16722044.1520916428.exe」を実行します。
インストールの目的はVisual C++を使えるようにすることなので、インストールで選択する場面では、C++の含まれるものを選択します。
HTSエンジンAPI
7-zipでダウンロードした「hts_engine_API-1.10.tar.gz」を解凍します。
1度解凍して、「.tar」ファイルが生成されたら、さらに解凍すると本体が現れます。
「c:\oj」などのディレクトリをあらかじめ生成しておき、その中に解凍してできた「hts_engine_API-1.10」フォルダごと保存します。
Windows10の検索ボックスで「cmd」と入力して、コマンドプロンプトを起動します。
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x64
cd c:\oj
nmake -f Makefile.mak
nmake -f Makefile.mak install
以上を実行します。
最初の1行はVisual Studioのインストール先に含まれています。
成功すると、「c:\hts_engine_API」というディレクトリが生成されています。
OpenJTalk
「open_jtalk-1.10.tar.gz」を7-zipで解凍します。
解凍後の「open_jtalk-1.10」フォルダを、「c:\oj」に移動します。
コマンドプロンプトを起動し、以下のように打ちます。
nmake -f Makefile.mak
nmake -f Makefile.mak install
辞書ファイルを別途インストールするため、エラーメッセージが表示されますが無視しても問題ありません。
「c:\open_jtalk」というフォルダが生成されています。
OpenJTalk用辞書ファイル
「open_jtalk_dic_shift_jis-1.10.tar.gz」を7-zipで解凍します。
「open_jtalk_dic_shift_jis-1.10」というフォルダの名称を「dic」に変更し、「c:\open_jtalk\bin」以下にフォルダごと移動します。
Voiceファイル
「hts_voice_nitech_jp_atr503_m001-1.05.tar.gz」を7-zipで解凍します。
フォルダ内にはいくつかのファイルがありますが、そのうち、「nitech_jp_atr503_m001.htsvoice」を「c:\open_jtalk\bin」にコピーします。
OpenJTalkをつかって合成音声をつくる
テキストファイルに合成したいテキストを入力し、Shift-JISで保存します。
仮に「voice.txt」とします。
このファイルを「c:\open_jtalk\bin」に配置します。
コマンドプロンプトを起動して、以下を入力・実行します。
cd c:\open_jtalk\bin
open_jtalk.exe -m nitech_jp_atr503_m001.htsvoice -x dic -ow output.wav voice.txt
成功すると同じディレクトリ内に、「output.wav」という音声ファイルが生成されています。
なお、英語で「end」と入力しても「エンド」とは発せず、「イー、エヌ、ディー」と言います。
関連記事