远程语音卫星Wyoming Satellite

项目简介

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

欢迎分享

发表评论