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)
当我尝试与 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,他们以某种方式设法进行连续识别,但我在他们的源代码中找不到任何内容。 ..
| 归档时间: |
|
| 查看次数: |
5261 次 |
| 最近记录: |