HTSで話者依存の自作音響モデルをつくる! デモ編

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件の返信

  1. 阿部高志 より:

    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
    が使えるようになった時です。
    どのタイミングで起きるのかわかりませんが、エラー内容が階層だけなので原因がわかりません。
    仮想デバイスの容量とかが原因でしょうか?

  2. 阿部高志 より:

    503ファイルのよくわからないエラーですが、

    ・仮想デバイスの容量を10GB -> 30GBに変更
    ・$ sudo update や $ sudo upgrade

    上記のことを行いもう一度処理をするとサンプルの503ファイルがコンパイルされて音声ファイルとなりました。

    • kyabe2 より:

      返信できておらず申し訳ありません。無事に音声ファイル出力できたようで、良かったです!

コメントは受け付けていません。