日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

基于MFCC系数的欧氏距离测量

發布時間:2025/3/12 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于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=1n?(xi??yi?)2?
因為計算是基于各維度特征的絕對數值,所以歐氏度量需要保證各維度指標在相同的刻度級別,比如對身高(cm)和體重(kg)兩個單位不同的指標使用歐式距離可能使結果失效。

for i=1 : fn1 % 計算s1與s2之間每幀的Mel距離Cn1=Ccep1(i,:);Cn2=Ccep2(i,:);Dstu=0;for k=1 : numDstu=Dstu+(Cn1(k)-Cn2(k))^2;endDcep(i)=sqrt(Dstu); % 每幀的Mel距離 end

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+01

3 同一個樣本同一個人發音

3.1 語料介紹
語音是“i”字的發音,由同一個人發音組成,為了實驗方便,將兩個語音長度統一,采樣率為8000Hz。分為19幀,幀長200,幀移80.
2.2 實驗結果

每個音都有19幀,我從其中選擇了4幀來繪圖,把兩個音在這些幀中前16個MFCC參數顯示出來。從圖中可以看出,兩個音是較匹配的,他們的系數分布在$45^{\circ}$線附近。

同一個樣本同一個人發音平均歐氏距離:

/i1//i2/之間的mel平均距離是7.171738e+00

4 同一個人不同樣本(單音節)

4.1 語料介紹
語音是“b”、"c"的發音,由同一個人發音組成,為了實驗方便,將兩個語音長度統一,采樣率為16000Hz。分為24幀,幀長1479,幀移626.
4.2 實驗結果

每個音都有24幀,從圖中可以看出,兩個音是不匹配的,他們的系數分布較廣。

同一個人不同樣本平均歐氏距離(單音節):

/a//b/之間的mel平均距離是2.968683e+01

5 同一個人不同樣本(字)

4.1 語料介紹
語音是“唐”、"維"的發音,由同一個人發音組成,為了實驗方便,將兩個語音長度統一,采樣率為44100Hz,分為34幀.
4.2 實驗結果

從圖中可以看出,兩個音是不匹配的,他們的系數分布較廣。

同一個人不同樣本平均歐氏距離(字):

/tang02//wei/之間的mel平均距離是2.259611e+01

6 總結

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系数的欧氏距离测量的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。