使用Python进行热词检测
我们大多数人都听说过 Alexa、Ok google 或 Hey Siri,并且可能已经考虑过使用您最喜欢的名字(例如Hey Thanos)创建自己的虚拟个人助理! .因此,这是最简单的方法,无需弄脏您的手。
要求:
- 带有工作麦克风的 Linux 电脑(我已经在 Arch Linux 上测试过)。
- 使用您的包管理器安装 python3、pyaudio、sox(以及用于 Arch Linux 的 swig)。:
sudo apt-get update
sudo apt-get install python3 python3-pip
sudo apt-get install python-pyaudio python3-pyaudio sox
- 从这里获取雪童包。该文件适用于所有基于 Linux 的操作系统。
Snowboy 还支持所有版本的 Raspberry Pi(1、2、3 和 Zero)。支持的操作系统是 Raspbian 8.0。 - 现在,当您使用名为 usr.Now 的文件夹解压缩时,导航到 usr/lib/python3.7/site-packages。
- 使用文件管理器或 cp -r 命令将两个文件夹(snowboy 和 snowboy-1.2.0b1-py3.7.egg-info)复制到 /usr/lib/python3.7/site-packages。
cd Downloads
tar -xf python-snowboy-1.3.0-1-x86_64.pkg.tar.xz
cd usr/lib/python3.7/site-packages
sudo cp -r snowboy /usr/lib/python3.7/site-packages
sudo cp -r snowboy-1.2.0b1-py3.7.egg-info
现在您可以检查snowboy 是否有效。启动您的终端并键入Python以获取Python shell。
Python3
from snowboy import snowboydecode
Python3
from snowboy import snowboydecoder
def detected_callback():
print ("hotword detected")
# do your task here or call other program.
detector = snowboydecoder.HotwordDetector("hotword.pmdl",
sensitivity = 0.5, audio_gain = 1)
detector.start(detected_callback)
如果这不会引发导入错误,那么您就可以更进一步了。
现在去snowboy网站并登录。登录后,您将找到创建 Hotword 选项并按照说明执行更多操作。完成整个过程后,下载生成的 yourhotword.pmdl 文件。
将 hotword.pmdl 文件复制到您要创建程序的目录。
Python3
from snowboy import snowboydecoder
def detected_callback():
print ("hotword detected")
# do your task here or call other program.
detector = snowboydecoder.HotwordDetector("hotword.pmdl",
sensitivity = 0.5, audio_gain = 1)
detector.start(detected_callback)
输出:
Voice Input : hey thanos
Output:
INFO:snowboy:Keyword 1 detected at time: 2019-05-09 21:55:16
hotword detected
此代码将继续运行,直到您使用Ctrl+C中断它或关闭终端。由于此代码离线工作(并且不连接到互联网),因此它不会流式传输您的声音,因此不存在隐私风险。 hotword.pmdl 文件仅包含您的声音模型。因此,上述程序仅适用于您的声音。
您可以将此程序实施到另一个程序以执行由语音控制的任务。