基于MFCC系数的欧氏距离测量
生活随笔
收集整理的這篇文章主要介紹了
基于MFCC系数的欧氏距离测量
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
基于MFCC系數的距離測量
所需項目文件以及語料我放在了自己的github上了:基于MFCC系數的距離測量
1 簡介
1.1 本地文檔簡介
- 語料:包含本次實驗所需要的語料
- Code:包含了本次實驗的matlab代碼
- pr3_3_2.m 主程序,計算兩個語音之間的匹配比較
- mfcc_m.m 計算語音的MFCC特征
- mel_dist.m Mel距離,基于歐氏距離
- mfccDate.mat 提取的MFCC數據,24維
- photo 實驗結果截圖
1.2 距離度量簡介
距離度量(Distance)用于衡量個體在空間上存在的距離,距離越遠說明個體間的差異越大。歐氏距離是最常見的距離度量,衡量的是多維空間中各個點之間的絕對距離。公式如下:dist?(X,Y)=∑i=1n(xi?yi)2\operatorname{dist}(X, Y)=\sqrt{\sum_{i=1}^{n}\left(x_{i}-y_{i}\right)^{2}} dist(X,Y)=i=1∑n?(xi??yi?)2?
因為計算是基于各維度特征的絕對數值,所以歐氏度量需要保證各維度指標在相同的刻度級別,比如對身高(cm)和體重(kg)兩個單位不同的指標使用歐式距離可能使結果失效。
2 同一個樣本不同人發音(字)
2.1 語料介紹
語音是“唐”字的發音,由兩個人發音組成,為了實驗方便,將兩個語音長度統一,采樣率為44100Hz。2.2 matlab代碼
% % pr3_3_2 clear all; clc; close all;%[x1,fs]=audioread('D:\Desktop\學習匯報\語料\元音\i1.wav'); % 讀入信號s1-\i1\ %x2=audioread('D:\Desktop\學習匯報\語料\元音\i2.wav'); % 讀入信號s2-\i2\ [x1,fs]=audioread('D:\Desktop\學習匯報\語料\同一個樣本不同人發音\tang01.wav'); x2=audioread('D:\Desktop\學習匯報\語料\同一個樣本不同人發音\tang02.wav'); x3=audioread('D:\Desktop\學習匯報\語料\元音\a1.wav'); % 讀入信號a1-\a1\ wlen=1479;%200 % 幀長 inc=626; %80 % 幀移 x1=x1/max(abs(x1)); % 幅值歸一化 x2=x2/max(abs(x2)); x3=x3/max(abs(x3)); % 計算/i1/與/i2/之間的匹配比較 [Dcep,Ccep1,Ccep2]=mel_dist(x1,x2,fs,16,wlen,inc);fprintf('/tang01/與/tang02/之間的mel平均距離是%d\n',mean(Dcep)); figure(1) plot(Ccep1(8,:),Ccep2(8,:),'k+'); hold on plot(Ccep1(14,:),Ccep2(14,:),'kx'); plot(Ccep1(24,:),Ccep2(24,:),'k^'); plot(Ccep1(30,:),Ccep2(30,:),'kh'); % plot(Ccep1(3,:),Ccep2(3,:),'k+'); hold on % plot(Ccep1(7,:),Ccep2(7,:),'kx'); % plot(Ccep1(12,:),Ccep2(12,:),'k^'); % plot(Ccep1(16,:),Ccep2(16,:),'kh'); legend('第8幀','第14幀','第24幀','第30幀','Location','NorthWest') %legend({'第3幀','第7幀','第12幀','第16幀'},2) xlabel('信號tang01');ylabel('信號tang02') axis([-12 12 -12 12]); line([-12 12],[-12 12],'color','k','linestyle','--'); title('/tang01/與/tang02/之間的MFCC參數匹配比較')2.3 結果顯示
每個音都有34幀,我從其中選擇了4幀來繪圖,把兩個音在這些幀中前16個MFCC參數顯示出來。從圖中可以看出,兩個音是較匹配的,他們的系數總體分布在$45^{\circ}$線附近。不同人說同一個字平均歐氏距離:
/tang01/與/tang02/之間的mel平均距離是2.316534e+013 同一個樣本同一個人發音
3.1 語料介紹
語音是“i”字的發音,由同一個人發音組成,為了實驗方便,將兩個語音長度統一,采樣率為8000Hz。分為19幀,幀長200,幀移80.2.2 實驗結果
每個音都有19幀,我從其中選擇了4幀來繪圖,把兩個音在這些幀中前16個MFCC參數顯示出來。從圖中可以看出,兩個音是較匹配的,他們的系數分布在$45^{\circ}$線附近。同一個樣本同一個人發音平均歐氏距離:
/i1/與/i2/之間的mel平均距離是7.171738e+004 同一個人不同樣本(單音節)
4.1 語料介紹
語音是“b”、"c"的發音,由同一個人發音組成,為了實驗方便,將兩個語音長度統一,采樣率為16000Hz。分為24幀,幀長1479,幀移626.4.2 實驗結果
每個音都有24幀,從圖中可以看出,兩個音是不匹配的,他們的系數分布較廣。
同一個人不同樣本平均歐氏距離(單音節):
/a/與/b/之間的mel平均距離是2.968683e+015 同一個人不同樣本(字)
4.1 語料介紹
語音是“唐”、"維"的發音,由同一個人發音組成,為了實驗方便,將兩個語音長度統一,采樣率為44100Hz,分為34幀.4.2 實驗結果
從圖中可以看出,兩個音是不匹配的,他們的系數分布較廣。
同一個人不同樣本平均歐氏距離(字):
/tang02/與/wei/之間的mel平均距離是2.259611e+016 總結
6.1 歐氏距離總結
不同人說同一個樣本平均歐氏距離(字):2.316534e+01 同一個人不同樣本平均歐氏距離(字):2.259611e+01 同一個人不同樣本平均歐氏距離(單音節):2.968683e+01 同一個樣本同一個人發音平均歐氏距離(單音節):7.171738e+00歐氏距離不適合比較單字或者單音節
6.2 MFCC系數總結
如果是同一個字或者同一個音節,MFCC系數總體都分布在45°45^{\circ}45°線附近,適合做實驗比較。
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的基于MFCC系数的欧氏距离测量的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 树莓派4B设置静态IP
- 下一篇: 类.接口.多态.向上转型.向下转型