14.5.7 MSLS+$\Delta $MSLS+$\Delta $Power+前処理

14.5.7 に実行例を示す. 実行後,MFBANK27p_0.spec というファイルが生成される. このファイルは,リトルエンディアン,32 ビット浮動小数点数形式で表された 27 次元ベクトル列を格納している. うまく特徴抽出できないときは,data ディレクトリに f101b001.wav ファイル があるかチェックしよう.

> ./demo.sh 6
 UINodeRepository::Scan()
 Scanning def /usr/lib/flowdesigner/toolbox
 done loading def files
 loading XML document from memory
 done!
 Building network : MAIN
Figure 14.31: 実行例

本サンプルに含まれるモジュールは,17 個である. MAIN (subnet) に 3 個 MAIN_LOOP (iterator) に 14 個のモジュールがある. MAIN (subnet) と MAIN_LOOP (iterator) を 図 14.31,14.32 に示す. 処理の概要は,AudioStreamFromWave モジュールで取り込んだ音声波形を MSLSExtraction で音響特徴量を計算し,SaveFeatures でファイルに書き出す 単純なネットワーク構成である. プリエンファシスは,時間領域でかけるため,音声波形をMultiFFT で 分析した後,MatrixToMap による型変換を経て一旦 Synthesize によって 信号波形を合成している.合成波形に PreEmphasis でプリエンファシス をかけ,改めて MultiFFT で分析し, PowerCalcForMap による型変換を 経て,MSLSExtraction に送られている. MSLSExtraction は, MSLS の計算にメルフィルタバンクの出力と パワースペクトルを必要とするため,MultiFFT によって分析され, PowerCalcForMap によってデータ型を変換した後に MelFilterBank により メルフィルタバンクの出力を求める処理が入っている. MSLSExtraction は, MSLS 係数の他に $\delta $ 係数の格納領域をリザーブし,ベクトルを特徴量 として出力する($\delta $ 係数の格納領域には 0 が入れられている). ここでは MSLSExtraction の USE_POWER プロパティを trueにしているので, $\delta $ 係数は, $\delta $ MSLS とデルタパワー項を含む. MSLSExtraction の FBANK_COUNT プロパティで指定した値+1 次元の 2 倍の次元数のベクトルを特徴量として出力する. 平均除去処理を行う SpectralMeanNormalization を経て Delta により, $\delta $ MSLS 係数とデルタパワー項が計算され格納される. 必要な係数は MSLS 係数と $\delta $ MSLS 係数とデルタパワー項であるため,不要な パワー項を削除する必要がある.削除には FeatureRemover を用いている. SaveFeatures は,入力 FEATURE を保存する.入力 SOURCES には ConstantLocalization で生成した正面方向の定位を与える.

\includegraphics{fig/recipes/demo-FeatureExtraction6-MAIN}
Figure 14.32: MAIN (subnet)
\includegraphics[width=\linewidth ]{fig/recipes/demo-FeatureExtraction6-MAIN_LOOP}
Figure 14.33: MAIN_LOOP (iterator)

14.19 にネットワークのパラメータの設定値を まとめる. 重要なモジュールは,PreEmphasis と MSLSExtraction , SpectralMeanNormalization , Delta , FeatureRemover である. 詳細は HARKドキュメントを参照.

Table 14.20: パラメータ表

ノード名

パラメータ名

Constant 

VALUE

subnet_param 

int :ARG1

MAIN_LOOP

LENGTH

subnet_param 

int :ARG2

 

ADVANCE

subnet_param 

int :ARG3

 

SAMPLING_RATE

subnet_param 

int :ARG4

 

FBANK_COUNT

subnet_param 

int :ARG5

 

FBANK_COUNT1

subnet_param 

int :ARG6

 

DOWHILE

bool 

(空欄)

PreEmphasis 

LENGTH

subnet_param 

LENGTH

 

SAMPLING_RATE

subnet_param 

SAMPLING_RATE

 

PREEMCOEFF

float 

0.97

 

INPUT_TYPE

string 

WAV

MSLSExtraction 

FBANK_COUNT

subnet_param 

FBANK_COUNT

 

NORMALIZE_MODE

string 

Cepstral

 

USE_POWER

bool 

true

SpectralMeanNormalization 

FBANK_COUNT1

subnet_param 

FBANK_COUNT1

Delta 

FBANK_COUNT1

subnet_param 

FBANK_COUNT1

FeatureRemover 

SELECTOR

Object 

<Vector<float> 13>