禁用亵渎过滤器以通过Web Speech API进行识别

时间:2015-02-08 21:33:30

标签: javascript google-chrome webspeech-api

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

这里的问题是:如何控制Chrome中Web Speech API的亵渎过滤级别? JavaScript实例不会公开任何其他(特定于平台的)变量。实际的Speech API具有pfilter URL参数,可以设置为0(无过滤),1(使用####过滤和替换单词)或2(使用星号过滤和替换除第一个字母以外的所有字符) 。 Chrome扩展程序开发人员也公开了此参数,它位于SpeechInputStartOptions(但它是一个布尔变量)。

P.S。 SpeechInputStartOptions documentation讨论默认Chrome过滤设置。我无法找到此设置或有关它所在位置的任何信息。即使理想情况下,解决方案也不应该让用户不得不做某事,找到适合它的设置仍然是一个突破。

1 个答案:

答案 0 :(得分:8)

当前,Chrome浏览器不允许不允许在webkitSpeechRecognition上禁用亵渎过滤器。

我能够找到这两个bug:

  1. bug filed on WICG

  2. bug on Chromium to support disabling profanity filter

Chromium源代码似乎确实具有名为filter_profanities的选项,但似乎对于Web版本默认为true。

(如果您有兴趣,请链接到定义filter_profanities的{​​{3}})

我能找到的最有效的解决方案是Chromium source for speech_recognition_session_config.h云解决方案,确实允许删除亵渎过滤器。