[音声認識] matlabVQ特定の人物の孤立した単語の音声認識に基づく[Matlabソースコード536を含む]

1.はじめに

VQ(Vector Quantization)は、一般的に使用される圧縮技術です。この記事では、主に次のことを確認します。

1)VQの原則

2)VQベースの話者認識(SR、話者認識)技術
️。分類問題

話者認識は実際には分類の問題です。
ここに画像の説明を挿入します
話者認識技術には主に次の方法が含まれます。

テンプレートマッチング方法
これらの方法は比較的成熟しており、主な原則は、特徴抽出、テンプレートトレーニング、およびマッチングです。典型的なものは次のとおりです。動的タイムワーピングDTW、ベクトル量子化VQなど。

DTWは動的計画法のアイデアを使用していますが、欠点もあります:1)VADテクノロジーへの依存度が高すぎる; 2)音声のタイミング動的特性を十分に活用していないため、それがHMMに置き換えられました。

VQアルゴリズムは、データ圧縮の方法です。コードブックの履歴書とコードワードの検索は2つの基本的な問題です。コードブックの履歴書は、多数の信号サンプルからより優れたコードブックをトレーニングすることです。コードワードの検索は、入力に最適なコードワードを見つけることです。明らかな違いのあるシステムとサウンドの方が適しています。

統計モデルに基づく分類方法。
このタイプの方法の性質は、依然としてパターン認識システムです。特徴を抽出し、分類器をトレーニングし、最後に意思決定を分類する必要があります。一般的なフレームワーク:
ここに画像の説明を挿入します
一般的に使用されるモデルは、GMM、HMMです。 、SVM、ANN、DNNまたはさまざまなジョイントモデルなど。

GMMの基本フレームワーク:
ここに画像の説明を挿入します
GMM-UBM(ユニバーサルバックグラウンドモデル)アルゴリズムに似ています。GMMとの違いは、GMMのようにクラスごとにGMMモデルをトレーニングするのではなく、Lクラスのサンプル全体で大きなGMMをトレーニングすることです。SVMの場合、MFCCが機能として使用され、各フレームがサンプルとして使用されます。VADを使用して、無効なオーディオセグメントを削除し、分類を直接トレーニングできます。近年、スパース式を使用する方法もあります
ここに画像の説明を挿入します
。2原理
ベクトル量子化この技術は、信号処理やデータ圧縮などの分野で広く使用されています。実際、JPEGやMPEG-4などのマルチメディア圧縮形式にはVQステップがあります。

ベクトル量子化という名前は少し不思議に聞こえますが、実際にはそれほど洗練されていません。アナログ信号は連続値であり、コンピューターは離散デジタル信号しか処理できないことを誰もが知っています。アナログ信号をデジタル信号に変換する場合、間隔を特定の値に置き換えることができます。たとえば、[0のすべての値、 1)0になり、[1、2)のすべての値が1になります。これはVQプロセスです。より正式な定義は次のとおりです。VQは、ベクトル空間内の点をその有限サブセットでエンコードするプロセスです。

典型的な例は、画像のエンコードです。最も単純なケースでは、グレースケール画像を考えてみましょう。0は黒、1は白で、各ピクセルの値は[0、1]の実数です。これを256レベルのグレースケール画像としてエンコードするための最も簡単な方法の1つは、各ピクセル値xを整数floor(x 255)にマップすることです。もちろん、元のデータ空間は必ずしも連続している必要はありません。たとえば、この画像を圧縮する場合、各ピクセルは(元の8ビットではなく)4ビットのみを使用して保存します。したがって、元の[0]の整数値には[0、15]を使用する必要があります。 、255]間隔。]エンコードする整数値では、単純なマッピングスキームはx15 / 255です。

ただし、このマッピングスキームは非常に単純で、圧縮効果を実現するために色の数を減らすことができますが、元の色が均等に分散されていないと、結果の画像の品質があまり良くない場合があります。たとえば、256レベルのグレースケール画像が0と13の2色で完全に構成されている場合、両方の色がすべて0にマッピングされるため、上記のマッピングによって完全に黒の画像が取得されます。より良いアプローチは、クラスタリングを組み合わせて代表的なポイントを選択することです。

実際の方法は、各ピクセルをデータの一部として扱い、K-meansを実行してk個の重心を取得し、これらの重心のピクセル値を使用して、対応するクラスター内のすべてのポイントのピクセル値を置き換えます。カラー画像の場合も同じ方法が使用できます。たとえば、RGB 3色画像では、各ピクセルは3次元ベクトル空間内の点と見なされます。

第二に、ソースコード

17 / 18
% Demo script that generates all graphics in the report and demonstrates our results.
[s6 fs6] = wavread('s6.wav');
[s1 fs1] = wavread('s1.wav');
%Question 2
disp('> Question 2:画出原始语音波形');
t = 0:1/fs1:(length(s1) - 1)/fs1;
plot(t, s1), axis([0, (length(s1) - 1)/fs1 -0.4 0.5]);
title('原始语音s1的波形');
xlabel('时间/s');
ylabel('幅度')
pause 
close all
%Question 3 (linear)
disp('> Question 3: 画出线性谱');
M = 100;%当前帧数
N = 256;%帧长
frames = blockFrames(s1, fs1, M, N);%分帧
t = N / 2;
tm = length(s1) / fs1;
subplot(121);
imagesc([0 tm], [0 fs1/2], abs(frames(1:t, :)).^2), axis xy;
title('能量谱(M = 100, N = 256)');
xlabel('时间/s');
ylabel('频率/Hz');
colorbar;
%Question 3 (logarithmic)
disp('> Question 3: 画出对数谱');
subplot(122);
imagesc([0 tm], [0 fs1/2], 20 * log10(abs(frames(1:t, :)).^2)), axis xy;
title('对数能量谱(M = 100, N = 256)');
xlabel('时间/s');
ylabel('频率/Hz');
colorbar;
D=get(gcf,'Position');
set(gcf,'Position',round([D(1)*.5 D(2)*.5 D(3)*2 D(4)*1.3]))
pause
close all
%Question 4
disp('> Question 4: 画出不同帧长语谱图');
lN = [128 256 512];
u=220;
for i = 1:length(lN)
    N = lN(i);
    M = round(N / 3);
    frames = blockFrames(s1, fs1, M, N);
    t = N / 2;
    temp = size(frames);
    nbframes = temp(2);
    u=u+1;
    subplot(u)
    imagesc([0 tm], [0 fs1/2], 20 * log10(abs(frames(1:t, :)).^2)), axis xy;
    title(sprintf('能量对数谱(第 = %i帧, 帧长 = %i, 帧数 = %i)', M, N, nbframes));
    xlabel('时间/s');
    ylabel('频率/Hz');
    colorbar
end
D=get(gcf,'Position');
set(gcf,'Position',round([D(1)*.5 D(2)*.5 D(3)*1.5 D(4)*1.5]))
pause
close all
%Question 5
disp('> Question 5: Mel空间');
plot(linspace(0, (fs1/2), 129), (melfb(20, 256, fs1))');
title('Mel滤波');
xlabel('频率/Hz');
pause
close all
%Question 6
disp('> Question 6: 修正谱');
M = 100;
N = 256;
frames = blockFrames(s1, fs1, M, N);
n2 = 1 + floor(N / 2);
m = melfb(20, N, fs1);
z = m * abs(frames(1:n2, :)).^2;
t = N / 2;
tm = length(s1) / fs1;
subplot(121)
imagesc([0 tm], [0 fs1/2], abs(frames(1:n2, :)).^2), axis xy;
title('原始能量谱');
xlabel('时间/s');
ylabel('频率/Hz');
colorbar;
subplot(122)
imagesc([0 tm], [0 20], z), axis xy;
title('通过mel倒谱修正后的能量谱');
xlabel('时间/s');
ylabel('滤波器数目');
colorbar;
D=get(gcf,'Position');
set(gcf,'Position',[0 D(2) D(3)*2 D(4)])
pause
close all
%Question 7
disp('> Question 7: 2D plot of accustic vectors');
c1 = mfcc(s1, fs1);
c2 = mfcc(s2, fs2);
plot(c1(5, :), c1(6, :), 'or');
hold on;
plot(c2(5, :), c2(6, :), 'xb');
xlabel('5th Dimension');
ylabel('6th Dimension');
legend('说话人1', '说话人2');
title('2D plot of accoustic vectors');
pause
close all
%Question 8
disp('> Question 8: 画出已训练好的VQ码本')
d1 = vqlbg(c1,16);
d2 = vqlbg(c2,16);
plot(c1(5, :), c1(6, :), 'xr')
hold on

3、実行中の結果

ここに画像の説明を挿入します

四、備考

完全なコードまたは書き込み追加QQ1564658423過去のレビュー
>>>>>>
[機能の抽出] matlabウェーブレット変換に基づくオーディオ透かしの埋め込みと抽出[Matlabソースコード053を含む]
[音声処理] matlabGUIに基づく音声信号処理[Matlabを含むソースコードの問題290]
[音声取得] matlabGUI音声信号収集に基づく[Matlabソースコード291を含む]
[音声変調] matlabGUI音声振幅変調に基づく[Matlabソースコード292を含む]
[音声合成] matlabGUI音声に基づく合成[Matlabソースコードの問題293を含む]
[音声暗号化] matlabGUI音声信号の暗号化と復号化に基づく[Matlabソースコード295を含む]
[音声拡張] Matlabウェーブレット変換ベースの音声拡張[Matlabソースコード296]
[音声認識] matlabGUI音声ベース周波数認識に基づく[Matlabソースコード294を含む]
[音声拡張] Matlab GUIWienerフィルタリングベースの音声拡張[Matlabソースコード298を含む]
[音声処理] matlabGUI音声信号処理に基づく[Matlabソースコード299を含む]
[信号処理] Matlab音声信号スペクトルアナライザーに基づく[Matlabソースコード325を含む]
[変調信号] matlabGUIに基づくデジタル変調信号シミュレーション[Matlabソースコード336を含む]
[感情認識] matlabBPニューラルに基づく音声感情認識ネットワーク[Matlabソースコード349の​​問題を含む]
[音声ステガノグラフィー] Matlabウェーブレット変換に基づく定量化されたオーディオデジタルウォーターマーキング[Matlabソースコードの問題351を含む]
[特徴抽出] matlabオーディオ透かしの埋め込みと抽出に基づく[Matlabソースコード350期間を含む]
[音声ノイズ除去] matlabローパスと適応フィルターノイズ除去に基づく[Matlabソースコード352期間を含む]
[感情認識] matlabGUI音声に基づく感情分類認識[Matlabソースコード354期間を含む]
[基本処理] Matlabベースの音声信号前処理[Matlabソースコード364期間を含む]
[音声認識] Matlabフーリエ変換0-9デジタル音声認識[Matlabソースコード384期間を含む]
[音声認識] 0-9 matlab GUIDTWに基づくデジタル音声認識[Matlabソースコード385を含む]
[音声再生] Matlab GUIMP3設計[Matlabソースコード425を含む]
[音声処理]人間の耳のマスキング効果に基づく音声強調アルゴリズムノイズ比の計算[Matlabソースコード428を含む]
[音声ノイズ除去] matlabスペクトル減算ノイズ除去に基づく[Matlabソースコード429を含む]
[音声認識] matlabの運動量項目に基づくBPニューラルネットワーク音声認識[Matlabソースコード430を含む]
[音声ステガノグラフィ] matlabLSB音声隠蔽に基づく[Matlabソースコード431を含む]
[音声認識] matlabの男性と女性の音声認識に基づく[Matlabソースコード452を含む]
[音声処理] matlab音声ノイズの追加とノイズリダクション処理に基づく[MatlabソースコードIssue473を含む]
[音声ノイズ除去] matlab最小二乗(LMS)適応フィルターに基づく[ Matlabソースコード481を含む]
[音声強調] matlabスペクトル減算、最小平均二乗、およびWienerフィルター音声強調に基づく[Matlabを含むソースコード482期間】
[通信] matlab GUIデジタル周波数帯域(ASK、PSK、QAM)変調シミュレーションに
基づく[ Matlabソースコード483を含む] [信号処理] matlabECG信号処理に基づく[Matlabソースコード484を含む]
[音声ブロードキャスト] matlabに基づく音声ブロードキャスト[Matlabソースコード507を含む]
[信号処理] EEG信号特徴抽出に基づくMatlabウェーブレット変換[Matlabソースコード511を含む]
[音声処理] matlab GUIデュアルトーンマルチ周波数(DTMF)信号検出に基づく[Matlabを含むソースコード512】
【音声ステガノグラフィ】音声信号のデジタル透かしを実現するmatlabLSBに基づく【Matlabソースコード513を含む】
【音声強調】matlab整合フィルターに基づく音声認識【Matlabソースコード514を含む】
【音声処理】ベースmatlabGUI音声周波数ドメインスペクトログラム分析[Matlabソースコード527を含む]
[音声ノイズ除去] matlab LMSに基づく、RLSアルゴリズム音声ノイズ除去[Matlabソースコード528を含む]
[音声ノイズ除去] matlabLMSスペクトル減算音声ノイズ除去[Matlabを含むソースコードの問題529]
[音声ノイズ除去] matlabソフトしきい値、ハードしきい値、妥協しきい値に基づく音声ノイズ除去[Matlabソースコード530を含む]
[音声認識] matlab特定の人の音声認識識別に基づく[Matlabソースコード534を含む]
[音声[ノイズ除去] matlabウェーブレットソフトしきい値音声ノイズリダクションに
基づく[ Matlabソースコード531を含む] [音声ノイズ除去] matlabウェーブレットハードしきい値音声ノイズリダクションに基づく[ Matlabソースコード532を含む]
[音声認識] matlabMFCCおよびSVM固有のヒューマンに基づく性別認識[Matlabソースコード533を含む]
[音声認識] MFCCに基づくGMM音声認識[Matlabソースコード535期間を含む]

おすすめ

転載: blog.csdn.net/TIQCmatlab/article/details/114877155