项目简介
远程语音卫星,使用Wyoming协议,能够进行本地唤醒词检测和音频增强,与智能家居系统无缝对接
要求
-
Python 3.7+(在 3.9+ 上测试)
-
麦克风
安装
安装必要的系统依赖项:
sudo apt-get install python3-venv python3-pip
然后运行安装脚本:
script/setup
下面的示例使用alsa-utils来录制和播放音频:
sudo apt-get install alsa-utils
远程唤醒词检测
通过远程唤醒词检测运行卫星:
cd wyoming-satellite/script/run \--name 'my satellite' \--uri 'tcp://0.0.0.0:10700' \--mic-command 'arecord -r 16000 -c 1 -f S16_LE -t raw' \--snd-command 'aplay -r 22050 -c 1 -f S16_LE -t raw'
这将使用默认的麦克风和播放设备。
如果您需要使用不同的麦克风,请使用arecord -D <DEVICE> ... (使用arecord -L列出它们并更喜欢plughw:设备)。如果您需要使用不同的播放设备,请使用aplay -D <DEVICE> ... (使用aplay -L列出它们并首选plughw: devices)。
添加--debug以打印附加日志。
在家庭助理设置的“设备和服务”页面中,您应该会看到自动发现的卫星。如果没有,请单击“添加集成”,选择“怀俄明协议”,然后输入卫星的 IP 地址(端口 10700)。
音频将连续传输到服务器,其中将进行唤醒词检测等。
语音活动检测
卫星可以等到检测到语音,而不是总是将音频流传输到家庭助理。
注意:这不适用于 Raspberry Pi 操作系统的 32 位版本。
安装 silero VAD 的依赖项:
.venv/bin/pip3 install 'pysilero-vad==1.0.0'
在启用 VAD 的情况下运行卫星:
script/run \... \--vad
现在,只有检测到语音后,音频才会开始流式传输。
本地唤醒词检测
安装唤醒词检测服务,例如wyoming-openwakeword并启动它:
cd wyoming-openwakeword/script/run \--uri 'tcp://0.0.0.0:10400' \--preload-model 'ok_nabu'
添加--debug以打印附加日志。请参阅--help了解更多信息。
Included wake words are: 包括的唤醒词有:
-
ok_nabu -
hey_jarvis -
alexa -
hey_mycroft -
hey_rhasspy
社区训练的唤醒词也可用,并且可以包含在--custom-model-dir <DIR>中,其中<DIR>包含.tflite文件。
接下来,使用一些附加参数启动卫星:
cd wyoming-satellite/script/run \--name 'my satellite' \--uri 'tcp://0.0.0.0:10700' \--mic-command 'arecord -r 16000 -c 1 -f S16_LE -t raw' \--snd-command 'aplay -r 22050 -c 1 -f S16_LE -t raw' \--wake-uri 'tcp://127.0.0.1:10400' \--wake-word-name 'ok_nabu'
仅在检测到唤醒词后,音频才会传输到服务器。
一旦检测到唤醒词,在几秒钟内(称为“不应期”)就无法再次检测到它。你可以改变这个 --wake-refractory-seconds <SECONDS> 。
请注意,当连接到 openwakeword 的本地实例时, --vad是不必要的。
项目链接
https://github.com/rhasspy/wyoming-satellite
扫码加入技术交流群,备注「开发语言-城市-昵称」
(文:GitHubStore)