【语音识别】基于mfcc特征的智能语音识别门禁系统含Matlab源码

 1 简介

本文基于Matlab设计实现了一个文本相关的声纹识别系统,可以判定说话人身份。

1 系统原理

a.声纹识别

    这两年随着人工智能的发展,不少手机App都推出了声纹锁的功能。这里面所采用的主要就是声纹识别相关的技术。声纹识别又叫说话人识别,它和语音识别存在一点差别。

b.梅尔频率倒谱系数(MFCC)

梅尔频率倒谱系数(Mel Frequency Cepstrum Coefficient, MFCC)是语音信号处理中最常用的语音信号特征之一。

实验观测发现人耳就像一个滤波器组一样,它只关注频谱上某些特定的频率。人耳的声音频率感知范围在频谱上的不遵循线性关系,而是在Mel频域上遵循近似线性关系。

梅尔频率倒谱系数考虑到了人类的听觉特征,先将线性频谱映射到基于听觉感知的Mel非线性频谱中,然后转换到倒谱上。普通频率转换到梅尔频率的关系式为:

c.矢量量化(VectorQuantization)

本系统利用矢量量化对提取的语音MFCC特征进行压缩。

VectorQuantization (VQ)是一种基于块编码规则的有损数据压缩方法。事实上,在 JPEG 和 MPEG-4 等多媒体压缩格式里都有 VQ 这一步。它的基本思想是:将若干个标量数据组构成一个矢量,然后在矢量空间给以整体量化,从而压缩了数据而不损失多少信息。

3 系统结构

本文整个系统的结构如下图:

  –训练过程

首先对语音信号进行预处理,之后提取MFCC特征参数,利用矢量量化方法进行压缩,得到说话人发音的码本。同一说话人多次说同一内容,重复该训练过程,最终形成一个码本库。

  –识别过程

在识别时,同样先对语音信号预处理,提取MFCC特征,比较本次特征和训练库码本之间的欧氏距离。当小于某个阈值,我们认定本次说话的说话人及说话内容与训练码本库中的一致,配对成功。

2 部分代码

function y1=cut(s_address)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%function: cut() 把静音段裁剪掉% input :   音频文件地址% output:   裁剪之后的音频% author:   yuhansgg(Shi Gaige)% time:     2017.4.9%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%y=audioread(s_address);h=hamming(320);% 计算短时平均能量SAE(short average energe)%信号的平方在与窗函数相卷% E(n)=[x(m)]^2*h(n-m),m从负无穷到正无穷求和,h(n-m)为汉明窗e=conv(y.*y,h);    % y.*2对y中各元素平方;conv(u,v) 求u与v的卷积% 对语音信号进行切割,当SAE小于能量大值的1/100时,认为是起点或终点mx=max(e);n=length(e);y(n)=0; % 将原始语音信号矩阵扩充至n维for i=1:n    if e(i)<mx*0.01        e(i)=0;    else e(i)=1;    % e中非0的数用1来代替    endendy1=y.*e;y1(find(y1==0))=[]; % 把0元素剔除fs=16000;audiowrite(s_address,y1,fs);

3 仿真结果

4 参考文献

[1]孙强, 祁立志. 基于语音识别的智能化门禁识别系统:, CN112070949A[P]. 2020.​

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值