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:lens1(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:nz(i,j)=s1((j-1)*m+i);  %这句话对吗,s1不是从2开始的吗?1end
end%加窗hamming
h=hamming(n);
for j=1:framefor i=1:nz2(i,j)=h(i)*z(i,j);%加窗;end
end
% z3=z2(:);同上
% figure(4),plot(z3),title('window')   % fft变换
for j=1:frameFFT(:,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.

[声纹识别]基于MFCC的声纹识别算法相关推荐

  1. 视觉识别入门之人脸识别——基于FACENET的高精度人脸识别

    视觉识别入门之人脸识别---- 基于FACENET的高精度人脸识别 一:项目展示: - 这是实时视频读取的展示,是可以读单张图片,或者本地视频流,抑或是实时人脸检测与分类的,至于我为什么不展示我的自拍 ...

  2. Spring的编程式事务声明式事务 基于注解的声明式事务控制

    文章目录 Spring中编程式事务 基于XML的声明式事务控制 基于注解的声明式事务控制 Spring集成web环境 Spring中编程式事务 Spring的事务控制可以分为编程式事务控制和声明式事务 ...

  3. 基于matlab的双音多频信号识别,基于MATLAB的双音多频信号识别

    年 第 期 计 算 机 系 统 应 用基于 丁 的双音多频信号识别 ① 刘艳芳 窦育强 张爱丽 河南师范大学 计算机与信息技术学院 河南 新乡 摘 要 关健 词 本文主要运用 对录制的双音多频信号进行 ...

  4. matlab幼苗识别,基于MATLAB的植物幼苗识别

    基于MATLAB的植物幼苗识别(论文11000字,外文翻译) 摘要:杂草种类繁多,严重影响了农作物的生产与产量,使用图像处理技术识别区分杂草和作物幼苗已成为一种最科学最有效的方法.通过提取植物图像的有 ...

  5. matlab交通标志神经网络识别,基于神经网络的交通标志识别方法

    Municipal & Traffic Construction SCIENCE & TECHNOLOGY FOR DEVELOPMENT 149 基于神经网络的交通标志识别方法 赵丹 ...

  6. 光学分辨率光声显微镜中基于深度学习的运动校正算法

    在这项研究中,我们提出了一种基于深度学习的方法来校正光学分辨率光声显微镜 (OR-PAM) 中的运动伪影.该方法是一种卷积神经网络,它从具有运动伪影的输入原始数据建立端到端映射,以输出校正后的图像.首 ...

  7. Matlab水果识别——基于形态学处理的水果识别

    文章目录 概述 一.原理简介 二.实验内容 1.完整代码 2.图片测试 最后 概述 基本思想就是用具有一定形态的结构元素去度量和提取图像中的对应形状,以达到图像分析和识别的目的.主要涉及到的运算有:膨 ...

  8. mser python车牌识别,基于OPENCV的车辆牌照识别系统研究

    摘要: 在我国汽车工业迅猛发展的今天,汽车保有量的逐年大幅增加,对传统的车辆管理和交通运行方式面临着巨大的压力和挑战.为了解决上述问题,车辆牌照自动识别技术(AVI)应运而生,并发展成为现代智能交通系 ...

  9. 检信智能语音情感识别-基于SVM的语音情感识别系统设计

    1  引言 随着信息技术的不断发展,情感信息处理及识别正在受到学者越来越广泛的重视.语音信号中,除了与语言内容相关的信息之外,还包含着说话人的情感信息.这些情感信息在交流中同样具有着重要的作用.不同的 ...

最新文章

  1. Java中的Split方法不适用于一个句号
  2. 如何将四个一字节的数转换为一个四字节数
  3. 光纤有什么优势?还有哪些挑战需要面对呢?
  4. 浅谈PHP的Public、Protected、Private三种方法的区别
  5. BUG总结——【构造函数写逻辑】引发的极大的线上问题
  6. ASP.NET Core Web 支付功能接入 微信-扫码支付篇
  7. 配置isc-dhcrelay需要注意的事项
  8. linux 文件列添加字段,如何在linux中加入所需列的文件?
  9. 小程序 ajax 加载,小程序实战-小程序网络请求异步加载
  10. BugkuCTF-Reverse题love
  11. phpstudy_pro MySQL启动失败的原因
  12. poj-1190 生日蛋糕 **
  13. 220.存在重复元素III
  14. 如何快速更换ip地址?
  15. 银耳椰椰——Alpha冲刺Day01
  16. 关于2022年国外广告联盟emu还能做吗?还赚钱不
  17. js问号点的作用(?.)和问号问号(??)的用法
  18. OCI跨租户(Tenancy)Object Storage文件复制
  19. 机器人对话常用语模板_世界首个机器人观音在岛国问世,请问AI开光还会远吗?...
  20. python爬虫常见报错_Python爬虫系列之什么是爬虫

热门文章

  1. android studio中Option + Enter选择了disable 'introduce local variable'
  2. win10计算机管理不可用,win10管理员被禁用怎么办,win10怎么管理员运行
  3. LayUI导入excel功能
  4. java利用poi导出excel功能-附带图片导出
  5. 由浅入深学java iso_由浅入深学Java:基础、进阶与必做260题 PDF扫描版[47MB]
  6. 一个古典App开发者的DApp开发之路
  7. 12门课100分,直博清华的学霸火了!“造假都不敢这么写”
  8. 关于iPhone尺寸与分辨率
  9. 算法学习系列(贪心算法)—机器人攀登问题
  10. 浙江理工大学计算机考研资料汇总