当前位置 : 主页 > 编程语言 > python >

【语音识别】基于mfcc特征结合HMM实现湖南方言识别含Matlab源码

来源:互联网 收集:自由互联 发布时间:2022-06-15
1 简介 基于 HMM 的与文本有关的说话人识别系统的结构如图(1)所示。建立和应用这一系统有两个阶段,即训练(登录)阶段和识别阶段。在训练阶段,针对各使用人对规定语句或关键


 1 简介

基于 HMM 的与文本有关的说话人识别系统的结构如图(1)所示。建立和应用这一系统有两个阶段,即训练(登录)阶段和识别阶段。在训练阶段,针对各使用人对规定语句或关键词的发音进行特征分析,提取说话人语音特征矢量(例如倒谱及 D 倒谱等)的时间序列。然后利用从左到右HMM(left-to-right HMM)建立这些时间序列的声学模型。因为文本是固定的,所以特征矢量的时间构造是确定的,利用从左到右 HMM 能较好地反应特征矢量时间构造特性。在识别阶段,先和训练阶段一样,从输入语音信号中提取特征矢量的时间序列,然后利用 HMM 计算该输入序列的生成概率,并且根据一定的相似性准则来判定识别结果。对于说话人辨认系统,所得概率值最大的参考模型所对应的使用者被辨认为是发音的说话人。对于说话人确认系统,则把所得概率值与阈值相比较,其值大于(或等于)阈值的,作为本人的声音被接受,小于阈值的作为他人的声音被拒绝。在与文本有关的说话人识别当中,由于文本内容是已知的,所以即使利用比较短的语料,也能从中提取出较稳定的说话人特征。而且学习也不需要太多的数据。在实际利用电话语音的说话人识别实验中得到了较高的识别精度。另外,对于不同的说话人,变换文本内容并利用文本内容的差别,也可以进一步提高识别精度。

【语音识别】基于mfcc特征结合HMM实现湖南方言识别含Matlab源码_时间序列

【语音识别】基于mfcc特征结合HMM实现湖南方言识别含Matlab源码_说话人识别_02编辑


2 部分代码

function f=enframe(x,win,inc) nx=length(x); nwin=length(win); if (nwin == 1) len = win; else len = nwin; end if (nargin < 3) inc = len; end nf = fix((nx-len+inc)/inc); f=zeros(nf,len); indf= inc*(0:(nf-1)).'; inds = (1:len); f(:) = x(indf(:,ones(1,len))+inds(ones(nf,1),:)); if (nwin > 1) w = win(:)'; f = f .* w(ones(nf,1),:); end

3 仿真结果

【语音识别】基于mfcc特征结合HMM实现湖南方言识别含Matlab源码_说话人识别_03

【语音识别】基于mfcc特征结合HMM实现湖南方言识别含Matlab源码_数据_04编辑


4 参考文献

[1]唐亚纯. 基于HMM模型的永州方言数字语音识别系统的研究[D]. 湖南大学, 2013.

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

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

【语音识别】基于mfcc特征结合HMM实现湖南方言识别含Matlab源码_数据_05

【语音识别】基于mfcc特征结合HMM实现湖南方言识别含Matlab源码_说话人识别_06编辑




网友评论