首页 文章

W3C语音到文本:在您说话时输出值

提问于
浏览
3

我一直在我的应用程序中使用W3C Speech Synthesizer用于网络 . 我说话了 . 目前,规范中的 result 事件等待在不说话的一秒左右后追加整个数组 .

我已经查看了标准,但我发现它只是等待从结果事件构造最终结果列表:

5.1.3 SpeechRecognition Events

结果事件:语音识别器返回结果时触发

5.1.8 SpeechRecognitionEvent

results attribute:此会话的所有当前识别结果的数组 .

我也尝试在 onstartonpause 方法中检索结果:

recognition = new webkitSpeechRecognition()

            recognition.onstart = function (event) {
                //append word
            };

            recognition.onpause = function (event) {
                //append word
            };

当你说话的时候,任何人都知道如何实现这些词语的“打字”效果吗?


另一个问题是,如果用户停止讲话一秒钟,并且编译结果列表(IE, result event 被触发),并且他们再次发言,结果列表不会更新 .

即使我设置 recognition.continuous = true; 也会发生这种情况

1 回答

  • 0

    从Google Developers Introduction Video找到它 .

    recognition.continuous = true 外,您还需要 recognition.interimResults = true; .

    然后需要在 onresult 处理程序中略微修改您的逻辑以考虑中间结果:

    recognition.onresult = function (event) {
      var final = "";
      var interim = "";
      for (var i = 0; i < event.results.length; ++i) {
        if (event.results[i].final) {
          final += event.results[i][0].transcript;
        } else {
          interim += event.results[i][0].transcript;
        }
      }
      final_span.innerHTML = final;
      interim_span.innerHTML = interim;
    }
    

相关问题