最后编辑于2023-10
在[语音技术]java+H5的录音类实例(1)这篇文章中,讲到如何利用浏览器录音的功能
文章地址:http://ai.baidu.com/forum/topic/show/492732
但是在后续的使用中发现,每次都需要手动的点击录音和关闭录音,所以这是用户体验上非常不好的一个方式,所以,我找了很多方法,最后解决
了这个“不说话几秒 自动停止录音”的方式,当然后续还会解决如何做一些线程 来实现浏览器唤醒录音功能
回到这个录音停止的功能,代码如下:
// 音频采集
recorder.onaudioprocess = function(e) {
var data= e.inputBuffer.getChannelData(0);
var l = Math.floor(data.length / 10);
var vol = 0;
for(var i = 0; i < l ; i++){
vol += Math.abs(data[i*10]);
}
emptyCheckCount ++;
console.log(vol);
if(vol < 30){ //设置音量
emptydatacount ++;
console.log(emptydatacount);
if(emptydatacount > 30){ //设置静音停止次数
console.log('stoped');
self.recordStop();
}
} else {
emptydatacount = 0;
}
audioData.input(e.inputBuffer.getChannelData(0));
};
这个是一个音频采集的方法,原来是你点开始录音时,会调用这个获取录音的方法onaudioprocess,然后利用这么一个类似的算法
var l = Math.floor(data.length / 10);
var vol = 0;
for(var i = 0; i < l ; i++){
vol += Math.abs(data[i*10]);
}
再来一个判断音量大小的方法,如果你在使用中可以修改这个“30”的参数,为音量大小,下方的大小是指音量低于这个值时,“30”大概是3秒左右的时间
大家可以在我之前给的js里面加上这段代码,然后在前台页面调用时,加一个停止逻辑就可以了
可以查看另一篇文章,下载里面的源码:http://ai.baidu.com/forum/topic/show/492787
大家~欢迎不理解的多多提问~
谢谢~
TOP
切换版块
文档还有吗?求一份
emptycount的值一直是1,导致无法触发停止,这是什么原因。
自动停止代码,学习了
语音类最近愈发能控制啦
录音方面的新突破
很强
可以的 你好最近忙工作上的事呢 可以联系QQ563356602
楼主,能把这个语音识别用到我自己项目中吗
楼主,能把这个语音识别用到我自己项目中吗
楼主,拜读并测试了你的录音部分的代码,确实好用。想问下能请你给做个项目吗
楼主,拜读并测试了你的录音部分的代码,确实好用。想问下能请你给做个项目吗要用到你这个语音识别的功能。
楼主,拜读并测试了你的录音部分的代码,确实好用。想问下能请你给做个项目吗,要用到你这个语音识别的功能。
楼主,拜读并测试了你的录音部分的代码,确实好用。想问下能请你给做个项目吗,要用到你这个语音识别的功能
没错,原来你是懂得,和我装听不懂。。
哟西。原来这就是百度的sta。
你看,这不就是astar么~
今年可也参加试试哟……
完全不知道还有这个
长见识了,笔墨哥在读吗
厉害了,跪拜