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

Ubuntu18.04にて、HTSを使って話者依存の音響モデル(.htsvoice)を作るシリーズの第1回です。合成された音響モデルはHTSvoiceというファイル形式になり、OpenJtalkやSHABERUといったフリーソフトで好きなセリフを喋らせることができます。
こちらのサイトを大いに参考にさせていただきました。

http://mahoro-ba.net/e1876.html

  

1. Ubuntu18.04セットアップ

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

$ sudo apt install patch
$ sudo apt install csh
$ sudo apt install gawk

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

“Synaptic Package Manager”をインストール。
その後Synaptic Package Managerを開いて、libX11-devとsoxとjuliusをインストール。これらはaptでも取得可能です。

  

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のそれぞれに貼られたリンク先からダウンロード。

  

<インストール>

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
という名前になります。

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です。

  

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