harumaki.net

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

CentOS メモ 作業ログ

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

投稿日:2014年10月23日

Last Updated on 2023年5月3日 by かんりにん

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

■予備知識

  • HMMとは?
    Hidden Markov Modelの略で、確率モデルの一つ。音声認識に利用されている(らしい)
  • HTKとは?
    Hidden Markov Model Tool Kit の略。HMMを利用した音声認識ツールキット。
  • HTSとは?
    修正HTK。
    HMM-based Speech Synthesis System
    名古屋工業大学徳田・李研究室 が提供する音声合成基盤ソフトウェア。
  • Open Jtalkとは?
    オープンソースの日本語音声合成エンジン
    入力された日本語テキストに基づいて人工音声を生成する、テキスト音声システム。
    –BSDライセンス準拠。
    –名古屋工業大学で開発。
    –音声認識エンジンにHTSを使う。
  • 関連する環境
    MMDAgent
    サンプルファイルの公開など。

参考情報

参考:お世話になっております。
Open JTalk公式ページ
hts_engine API
MMDAgent

■環境設定のドラフト

作業ディレクトリ

ソースコードのダウンロード、展開、コンパイル等は以下のディレクトリで実施。

/home/user/src/open_jtalk

ソースコード

open jtalk のインストールに必要なファイル群。
バージョンは2014/10/23現在に使用したものを記載。
– ”hts_engine”
HTSのランタイムエンジン。
hts_engine_API-1.08.tar.gz
– ”open jtalk モジュールファイル群”
open_jtalk-1.07
– ”辞書ファイル”
open_jtalk_dic-1.07
– ”音声ファイル”
hts_voice_nitech_jp_atr503_m001-1.05
– ”サンプル音声”
MMDAgent_Example-1.4

インストール先

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の様子。

1.ダウンロードと展開

 $ wget http://downloads.sourceforge.net/hts-engine/hts_engine_API-1.08.tar.gz
 $ tar zxvf hts_engine_API-1.08.tar.gz

2.ビルド、コンパイル

 $ cd hts_engine_API-1.08
 $ ./configure
 $ make

3.インストール

 $ 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を指定。

1.ダウンロードと展開

 $ wget http://downloads.sourceforge.net/open-jtalk/open_jtalk-1.07.tar.gz
 $ tar zxvf open_jtalk-1.07.tar.gz

2.ビルド、コンパイル

 $ cd open_jtalk-1.07
 $ ./configure --with-charset=UTF-8
 $ make

3.インストール

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

-CentOS, メモ, 作業ログ
-

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

no image

ただのメモ:cron実行内容をloggerを使ってログファイルに書き出す

crontabでジョブを実行する際、標準出力やスクリプト内にechoで出力した内容を パイプにてloggerコマンドを使って/var/log/messagesへ書き出す。 オプション”-t …

[DB]FireBird アカウントの作成など

[pukiwiki] FireBirdでのユーザーの作成、パスワード設定  ここは、superclassicをベースにドキュメントをまとめています。 -参考:お世話になっております! FIREBIRD …

no image

[rsync]タイムスタンプについてメモ

同期元ホストのディレクトリのタイムスタンプ(last update)を同期先で合わせる場合のちょっとしたメモ。 rsyncを実行するホストがデータの同期元か同期先(バックアップ先)かでオプションが変わ …

[メモ][juniper] SRX(JunOS) FTPS設定追加

  社内から外部のFTPサービスへ接続する際、通常のFTPでは問題ないものの、FTPS(FTP Over SSL/TLS)で接続しようとしたところ、認証が通ったところで応答がなくなり、そのままタイムア …

no image

メモ:lsコマンドでタイムスタンプの表記を変える

lsコマンドにてタイムスタンプの表記を変える場合は、オプション”-l”との併用で”–time-style”をつけ 各種表記やdateコマンド …