【Minecode|开发日记】3.打造属于自己的小度(2):小白小白!——唤醒词替换
Minecode 发布于2017-11-04 13:58 浏览:4191 回复:7
0
收藏

目录

【Minecode|开发日记】1.据说小度在等待帅的人把它唤醒

【Minecode|开发日记】2.打造属于自己的小度(1):使用PythonSDK

【Minecode|开发日记】3.打造属于自己的小度(2):小白小白!——唤醒词替换

(未完持更)


写在前面

上一教程中,我们成功使用Python SDK并将其部署到我们自己的开发者账号中,那么这一节,我们开始让DuerOS真正成为我们的专属AI。

叫惯了小度小度,想给它换个喜欢的名字怎么办?Let's do it!

【本节基于上一节的成果完成,如果没有通过SDK唤醒,建议先查看第二篇教程。】


训练唤醒词

评估唤醒词

为了保证识别精准性,并不是所有的唤醒词都适合。所以先前往DuerOS开放平台->控制台->进入你所创建的服务的服务配置页面->选择唤醒词评估就可以了。

如图所示,评级三星三星以上才可以作为唤醒词,否则这种识别率之下的人工智能只能是人工智障了

image.png

开始训练

确定好唤醒词之后,下面进入训练阶段。

训练使用Snowboy平台,https://snowboy.kitt.ai/。平台支持很多种语言,也很高兴看到中文的模型越来越多了。

选择训练关键词(当然也可以参与别人的模型训练)image.png

填写模型信息,然后录制三次即可完成初次训练

image.png

选择训练好的模型,下载即可

image.png

下载好的***.pmdl模型先留着,一会要用到。


配置Snowboy

训练完snowboy之后,我们需要下载Snowboy Python版到树莓派,从而读取模型。

该部分在文档中的讲解比较笼统,缺失了很多关键步骤。所以这里我们着重讲解。

获取Snowboy Python

git clone https://github.com/Kitt-AI/snowboy.git

直接从git仓库clone即可

swig not found问题原因*

如果你跟随文档走到这一步,很有可能遇到了如下图所示情况。

swig not found.png

提示写的很明确:缺失swig。那么,我们现在来安装swig

安装swig

首先在swig官网下载最新版,http://www.swig.org/download.html。本文使用的是3.0.12

swig webpage.png

解压swig

sudo tar -xzvf swig-3.0.12.tar.gz

安装swig需要g++和PREC支持,如果没有安装,请先安装g++和pcre,否则会出现下图报错

need g++ and prec.png

安装g++和pcre

sudo apt-get install g++
sudo apt-get install libpcre3 libpcre3-dev

然后进入刚刚解压的目录,开始swig的安装

./configure --prefix=/usr/local/swig3.0.12
make
sudo make install

最后设置环境变量

sudo vim /etc/profile

vim中,按i进入编辑状态,编辑完成后按ESC,输入:wq保存退出

vim path.png

现在,我们成功安装了swig

生成平台代码

进入Snowboy目录,生成

cd snowboy/swig/Python
make

python make.png

这一次,我们就正常生成了.so文件

替换识别模块

将snowboy/examples目录下的Python目录更名为snowboy,然后替换DuerOS-Python-Clien目录的app/snowboy

注意:请备份原有的app/snowboy,一会还要用到

image.png

复制过来之后,会发现resource文件夹、.py、.so文件有感叹号。这是因为软拷贝的问题。

有一个简单的解决方法:将原来的snowboy文件夹中的Resource文件夹拷贝过来并替换。

将snowboy/swig/Python中对应的snowboydetect.py和snowboydetect.so这两个文件拷贝过来并替换。

最后,把刚刚的pmdl模型文件拷贝至snowboy目录,完成整个文件替换过程。

修改识别模块代码

修改了模块,我们接下来在代码中完成修改

修改app/snowboy/snowboydecoder.py

修改__ init __()函数,并添加feed_back方法

对齐代码.png

修改terminate方法

修改代码2.png


修改app/wakeup_trigger_main.py

在main方法中更新模型,如图

替换模型.png

完成修改。

注意:python对于代码对齐很敏感,请一定注意对齐,如下图错误

没有对齐报错.png




大吉大利,晚上吃鸡

恭喜,现在已经成功的完成了唤醒词的替换,现在的小度成为了属于你自己的人工智能。接下来,我们可以根据自己需求进行更加个性化的开发


实测视频:


视频链接:http://v.youku.com/v_show/id_XMzEzMzUxNjM4MA==.html?spm=a2h3j.8428770.3416059.1



如果有任何疑问,欢迎在下方评论留言~

收藏
点赞
0
个赞
共7条回复 最后由Jasonyang回复于2017-12-19 21:58
#2老土云回复于2017-11-05

收藏先,明天试试。

0
#3Minecode回复于2017-11-08

对于替换了唤醒词之后发现灵敏度减弱的问题,是因为模型训练次数太少导致。

可以尝试多次训练模型,从而提高灵敏度。毕竟“小度小度”已经千锤百炼了

再次祝愿大家都能打造成功自己的小度~

0
#4DuerOS-河童回复于2017-11-12

支持~已加精❤

加油哦~

0
#5robin_v回复于2017-11-12

楼主,我在生成平台代码的时候报错了,python.h no such file or directory,为防止别人遇到此坑,请添加下面命令

sudo apt-get install python-dev

0
#6Minecode回复于2017-11-14
#5 robin_v回复
楼主,我在生成平台代码的时候报错了,python.h no such file or directory,为防止别人遇到此坑,请添加下面命令 sudo apt-get install python-dev
展开

感谢分享,遇到这个问题的童鞋可以试试此方法哈

1
#7Jasonyang回复于2017-12-19

楼主,看了你的开发日记觉得很受启发,方便加一下QQ951033866或邮箱交流吗?很多地方需要向你请教~

0
TOP