2

GMM を計算するために、voicebox MATLAB ツールに gaussmix 関数を適用しました。ただし、512 GMM コンポーネントに対してコードを実行すると、エラーが発生します。

No_of_Clusters = 512;
No_of_Iterations = 10;
[m_ubm1,v_ubm1,w_ubm1]=gaussmix(feature,[],No_of_Iterations,No_of_Clusters);

Error using  * 
Inner matrix dimensions must agree.

Error in gaussmix (line 256)
pk=px*wt;                       % pk(k,1) effective number of data points for each mixture (could be    zero due to underflow)

ユニバーサル バックグラウンド モデル (UBM) を構築するには、1024 または 2048 の混合物が必要です。512 や 2048 などの多数の混合物の GMM を計算するための matlab コードを誰かに教えてもらえますか?

ありがとう。

4

1 に答える 1

6

音声処理に使用しますか? はいの場合、最善の方法は MSR Identity Toolkit を使用することです。このツールキットは、Microsoft Researcher の Omid Sadjadi 博士によって作成されました。彼は私に使い方を教えてくれました.(ボイスボックスも必要です.) 以下は、wav ファイルの音声ファイルから MFCC を抽出するために使用できるコード スニペットの例です (16 kHz のサンプル レートを想定)。

addpath('path_to_voicebox');
addpath('path_to_identity_toolbox');
[s, fs] = wavread(speechFilename);
fL = 100.0/fs; 
fH = 8000.0/fs; 
fRate = 0.010 * fs; 
fSize = 0.025 * fs; 
nChan = 27; 
nCeps = 12; 
premcoef = 0.97;
s = rm_dc_n_dither(s, fs); 
s = filter([1 -premcoef], 1, s); 
mfc = melcepst(s, fs, '0dD', nCeps, nChan, fSize, fRate, fL, fH);
mfc = cmvn(mfc', true);
writehtk(featureFilename, mfc', 100000, 9);

上記のコードは、事前に強調された音声信号から 39 次元の MFCC を抽出し、平均と分散によって特徴を正規化し、最後にそれらを HTK 形式でディスクに書き込みます。これは単なるコード例であり、ニーズ/リソースに基づいてこのコードを変更できることに注意してください。「rm_dc_n_dither」と「cmvn」の 2 つの関数は、Identity Toolbox からのものです。Voicebox と Identity Toolbox の両方が MatLab パスにある必要があります (上記のコードの最初の 2 行を参照)。音声アクティビティ検出 (VAD) の場合、10 ミリ秒のフレーム スキップ レートでフレーム レベルの決定 (無音の場合は 0、発話の場合は 1) を出力する Voicebox の「vadsohn」関数を使用できます。

データベースから特徴を抽出したら、Identity Toolbox で提供される gmm_ubm_demo の手順に従って、UBM モデルをトレーニングできます。

TIMIT でデモ結果を複製したい場合は、次のアドレスからリスト ファイル (ツールボックスには含まれていません) をダウンロードできます。

http://www.utdallas.edu/~sadjadi/lists.tar.gz

非常に簡単で、通常の PC で実行できます。

よろしく モハマド・カラミネジャド karaminejad@gmail.com

于 2014-03-10T18:18:16.973 に答える