21

我正在使用webkitSpeechRecognition实例来访问 Chrome 中的本机语音识别。问题在于Web Speech API 规范没有涵盖脏话过滤的主题,但 Google 的 Speech API 默认启用了脏话过滤器。这不是一个大问题 - 幸运的是,Web Speech API 的默认过滤器显示第一个字母并将其余字母隐藏在星号下。但是,在某些情况下,以某个字母开头并具有一定长度的单词源自不同的粗俗单词,并且猜测该人所说的内容可能无法给出准确的结果。

这里的问题是:如何控制 Chrome 中 Web Speech API 的脏话过滤级别?JavaScript 实例不会公开任何额外的(特定于平台的)变量来使用。实际语音 API 的pfilterURL 参数可以设置为 0(不过滤)、1(过滤并用#### 替换单词)或 2(过滤并用星号替换除第一个字母之外的所有字母)。这个参数也暴露给 Chrome 扩展开发者,它位于SpeechInputStartOptions(然而它是一个布尔变量)。

PS SpeechInputStartOptions 文档讨论了默认的 Chrome 过滤设置。我找不到此设置或有关它所在位置的任何信息。即使理想情况下,该解决方案不应该涉及用户必须做某事,但为其找到 Chrome 中的设置仍然是一个突破。

4

1 回答 1

9

目前,Chrome不允许禁用webkitSpeechRecognition.

我能够找到这两个错误:

  1. 在 WICG 上提交的错误

  2. Chromium 上的错误以支持禁用亵渎过滤器

Chromium 源代码似乎确实调用了该选项,filter_profanities但似乎将其默认为 web 版本的 true。

(如果您有兴趣,请链接到定义的 speech_recognition_session_config.h 的 Chromium 源代码filter_profanities

我能找到的最接近的工作解决方案是谷歌的语音到文本云解决方案,它确实允许删除亵渎过滤器。

于 2020-08-11T11:06:34.400 回答