音響モデルの作成

※2011/12/28現在のものです。
※VirualBox上に構築したUbuntu 10.04を元に記述しています。


必要なもの

音響モデルを作成する上で、以下のソフトが必要となります。

  • HTK-3.4.1
    • ダウンロード:http://htk.eng.cam.ac.uk/download.shtml
    • ダウンロードにはユーザー登録が必要です。
    • Linux/Unix downloads > HTK source code から HTK-3.4.1.tar.gz をダウンロードしてください。






  • HTS-demo_NIT-ATR503-M001
    • ダウンロード:http://hts.sp.nitech.ac.jp/?Download
    • Speaker dependent training demo > Japanese > Normal demo から HTS-demo_NIT-ATR503-M001.tar.tar をダウンロードしてください。

インストール

  • ファイルパスは適宜読み換えてください。
  • 端末(ターミナル)で操作を行うところがありますので、Linuxの基本的なコマンドの知識が必要です。
  • 例ではホームディレクトリ(/home/cube370)にHTSディレクトリ(/hpme/cube370/HTS)を作成しています。

  • 下準備
  1. Synaptic パッケージ・マネージャで libX11-dev と sox をインストールする。
  2. 以下のコマンドで patch コマンドを利用できるようにする。

コマンド例
$ sudo apt-get install patch

  • HTSのインストール
  1. まずは、HTK-3.4.1.zip と HDecode-3.4.1.zip を解凍します。
  2. 解凍してできたファイルとディレクトリをhtkディレクトリにまとめます。
  3. HTS-2.2_for_HTK-3.4.1.tar.bz2 を解凍後、HTS-2.2_for_HTK-3.4.1ディレクトリ内にあるHTS-2.2_for_HTK-3.4.1.patchを先ほどのhtkディレクトリにコピーします。
  4. htkディレクトリをHTSディレクトリ(/hpme/cube370/HTS)内へコピーします。
  5. 端末(ターミナル)を起動して以下のようにコマンドを実行していきます。

コマンド例
$ cd /home/cube370/HTS/htk/
$ patch -p1 -d . < HTS-2.2_for_HTK-3.4.1.patch
$ ./configure --prefix=/home/cube370/HTS/htk/
$ make
$ make install

  • hts_engine_APIのインストール
  1. hts_engine_API-1.06.tar.gzを解凍します。
  2. 解凍してできたディレクトリをHTSディレクトリ(/hpme/cube370/HTS)内へコピーします。
  3. 端末(ターミナル)を起動して以下のようにコマンドを実行していきます。

コマンド例
$ mkdir /home/cube370/HTS/hts_engine_API/
$ cd /home/cube370/HTS/hts_engine_API-1.06/
$ ./configure --prefix=/home/cube370/HTS/hts_engine_API/
$ make
$ make install

  • SPTKのインストール
  1. SPTK-3.5.tar.gzを解凍します。
  2. 解凍してできたディレクトリをHTSディレクトリ(/hpme/cube370/HTS)内へコピーします。
  3. 端末(ターミナル)を起動して以下のようにコマンドを実行していきます。

コマンド例
$ mkdir /home/cube370/HTS/SPTK/
$ cd /home/cube370/HTS/SPTK-3.5/
$ ./configure --prefix=/home/cube370/HTS/SPTK/
$ make
$ make install

  • ActiveTclのインストール
  1. ActiveTcl8.4.19.4.292682-linux-ix86.tar.gzを解凍します。
  2. 解凍してできたディレクトリをHTSディレクトリ(/hpme/cube370/HTS)内へコピーします。
  3. 端末(ターミナル)を起動して以下のようにコマンドを実行していきます。実行しするとインストーラが起動します。
  4. インストーラの指示に従って進めていきます。「Please specify the installation directory」ページでActiveTclディレクトリ(/hpme/cube370/HTS/ActiveTcl)を選びます。
  5. 後はインストーラの指示に従ってインストールを進めてください。

コマンド例
$ mkdir /home/cube370/HTS/ActiveTcl/
$ cd /home/cube370/HTS/ActiveTcl8.4.19.4.292682-linux-ix86/
$ sh install.sh

サンプルを使った音響モデルの作成


話者依存モデルを使って音響モデルを作成します。ここではサンプルを使って音響モデルの作成しついて解説していきます。
サンプルそのままで音響モデルを作成すると処理が終わるまでに6~12時間程度かかります。テストとして音響モデルを作成する場合はHTS-demo_NIT-ATR503-M001/data/rawにある*.rawファイルの数を10個くらいに減らしておくと良いです。

  1. HTS-demo_NIT-ATR503-M001.tar.tarを解凍します。
  2. 解凍してできたHTS-demo_NIT-ATR503-M001をHTSディレクトリ(/hpme/cube370/HTS)内へコピーします。
  3. 端末(ターミナル)を起動して以下のようにコマンドを実行していきます。./configureから--with-hts-engine-search-pathまでが1つのコマンドです。
  4. makeが終了するとPerlスクリプトがバックグランドで実行されて学習を開始します。学習の過程やエラーについてはHTS-demo_NIT-ATR503-M001/logに出力されます。
  5. 学習が終了するとHTS-demo_NIT-ATR503-M001/voices/qst001/ver1に音響モデルが作成されます。
  6. 作成した音響モデルはMMDAgentで使用することができます。手っ取り早く試すときは作成されたファイルすべてをmeiボイスに上書きしてしまう方法があります。このときすべてのmeiボイス(mei_angry、mei_bashful、mei_happy、mei_normal、mei_sad)に上書きしてください。どれか1つだけに上書きした場合、MMDAgentが正常に読み込めないことがあります。

コマンド例
$ cd /home/cube370/HTS/HTS-demo_NIT-ATR503-M001/
$ ./configure
--with-tcl-search-path=/home/cube370/HTS/ActiveTcl/bin
--with-sptk-search-path=/home/cube370/HTS/SPTK/bin
--with-hts-search-path=/home/cube370/HTS/htk/bin
--with-hts-engine-search-path=/home/cube370/HTS/hts_engine_API/bin
$ make

解説動画

上記のインストールから音響モデルの作成までの流れを動画にしました。


音響モデルを自作する方法


現状で音響モデルを自作する場合はサンプルのラベルファイル(*.lab)と音声データ(*.raw)を差し替える方法があります。
詳しいデータの用意方法などは「HTSの学習用データの作成」を参照してください。※まだ編集途中。
ラベルファイルと音声データを差し替えたものが用意できたら、サンプルと同じようにコマンドを実行します。

メモ


サンプルは付属の音声データにあわせて、学習パラメータが設定されています。
このため、音響モデルを自作する場合はパラメータを変更する必要があります。
以下の例はcube370が音響モデルを自作する上で行った設定です。参考にしてください。

configureを編集することで、学習時の設定を変更できます。

4186行目:Speaker Name (default = "m001")
4298行目:Upper limit for F0 extraction in Hz (default = 200) ※女性モデルなら400Hz以上にすると良いと思われる。

学習データによってはConfig.pm.inの編集が必要な場合があります。

151行目:$beam = '1500 100 5000'; ⇒ $beam = '15000 100 50000'; ※学習時間が延びる可能性あり。

  • 最終更新:2012-01-05 10:32:35

このWIKIを編集するにはパスワード入力が必要です

認証パスワード