基于悟空机器人自定义唤醒词运行演示
Nov. 17, 2022, 12:17 p.m.
read: 1972
之前在逛V站的时候看到了这个帖子,发现了一个由Python写成的一个机器人(或者是智能音箱)项目:wukong-robot
wukong-robot 是一个简单、灵活、优雅的中文语音对话机器人/智能音箱项目,目的是让中国的 Maker 和 Haker 们也能快速打造个性化的智能音箱。wukong-robot 还可能是第一个开源的脑机唤醒智能音箱。
——摘自Github项目主页
这个项目是由腾讯的潘伟洲大佬开发的,由于是Python写的,代码的可读性很高,修改起来也方便,除了运行效率低了亿点点,几乎没有其他缺点,毕竟——人生苦短,我用Python。
我之前在Github关注的另一个项目Homo,可惜作者已经弃坑不再更新了。
言归正传,wukong-robot这个项目融合了 唤醒(KWS),自动语音识别(ASR),语音合成(TTS),自然语言理解(NLP)等语音语言相关的功能,以及集成了智能家具控制(HomeAssistant)等附属功能。
这样的话,就可以用语音很方便的对智能家居进行控制了。
除了语音中除了唤醒这个功能的话,其他的功能都可以调用各家厂商的API都能很方便的进行调用,唤醒这个功能不太一样,这个功能是运行在本地的,而且是always-on的。
在代码中找了一下,很容易发现,这个唤醒功能是基于snowboy这个框架做的,运行的引擎是c++,暴露了一个Python的接口出去。(题外话不支持windows系统可能就是因为snowboy没有给出windows下的的动态链接库)
看了下这个项目的issue, 发现snowboy依赖的在线训练平台已经下线了。
巧的是,在21年的12月,在此之前我和张鹏同学训练了初版本的自定义唤醒词功能,好在wukong-robot整个项目是模块化设计的,修改起来非常顺畅,仅仅花了一两个小时的时间把snowboy唤醒框架替换成我们自己的自定义唤醒词框架。再在配置文件中填上ASR,TTS 等API接口密钥,这个项目就可以跑起来了。
最近百度开源的基于自家的PaddlePaddle框架的PaddleSpeech项目里面就有ASR,TTS的预训练模型以及封装好的基于HTTP的离线识别接口和基于Websocket的流式识别接口 ,就可以替换掉了语音厂商的在线API了(毕竟语音厂家的在线API是收费的,再加上折腾的乐趣是无穷的),这个工作已经在计划中了,要去实施还需要一段时间。
“你好刚刚”在线演示页面(基于WebSocket)
以下是演示视频:1)自定义唤醒算法部署安卓实机演示
KALDI声纹识别交流群 群号:729152186