我在Chrome上使用谷歌的Javascript SDK语音识别(webkitSpeechRecognition),我自动打开recognition
进程,然后在关注事件中将用户所说的内容提交到我的应用程序的提交表单中:
recognition.onend = function(){}
问题是onend
到达需要很长时间。
我尝试使用onspeechend
或onsoundend
,但它会在onend
的同一时刻触发。
当这个人完成谈话时,我需要一些能够正常发声的东西。
有人可以推荐我在这个JS SDK或解决方案中缺少的设置吗?
谢谢!
答案 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();
});
这是https://github.com/GoogleChrome/webplatform-samples/blob/master/webspeechdemo/webspeechdemo.html
的摘录