javascript - 禁用脏话过滤器以通过 Web Speech API 进行识别

标签 javascript google-chrome webspeech-api

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

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

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

最佳答案

目前,Chrome 支持 不是 允许禁用 webkitSpeechRecognition 上的脏话过滤器.
我能够找到这两个错误:

  • bug filed on WICG
  • bug on Chromium to support disabling profanity filter

  • Chromium 源代码似乎确实有一个名为 filter_profanities 的选项。但似乎将其默认为网络版本的 true 。
    (如果您有兴趣,请链接到定义 filter_profanitiesChromium source for speech_recognition_session_config.h)
    我能找到的最接近的工作解决方案是 Google's Speech to text云解决方案 允许删除脏话过滤器。

    关于javascript - 禁用脏话过滤器以通过 Web Speech API 进行识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28399616/

    相关文章:

    javascript - 取消 Javascript 间隔警报

    javascript - 使用 ExpressJS 保护静态文件服务器

    javascript - 文件下载 - 如何控制文件名并尊重用户偏好?

    javascript - 这个简单的 chrome 扩展有什么问题?

    google-chrome - Web Speech API Grammar 是否向开发人员公开?

    javascript - webkitSpeechGrammarList() 真的有效吗?

    javascript - 网络语音 api - 语音合成 .lang 属性不起作用

    javascript - 如何通过绑定(bind)名称加载类限制 Angular 指令?

    javascript - 嵌套的 forEach 循环不起作用

    javascript - 'innerHTML'和 'appendChild'的区别