我使用一个简单的语音来使用webkitSpeechRecognition来检测文本。这段代码在上工作得很好。但是-在Android Chrome浏览器上,当启动检测时,安卓状态栏上的麦克风只显示1到2秒。如果没有语音活动-,则关闭并停止语音识别。如果我在点击“开始”后说得很快,它就会继续。有什么想法,如何使Android麦克风在任何时候可用?
if ('webkitSpeechRecognition' in window) {
var recognition = new webkitSpeechRecognition();
recognition.continuous = true;
recognition.interimResults = true;
recognition.onstart = function () {
$("#status").html("Status: Recording...");
recognizing = true;
};
recognition.onerror = function (event) {
alert(event.error);
};
recognition.onend = function() {
recognizing = false;
};
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;
}
}
final_transcript = capitalize(final_transcript);
$("#final_span").html(linebreak(final_transcript));
$("#interim_span").html(linebreak(interim_transcript));
};
}

发布于 2017-03-14 15:59:12
当我试图与WebVR建立一个不需要人手的交互时,我自己就在寻找解决方案。
https://codepen.io/bryik/pen/mErOOR?editors=0010至少只发出一次嘟嘟声,但经过一些测试后,我注意到,每次点击/点击都会触发识别的“嘟嘟”。
一个较老的资源给了我很好的希望,安阳(https://github.com/TalAter/annyang)可能会起作用:
https://github.com/cvan/webvr-holodeck/issues/22,但在这里我想它也只是打电话
recognition.onend = function() {
console.info("voice recognition ended, restarting...");
recognition.start();
}在recognition.onend回调中。所以在安卓铬上你可能每隔一秒就会听到一声识别声.
最后,MDN并没有真正说明是否有可能在android chrome (https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition)上持续识别,但我看到的每个例子都没有在android上提供连续模式(至少在CyanogenMod Lollipop上是这样)。
//编辑--如果你看一下https://www.microsoft.com/cognitive-services/en-us/speech-api,它们就能得到持续的识别,但我在它们的源代码中找不到任何东西.
发布于 2021-01-07 22:01:33
试着设置:
recognition.continuous = false不能保证,但这对我在GalaxyS7上运行Chrome很有效
https://stackoverflow.com/questions/42134899
复制相似问题