Javascript 语音识别-连续运行
我正在尝试使用语音识别API创建一个支持HTML5的语音控制编辑器。目前,问题是当你开始录音时,它只会持续一定的时间(基本上直到用户停止说话) 我可以将Javascript 语音识别-连续运行,javascript,html,speech-recognition,html5-audio,Javascript,Html,Speech Recognition,Html5 Audio,我正在尝试使用语音识别API创建一个支持HTML5的语音控制编辑器。目前,问题是当你开始录音时,它只会持续一定的时间(基本上直到用户停止说话) 我可以将continuous和interimResults设置为true,但这并不能让它永远记录下来。它仍然结束 我还可以告诉它在结束事件期间重新开始,但它每次都会请求许可,这是非常具有破坏性的 有没有一种方法可以让它在只需询问用户一次的情况下持续运行?无论您选择何种设置,Google Chrome都会在一段时间后停止语音识别引擎。。。这是没有办法的 我
continuous
和interimResults
设置为true
,但这并不能让它永远记录下来。它仍然结束
我还可以告诉它在结束事件期间重新开始,但它每次都会请求许可,这是非常具有破坏性的
有没有一种方法可以让它在只需询问用户一次的情况下持续运行?无论您选择何种设置,Google Chrome都会在一段时间后停止语音识别引擎。。。这是没有办法的 我找到的唯一可靠的连续语音识别解决方案是,按照您的建议,通过绑定到
onend()
事件来重新启动它
如果您尝试了类似的技术,请注意以下几点:
onend(function(){restart()})
会使浏览器崩溃,正如我在本错误报告中所详述的:)
看看我是怎么处理的服务不允许
或不允许
看您可以在我的代码中看到我是如何处理此问题的-请尝试此代码,我认为它可以满足您的需要:
语音识别
#结果{
边框:2件纯黑;
高度:200px;
边界半径:3px;
字体大小:14px;
}
钮扣{
位置:绝对位置;
顶部:240px;
左:50%;
}
函数start(){
var r=document.getElementById(“结果”);
if(“窗口中的webkitSpeechRecognition”){
var speechRecognizer=new-webkitSpeechRecognition();
speechRecognizer.continuous=true;
speechRecognizer.interimResults=true;
speechRecognizer.lang=“en US”;
speechRecognizer.start();
var finalTranscripts=“”;
speechRecognizer.onresult=函数(事件){
var interimTranscripts=“”;
对于(var i=event.resultIndex;i
HTML5语音连续需要这个
window.SpeechRecognition=window.webkitSpeechRecognition | | window.SpeechRecognition;
if(窗口中的“SpeechRecognition”){
console.log('supported speech')
}否则{
console.error('不支持语音')
}
const recognition=new window.SpeechRecognition();
识别。连续=正确;
recognition.onresult=(事件)=>{
console.log('transscript:',event.results[event.results.length-1][0]。转录本);
}
recognition.start();
您必须每隔几秒钟重新启动一次发动机。请参阅我的代码
注意:在chrome V70之后,至少需要一次点击界面@samanime如果你认为这是最准确的答案,请将答案标记为正确答案。只是更新。github链接似乎已断开。这是我找到的当前链接。所有链接都已修复为不应与未来版本的Annyangan断开的链接swer很棒!注意下面的部分非常有用,并且超出了OP的要求。我正在寻找这个“speechRecognizer.continuous=true”;非常感谢!