树莓派离线语音唤醒snowboy

语音唤醒

为了节约树莓派资源,延长使用时间,考虑使用语音唤醒服务。初步有两种解决方案,一个是使用一直在用的科大讯飞语音服务,一个是使用snowboy语音唤醒引擎,来分析比较一下两者的优劣。

科大讯飞

重新进行SDK的申请,值得注意的是,语音唤醒词和SDK是捆绑的,要是想要更换语音唤醒词的话必须要重新下载SDK文件。
树莓派离线语音唤醒snowboy_第1张图片这次我下载的SDK文件和上次的有所不同,选择了离线命令词识别,离线语音合成以及语音唤醒服务,探索想要达成的服务功能是进行语音唤醒然后命令词控制机器狗作不同的动作并且作出语音反馈。

树莓派离线语音唤醒snowboy_第2张图片不过科大讯飞的语音唤醒服务是需要额外进行购买的。
在这里插入图片描述在这里插入图片描述另外,科大讯飞给出的语音唤醒demo是通过判断录制的音频实现的,且不能做到实时唤醒。网上有个教程自己编写结构实现了实时语音唤醒,不过感觉有点复杂。

snowboy

snowboy 是一个开源的、轻量级语音唤醒引擎,可以通过它很轻松地创建属于自己的类似“hey, Siri” 的唤醒词。它的主要特性如下:

  • 高度可定制性。可自由创建和训练属于自己的唤醒词
  • 始终倾听。可离线使用,无需联网,保护隐私。精确度高,低延迟
  • 轻量可嵌入。耗费资源非常低(单核 700MHz 树莓派只占用 10% CPU)
  • 开源跨平台。开放源代码,支持多种操作系统和硬件平台,可绑定多种编程语言
    参考教程。
    树莓派离线语音唤醒snowboy_第3张图片
    需要升级swig树莓派离线语音唤醒snowboy_第4张图片
    确实会有报错
    树莓派离线语音唤醒snowboy_第5张图片
    按照教程进行修改
    官方源代码使用 Python3 测试有报错,经测试需修改 snowboy/examples/Python3 目录下的 snowboydecoder.py 文件。
    将第 5 行代码 from * import snowboydetect 改为 import snowboydetect 即可直接运行。

运行之后出现新的问题:
树莓派离线语音唤醒snowboy_第6张图片问题原因:
树莓派离线语音唤醒snowboy_第7张图片还是有关声卡的部分。

使用离线唤醒词snowboy的时候的音频录制有问题

应该是没有进行配置,书梅派默认的声卡是内部的无录制文件功能的声卡。参考链接
单独使用一个usb麦克风进行录制的话总是有小问题,考虑买回声卡之后再进行下一步的探索,先研究一下snowboy的代码结构和移植关系。

问题解决

声卡问题再购买外置声卡禁用内部声卡之后成功解决,经过实验可以成功唤醒snowboy。

修改唤醒关键词

原教程说的是上官网进行音频文件上传然后生成参数文件,不过,官网链接已经重定向无法登陆,所以使用以下办法。注意要更新源码。
树莓派离线语音唤醒snowboy_第8张图片遇到问题:
找不到模块scipy.io,单独下载也不成功。
树莓派离线语音唤醒snowboy_第9张图片
网站进不去:
树莓派离线语音唤醒snowboy_第10张图片

你可能感兴趣的:(树莓派离线语音唤醒snowboy)