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