我开始使用此浏览器(Chrome)功能。 我已经基于此编写了一个JS,但问题是甚至,它只识别一次和结束的演讲。它不会持续,我需要一次又一次按下按钮开始语音识别。告诉我应该在哪里调整。我设置“recognition.continuous = true”仍然没有帮助?
var recognition = new webkitSpeechRecognition();
recognition.continuous = true;
recognition.interimResults = true;
recognition.onstart = function() {
console.log("Recognition started");
};
recognition.onresult = function(event){
console.log(event.results);
};
recognition.onerror = function(e) {
console.log("Error");
};
recognition.onend = function() {
console.log("Speech recognition ended");
};
function start_speech() {
recognition.lang = 'en-IN'; // 'en-US' works too, as do many others
recognition.start();
}
我从一个按钮叫“start_speech”!多数民众赞成
答案 0 :(得分:8)
也许是这一行的拼写错误:
recognition.continuos = true;
应该相等:
recognition.continuous = true;
答案 1 :(得分:8)
我知道这是一个老线程,但我也有这个问题。我发现,即使设置了连续标志,如果输入语音中有暂停,则会抛出“无语音”错误(触发onerror事件)并关闭引擎。我只是在一端添加了代码来重启引擎:
recognition.onend = function() {
recognition.start();
};
您可能会遇到的下一个问题是,每次引擎重新启动时,用户都必须重新授予浏览器使用麦克风的权限。目前唯一的解决方案似乎是确保您通过HTTPS连接到您的网站(来源:http://updates.html5rocks.com/2013/01/Voice-Driven-Web-Apps-Introduction-to-the-Web-Speech-API以粗体显示的帖子底部)
答案 2 :(得分:0)
recognition.onend = function(){
recognition.start();
// sets off a beep/noise each time it is accessed from a cell phone (Andoid).
// does NOT if accessed from a desktop (Windows using Chrome).
};