基于Matlab设计实现一个文本相关的声纹识别系统结构如下图

发布者:双子絃綵蓝少 2022-7-4 21:56

1 简介

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

1 系统原理

a.声纹识别

近两年随着人工智能的发展,很多手机APP都推出了声纹锁。功能。这里使用的技术主要与声纹识别有关。声纹识别也称为说话人识别,与语音识别略有不同。

b.Mel 频率倒谱系数 (MFCC)

梅尔频率倒谱系数 (MFCC) 是语音信号处理中最常用的语音信号特征。

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

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

c。矢量量化

本系统使用矢量量化对提取的语音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)        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代码题可以交流私下里。

为你推荐