[声纹识别]基于MFCC的声纹识别算法

article/2025/8/20 7:33:17

        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.


http://chatgpt.dhexx.cn/article/KUJKpdS1.shtml

相关文章

声纹识别小总结

文章目录 1.声纹识别基础知识A.识别任务分类:1、固定文本:注册与验证内容相同;2、半固定文本:注册与验证内容一样但顺序不同,且文本属于固定集合;3、自由文本B.常见预处理特征:MFCC/FBank。C.常…

声纹识别概述

转载自https://blog.csdn.net/weixin_44278406/article/details/103787143 声纹识别绪论 前言 指纹信息、人脸信息和声纹(voice-print)信息作为人体固有的生物信息,是智能电子设备私有化部署及辅助辨认个体的媒介。目前,指纹和…

基于Pytorch实现的EcapaTdnn声纹识别模型

前言 本项目使用了EcapaTdnn模型实现的声纹识别,不排除以后会支持更多模型,同时本项目也支持了多种数据预处理方法,损失函数参考了人脸识别项目的做法PaddlePaddle-MobileFaceNets ,使用了ArcFace Loss,ArcFace loss:…

常用应用层协议的报文格式

常见应用层协议的报文格式 1.常用应用程序的端口号2.HTTP的报文格式 1.常用应用程序的端口号 名称应用层协议端口运输层协议说明超文本传输协议HTTP80TCP域名解析系统DNS53UDP/TCP长度超过512字节,使用TCP动态主机配置协议DHCP67/68UDP简单网络管理协议SNMP161/162UDP文件传输…

15-传输层协议和应用层协议

PS:针对上一篇tcp协议中说到的端到端服务,这里我们再通过传输层协议和应用层协议之间的关系来加深端到端服务的学习和理解。 1. 传输层协议和应用层层协议的关系 在应用层,我们知道有很多协议,比如常见的有http,tfp&am…

应用层协议(HTTP协议)

目录 HTTP 简介 URL urlencode&urldecode HTTP请求协议格式 HTTP响应格式 HTTP的常见方法 HTTP状态码 HTTP常见的Header HTTP 简介 HTTP协议(超文本传输协议HyperText Transfer Protocol),它是基于TCP协议的应用层传输协议,简单来说就是客户端和服务…

应用层常见协议——知识点

这里总结了三种常见的应用层协议:HTTP、FTP、SMTP。供自己复习使用,也供大家参考! 一、HTTP协议 1、HTTP简介 —超文本传输协议(Hypertext transfer protocol)。是一种详细规定了浏览器和万维网(WWW World Wide Web)服务器之间互相通信的…

应用层协议

应用层协议定义了什么 应用层协议定义了运行在不同端系统上的应用程序进程如何相互传递消息。特别是定义了: 交换的消息类型,如请求消息和响应消息。 各种消息类型的语法,如消息中的各个字段及其详细描述。 字段的语义,即包含在字段中的信息的…

传输层协议、应用层协议

传输层协议、应用层协议 一、传输层协议 1、传输层概述 (1)传输层的作用 IP层提供点到点的连接 传输层提供端到端的连接 (2)传输层的协议 TCP(Transmission Control Protocol)传输控制协议 可靠的、面向连接的协议;传输效率低 UDP(User Datagram Protocol)用户数据报…

应用层协议和传输层协议

数字是离散的,模拟是连续的,对连续的信号进行采样就会变成数字信号(A/D转换) 在意念传输发明出来之前,计算机之间传输信息,总是需要介质的!要么有线传输,要么无线电波传输。你能接收…

传输层协议和应用层协议及它们之间的关系(端口)

一、传输层的两个协议 1、TCP协议 ①TCP协议的作用:TCP为应用层协议提供可靠传输,发送端按顺序发送,接收端按顺序接收,其间发生的丢包、乱序,TCP会负责其重传和排序,另外TCP还可实现流量空制和拥塞避免等…

基于TCP或UDP协议的应用层协议

TCP和UDP都是传输层协议,上面是应用层,下面是网络层 TCP与UDP区别: TCP(传输控制协议)提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,…

网络:应用层相关协议

应用层位于传输层之上,在OSI七层模型中,分为了三层,从上到下分别是应用层、表示层、会话层。这里对这三层不做具体区分。 应用层是面向用户的一层,主要包括FTP、HTTP、HTTPS、DNS、TELNET等协议。 1、DNS协议 1.1 DNS和域名 DNS…

基于TCP或UDP的应用层协议有哪些?——Linux网络编程

参考博文01:https://blog.csdn.net/Wu000999/article/details/89293717 博文02 https://blog.csdn.net/u014082714/article/details/44994719 这个面试的时候面试官经常会问我,然后就总结了一下。 TCP/IP四层模型(数网传应)&#…

应用层——协议

前言:本章将介绍关于应用层的协议,如下图所示 一、应用协议的概要 利用网络的应用程序有很多,包括Web浏览器、电子邮件、远程登陆、文件传输、网络管理等,能够让这些应用进行通信处理的正是应用协议。 网络应用由不同的用户和软…

常见应用层协议

常见应用层协议 1、超文本传输协议 用于传输浏览器使用的普通文本、超文本、音频和视频等数据。 详细情况请看:超文本传输协议HTTP/HTTPS 2、邮件协议 在互联网中,电子邮件的传送是依靠这些协议完成的。 详细情况请看:邮件协议SMTP/POP3…

《白帽子讲web安全》读书笔记以及读后感

因为本书作于2010年前,书中所使用的部分技术版本已经过于老旧,很多书中提到的攻击方法和绕过思路都已经严重落后,但之所以本书会成为安全界的经典必读书目,就是因为本书所讨论的安全思想尤为精华,对于企业来说的安全建…

《白帽子讲Web安全 -- 纪念版 吴翰清著》读后随笔

《白帽子讲Web安全 – 纪念版 吴翰清著》 该书大多数内容举例大多数是2010年左右的 相隔11年左右, 但是内容并没有被淘汰, 感觉很适合入门, 因为内容详细且比较基础 当然, 这只是对我而言 该书一共 四篇 18章 第一篇世界观安全 - 第一章 我的安全世界观 第一章第一节介绍了…

《白帽子讲web安全》第3章 跨站脚本攻击(XSS)

一、XSS简介 跨站脚本攻击(Cross Site Script):本来缩写是CSS,为了和层叠样式表示(Cascading Style Sheet,CSS)有所区别,所以在安全领域叫做“XSS”。通常指黑客通过“HTML注入”篡改了网页,插入了恶意的脚本,从而在用户浏览网页…

在学习web安全的小白看过来,这本《白帽子讲web安全》强烈推荐,必读!(附PDF)

Web是互联网的核心,是未来云计算和移动互联网的最佳载体,因此Web安全也是互联网公司安全业务中最重要的组成部分。 前排提醒:文末有pdf领取 下面来看看几种常见的web漏洞: 1.XSS跨站脚本攻击 XSS跨站脚本攻击,通常…