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

【端点检测】基于自相关最大值和过门限率的语音端点检测含Matlab源码

来源:互联网 收集:自由互联 发布时间:2022-06-18
1 简介 语音处理中,在噪声环境尤其是在非平稳噪音环境下进行端点检测是很困难的.在低信噪比的情况下,传统用于端点检测的特征参数不能充分描述语音信号的特征,导致端点检测的效果

1 简介

语音处理中,在噪声环境尤其是在非平稳噪音环境下进行端点检测是很困难的.在低信噪比的情况下,传统用于端点检测的特征参数不能充分描述语音信号的特征,导致端点检测的效果严重退化.为此,笔者从语音信号的时域或频域出发,提出了一种把短时自相关函数最大值和短时过门限率相结合的方法.

【端点检测】基于自相关最大值和过门限率的语音端点检测含Matlab源码_参考文献

2 部分代码

function[nf,f]=enframe(x,win,inc)
%x是语音序列,win 是帧长,inc是帧移,f是分帧后由各帧的语音序列组合的矩阵,为帧数行,帧长列,nf是帧数
%ENFRAME split signal up into (overlapping) frames: one per row. F=(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
nf=fix((length(x)-win+inc)/inc);

3 仿真结果

【端点检测】基于自相关最大值和过门限率的语音端点检测含Matlab源码_参考文献_02

【端点检测】基于自相关最大值和过门限率的语音端点检测含Matlab源码_参考文献_03

4 参考文献

[1]席大林, 李如玮, 陈海龙,等. 基于自相关最大值和过门限率的语音端点检测[J]. 电声技术, 2010(4):6.

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

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


【端点检测】基于自相关最大值和过门限率的语音端点检测含Matlab源码_语音信号_04


网友评论