Google / html5语音识别JavaScript SDK Chrome webkitSpeechRecognition

时间:2015-04-10 10:28:30

标签: javascript google-chrome voice-recognition webkitspeechrecognition

我在Chrome上使用谷歌的Javascript SDK语音识别(webkitSpeechRecognition),我自动打开recognition进程,然后在关注事件中将用户所说的内容提交到我的应用程序的提交表单中:

            recognition.onend = function(){}

问题是onend到达需要很长时间。

我尝试使用onspeechendonsoundend,但它会在onend的同一时刻触发。

当这个人完成谈话时,我需要一些能够正常发声的东西。

有人可以推荐我在这个JS SDK或解决方案中缺少的设置吗?

谢谢!

1 个答案:

答案 0 :(得分:3)

如果您不想等到浏览器检测到用户停止通话,由于背景噪音可能需要几秒钟,您可以尝试使用部分(中间)结果:

var recognition = new webkitSpeechRecognition();
recognition.continuous = true;
recognition.interimResults = true;

recognition.onresult = function(event) {
    var interim_transcript = '';
    for (var i = event.resultIndex; i < event.results.length; ++i) {
      if (event.results[i].isFinal) {
        final_transcript += event.results[i][0].transcript;
      } else {
        interim_transcript += event.results[i][0].transcript;
      }
    }

     document.querySelector('input').value = interim_transcript;  
  };

document.querySelector('button').addEventListener('click', function(){
    recognition.start();  
});

http://jsfiddle.net/2o1xjtud/

这是https://github.com/GoogleChrome/webplatform-samples/blob/master/webspeechdemo/webspeechdemo.html

的摘录