Javascript Android Chrome上的WebKit语音识别

Javascript Android Chrome上的WebKit语音识别,javascript,android,google-chrome,webkitspeechrecognition,Javascript,Android,Google Chrome,Webkitspeechrecognition,我使用的是一个简单的语音到文本检测和webkitSpeechRecognition。 这段代码在Windows桌面上非常有效。 但是-在Android Chrome浏览器上-开始检测时,Android状态栏上的麦克风仅显示1或2秒。如果没有语音活动-将关闭并停止语音识别。如果我在单击“开始”后说得很快,它将保持打开状态。 有没有办法让Android麦克风随时可用 if ('webkitSpeechRecognition' in window) { var reco

我使用的是一个简单的语音到文本检测和
webkitSpeechRecognition
。 这段代码在Windows桌面上非常有效。 但是-在Android Chrome浏览器上-开始检测时,Android状态栏上的麦克风仅显示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));

          };

      }
if('webkitSpeechRecognition'在窗口中){
var recognition=new-webkitSpeechRecognition();
识别。连续=正确;
recognition.interimResults=true;
recognition.onstart=函数(){
$(“#状态”).html(“状态:录制…”);
识别=正确;
};
recognition.onerror=功能(事件){
警报(事件.错误);
};
recognition.onend=函数(){
识别=错误;
};
recognition.onresult=函数(事件){
var临时_转录本=“”;
对于(var i=event.resultIndex;i

我自己也在寻找解决方案,因为我正在尝试与WebVR建立免提交互

至少只发出一次嘟嘟声,但经过一点测试后,我注意到,每次单击/点击时,识别的“嘟嘟声”都会再次触发

一个老资源给了我很大的希望,annyang()可能会起作用:

但在这里,我想它也只是在打电话

recognition.onend = function() {
    console.info("voice recognition ended, restarting...");
    recognition.start();
}
在recognition.oned回调中。所以在安卓chrome上,你可能每隔一秒钟就会听到识别蜂鸣声

最后,MDN并没有真正说明是否可以在android chrome()上进行连续识别,但我看到的每个示例都没有在android上提供连续模式(至少在CyanogenMod棒棒糖上)

//编辑如果您查看了,它们会以某种方式获得连续识别,但我在它们的源代码中找不到任何内容…

请尝试设置:

recognition.continuous = false
不保证,但这对我在Galaxy S7上运行Chrome很有效