Mel頻率倒譜系數(melfrequency cepstral coefficients,MFCC)是聲音的短期功率譜的表示,基于非線性頻譜上的對數功率譜的線性余弦變換,在自動語音識別領域,MFCC是使用最廣泛的特征之一,同時,它也廣泛應用于聲紋識別領域,MFCC特征提取程序,如圖1所示,

圖 1 MFCC特征提取程序
1)對原始語音進行預加重、分幀和加窗等預處理操作,得到短時信號x(n);
2)對每一個短時信號x(n)進行快速傅里葉變換(FFT)得到對應的線性頻譜Xa(k);
3)對Xa(k)取模的平方,得到離散功率譜X(k);
4)將得到的頻譜X(k)通過Mel濾波器[4]組進行濾波,再對濾波器組的輸出求對數能量mi;
5)對mi進行離散余弦變換(discrete cosine transform,DCT)得到MFCC,此變換式可簡化為:

式中:Cn表示的是MFCC的系數;L表示MFCC的階數,
實驗表明,當階數升高到一定程度,系統識別性能的改善將變得很小,系統的復雜度卻大大增加,因此實際應用中,只需取12~16階倒譜系數就可以達到很高的識別效率,
function c=mfcc(s,fs) % 創建函式mfcc,其中,c為輸出變數,mfcc為函式名,s、fs為輸入變數;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% function: mfcc() 計算mel頻率倒譜系數
% input : s:輸入的語音數字信號 fs:采樣頻率
% output: MFCC特征系數
% rewriter: zhuchunqiang
% time: 2020.5.29
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%預加重
a=0.98;
len=length(s);
for i=2:len
s1(i)=s(i)-a*s(i-1);%形成了一個新的信號s1;
end
%figure(2),plot(s1),title('heavyed signal'); s1為預加重后的信號;
%計算功率譜密度
n=320;%每個幀的采樣點數
m=160;%相鄰幀起點之間距離幀與幀之間的偏移;
% [Pxx,w]=pwelch(s1,n,m,256,10000); 這個函式是計算括號內所描述函式的功率譜密度;
%分幀
frame=floor((len-n)/m)+1;%信號分幀的個數,floor的作用是取接近于括號內A的整數;
for j=1:frame %一列為一幀
for i=1:n
z(i,j)=s1((j-1)*m+i); %這句話對嗎,s1不是從2開始的嗎?1
end
end
%加窗hamming
h=hamming(n);
for j=1:frame
for i=1:n
z2(i,j)=h(i)*z(i,j);%加窗;
end
end
% z3=z2(:);同上
% figure(4),plot(z3),title('window')
% fft變換
for j=1:frame
FFT(:,j)=fft(z2(:,j));%每一幀都要進行傅氏變換;
end
%melfb 生成mel域濾波器組;
m=melfb(20,n,fs); % 這里應該是呼叫melfb函式,這里取p=20,指濾波器個數;
n2=1+floor(n/2);
mel=m*abs(FFT(1:n2,:)).^2; %計算經mel濾波器組加權后的能量值;abs(FFT(1:n2,:)).^2為能量譜,幅度平方譜通過美爾濾波器組;
% *m為通過一組美爾尺度的三角形濾波器組,得到經濾波器組加權后的能量值;
c=dct(log(mel)); % 將濾波器組的輸出取對數,然后做DCT變換;得到mel倒譜系數;
c(1,:)=[]; %去除c的第一行;
% 程序總結:輸入語音-預加重-分幀-加窗-FFT-經MEL濾波器組頻響加權-計算加權后的能量值-將輸出取對數,做DCT變換-得到mel倒譜系數;
【參考文獻】
[1]王濤,王國中,朱林林等,一種基于聲紋識別的智能門鎖系統設計與實作[J].電子測量技術,2019,42(3):107-111.
[2]李虹,徐小力,吳國新等.基于MFCC的語音情感特征提取研究[J].電子測量與儀器學報,2017,31(3):448-453.
[3]劉翔,孫靜,趙洋等.基于MFCC的心音信號特征提取及識別研究[J].電子測量技術,2018,41(2):1-5.
[4]胡政權,曾毓敏,宗原等.說話人識別中MFCC引數提取的改進[J].計算機工程與應用,2014,50(7):217-220.
[5]周萍,李曉盼,李杰等.混合MFCC特征引數應用于語音情感識別[J].計算機測量與控制,2013,21(7):1966-1968,1986.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/321484.html
標籤:其他
上一篇:6.opencv——影像變換4(形態變換-腐蝕,膨脹,開,閉,梯度,黑帽,禮帽運算)
下一篇:Transformer入門學習
