禁用通过Web语音API进行识别的污言秽语过滤器

Disable profanity filter for recognition via Web Speech API

本文关键字:识别 污言秽语 过滤器 API Web 语音      更新时间:2023-09-26

我正在使用webkitSpeechRecognition实例访问Chrome中的原生语音识别。问题是,Web Speech API规范没有涵盖亵渎过滤的主题,但默认情况下,Google的Speech API启用了亵渎过滤。这不是一个大问题-幸运的是,API的Web语音默认过滤器显示第一个字母,并将其余字母隐藏在星号下。然而,在某些情况下,一个以某个字母开头并有一定长度的单词是从不同的脏话中派生出来的,猜测这个人说了什么可能不会给出准确的结果。

这里的问题是:如何控制Chrome中API网络语音的污言秽语过滤级别?JavaScript实例不公开任何额外的(特定于平台的)变量。实际的Speech API具有pfilter URL参数,该参数可以设置为0(无筛选)、1(筛选并用####替换单词)或2(筛选并使用星号替换除第一个字母以外的所有字母)。这个参数也为Chrome扩展开发人员公开,它位于SpeechInputStartOptions中(但它是一个布尔变量)。

附言:SpeechInputStartOptions文档介绍了默认Chrome过滤设置。我找不到它的设置,也找不到关于它所在位置的任何信息。尽管理想情况下,该解决方案不应该让用户做什么,但找到Chrome中的设置仍然是一个突破。

目前,Chrome不允许禁用webkitSpeechRecognition上的脏话过滤器。

我能够找到这2个错误:

  1. 在WICG 上提交的错误

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

Chromium源代码似乎有一个名为filter_profanities的选项,但对于web版本,它似乎默认为true。

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

我能找到的最有效的解决方案是谷歌的语音到文本云解决方案,该解决方案允许删除脏话过滤器。