资源简介
端点检测对于语音识别有着重要的意义。本程序采用双门限端点检测算法,双门限端点检测算法的基本思想是:先用短时平均能量进行初次判断,然后再在这个基础上用短时平均过零率进行再次判断。初次判断得到大致的语音段,再次判断得到比较精确的语音起点和终点。
代码片段和文件信息
function [x1x2] = vad(x)
%幅度归一化到[-11]
x = double(x);
x = x / max(abs(x));
%常数设置
frameLen = 240;
frameInc = 80;
amp1 = 10;
amp2 = 2;
zcr1 = 10;
zcr2 = 5;
maxsilence = 8; % 6*10ms = 30ms
minlen = 15; % 15*10ms = 150ms
status = 0;
count = 0;
silence = 0;
%计算过零率
tmp1 = enframe(x(1:end-1) frameLen frameInc);
tmp2 = enframe(x(2:end) frameLen frameInc);
signs = (tmp1.*tmp2)<0;
diffs = (tmp1 -tmp2)>0.02;
zcr = sum(signs.*diffs 2);
%计算短时能量
amp = sum(abs(enframe(filter([1 -0.9375] 1 x) frameLen frameInc)) 2);
%调整能量门限
amp1 = min(amp1 max(amp)/4);
amp2 = min(amp2 max(amp)/8);
%开始端点检测
x1 = 0;
x2 = 0;
for n=1:length(zcr)
goto = 0;
switch status
case {01} % 0 = 静音 1 = 可能开始
if amp(n) > amp1 % 确信进入语音段
x1 = max(n-count-11);
status = 2;
相关资源
- 阵列天线的matlab仿真
- MATLAB 经典程序源代码大全
- MATLAB小波软阈值去噪代码33473
- 天线阵的波束形成在MATLAB仿真程序及
- 非线性SVM算法-matlab实现
- 《MATLAB 智能算法超级学习手册》-程序
- 组合导航matlab程序
- 读取txt文件内容matlab代码实现
- Matlab实现基于相关的模板匹配程序
- matlab优化工具箱讲解
- 基于MATLAB的快速傅里叶变换
- 光纤传输中的分布傅立叶算法matlab实
- 基于matlab的图像处理源程序
- matlab 椭圆拟合程序
- 算术编码解码matlab源代码
- optical_flow 光流法 matlab 实现程序
- 引导图像滤波器 Matlab实现
- 分形几何中一些经典图形的Matlab画法
- OFDM系统MATLAB仿真代码
- SVM工具箱(matlab中运行)
- 图像小波变换MatLab源代码
- LU分解的MATLAB实现
- 冈萨雷斯数字图像处理matlab版(第三
- 替代数据法的matlab程序
- 用matlab实现的多站定位系统性能仿真
- 通过不同方法进行粗糙集属性约简m
- k近邻算法matlab实现
- matlab识别系统
- 神经网络分类matlab程序
- matlab正弦信号发生器的设计
评论
共有 条评论