资源简介
端点检测对于语音识别有着重要的意义。本程序采用双门限端点检测算法,双门限端点检测算法的基本思想是:先用短时平均能量进行初次判断,然后再在这个基础上用短时平均过零率进行再次判断。初次判断得到大致的语音段,再次判断得到比较精确的语音起点和终点。
代码片段和文件信息
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 robotics toolbox 工具箱
- 基于MATLAB实现DTW算法
- Matlab模糊工具箱和神经网络工具箱的
- DVHOP定位算法源程序MATLAB
- 快速小波分解的M文件
- 强化学习_倒立摆_Matlab程序
- matlab的多用户检测
- MATLAB 地震程序
- 基于Matlab的多图像超分辨率重建算法
- Matlab实现的一个简单的RADAR预警雷达模
- Matlab模糊自适应PID控制仿真程序
- SC_OFDMA的Matlab仿真
- 船舶航向模糊控制matlab仿真代码非s
- zw_matlab形成节点导纳矩阵的程序.zip
- zw_MATLAB实现图像去噪滤波锐化边缘检
- 遗传算法求解Rastrigin函数
- 雷达图像处理的入门算法
- 用matlab处理语音信号
- OFDM物理层发射机_接收机模型matlab代码
- MATLAB R2010b/R2012b破解lisence
- 基于TSP的禁忌搜索MATLAB程序
- Matlab GUI 多界面数据传递(使用全局变
- 路径规划势场栅格法程序
- 用matlab贝叶斯方法实现神经网络算法
- 回声隐藏matlab程序
- MATLAB R2012b 首发完美破解 所有组件可
- 卡尔曼滤波EKF UKF PF对比matlab源程序
- 决策树经典算法c4_5算法的matlab实现
- 复杂网络度分布图的matlab编程代码
- 复杂网络聚类系数的matlab编程代码
评论
共有 条评论