まほろば

音響モデルを自作する6(独自音声)




.

音響モデルを自作する6(独自音声)

投稿者:マーチン  2016年9月11日 【記事印刷】

 最終目標である、独自の音声データからの音響モデルの作成を行い、Open-Jtalk での動作を確認します。
 聴きやすい音響モデルを作るのには、まだまだ工夫が必要です。

●音素ラベルファイルを作成する

(1)ATR503文章を読み上げたwavファイルを用意し、ファイル名を、a01.wav 〜 j53.wav とする。wavファイルのフォーマットは、Windowsでは、”sox --i ファイル名”、Ubuntuでは、”soxi ファイル名” を実行した時、以下のように表示されることを確認する。
Channels    : 1
Sample Rate  : 48000
Precision    : 16-bit
Sample Encoding : 16-bit Signed Integer PCM
(2)フォルダ”segment_atr503_windows-v1.0”の下に、例えば、フォルダ”female01”を作成して、その中にwavファイルを保存する。
(3)”segment_atr503_2.pl”を開き、4行目の $speaker = "akihiro"; を $speaker = "femalel01"; に変更する。
(4)端末を開いて、以下のコマンドを実行する。

~/HTS/segment_atr503_windows-v1.0 $ perl segment_atr503_2.pl


●準備

 サンプルデータ ”HTS-demo_NIT-ATR503-M001.tar.bz2” の必要な部分だけ残し、使いやすくしたファイル群を作ります。
(1)”HTS-demo_NIT-ATR503-M001.tar.bz2” を解凍して、フォルダ名を ”HTS-demo_base"とする。
(2)”data/Makefile.in”をエディタで開いて、
  ”/$(DATASET)_$(SPEAKER)_*” を ”/*” で置き換える。(正規表現ではない)
(3)”/data/raw” 内のファイルを削除する。
(4)”/data/labels/full” 内のファイルを削除する。
(5)”/data/labels/mono” 内のファイルを削除する。
(6)新たなファイル ”cfg” を作成する。

#! /bin/sh
./configure $@ --with-sptk-search-path=$HOME/HTS/prog/SPTK/bin --with-hts-search-path=$HOME/HTS/prog/htk/bin --with-hts-engine-search-path=$HOME/HTS/prog/hts_engine_API/bin

(7)”cfg” を右クリックして[プロパティ]を選択して、[アクセス権]タブをクリックして、
  ■プログラムとして実行可能
にチェックを入れる。

●音響モデルを作る

(1)音素ラベルファイル作成でできたフォルダ”raw”、”full”、”mono” の内容で、以下のフォルダを書き換える。
HTS-demo_base/data/raw
HTS-demo_base/data/labels/full
HTS-demo_base/data/labels/mono
(2)フォルダ”HTS-demo_base” で端末を開いて、以下のコマンドを実行する。

~/HTS/HTS-demo_base $ ./cfg UPPERF0=400
~/HTS/HTS-demo_base $ make

※女性の声なので、1行目で F0の上限値を400Hz(デフォルトは200Hz)に設定しています。
 参考:音響モデルの作成
(3)”HTS-demo_base/voices/qst001/ver1” に音響モデル(nitech_jp_atr503_m001.htsvoice) が作成される。
(4)”HTS-demo_base/gen/qst001/ver1/hts_engine” にwav形式のサンプル音声が作成される。

●同じパラメータを使うなら

(1)”cfg” をgedit で開いて $@ の前に、UPPERF0=400 を追加する。
 もしこの値を変更したいならば、例えば、”./cfg UPPERF0=200” とすればいい。($@ の方が後ろにあるので、cfg の引数が優先される。)

●その他の実行

(1)以下のコマンドを実行すると、作成したデータを全て消去する。

~/HTS/HTS-demo_base $ make clean

(2)以下のコマンドを実行すると、音響モデル学習に必要なデータを作成する。

~/HTS/HTS-demo_base $ make data

(3)以下のコマンドを実行すると、音響モデルの学習を実施する。

~/HTS/HTS-demo_base $ make voice


●Open JTalk のインストール

(1)http://sourceforge.jp/projects/sfnet_open-jtalk/releases/から、
open_jtalk-1.09.tar.gz
をダウンロードする。
(2)ダウンロードしたファイルを展開する。
(3)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; /* add */
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; /* add */
400: return index_mora_in_utterance(m) + i;
401:}


(4)フォルダ”HTS/open_jtalk-1.09” で、端末を開いて、以下を実行する。

~/HTS/open_jtalk-1.09 $ ./configure --with-hts-engine-header-path=$HOME/HTS/prog/hts_engine_API/include --with-hts-engine-library-path=$HOME/HTS/prog/hts_engine_API/lib --with-charset=UTF-8
~/HTS/open_jtalk-1.09 $ make
~/HTS/open_jtalk-1.09 $ sudo make install


●音響モデルを確認する

(1)フォルダ”HTS-demo_base” を開いて、[新しいドキュメント] [空のドキュメント] を選択し、例えば、”text.txt” というファイルを作成する。
(2)ファイルの内容は、読み上げさせたい文字列(1行)を入力する。
(3)端末を開いて、以下のコマンドを実行する。

~/HTS/HTS-demo_base $ open_jtalk -z 2000 -x /usr/local/dic -m voices/qst001/ver1/nitech_jp_atr503_m001.htsvoice -ow text.wav text.txt
~/HTS/HTS-demo_base $ play text.wav



◆連載

◆関連記事

  このエントリーをはてなブックマークに追加
.
△ 先頭へ