HTSで話者適応。少量サンプルで音響モデル作成! 準備編

Ubuntu18.04にて、HTSを使って話者適応の音響モデル(.htsvoice)を作るシリーズの第1回です。話者適応モデルは、複数話者の音声データから「平均声」をつくって、それに新たに作成したい話者の音声データの特徴量をのせることで音響モデルを作成する方法になります。話者依存に比べて、少ない音声データで新たな音響モデルが作成できることが特徴です。

こちらのサイトを大いに参考にさせていただきました。

https://ragolun.exblog.jp/23144146/

  

1. Ubuntu18.04セットアップ

<各種インストールapt系(OpenJtalkが新規追加)>

$ sudo apt install patch
$ sudo apt install csh
$ sudo apt install gawk
$ sudo apt install open-jtalk open-jtalk-mecab-naist-jdic hts-voice-nitech-jp-atr503-m001

$ sudo apt install build-essential(追記:compile,makeのために必要)

<各種インストールsynaptic系>

“Synaptic Package Manager”をインストール。
その後Synaptic Package Managerを開いて、libX11-devとsoxとjuliusをインストール。

  

2. HTS関連のダウンロード&インストール

<ダウンロード>

1. ユーザ登録

http://htk.eng.cam.ac.uk/register.shtml で、Registration (ユーザ登録)。登録したメールアドレスにパスワードが送られてくる。

2. HTK … 大事なアルゴリズムのところ1

http://htk.eng.cam.ac.uk/download.shtml で、Stable release (3.4.1)下のLinux/Unix downloadsの、HTK source code(tar+gzip archive)をダウンロード。ここではパスワードは求められない。

3. HDecode … 大事なアルゴリズムのところ2

http://htk.eng.cam.ac.uk/prot-docs/hdecode.shtml にアクセスするとパスワードが求められるので、メールで届いたパスを入力。HDecode Download Stable Release(3.4.1)下の、Linux/Unix downloadsの、HDecode(tar+gzip archive)をダウンロード。

4. HTS for HTK … HTK用のパッチが入っている

http://hts.sp.nitech.ac.jp/?Download を開き、HTS2.3の・Source CodeにあるHTS2.3_for_HTK3.4.1をダウンロード。tar.bz2というところをクリックする。

5. hts_engine_API … 音声合成に使う

http://hts-engine.sourceforge.net/ を開き、hts_engine API version 1.10 (December 25, 2015)のSource Codeをクリックすると自動でダウンロードが始まる。

6. SPTK … 音声信号処理を行うツールキット

https://sourceforge.net/projects/sp-tk/files/SPTK/SPTK-3.9/を開き、SPTK-3.9.tar.gzをクリックしてダウンロード。

7. ActiveTcl … スクリプト言語Tcl関係

参考サイトではバージョンを8.5.以降ではできないと書いてあるが、8.4以前がどう探してもダウンロードできなかったため、試しに以下のサイトから比較的新しいもの(8.6.4.1)を入れてみたところ問題なく動いた。…というか使用していない(?)

https://sourceforge.net/projects/wz-mle/files/Linux%20Tools/ActiveTcl8.6.4.1.299124-linux-x86_64-threaded.tar.gz/download?use_mirror=master&r=https%3A%2F%2Fwww.google.com%2F&use_mirror=master

8. HTS-demo_NIT-ATR503-M001 … 音響モデル作成のためのアプリ本体だが、話者適応ではサブ役

再び http://hts.sp.nitech.ac.jp/?Download を開き、HTS2.3の・Speaker dependent training demoにある、Japaneseをダウンロード。tar.bz2というところをクリックする。

9. segment_atr503_windows-v1.0およびsegment_adapt_windows-v1.0 … 音素ラベリングに使用

http://akihiro0105.blog55.fc2.com/blog-entry-84.htmlにアクセスして、segment_atr503_windows-v1.0とsegment_adapt_windows-v1.0のそれぞれに貼られたリンク先からダウンロード。

10. HTS-demo_CMU-ARCTIC-ADAPT(新規追加) … 音響モデル作成のためのアプリ本体

再び http://hts.sp.nitech.ac.jp/?Download を開き、HTS2.3の・Speaker adaptation/adaptive training demoにある、Englishをダウンロード。tar.bz2というところをクリックする。

11. Festival(新規追加) … 多言語対応の音声合成ソフト

http://www.cstr.ed.ac.uk/downloads/festival/2.1/を開き、「ANNOUNCE-2.1」以外全部をダウンロードする

申し訳ありません、上のバージョンは現在では使えないみたいです…
訂正版:http://festvox.org/packed/festival/2.5/を開き、一番上と一番下を除く5つをダウンロードする。

さらに、http://www.cstr.ed.ac.uk/downloads/festival/2.1/で「festvox_…」で始まる5つのファイルをダウンロードする。

  

<インストール>

1. ディレクトリ作成

Homeディレクトリに”HTS”というフォルダを作成し、その中に”prog”というフォルダを作成しました。

2. 展開

それぞれを”HTS”フォルダ内に展開する。すると、上から順に、
htk、htk(2)←HTKとかぶっている、HTS-2.3_for_HTK-3.4.1、hts_engine_API-1.10、SPTK−3.9、ActiveTcl8.6.4.1.299124-linux-x86_64-threaded、HTS-demo_NIT-ATR503-M001、segment_atr503_windows-v1.0、segment_adapt_windows-v1.0、HTS-demo_CMU-ARCTIC-ADAPT(新規追加)、festival(新規追加)(festlex_…やfestvox_…もすべてfestivalの名前になるので、マージしてください)、speech_tools(新規追加)
という名前になります。

3. HTKとHDecodeのマージ

”htk(2)”フォルダをクリックし、その中の”HTKLVRec”というフォルダをコピーし、”HTS”フォルダ内に戻って、”htk”フォルダの上でペーストする。すると、「マージしますか?」と聞かれるので、「マージする」を選択。さらに”Makefile.in”を置き換えるかと聞かれるので、「置き換える」を選択します。

4. HTKにHTS-2.3_for_HTK-3.4.1.patchを適用

”HTS-2.3_for_HTK-3.4.1”フォルダをクリックし、その中の”HTS-2.3_for_HTK-3.4.1.patch”というファイルをコピー。”HTS”フォルダ内に戻って、”htk”フォルダの上でペーストする。次に、”htk/HTKLib/esignal.h” を開いて、以下の1行を一番上の行に追加して保存します。

#define ARCH 0

5. htkのインストール

端末を開き、以下のコマンドを実行。

~$cd HTS/htk
~/HTS/htk $ patch -p1 -d . < HTS-2.3_for_HTK-3.4.1.patch
~/HTS/htk $ ./configure --prefix=$HOME/HTS/prog/htk/
~/HTS/htk $ make
~/HTS/htk $ make install

6. hts_engine_APIのインストール

端末を開き、以下のコマンドを実行。

~$cd HTS/hts_engine_API-1.10
~/HTS/hts_engine_API-1.10 $ ./configure --prefix=$HOME/HTS/prog/hts_engine_API/
~/HTS/hts_engine_API-1.10 $ make
~/HTS/hts_engine_API-1.10 $ make install

7. SPTKのインストール

端末を開き、以下のコマンドを実行。

~$cd HTS/SPTK-3.9
~/HTS/SPTK-3.9 $ ./configure --prefix=$HOME/HTS/prog/SPTK/
~/HTS/SPTK-3.9 $ make
~/HTS/SPTK-3.9 $ make install

8. ActiveTclのインストール

”prog”フォルダの中に、”ActiveTcl”という名前のフォルダを作成。その後、端末を開き以下のコマンドを実行。ActiveTclのバージョンは適宜読み替えてください。

~$cd HTS/ActiveTcl8.6.4.1.299124-linux-x86_64-threaded
~/HTS/ActiveTcl8.6.4.1.299124-linux-x86_64-threaded $ sh install.sh

その後インストーラに従って進める。「Please specify the installation directory」のところで、先程つくったActiveTclディレクトリ(/home/user/HTS/prog/ActiveTcl)を指定する。あとはそのままNextで進めてOKです。

9. Festivalのインストール

”HTS”フォルダの中に、”festival”というフォルダを作成し、その中に展開した”festival”フォルダと”speech_tools”フォルダを入れました。追記:festivalは、ダウンロードしたspeech_tools以外の9つを「festival」の名の下に統合(まあ普通に合体させるだけです)してください。端末を開き、それぞれのフォルダのディレクトリに移動してから、configureとmake、make installを行います。makeまででも大丈夫ではあるそうです。先に「speech_tools」の方をmakeしてください。そうしないと「festival」がいれられないようです。参考までにコマンドをのせておきます。

~$ cd HTS/festival/speech_tools
~/HTS/festival/speech_tools $ ./configure
~/HTS/festival/speech_tools $ make
~/HTS/festival/speech_tools $ make install

~$ cd HTS/festival/festival
~/HTS/festival/festival $ ./configure
~/HTS/festival/festival $ make
~/HTS/festival/festival $ make install

  

これで、一通りのインストール作業は完了です。お疲れ様でした。