
Ubuntu18.04にて、HTSを使って話者依存の音響モデル(.htsvoice)を作るシリーズの第2回です。
引き続き、こちらのサイトを大いに参考にさせていただきました。
http://mahoro-ba.net/e1876.html
3. サンプルの実行
動作確認として、サンプル用にプリセットされているデータを使って音響モデル(Htsvoice)を作成してみます。
<準備>
変数uidを定義しておかないとエラーが出るとのことなので、端末を開き、以下のコマンドを実行します。(nano以外のエディタをお使いの方は適宜読み替えてください)
~$sudo nano .bashrc
開いた~/.bashrcファイルに、以下の行を付け加えて保存します。
export uid=$USER
端末を再起動させて、以下のコマンドを実行するとユーザ名が表示されることを確認します。
~$cd HTS
~/HTS $ env | grep uid
uid=ユーザ名
このあとの処理には時間がかかるため、スリープをしないように設定しておきます。
Ubuntuなら、設定ー電源管理ーサスペンド,電源ボタンー自動サスペンドオフ
で設定可能です。
<サンプルの実行ー最小限の動作確認>
1. dataの編集
”HTS/HTS-demo_NIT-ATR503-M001/data”に移動する。その中の”raw”フォルダの中身を”a01.wav”〜”a20.wav”だけを残し、他は削除する。(念の為、もともとあった”raw”フォルダのバックアップを取っておくと安心です。)
2. 端末を開き、以下のコマンドを実行。
~$cd HTS/HTS-demo_NIT-ATR503-M001
~/HTS/HTS-demo_NIT-ATR503-M001 $ ./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
~/HTS/HTS-demo_NIT-ATR503-M001 $ make
3. 途中経過の確認
Perlのプログラムがバックグラウンドで実行されています。以下のコマンドで様子を見ることができます。
~/HTS/HTS-demo_NIT-ATR503-M001 $ tail -f log
4. Config.pmのエラー
自分の場合、ここでConfig.pmに関するエラーが出ました。どうやら”HTS/HTS-demo_NIT-ATR503-M001/scripts”内にある”Config.pm”というファイルにPerlのパスが通っていないようです。そこで、自分はすでにパスの通っている適当なフォルダへ、この”Config.pm”を移動させることにしました(ただし、上記2の実行コマンドを一回やってからでないと、中に書かれたSPTKやhtkの参照パスが更新されないので、最低一回上記2の2つ目のコマンド(./configureの方)は実行する必要あり)。パスの通っているフォルダは以下のコマンドで確認できます。
~$ perl -E 'say for @INC'
そこで自分の場合、”/usr/share/perl/5.26/”の下に”/scripts/Config.pm”をコピーすることにしました。
~/HTS/HTS-demo_NIT-ATR503-M001 $sudo cp scripts/Config.pm /usr/share/perl/5.26/scripts/Config.pm
これで、無事に動いてくれるようになりました。
5. 終了のログ
プログラムが無事に終了すると、以下のようなログが出るはずです。

6. 出力の確認
”HTS-demo_NIT-ATR503-M001/voices/qst001/ver1”にhtsvoiceファイルができていると思います。(ファイル名は”nitech_jp_atr503_m001.htsvoice”)
”HTS-demo_NIT-ATR503-M001/gen/qst001/ver1/hts_engine”には、サンプル音声(wavファイル)が入っています。
<オプション:サンプルの実行ーきっちりとした動作確認>
1. dataの編集
”HTS/HTS-demo_NIT-ATR503-M001/data”に移動する。その中の”raw”フォルダの中身を”a01.wav”〜”j53.wav”に戻す。
2. 上記と同様に実行
3. 実行結果
”raw”フォルダの中身が20個のときと比べて、声が鮮明になっていると思います。(ただし結構時間がかかる:自分の場合は2,3時間ほど)
サンプルの実行の次は、いよいよカスタム音声での実行に移りたいと思います。
3件の返信
503文の独自の音声ファイルの編集が終わったので、もう一度サンプルの503ファイルを試したところ以下のエラーが発生しました。
Tree based clustering based on MDL criterion, threshold=1.206843e+03
Error in /home/ユーザー名/HTS/prog/htk/bin/HHEd -A -B -C /home/ユーザー名/HTS/HTS-demo_NIT-ATR503-M001/configs/qst001/ver1/trn.cnf -D -T 1 -p -i -C /home/ユーザー名/HTS/HTS-demo_NIT-ATR503-M001/configs/qst001/ver1/mgc.cnf -H /home/ユーザー名/HTS/HTS-demo_NIT-ATR503-M001/models/qst001/ver1/cmp/re_clustered.mmf -m -a 1.0 -w /home/ユーザー名/HTS/HTS-demo_NIT-ATR503-M001/models/qst001/ver1/cmp/re_clustered.mmf /home/ユーザー名/HTS/HTS-demo_NIT-ATR503-M001/edfiles/qst001/ver1/cmp/cxc_mgc.hed.untied /home/ユーザー名/HTS/HTS-demo_NIT-ATR503-M001/data/lists/full.list
エラーの発生はHTS/HTS-demo_NIT-ATR503-M001の./configureを終えたのち、makeコマンドを打ち、
$ tail -f log
が使えるようになった時です。
どのタイミングで起きるのかわかりませんが、エラー内容が階層だけなので原因がわかりません。
仮想デバイスの容量とかが原因でしょうか?
503ファイルのよくわからないエラーですが、
・仮想デバイスの容量を10GB -> 30GBに変更
・$ sudo update や $ sudo upgrade
上記のことを行いもう一度処理をするとサンプルの503ファイルがコンパイルされて音声ファイルとなりました。
返信できておらず申し訳ありません。無事に音声ファイル出力できたようで、良かったです!
コメントは受け付けていません。