Android Chrome 上的 webkitSpeechRecognition

Kob*_*uek 12 javascript android google-chrome webkitspeechrecognition

我正在使用一个简单的语音到文本检测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));

          };

      }
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

Man*_*raf 6

当我尝试与 WebVR 建立免提交互时,我自己寻找解决方案。

https://codepen.io/bryik/pen/mErOOR?editors=0010至少只发出一次蜂鸣声,但经过一些测试后我注意到,每次点击/点击时都会再次触发识别的“蜂鸣声”。

一个较旧的资源给了我很好的希望,annyang(https://github.com/TalAter/annyang)可能会起作用:

https://github.com/cvan/webvr-holodeck/issues/22 但在这里我想它也只是调用

recognition.onend = function() {
    console.info("voice recognition ended, restarting...");
    recognition.start();
}
Run Code Online (Sandbox Code Playgroud)

在 recognize.onend 回调中。所以在 android chrome 上你可能会遇到每隔一秒就会发出识别蜂鸣声......

最后,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,他们以某种方式设法进行连续识别,但我在他们的源代码中找不到任何内容。 ..