当前Python版本的DuerOS只能通过[小度小度]进行唤醒。论坛里和群里很多同学问:“那如果我想通过[大白大白],[叮当叮当]或者[你好]这样的自定义唤醒词来唤醒DuerOS改怎么做呢?”
自定义唤醒词其实超简单,下面我们就一步一步的来更换唤醒词。
1 在snowboy平台训练自己的唤醒词
先附上snowboy的官方地址:https://snowboy.kitt.ai/
登陆
创建自定义的唤醒词
下载唤醒模型
在线训练完成后,下载训练模型(本例中我的训练唤醒词为“小白”)
下载的模型为"小白.pmdl"
2 下载snowboy python接口代码
snowboy GitHub地址: https://github.com/Kitt-AI/snowboy
Clone snowboy接口代码
git clone https://github.com/Kitt-AI/snowboy.git
生成平台代码
在snowboy/swig/Python目录执行“make”命令,
获得snowboy python接口组件
将snowboy/examples目录下的Python目录更名为snowboy
3 Python DuerOS SDK代码更新
有了上面的定制唤醒模型(小白.pmdl)和snowboy python接口组件,下面就可以更新Python DuerOS SDK的代码了。
Python DuerOS 中的app/snowboy目录内容更新
先删除Python DuerOS中的app/snowboy文件夹,然后再将步骤2中生成的snowboy文件夹拷贝到app/目录下,然后,将训练好的唤醒模型(小白.pmdl)拷贝到app/snowboy目录中。
修改app/snowboy/snowboydecoder.py
[1]修改__ init __()函数
注释掉self.audio和self.stream_in
[2] 添加feed_data()方法
[3] 修改terminate()方法
修改app/wakeup_trigger_main.py
在main()方法中更新唤醒模型,
注意事项
经过上面的步骤,我们便能够更新成自己喜欢的唤醒词。但我们自定义的唤醒词还不是完美的。在测试中会发现唤醒率并不高。根本的原因在于我们自定义的唤醒词,训练语料条太少了(可能只有1组,3条)。要达到一个很好的唤醒率,需要进行大量丰富的语音样本训练才行。