14

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

          };

      }

在此处输入图像描述

4

2 回答 2

4

当我尝试与 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();
}

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

于 2017-03-14T15:59:12.230 回答
-1

尝试设置:

recognition.continuous = false

不能保证,但这对我在 Galaxy S7 上的 Chrome 上运行很有用

于 2021-01-07T22:01:33.033 回答