Last Updated on 2014年10月28日 by かんりにん
会社の開発チームから、"音声合成ツールのOpen Jtalkを試したいので、開発サーバーに入れといてくださ~い"との依頼を受けたので、ひとまず動かせるところまでざざっと調べてインストールしたので、ログをささっと。
メモっておかないと次回セットアップするとき忘れちゃいそう(汗 セットアップ環境は、Amazon Linux。
■予備知識
- HMMとは?
- Hidden Markov Modelの略で、確率モデルの一つ。音声認識に利用されている(らしい)
- HTKとは?
- Hidden Markov Model Tool Kit の略。HMMを利用した音声認識ツールキット。
http://htk.eng.cam.ac.uk/
- HTSとは?
- 修正HTK。
名古屋工業大学徳田・李研究室 が提供する音声合成基盤ソフトウェア。- HMM-based Speech Synthesis System
http://hts.sp.nitech.ac.jp/
- HMM-based Speech Synthesis System
- Open Jtalkとは?
- オープンソースの日本語音声合成エンジン
入力された日本語テキストに基づいて人工音声を生成する、テキスト音声システム。- BSDライセンス準拠。
- 名古屋工業大学で開発。
- 音声認識エンジンにHTSを使う。
http://open-jtalk.sourceforge.net/
- 関連する環境
-
- MMDAgent
サンプルファイルの公開など。
http://sourceforge.net/projects/mmdagent/files/MMDAgent/MMDAgent-1.4/MMDAgent-1.4.zip/download
- MMDAgent
参考情報
参考:お世話になっております。
Open JTalk公式ページ
http://open-jtalk.sourceforge.net/
hts_engine API
http://hts-engine.sourceforge.net/
MMDAgent
http://www.mmdagent.jp/
■環境設定のドラフト~
作業ディレクトリ
ソースコードのダウンロード、展開、コンパイル等は以下のディレクトリで実施。
/home/user/src/open_jtalk
ソースコード
open jtalk のインストールに必要なファイル群。
バージョンは2014/10/23現在に使用したものを記載。
- hts_engine
HTSのランタイムエンジン。- hts_engine_API-1.08.tar.gz
http://downloads.sourceforge.net/hts-engine/hts_engine_API-1.08.tar.gz
- hts_engine_API-1.08.tar.gz
- open jtalk モジュールファイル群
- 辞書ファイル
- 音声ファイル
- hts_voice_nitech_jp_atr503_m001-1.05
http://downloads.sourceforge.net/open-jtalk/hts_voice_nitech_jp_atr503_m001-1.05.tar.gz
- hts_voice_nitech_jp_atr503_m001-1.05
- サンプル音声
- インストール先
RPMやOSコマンドと区別するため、基本的にすべて/usr/local以下に展開。- 実行ファイル
/usr/local/bin/以下
- インクルードファイル
/usr/local/include/
- ライブラリ
/usr/local/lib/
- open jtalk辞書ファイル
/usr/local/share/open_jtalk/
- open jtalk音声ファイル、サンプルファイル
/usr/local/share/hts_voice/
- 実行ファイル
■インストールログ
※ソースからのコンパイルになるので、インストール管理ツールに"porg"を使用。
porg
http://porg.sourceforge.net/
1)hts_engine API のインストール
まず最初にHTSエンジンのAPI(HTSのランタイムエンジン)をインストール
Open Jtalkの実行環境として使うだけなので、ランタイムだけでひとまずOKの様子。
- ダウンロードと展開
$ wget http://downloads.sourceforge.net/hts-engine/hts_engine_API-1.08.tar.gz $ tar zxvf hts_engine_API-1.08.tar.gz
- ビルド、コンパイル
$ cd hts_engine_API-1.08 $ ./configure $ make
- インストール
$ sudo porg -lp hts_engine_api-1.08 "make install"
- [インストールされたファイル]
$ porg -f hts_engine_api-1.08 hts_engine_api-1.08: /usr/local/bin/hts_engine /usr/local/include/HTS_engine.h /usr/local/lib/libHTSEngine.a
2)OpenJTalkのインストール
ビルド時に"–with-charset="オプションで文字コードを指定しておくこと。
(文字コードを指定せずにインストールしたら、UTF-8形式のテキストを認識しなくて軽くハマっちゃったw)
今回はサーバー環境に合わせてUTF-8を指定。
- ダウンロードと展開
$ wget http://downloads.sourceforge.net/open-jtalk/open_jtalk-1.07.tar.gz $ tar zxvf open_jtalk-1.07.tar.gz
- ビルド、コンパイル
$ cd open_jtalk-1.07 $ ./configure --with-charset=UTF-8 $ make
- インストール
$ sudo /usr/local/bin/porg -lp open_jtalk-1.07 "make install"
- [インストールされたファイル]
$ porg -f open_jtalk-1.07 open_jtalk-1.07: /usr/local/bin/open_jtalk /usr/local/dic/char.bin /usr/local/dic/left-id.def /usr/local/dic/matrix.bin /usr/local/dic/pos-id.def /usr/local/dic/rewrite.def /usr/local/dic/right-id.def /usr/local/dic/sys.dic /usr/local/dic/unk.dic
3)各種ファイル群のコピー
- ライブラリ用ディレクトリの作成
- 辞書ファイル用ディレクトリ
# mkdir /usr/local/share/open_jtalk
- 音声ファイル用ディレクトリ
# mkdir /usr/local/share/hts_voice
- 辞書ファイルの展開
$ wget http://sourceforge.net/projects/open-jtalk/files/Dictionary/open_jtalk_dic-1.07/open_jtalk_dic_utf_8-1.07.tar.gz/download $ tar zxvf open_jtalk_dic_utf_8-1.07.tar.gz # su - # mv open_jtalk_dic_utf_8-1.07 /usr/local/share/open_jtalk/
- 音声ファイル
$ wget http://downloads.sourceforge.net/open-jtalk/hts_voice_nitech_jp_atr503_m001-1.05.tar.gz $ tar zxvf hts_voice_nitech_jp_atr503_m001-1.05.tar.gz # su - # mv hts_voice_nitech_jp_atr503_m001-1.05 /usr/local/share/hts_voice/
- サンプル音声
$ unzip MMDAgent-1.4.zip # su - # mv MMDAgent-1.4 /usr/local/share/hts_voice/
- 辞書ファイル用ディレクトリ
■動作テスト
(以下、自社内での作業ログなのでスルーOKです)
動作テストに際してのポイントを以下に取りまとめ。
- テキストファイルをUTF-8で作成し、open_jtalkコマンドにて読み込む。
- 出力音声ファイルは.wav形式となる。
- /home/user/sandbox以下にテスト用テキストファイルと出力音声ファイルを保存。
- 出力ファイルは出力先を指定可能だが、指定が無い場合はカレントディレクトリに出力される(ファイル名の指定は必須)
1)入力分『おはよう』
入力ファイル:/home/user/sandbox/test.txt 出力ファイル:/home/user/sandbox/output.wav 実行コマンド: open_jtalk -m /usr/local/share/hts_voice/hts_voice_nitech_jp_atr503_m001-1.05/nitech_jp_atr503_m001.htsvoice \ -ow output.wav -x /usr/local/share/open_jtalk/open_jtalk_dic_utf_8-1.07 test.txt
2)入力分『本日は晴天なり』
入力ファイル:/home/user/sandbox/test2.txt 出力ファイル:/home/user/sandbox/output2.wav 実行コマンド: $ open_jtalk -m /usr/local/share/hts_voice/hts_voice_nitech_jp_atr503_m001-1.05/nitech_jp_atr503_m001.htsvoice \ -ow output2.wav -x /usr/local/share/open_jtalk/open_jtalk_dic_utf_8-1.07 test2.txt
といったところで、生成したwavファイルを再生・確認して完了。
イントネーションとかはともかく、割とはっきりとした音声で、なかなか面白いかも。
ひとまずこれで開発チームに戻しつつ、どういうカスタマイズをしたり依頼されたりするか、といったあたりは
今後の依頼次第でもうちょっと勉強したり試してみようかと。