(对于这个bug报告,####
表示我自己选择的审查制度,因为我不知道该项目关于脏话的政策。****
表示我的赫伯特审查词汇。)
在测试技能时,我意识到在解析输入的过程中,它将检测到的脏话转换成了星号,例如查询 "####
你" 被解释为 "****
你"。这可能是一个合理的默认设置,但我想播放包含明确标题的专辑,而这个功能破坏了这一功能。
这似乎影响到了核心功能,而不仅仅是第三方技能:
重现步骤:
- 在唤醒词后说一个脏话。例如,“嘿,Mycroft,
####
你。”(如果你正在搜索歌曲标题,你可以说类似的话:“嘿,Mycroft,播放####
the police by NWA”)
观察到的行为:
Mycroft 将报告并解释为“####
你”的“****
你”。
预期行为:
Mycroft 不审查脏话,因为它们对于播放具有明确标题的歌曲是必要的。此外,这应该是一个可配置和记录的行为。
16:50:56.682 - mycroft.client.speech.listener:transcribe:144 - DEBUG - STT: f*** you
16:50:56.682 - __main__:handle_utterance:55 - INFO - Utterance: [u'f*** you']
9条答案
按热度按时间vu8f3i0k1#
(尽管我对该项目和其非常规性质的陌生,但这实际上是一个真正的错误。)
5q4ezhmt2#
我也遇到过这个问题。将其作为可选选项而不是默认设置会更好。
n8ghc7c13#
上周对此进行了讨论,我认为结论是进行更改以允许关闭此功能。@matheuslima,您对此有何评论?
j8yoct9x4#
我来自泽西岛,而且经常发誓,这对我来说也是一个问题。
u0njafvf5#
关于这个问题有什么进展吗?审查制度真的很烦人。
jqjz2hbq6#
嘿,我当时不在现场,所以没有参与那些讨论,但实际上我们使用的是谷歌的STT服务来进行审查。我们需要看看是否可以设置一个标志来关闭它。如果有人知道,请留言。
dgiusagp7#
从对这个问题的简要了解中,我得出以下结论:
profanity_filter
标志,该标志传递给API。IBMWatson
STT类,这行代码被设置为false
,但对于GoogleSTT
类,这个参数似乎没有被设置。GoogleSTT
类中,这个参数似乎没有被设置,我认为这是这个问题的根本原因。这些是docs for Google's STT - 这个参数被称为ProfanityFilter
。GoogleSTT
类中将profanity_filter
设置为false
。我认为我们应该让用户能够在每个设备的基础上设置这个参数,就像唤醒词、STT引擎和TTS声音可以在每个设备的基础上设置一样:https://account.mycroft.ai/devices/作为一个解决方法,我尝试在
mycroft.conf
中实现一个新的self.config
变量:然后这需要在
STT
类中得到支持,例如这是我在STT基类中尝试的,但它不起作用;(此时我的麦克风在使用Mycroft时出于某种奇怪的原因停止工作,无论我做什么都无法再次拾起麦克风,所以我无法继续测试)
这不起作用 -
ProfanityFilter
仍然设置为True
,而***
仍然存在。但是,这可能是其他想要解决这个问题的人的一个线索。xqnpmsa88#
我测试了谷歌的STT模块,而脏话过滤器似乎默认是关闭的,但需要一个谷歌云账户才能使用。
Mycroft后端使用的API(这不是谷歌云语音识别服务,而是谷歌较早的另一个API)总是启用它,如果我没记错的话,不允许关闭它。
不过,设置一个配置项可能是个好主意。在我看来,默认应该是关闭的。
5anewei69#
这个问题可能应该移动到selene仓库,因为那里是STT发生的地方。
这个设置不受语音识别软件包的支持,但如果你直接使用API,可以启用/禁用它。
要禁用脏话过滤器,请参见https://github.com/OpenVoiceOS/ovos-stt-plugin-chromium,这是我们在ovos本地后端中使用的(不需要mycroft插件)。