检测简单的语音命令

检测简单的语音命令

我想从麦克风中检测简单的单词或短语,并根据这些短语执行操作。我研究过 Python 库和 Google 文本转语音,但这些看起来太过分了1。我不需要能够识别英语中每个音素或单词的东西,我只想检测某些短语,例如“去睡觉”,甚至只是“睡眠”以使我的计算机进入睡眠状态。

我尝试搜索这个,但大多数情况下我只找到听写程序和 10 年前的帖子。

1. 例如我偶然发现本文依赖于 Web 服务或安装 Sphinx 等重型设备。我不能只训练一个模型来响应某些短语而不是每个可能的短语吗?

答案1

这将是一个自学机器学习/神经网络的有趣项目,但您可能低估了它的难度。您不希望它在您说“羊”、“雨夹雪”或“陡峭”(或者它从电视中接收语音)时关闭系统。 “Alexa”并不是随机选择的——“ksssa”中的长齿音是故意在高频中与众不同的。 Alexa 的存在只是为了发出新采样事件开始的信号——处理连续语音是一个额外的问题。

通常,您将语音样本通过 FFT 来获取频谱图像,根据峰值音量进行标准化,并以精心选择的频率对其进行采样。计算机无法处理原始波形,除非首先对它们进行合理的归一化。

然后,您需要每个单词或短语的许多示例,以及其所需训练范围之外的声音的示例:如果它没有“以上都不是”的训练类别,它将猜测“最近的”。考虑一下一些拼写纠正列表是多么无用,即使它们从文本输入。

只针对自己的声音进行训练会容易得多。商业系统还需要过滤掉地区口音、语气(例如男/女)和背景噪音(包括非线性麦克风响应)。

即使您可以说“睡眠”并让应用程序显示诸如“cmd 19:72%匹配:睡眠”之类的内容,您也必须将其用作一种菜单条目来发出实现该功能所需的任何命令或服务。相应的动作。

相关内容