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



我一直在使用W3C语音合成器的web在我的应用程序。我想的话开始出现,因为我说他们。这是因为我想让用户对他们正在说的单词有近乎即时的反馈。目前,规范中的result事件等待在不说话的一秒钟左右后追加整个数组。

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

5.1.3语音识别事件

result事件:当语音识别器返回结果

时触发

5.1.8 SpeechRecognitionEvent

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

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

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

有谁知道一种方法可以实现你说话时的"打字"效果吗?


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

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

从Google开发者介绍视频中找到的。

除了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;
}

相关内容

  • 没有找到相关文章

最新更新