Web Speech API - 再次说话(重置句子)

时间:2015-04-07 05:46:01

标签: javascript jquery speech webspeech-api webkitspeechrecognition

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

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

说一句话和 1a。)如果文字正确,点击“添加句子”按钮
1b。)如果文字不正确,请点击“再次说话”按钮

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

有什么想法吗?

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

1 个答案:

答案 0 :(得分:3)

您正在从索引0开始获取events.result数据。您需要使用名为for的内容启动event.resultIndex循环。

  

resultIndex属性:必须将resultIndex设置为最低索引   在已更改的“结果”数组中。 [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