项目简介
远程语音卫星,使用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)