【说话人识别】基于MFCC特征和GMM实现说话人识别系统含Matlab源码

简介: 【说话人识别】基于MFCC特征和GMM实现说话人识别系统含Matlab源码

 

1 简介

目前,针对说话人识别而提出的新的识别技术层出不穷,如结合 GMM-UBM 结构与支持向量机(SupportVectorMachine,SVM)的技术、基于得分规整技术的 HNORM、ZNORM 和 TNORM 技术、潜伏因子分析(LatentFactorAnal⁃ysis,LFA)技术、应用于说话人识别的大词汇表连续语音识别(LargeVocabularyContinuousSpeechRecognition,LVC⁃SR)技术等。然而,如今最出色的说话人识别系统依然是基于 GMM 模型,尤其是基于 UBM-MAP 结构的系统。本文基于 TIMIT 语料库分析研究说话人语音信号预处理,以及说话人语音特征提取原理与方法,并利用 MATLAB进行美尔频率倒谱系数(MelFrequencyCepstrumCoeffi⁃cient,MFCC)提取。在此基础上详细研究了 GMM 模型基本原理,以及 EM 算法和 K-均值聚类算法,最后使用MATLAB 实现了基于 GMM 模型的说话人识别系统,完成了GMM 模型参数训练与识别过程。为分析该系统性能,本文通过实验分析了不同 GMM 模型阶数与不同训练语音样本时长对系统识别性能的影响。

image.gif编辑

image.gif编辑

image.gif编辑

image.gif编辑

image.gif编辑

image.gif编辑

image.gif编辑

image.gif编辑

2 部分代码

function graph_gmm(X,mi,sig,c,coefs,ft)% % graph_gmm(X,mi,sig,c,<coefs,ft>)% % plots the distribution of coefficients    DEBUG=0;PRINT=0;[L,T]=size(X);if (nargin<5), coefs=1:L; endif (nargin<6), ft=0; endLL=length(coefs);li=fix(sqrt(LL));co=ceil(LL/li);figure;clf;for ll=1:LL l=coefs(ll);  xm=min(X(l,:));xM=max(X(l,:));x=(-ft*(xM-xm)+xm):((ft+1)*(xM-xm)./100):(xM+ft*(xM-xm));subplot(li,co,ll);histn(X(l,:),300);hold on;if DEBUG size(x),end[laux,lmulti]=lmultigauss(x,mi(l,:),sig(l,:),c);aux=exp(laux);multi=exp(lmulti);if DEBUG size(x),size(multi'),pause,endhp=plot(x,multi','r','Linewidth',3);%xlim([ -xM xM ]);                    ha=get(gca,'Children');%it seem that the bars are children number 4set(ha(2),'FaceColor',[ 0.8 0.8 0.8 ]);set(ha(2),'EdgeColor',[ 0.8 0.8 0.8 ]);%*plot(x,aux);end

3 仿真结果

image.gif编辑

image.gif编辑

image.gif编辑

image.gif编辑

4 参考文献

[1]丁爱明. 基于MFCC和GMM的说话人识别系统研究[D]. 河海大学.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

5 代码下载

image.gif编辑

相关文章
|
5月前
|
存储 算法 数据可视化
基于 MATLAB的GUI信号处理界面设计 源码+运行截图
基于 MATLAB的GUI信号处理界面设计 源码+运行截图
167 2
|
3月前
|
机器学习/深度学习 人工智能 算法
基于GRNN广义回归网络和MFCC的语音情绪识别matlab仿真,对比SVM和KNN
该语音情绪识别算法基于MATLAB 2022a开发,可识别如悲伤等情绪,置信度高达0.9559。核心程序含中文注释及操作视频。算法采用MFCC特征提取与GRNN广义回归网络,通过预加重、分帧、加窗、FFT、梅尔滤波器组、对数运算和DCT等步骤处理语音信号,实现高效的情绪分类。
|
4月前
|
运维 算法
基于Lipschitz李式指数的随机信号特征识别和故障检测matlab仿真
本程序基于Lipschitz李式指数进行随机信号特征识别和故障检测。使用MATLAB2013B版本运行,核心功能包括计算Lipschitz指数、绘制指数曲线、检测故障信号并标记异常区域。Lipschitz指数能够反映信号的局部动态行为,适用于机械振动分析等领域的故障诊断。
|
6月前
|
机器学习/深度学习 算法
基于心电信号时空特征的QRS波检测算法matlab仿真
本课题旨在通过提取ECG信号的时空特征并应用QRS波检测算法识别心电信号中的峰值。使用MATLAB 2022a版本实现系统仿真,涵盖信号预处理、特征提取、特征选择、阈值设定及QRS波检测等关键步骤,以提高心脏疾病诊断准确性。预处理阶段采用滤波技术去除噪声,检测算法则结合了一阶导数和二阶导数计算确定QRS波峰值。
|
7月前
|
存储 算法 Serverless
【matlab】matlab基于DTW和HMM方法数字语音识别系统(源码+音频文件+GUI界面)【独一无二】
【matlab】matlab基于DTW和HMM方法数字语音识别系统(源码+音频文件+GUI界面)【独一无二】
114 4
|
7月前
|
存储 Serverless
【matlab】matlab实现倒谱法基音频率检测和共振峰检测(源码+音频文件)【独一无二】
【matlab】matlab实现倒谱法基音频率检测和共振峰检测(源码+音频文件)【独一无二】
152 1
|
7月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
285 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
7月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
170 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
|
7月前
|
数据采集 存储 移动开发
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
150 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
|
10月前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度