关于SO的第一个问题,希望它不会离左栏太远。
动机:我正在开发Benoit的谷歌2ubuntu语音控制工具。
目前,为了让它工作,用户必须按下热键来调用程序,然后才能开始说出命令。我实现了一个热词模式,后台进程(bash脚本,真的)在后台连续运行,监听超过预设阈值的声音,录制2秒,然后将录制发送到谷歌的语音转文本API进行转换。它获取返回的结果,然后检查hotword,并根据该hotword启动实际程序。
我正在寻找谷歌API可靠识别的热门词API返回它认为你说了什么的文本表示,以及一个信心级别,指示它的猜测和你的录音匹配程度。
使用此功能,我们可以比较不同热词的检测率:例如,短语"OK Google"(毫不奇怪)得到了很好的认可,经常返回之类的结果
"hypotheses": {"utterance": "Okay Google", "confidence": 0.95967352}
更通用的"好电脑"并没有被认为是可靠的,但在0.85的平均置信水平下仍然可以。我测试过的一些更晦涩的短语包括"好吧,贾维斯"(如果我们要制作一台声控计算机……),不幸的是,它在一半的时间里都是高置信度的,而在其他情况下则完全没有命中。另一方面,"Okay Linux"根本无法识别。
问题:有人知道谷歌API可以可靠地识别哪种短语吗?
好的热门词的例子是一些短语,这些短语通常不会出现在日常演讲中(否则我们每次谈话都会启动程序),但它们足够"特殊",即使是愚蠢的电脑也能识别。
最好使用离线关键字检测器进行侦听,如最近在CMUSphinx中实现的on。因此,无需将所有音频流式传输到谷歌,无需保持互联网连接,响应速度很快。键盘语言是可配置的,检测阈值可以调整。您的竞争对手已经将其集成到他们的助手中,例如在Pocketsphinx Android Demo中。也可以使用python api中的关键字识别。