Web Speech API - 再说一遍(重置句子)

Web Speech API - Speak again (reset sentence)

我使用 webkitSpeechRecognition() 创建我自己的小录音机。

这是一个演示(仅适用于 chrome!
http://jsfiddle.net/gsu4aod2/

说一句话然后
1a.) 如果文本正确,点击 "add sentence" 按钮
1b.) 如果文本不正确,请单击 "speak again" 按钮

我的问题是我不知道如何 "reset" 文本。 当我使用 stop()start() 方法时,文本被删除,但我必须一次又一次地确认对麦克风的访问。

有什么想法吗?

网络语音API规范 https://www.google.com/intl/en/chrome/demos/speech.html

您正在获取从索引 0 开始的 events.result 数据。您需要使用名为 event.resultIndex.

的内容启动 for 循环

resultIndex attribute: The resultIndex must be set to the lowest index in the "results" array that has changed. [source]

recognition.onresult = function (event) {
    //console.log(event);
      var final = "";
      var interim = "";
      for (var i = event.resultIndex; i < event.results.length; ++i) {
        if (event.results[i].final) {
          final += event.results[i][0].transcript;
        } else {
          interim += event.results[i][0].transcript;
        }
      }

Fiddle Demo