如何检测 webkitSpeechRecognition 是否真的在浏览器中工作

问题描述 投票:0回答:3

Edge 声称支持 webkitSpeechRecognition,但它不起作用(讨论 here,在用于测试的网站上不起作用,例如 mozilla one,出现错误“识别时发生错误:不支持语言“尽管我的用户界面是美式英语。

我如何检测是否真的支持 webkitSpeechRecognition?我试图通过查看用户代理来过滤掉 Edge,但它显示为 Chrome,而且我更愿意只使用功能检测而不是查看用户代理。我想检查这个 without 请求麦克风许可(如果我确实请求麦克风许可,我必须等待他们接受,然后看到 language-not-supported 错误)。有没有一种简单的方法来检查这个,类似于只检查

window["webkitSpeechRecognition"]
的值(这是在 Edge 中定义的,尽管没有工作)?

javascript typescript microsoft-edge webspeech-api
3个回答
1
投票

如果你想检查对webkitSpeechRecognition的支持,那么你可以参考下面的JS代码示例。

if ('SpeechRecognition' in window || 'webkitSpeechRecognition' in window) 
{
  console.log("speech recognition API supported");
} 
else 
{
  console.log("speech recognition API not supported")
}

MS Edge 88.0.705.56 中的输出:

但是,如果您直接尝试使用 webkitSpeechRecognition 进行测试,那么它将不起作用。

看起来这个功能目前正在开发中,要使用它,我们需要通过传递命令行参数来启用它。

我建议你参考下面的步骤。

  1. 创建 Edge 铬浏览器的快捷方式。
  2. 右键单击快捷方式文件并转到Properties.
  3. Shortcut选项卡下,在Target文本框中,在
    --enable-features=msSpeechRecognition
    路径后添加
    msedge.exe
    。确保在路径和命令行参数之间添加 1 个空格。

它应该如下所示。

  1. 单击OK按钮关闭属性窗口。
  2. 通过快捷方式启动 Edge 浏览器并访问 SpeechRecognition 的任何示例代码示例。在这里,我正在用this example.
  3. 进行测试

MS Edge 88.0.705.56 中的输出:


0
投票

此外,检查错误很有用(如上例源代码所示,见下文,https://www.google.com/intl/en/chrome/demos/speech.html):例如如果不在 https 网站上,音频可能会被禁用。

  recognition.onerror = function(event) {
    if (event.error == 'no-speech') {
      start_img.src = '/intl/en/chrome/assets/common/images/content/mic.gif';
      showInfo('info_no_speech');
      ignore_onend = true;
    }
    if (event.error == 'audio-capture') {
      start_img.src = '/intl/en/chrome/assets/common/images/content/mic.gif';
      showInfo('info_no_microphone');
      ignore_onend = true;
    }
    if (event.error == 'not-allowed') {
      if (event.timeStamp - start_timestamp < 100) {
        showInfo('info_blocked');
      } else {
        showInfo('info_denied');
      }
      ignore_onend = true;
    }
  };

0
投票

它在 113.0.1745.0(官方构建)Canary(arm64)中不工作

--enable-features=msSpeechRecognition
,会在识别错误中抛出
language-not-supported
错误

想办法启用~

© www.soinside.com 2019 - 2024. All rights reserved.