harumaki.net

インフラ屋の覚書や、ラーメン食べある記とか。

Open Jtalkを入れてみたのでインストール・環境設定をメモ書き

   


会社の開発チームから、"音声合成ツールのOpen Jtalkを試したいので、開発サーバーに入れといてくださ~い"との依頼を受けたので、ひとまず動かせるところまでざざっと調べてインストールしたので、ログをささっと。
メモっておかないと次回セットアップするとき忘れちゃいそう(汗 セットアップ環境は、Amazon Linux。

■予備知識

HMMとは?
Hidden Markov Modelの略で、確率モデルの一つ。音声認識に利用されている(らしい)
HTKとは?
Hidden Markov Model Tool Kit の略。HMMを利用した音声認識ツールキット。
http://htk.eng.cam.ac.uk/
HTSとは?
修正HTK。
名古屋工業大学徳田・李研究室 が提供する音声合成基盤ソフトウェア。

Open Jtalkとは?
オープンソースの日本語音声合成エンジン
入力された日本語テキストに基づいて人工音声を生成する、テキスト音声システム。

関連する環境

参考情報

参考:お世話になっております。
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現在に使用したものを記載。

  • インストール先
    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)各種ファイル群のコピー

  1. ライブラリ用ディレクトリの作成
    • 辞書ファイル用ディレクトリ
      # 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ファイルを再生・確認して完了。
イントネーションとかはともかく、割とはっきりとした音声で、なかなか面白いかも。
ひとまずこれで開発チームに戻しつつ、どういうカスタマイズをしたり依頼されたりするか、といったあたりは
今後の依頼次第でもうちょっと勉強したり試してみようかと。

 - CentOS, メモ, 作業ログ