树莓派智能音响项目——snowboy语音唤醒初探

snowboy 是一个开源的、轻量级语音唤醒引擎,可以通过它很轻松地创建属于自己的类似“hey, Siri” 的唤醒词。目前的百度的语音唤醒实际上也是使用的snowboy引擎。对于snowboy的介绍网上可谓多如牛毛,在此不再赘述。本文的目的在于记录初次在树莓派3b+上配置snowboy实现语音唤醒的过程和遇到的问题。
测试成功
主要参考:

树莓派使用 snowboy 配置语音唤醒

按照该作者的流程基本可以实现语音唤醒,值得注意的是:

  1. 在选取麦克风时,除了usb免驱动,最好使用麦克风阵列,这样听的更远、更清楚。
  2. 官方源代码使用 Python3 测试有报错,经测试需修改 snowboy/examples/Python3 目录下的 snowboydecoder.py 文件。
    将第 5 行代码 from * import snowboydetect 改为 import snowboydetect 即可直接运行。
  3. 若在测试中遇到如下警告:

ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition ‘cards.bcm2835_alsa.pcm.front.0:CARD=0’

ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM bluealsa
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock

上面一些警报,ALSA部分是没有找到声卡,下面是没有找打jack server。这对音频采集没有影响,若要消除警告,可参考:Pyaudio报警消息去除

  1. 在设置自己的唤醒词时,可将包含自定义唤醒词的音频文件上传至 snowboy官网(需要登录),以训练生成自己喜欢的语音模型。需要上传的音频文件数量为 3 个.wav 格式。在利用Chromium浏览器尝试直接在线录制,也出现了bug。所以建议使用上传本地音频的方法。树莓派智能音响项目——snowboy语音唤醒初探_第1张图片
    需要指出的是,同snowboy官方文档中指出的那样,树莓派上或者其他板子上接的麦克风可能和 PC 上的麦克风的声音畸变差异非常大。为了增强使用效果,我们建议直接使用麦克风在一路径下录制音频,方法:
    树莓派智能音响项目——snowboy语音唤醒初探_第2张图片

5.对于从源代码中复制自己的项目目录,可以参考:
树莓派智能音响项目——snowboy语音唤醒初探_第3张图片

  1. 更复杂的应用形式(如控制 LED 小灯等),具体示例代码可参考官方文档。

你可能感兴趣的:(树莓派智能音响项目——snowboy语音唤醒初探)