语音端点检测 matlab 论文,语音端点检测程序

本帖最后由 sleep168 于 2017-4-4 09:59 编辑

老师,谢谢你的解答!我使用的是书中的bluesky1.wav语音,我还是不太理解SF1和SF2的作用,以及最后一句话[这样SF1和SF2就等长............调用findSegment函数来得到。]我前面按照您的方法改好了,绘图采用了一个比较笨的方法,提取端点中的大值作为新的端点,提取结束点中的小值作为新的结束点进行绘图,但是在识别效果出现了误差。

请问老师解释一下如何准确定位

具体代码如下:

[

subplot 515; plot(time,x,'k');

title('优化后的语音端点识别结果');

xlabel('时间/s'); ylabel('幅值');

vsl3=min(vsl1,vsl2);

vsl4=max(vsl1,vsl2)

for k=1 : min(vsl1,vsl3)                           % 标出语音端点

nx1=voiceseg1(k).begin;

nx2=voiceseg1(k).end;

nx3=voiceseg2(k).begin;

nx4=voiceseg2(k).end;

nx5=max(nx1,nx3);

nx6=min(nx2,nx4);

fprintf('%4d   %4d   %4d\n',k,nx1,nx2);

fprintf('%4d   %4d   %4d\n',k,nx3,nx4);

subplot 515;

line([frameTime(nx5) frameTime(nx5)],[-1 1],'color','k','LineStyle','-');

line([frameTime(nx6) frameTime(nx6)],[-1 1],'color','r','LineStyle','--');

end

for k=(vsl3+1:vsl4)                           % 标出语音端点

if vsl1>vsl2

fprintf('%4d   %4d   %4d\n',k,nx1,nx2);

subplot 515;

line([frameTime(nx1) frameTime(nx1)],[-1 1],'color','k','LineStyle','-');

line([frameTime(nx2) frameTime(nx2)],[-1 1],'color','r','LineStyle','--');

end

if vsl1

fprintf('%4d   %4d   %4d\n',k,nx3,nx4);

subplot 515;

line([frameTime(nx3) frameTime(nx3)],[-1 1],'color','k','LineStyle','-');

line([frameTime(nx4) frameTime(nx4)],[-1 1],'color','r','LineStyle','--');

end

end

]

C:\Users\Bing\Desktop\untitled

untitled.jpg

(214.63 KB, 下载次数: 12)

2017-4-4 09:47 上传

442a53943febe9465fc072b4fbe10813.gif

b2a5a3e0dcc7d508e00275fe42fce1b5.gif

初步结果

82ca0b4248924bf34c5f2eb0203976ff.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值