まほろば

音響モデルを自作する7(パラメータ調整)




.

音響モデルを自作する7(パラメータ調整)

投稿者:管理人  2016年9月13日 【記事印刷】

 音響モデルをより聴きやすいものにするために、警告メッセージへの対処とパラメータの調整を試みました。

●ログファイルから警告を抜き出す

 サイズの大きなファイル log から警告を探すのは大変ですので、grep コマンドで検索します。
(1)以下の様な、スクリプトファイル”warning.sh” を、log のあるフォルダに作成する。

#! /bin/sh
grep "aborted at" -i log | nl | more
grep "reaching max" -i log | nl | more
grep warning -i log | nl | more
grep "Retrying Beta pass" -i log | nl | more
grep -e error -e cannot -e unstable -i log | more

(2) ”warning.sh” で右クリックして[プロパティ]を選択して、[アクセス権]タブをクリックして、
  ■プログラムとして実行可能
にチェックを入れる。
(3)端末を開いて、”./warning.sh” を実行する。

●警告と対処法

◆WARNING [-9999]
=========================================
Start forced alignment at XXXXX
=========================================
WARNING [-9999] HSMMAlign: No tokens survived to final node of network at beam XXX in /home/masa/HTS/prog/htk/bin/HSMMAlign

=========================================
Start synthesizing waveforms (2mix) at XXXXX
=========================================
Making data, labels, and scp from XXX.lab for GV...Cannot open No such file or directory at scripts/Training.pl line XXXX, <SCP> line XX

(対処) [hts-users:04164] Re: Error during making global variance step より、
The default beam width of HTS demo described in scripts/Config.pm is
"1500 100 5000".
Could you increase it to "3000 200 10000" ?
⇒ scripts/Config.pm を編集する。
$beam = '3000 200 20000';
  # initial(初期値), inc(増分値), and upper limit(上限値) of beam width

◆over the range of type 'short
=========================================
Start synthesizing waveforms (2mix) at XXXXX
=========================================
x2x : warning: input data is over the range of type 'short

(対処)[hts-users:03313] Re: input data is over the range of type 'short'! より、
It seems that synthesized speech (16bit) was over-flowed.
Could you turn down the volume of training data?
⇒ 学習用音声ファイルの音量を下げる。

◆Estimation aborted
=========================================
Start initialization & reestimation at XXXXX
=========================================
Estimation aborted at iteration XX

(対処) MAXEMITER=40 (デフォルトは 20)と指定 しても、変わらない。
 ”HTS-demo_NIT-ATR503-M001” の実行時にも出ているので、そのまま。

◆reaching max #
=========================================
Start training modulation spectrum-based postfilter at XXXXX
=========================================
Optimization stopped by reaching max # of iterations

(対処) MAXGVITER=100 (デフォルト 50) と指定しても、あまり減らない。
 ”HTS-demo_NIT-ATR503-M001” の実行時にも出ているので、そのまま。

◆WARNING [-2638]
=========================================
Start tree-based context clustering at XXXXX
=========================================
WARNING [-2638] TypicalState: No typical state for dur_s2_XXX

(対処) [hts-users:01228] Re: WARNINGs より、
Just ignore these warnings, they have no meanings in HTS.
⇒ 何もしない。

◆WARNING [-2637]
=========================================
Start increasing the number of mixture components (1mix -> 2mix) at XXXXXX
=========================================
MU +1 {}
Mixup by 1 components per stream
WARNING [-2637] HeaviestMix: mix 1 in .xx^sil-sh+I= ・・・・ has v.small gConst [-790.736694] in /home/masa/HTS/prog/htk/bin/HHEd

(対処)http://hts.sp.nitech.ac.jp/hts-users/spool/2009/msg00165.html より、
Looks like your label files are not a good match to the corresponding waveforms in some cases. So,check that first: listen to a random sample of waveforms and check that the label files match (e.g., did the speaker read the sentence correctly).
⇒ ラベルファイルをチェックする。

◆Cannot open source file
=========================================
Start making global variance at XXXXXX
=========================================
ERROR [+5010] InitSource: Cannot open source file xx^xx-sil+y=a/A:xx+xx+xx/B:xx-xx_x・・・
ERROR [+7010] LoadHMMSet: Can't find file
ERROR [+2321] Initialise: LoadHMMSet failed
FATAL ERROR - Terminating program /home/XXXX/HTS/prog/htk/bin/HERest

(対処) [hts-users:00317] Re: model training error より、
This error means that this model is listed in the full.list but not included in the mmf file.
このエラーは、このモデルがfull.listに記載されているが、MMFファイルに含まれていないことを意味します。
⇒ ????

●警告の意味を調べるには

 警告メッセージに対する唯一と言っていい情報源が HTS-Users Mailing List Archive ですが、Webページの検索機能が動かないようなので、英語指定のGoogle検索で、以下のように入力して検索します。例えば、over the range というメッセージについて調べたかったら、

"over the range" site:http://hts.sp.nitech.ac.jp/hts-users

あるいは、ここをクリック

●準備

 学習用音声ファイルの作成は、Windows環境でやっているので、Windows版の SoX(音声処理ツール、Sound eXchange ) をインストールします。
(1)Windows版のSoX を開いて、sox-14.4.2-win32.exe をダウンロードする。
(2)ダウンロードしたファイルを実行し、[Next] [Install] [Close] をクリックする。通常は、フォルダ”C:\Program Files (x86)\sox-14-4-2”にインストールされる。
(3)コマンドプロンプトから実行するには、環境変数 Path にインストールしたフォルダを追加する必要がある。 以下のサイトを参考にしてください。
(4)WindowsキーとRキーを同時に押して、名前に”cmd”と入力するとマンドプロンプト(背景が黒色のテキスト画面)が起動する。ここで”sox”と入力すると、 SoX のヘルプ情報が表示されることを確認する。
 もし, 「'sox' は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。」と表示されたなら、環境変数Path の設定を見なおしてください。

●音声ファイルを加工する

 あるフォルダに入っているwavファイルの全てを、一括して SoX で加工して、別のフォルダに保存する例を紹介します。
(1)wav ファイルの入っているフォルダとは同じ階層に、新しいフォルダ(ここでは female07)を作成する。
(2)以下の内容のバッチファイル(拡張子 .bat)を作成してwavファイルのあるフォルダに保存し、実行する。

for %%f in (*.wav) do (
sox %%f ..\female07\%%f gain -3 bass 6 200 pitch 200 tempo 0.95
if ERRORLEVEL 1 pause
)

オプションの意味は、
gain -3 : 音量を3dB 下げる。(bass で強調するときは bass よりも前、減衰するときは後)
bass 6 200 : 音声周波数の低域を増強させる。中心周波数が200Hz、0Hzで +6dB。
pitch 200 : 声を2音高くする。
tempo 0.95 : 速度を5%落とす

他のエフェクトについては、以下のページを参照ください、
  音声処理ツール SoX — Sound eXchange の各種マニュアルページの日本語訳

●音量を確認する

(1) ”sox ファイル名 -n stat -v ” を実行すると、音量調整値が出力される。音量が小さければ大きな値、音量が大きければ小さな値を示す。
(2)フォルダ内の全てのwav ファイルの音量調整値を調査するには、以下の内容のバッチファイル(拡張子 .bat)を作成する。

@echo off
del 0000.dat 2> nul
for %%f in (*.wav) do (
sox %%f -n stat -v 2>> 0000.dat
if ERRORLEVEL 1 pause
)

(3)実行すると、十数秒間黒い画面が表示され、それが消えると、ファイル 0000.dat が作成されている。
(4)”HTS-demo_NIT-ATR503-M001” にある RAWファイルの音量調整値を調べると、2.2~3.5 (平均 2.86) だったので、それを目安にして、音量を調整するとよい。

●音声を見る

 SoXを使って、加工した音声の音量調整値の表示と、スペクトログラム(声紋分析みたいな図)を作成します。
(1) 以下の内容のバッチファイル(拡張子 .bat)を作成する。

@echo off
sox %1 -n rate 4k norm -1 spectrogram -x 400 -y 300 -z 100
if ERRORLEVEL 1 pause
del %~n1.png
ren spectrogram.png %~n1.png
pause

(2)wavファイルを、作成したバッチファイルに ドラッグ&ドロップする。
(3)wavファイルと同じ名前の png ファイルが作成されるので、それを開くと縦軸:周波数、横軸:時間 の図が表示される。どの周波数を強調(減衰)させるかを判断するヒントになるかも。

●パラメータ変更

 ”HTS-demo_NIT-ATR503-M001\INSTALL” などを参考にして、学習時のパラメーターも変更してみました。

./cfg VER=2 FREQWARP=0.42
./cfg VER=3 MGCORDER=12 GAMMA=1 FREQWARP=0.55 LNGAIN=1
./cfg VER=4 DAEM=1 DAEMNITER=20


●試行錯誤の末



◆連載

◆関連記事

  このエントリーをはてなブックマークに追加
.
△ 先頭へ