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

时间:2015-10-09 03:52:10

标签: javascript google-chrome web speech-to-text

我一直在我的应用中使用W3C Speech Synthesizer网页。我喜欢在我说话时开始出现的话。这是因为我希望用户对他们说的当前单词有近乎即时的反馈。目前,规范中的result事件在等待一段时间后等待追加整个数组。

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

5.1.3 SpeechRecognition Events

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

5.1.8 SpeechRecognitionEvent

结果属性:此会话的所有当前识别结果的数组。

我还尝试使用onstartonpause方法检索结果:

            recognition = new webkitSpeechRecognition()

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

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

任何人都知道如何实现这一目标"输入"你说话时的效果如何?

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

即使我设置了recognition.continuous = true;

,也会发生这种情况

1 个答案:

答案 0 :(得分: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;
}