まほろば

Open JTalk の音響モデルを試す

投稿者:マーチン  2016年6月3日 
カテゴリ:障碍者全般::音声合成

 OpenJTalk は、音響モデルと呼ばれるファイルを変更することで、声色を変更できます。音響モデルの入手先の紹介と、それらによって、どう変わるかを SHABERU_Light と NVDA と Windows上でコンパイルしたOpenJTalk を使って比較してみました。
 2016/05/22 音素継続長の不具合を回避するために jpcommon_label.c に修正を加えました。
 2016/05/27 東北大学 伊藤・能勢研究室 作成の音響モデルを追加しました。
 2016/06/03 NVDA2016.2 のmei happy の音声サンプルを追加しました。

●音響モデルを入手する

 .htsvoice ファイルを公開しているサイトを紹介します。必ず利用規約を理解したうえで、ダウンロードしたファイルをご使用下さい。
 ※音響モデルを使用し制作された作品の発表は自由でも、音響モデル自体の2次配布は禁じられていることがあります。
◆Open JTalk 標準音声
(1)http://sourceforge.jp/projects/sfnet_open-jtalk/releases/ を開く
(2)[HTS voice] を開いて、hts_voice_nitech_jp_atr503_m001-1.05.tar.gz をダウンロードし、解凍する。
(3)nitech_jp_atr503_m001.htsvoice (男性) が入手できる。
◆MMDAgent
(1)https://osdn.jp/projects/sfnet_mmdagent/ を開く
(2)MMDAgent_Example-1.6.zip をダウンロードし、解凍する。
(3)フォルダ Voice\mei 内に mei_normal.htsvoice (女性) 等の5個のファイルがある。
◆東北大学 大学院工学研究科 通信工学専攻 伊藤・能勢研究室
(1)icn-lab::HTS voice tohoku-f01 を開く。
(2)angry(怒り)、happy(喜び)、neutral(平静)、sad(悲しみ) の4種類が公開されていて、ファイル名をクリックして、[RAW] をクリックしてダウンロードする。
※読み上げには、neutral(平穏) がよさそう。 CCライセンス (CC-BY 4.0)。
◆なんかいろいろしてみます
(1)http://akihiro0105.web.fc2.com/Downloads/Downloads-htsvoice.html を開く。
(2)26種類の音響モデルが公開されていて、[Download] をクリックして、解凍する。
※唱地ヨエ、戯歌ラカン、瑞歌ミズキ が、文章の読み上げに使えそう。
◆MMDAgent & Project-NAIP wiki
(1)MMDAgent & Project-NAIP wiki::自作音響モデル を開く。
(2)TYPE-α、TYPE-β 、TYPE-γ、TYPE-δの4種類が公開されていて、[ダウンロード] [リンク先のURL] [ダウンロード] をクリックしてダウンロードし、解凍する。
(3)提供されているのは、旧式の hts_engine_API 用の音響モデルの設定ファイル群なので、それを htsvoiceフォーマットのファイルに変換するには、takayanの雑記帳::htsvoiceへ変換するプログラム から、htsvconv.exe をダウンロードして実行する必要がある。
※TYPE-γが、文章の読み上げに使えそう。

●比較結果

 NVDAのユーザマニュアルの中から抜き出した、以下の文章を読ませてみました。

ポータブル版を起動するには、NVDAを展開したフォルダーを開いて、nvda.exeファイルに移動してEnterキーを押すかダブルクリックしてください


音響モデル性別SHABERU_Light 1.0NVDA 2016.1jpOpenJtalk 1.09
mei normal女性メイ 再生メイ 再生メイ 再生
mei happy女性メイハッピー 再生
NVDA 2016.2jp
tohoku-f01 neutral女性東北f01 再生東北f01 再生東北f01 再生
唱地ヨエ女性ヨエ 再生ヨエ 再生ヨエ 再生
ミク Type-γ女性ミク 再生ミク 再生ミク 再生
m001男性m001 再生m001 再生m001 再生
戯歌ラカン男性ラカン 再生ラカン 再生ラカン 再生
瑞歌ミズキ男性ミズキ 再生ミズキ 再生ミズキ 再生
※比較しやすいように、音量がほぼ同じになるように調整しています。

 ついでに、他の音声合成エンジンにも、TextToWave あるいは自作ソフトで、同じ文章を読ませてみました。
音声エンジン性別音声サンプル音声エンジン性別音声サンプル
Haruka Desktop女性はるか デスクトップ 再生
Ayumi Mobile女性あゆみ モバイル 再生Ichiro Mobile男性いちろう モバイル 再生
DTalker けいこ女性けいこ 再生DTalker たかし男性たかし 再生
ProTalker
読み子ちゃん
女性読み子 再生ProTalker
読み秀君
男性読み秀 再生
Galatea Talk female女性ガラティアトーク女性 再生Galatea Talk male男性ガラティアトーク男性 再生

●SHABERU_Light を使う

◆インストール
(1)【Vector】日本語音声合成ソフトSHABERU_Light から、SHABERU_Light_1.0.zip をダウンロードして、解凍する。
(2)解凍したフォルダを適切な場所(例えば、C:\Program Files (x86))に移動する。
(3) SHABERU_Light.exe を右クリックして、[送る] [デスクトップ(ショートカットを作成)] を選択する。
◆音響モデルの変え方
(1)フォルダ”htsvoice”の下に、拡張子”.htsvoice”のファイルを保存する。
(2)SHABERU_Light を起動する。
(3)[設定] [音響モデル設定] [設定] をクリックする。
音響モデル設定 画面

(4)拡張子”.htsvoice”のファイルを選択して、[決定] をクリックする。
ファイル選択 画面

(5)読み上げ内容を入力して、再生ボタンをクリックする。

●NVDA を使う

◆インストール
(1)NVDA日本語版 ダウンロードと説明 から、http://i.nvda.jp をクリックし、ファイルをダウンロードする。
(2)ダウンロードしたファイル(nvda_2016.1jp.exe) を実行し、使用許諾契約で”同意する”にチェックを入れて、[このコンピュータにNVDAをインストールする] をクリックする。
(3)その後、指示に従ってインストールを継続する。
◆音響モデルの変え方
 NVDAには、OpenJTalkの音響モデルを変更できる機能がないので、無理やり手動でファイル名を書き換えるという荒業を使います。NVDAによるファイル操作に慣れていないかたは、実行しないでください。
(1)NVDAメニューから、音声エンジン:OpenJtalk 、音声設定:m001 以外の設定にする。
(2)拡張子”.htsvoice” のファイルを以下のフォルダに移動する。
  C:\Program Files (x86)\NVDA\synthDrivers\jtalk\m001
   ※ ポータブル版なら、展開したフォルダの下の \synthDrivers\jtalk\m001
(3)もともとあった、m001.htsvoice を別の名前にリネームする。”Program Files”の下のファイルを操作しようとすると、以下のような警告がでるが、内容を確認して、[続行] をクリックする。
ファイルアクセスの拒否 画面

(4)追加した”.htsvoice”ファイルを”m001.htsvoice” にリネームする。
(5)NVDAメニューから、音声エンジン:OpenJtalk、音声設定:m001 に設定する。

●OpenJTalk を使う

◆インストール
 OpenJTalk の最新版をWindows上にインストールする方法を説明します。
(1)C++のコンパイルをするために、Microsoft Visual Studio Express 2012 for Windows Desktop あるいは Visual Studio 2015 Community をインストールする。Visual Studio 2015 Community なら、インストールの種類で、●カスタム を選択し、■プログラム言語 Visual C++ にチェックを入れる。
Visual C++ 選択 画面

(2)拡張子.tar.gz 対応の解凍ツール(例えば、Lhaplus や 7-zip)をインストールする。
(3)http://sourceforge.jp/projects/sfnet_open-jtalk/releases/から、
open_jtalk-1.09.tar.gz
hts_voice_nitech_jp_atr503_m001-1.05.tar.gz
 http://sourceforge.jp/projects/sfnet_hts-engine/releases/ から、
hts_engine_API-1.10.tar.gz
をダウンロードする。
(4)ダウンロードした3つのファイルを解凍する。
(5)nishimotzの日記:Open JTalk の音素継続長の不具合を回避する を参考に、
ファイル「jpcommon\jpcommon_label.c」に、以下の299行、399行を追加する。

289:static int index_accent_phrase_in_breath_group(JPCommonLabelAccentPhrase * a)
// 中略 //
296: if (index == a)
297: break;
298: }
299: if (i > 3) i = 3;
300: return i;
301:}

392:static int count_mora_in_utterance(JPCommonLabelMora * m)
// 中略 //
397: for (i = 0, index = m->next; index != NULL; index = index->next)
398: i++;
399: if (i > 10) i = 10;
400: return index_mora_in_utterance(m) + i;
401:}


(6)以下のバッチファイル make.bat を作成する。(takayanの雑記帳::Open JTalk 1.07 をいろいろビルドしてみました。を参考にしました)

call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat"
nmake -f Makefile.mak
nmake -f Makefile.mak install
pause

※最初の行は、インストールされているVisual Studio のバージョンによって変更してください。

(7)ファイル”make.bat” を フォルダ”hts_engine_API-1.10”にコピーして実行すると、”C:\hts_engine_API” が作成される。
コンパイル完了 画面

(8)ファイル”make.bat” をフォルダ”open_jtalk-1.09”にコピーして実行すると、”C:\open_jtalk” が作成される。
コンパイル完了 画面

(9)”C:\open_jtalk”の下に、フォルダ ”voice\m001” を作成し、”nitech_jp_atr503_m001.htsvoice” を移動する。
◆音響モデルの変え方
(1)”C:\open_jtalk”の下に、読み上げデータファイル ”text.txt” をメモ帳で作成する。

ポータブル版を起動するには、NVDAを展開したフォルダーを開いて、nvda.exeファイルに移動してEnterキーを押すかダブルクリックしてください


(2)”C:\open_jtalk”の下に、以下のバッチファイル ”m001.bat” をメモ帳で作成する。日本語コードは、シフトJISにする。

set VOICE=voice\m001\nitech_jp_atr503_m001.htsvoice
bin\open_jtalk -z 2000 -x dic -m %VOICE% -ow %~n0.wav text.txt
pause


(3)”m001.bat” を実行する。
(4)音響モデルを変えるには、バッチファイルの1行目を変更する。
(5)その他のオプションは以下の通り。
オプション説明省略時範囲
-x dir辞書ディレクトリ
-m htsvoice音響モデル(htsvoiceファイル)
-ow stringWAVファイルの出力 (合成音声)
-ot stringログファイルの出力
-s intサンプリング周波数auto[ 1--]
-p intフレーム周期auto[ 1--]
-a floatオールパス値auto[ 0.0--1.0]
-b floatポストフィルター係数 0.0[ 0.0--1.0]
-r float速度 1.0[ 0.0-- ]
-fm float音程 0.0[ -- ]
-u float有声/無声境界値 0.5[ 0.0--1.0]
-jm floatスペクトラム系列内変動の重み 1.0[ 0.0-- ]
-jf floatF0系列内変動の重み 1.0[ 0.0-- ]
-g float音量 (dB) 0.0[ -- ]
-z intオーディオバッファサイズ
0 の時は、音声出力しない
0[ 0-- ]


◆関連記事