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

标签 javascript typescript microsoft-edge webspeech-api

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

我如何检测是否真的支持 webkitSpeechRecognition?我试图通过查看用户代理来过滤掉 Edge,但它显示为 Chrome,而且我更愿意只使用功能检测而不是查看用户代理。我想在请求麦克风许可的情况下检查这个(如果我确实请求了麦克风许可,我必须等待他们接受,然后看到语言不支持的错误)。有没有一种简单的方法来检查这一点,类似于仅检查 window["webkitSpeechRecognition"] 的值(在 Edge 中定义,尽管它不起作用)?

最佳答案

如果你想检查对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 中的输出:

enter image description here

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

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

我建议您引用以下步骤。

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

它应该如下所示。

enter image description here

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

MS Edge 88.0.705.56 中的输出:

enter image description here

关于javascript - 如何检测 webkitSpeechRecognition 是否真的在浏览器中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66000711/

相关文章:

angular - 单元测试 : Mocking service that returns observables to return subjects in order to test change of values over time causes TS to throw TS2339

java - 下载文件时文件名问题

css - 有没有办法让浏览器在设备模式下减少 "width"以及 "device-width"

javascript - 如何避免在 Redux 的 mapStateToProps 中使用 && 逻辑运算符

javascript - 如何通过扩展为 javascript 代码提供额外的功能?

javascript - 如何使用 tensorflow.js 以 Angular 正确上传预训练模型?

visual-studio-2012 - 如何在 Windows 10 上的 Visual Studio 2012 中添加 Edge 作为我的调试浏览器?

javascript - React-Redux 更改值的状态不会反射(reflect)在更改上

javascript - “nodeunit”不被识别为内部或外部命令,

typescript - NestJS 无法解析 JWT_MODULE_OPTIONS 的依赖