7

我开始使用这个浏览器(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”!而已

4

3 回答 3

12

我知道这是一个旧线程,但我也遇到了这个问题。我发现,即使设置了连续标志,如果输入语音中有暂停,则会引发“无语音”错误(触发 onerror 事件)并且引擎会关闭。我刚刚在 onend 中添加了代码来重新启动引擎:

recognition.onend = function() {
    recognition.start();
};

您可能会遇到的下一个问题是,每次引擎重新启动时,用户都必须重新授予权限才能让浏览器使用麦克风。目前唯一的解决方案似乎是确保您通过 HTTPS 连接到您的网站(来源:http ://updates.html5rocks.com/2013/01/Voice-Driven-Web-Apps-Introduction-to-the- Web-Speech-API帖子底部以粗体显示)

于 2013-11-15T22:15:43.233 回答
7

也许这一行的错字:

recognition.continuos = true;

应该等于:

recognition.continuous = true;
于 2013-06-16T13:09:40.737 回答
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).
};
于 2018-11-18T19:31:12.320 回答