问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

谁有语音端点检测算法程序?如何在matlab中运行?

发布网友 发布时间:2022-05-29 22:43

我来回答

2个回答

热心网友 时间:2024-10-14 08:28

基于Matlab编写的语音端点检测程序
function [x1,x2] = vad(x)
%幅度归一化到[-1,1]
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 {0,1}
% 0 = 静音,
1 = 可能开始
if amp(n) > amp1
% 确信进入语音段
x1 = max(n-count-1,1);
status = 2;
silence = 0;
count = count + 1;
elseif amp(n) > amp2 | ... % 可能处于语音段
zcr(n) > zcr2
status = 1;
count = count + 1;
else
% 静音状态
status = 0;
count = 0;
end
case 2,
% 2 = 语音段
if amp(n) > amp2 | ... % 保持在语音段
zcr(n) > zcr2
count = count + 1;
else
% 语音将结束
silence = silence+1;
if silence < maxsilence % 静音还不够长,尚未结束
count = count + 1;
elseif count < minlen % 语音长度太短,认为是噪声
status = 0;
silence = 0;
count = 0;
else
% 语音结束
status = 3;
end
end
case 3,
break;
end
end
count = count-silence/2;
x2 = x1 + count -1;
subplot(311)
plot(x)
axis([1 length(x) -1 1])
ylabel('Speech');
line([x1*FrameInc x1*FrameInc], [-1 1], 'Color', 'red');
line([x2*FrameInc x2*FrameInc], [-1 1], 'Color', 'red');
subplot(312)
plot(amp);
axis([1 length(amp) 0 max(amp)])
ylabel('Energy');
line([x1 x1], [min(amp),max(amp)], 'Color', 'red');
line([x2 x2], [min(amp),max(amp)], 'Color', 'red');
subplot(313)
plot(zcr);
axis([1 length(zcr) 0 max(zcr)])
ylabel('ZCR');
line([x1 x1], [min(zcr),max(zcr)], 'Color', 'red');line([x2 x2], [min(zcr),max(zcr)], 'Color', 'red');

热心网友 时间:2024-10-14 08:29

The abstract pronunciation signal vertex examination is the digitalpronunciation signal processing foundation link. But pronunciationsignal because has each
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...可以如期完成,而实际加工每天多做40件,结果提前6天完成,列方程为... ...实际加工时,每天多加工40个,结果提前6天完成,他们 ...完1/3时改进技术每天加工40个,结果提前4天完成,这批零件有多少_百度... ...可以如期完成,而实际每天多加工40件,结果提前 ...实际每天比原计划多生产40个,结果提前5天完成任务.原计划要生产多少... 课程与小学教学有什么关系? 千万不要再瞎买指数型基金了 2年前买了一万块的基金以前的最新净值是1.0现在是0.8卖出会得到多少钱... 策略、动作、冒险、适合男生玩的好玩手机游戏推荐几款 柑桔的营养价值如何? 男士35岁泡什么药酒好 男性经常擦药酒(活络油、普通的药酒)会对生育有影响吗? 40岁男人泡什么药酒 深圳男子喝自制药酒险些丧命,为何许多人都喜欢自制药酒? 秋季泡什么药酒对男人养生比较好 40岁的男人喝什么药酒 荣事达滚桶洗衣机出现故障代码ea2 斯柯达明锐RS旅行版,颜值高,动力强 斯柯达明锐RS官图发布 6.7秒破百 斯柯达明锐RS正式发售 起售价约为27.4万人民币 家用与性能俩不误,明锐RS的故事,敞开心扉聊一聊 明锐rs好不好? 10款新明锐换装RS带拨片功能方向盘,需要更换游丝吗? 十万以内也能买到小钢炮,不信你瞧瞧这哥儿仨 斯柯达明锐RS官图曝光 搭载全新2.0T发动机 明锐RS的车型参数 2010款斯柯达明锐rs和2013款思铂睿2.4哪个性价比更好? 明锐2010款 2.0TSI RS怎么样 写给小学校长的一封检讨书 搜狗浏览器无法设置为默认浏览器 初中英语句子录音 谁有英语句子(带有中文翻译)录音的mp3啊?我很需要,有的同学请马上回答... 我想找一些专门的英语句子背,要有录音的,有这种资料吗?放哪找?_百度... 哪里有英语的短语录音或者日常句子的录音?最好可以下载到酷狗上或者是... 常用英语句子 音频 录音中的英语句子的最后一个单词是什么? 推荐一个可以练习英语句子听力的网站,有音频和原文的。 想提高英语语感和句子理解能力,是跟着录音读好还是自己朗读好?_百度... 英语翻译句子 录音机在老师的讲台上 英语翻译句子:我通过听录音来学习。 求英语音频一个,需要一句中文一句英文的那种 求英语日常用语短句…日常交流句子…带翻译的音频。 工字钢规格为32a的承载力咋算呢,均布荷载,详细的计算公式,急呀_百度知 ... 台湾柴烧公道杯的简介与好处? 紫砂公道杯需要一茶一杯吗 红酒最早发源地哪个国家? 冲击波传播需要哪些条件? 电磁冲击波体外碎石会有后遗症吗?有副作用吗? 电磁式冲击波理疗仪V70工作原理是什么? 体外电磁弹导式冲击波v70原理是什么?