【大象无形|开发日记Nov.1】小绿诞生记--小度唤醒与调用SDK(Python)更改唤醒词小绿
大象无形 发布于2017-12-08 20:35 浏览:2388 回复:6
2
收藏

小绿诞生记

开篇之前要感谢朋友涛的开发套件的赞助,之前就想申请一个开发板,一直没有实现。现在终于一卡在手,坐等树莓派。

因为平时工作比较忙,下班还要照顾孩子,收到树莓派后,用了两晚上赶紧调试上手。

图片1.png图片2.png 

1  dueros开发套件个人版

论坛很多大侠,有很多的经验帖子,只要好好学习,做起来都不是太难,我就根据我自己的体会大概讲一下开发过程,中间可能会引用一些前辈的经验。

资源条件:

1、dueros开发套件个人版(图1

2、树莓派3B(图2

3、SD卡(读卡器)

4、音箱

图片3.png

2 树莓派3B

注:我是在某宝买的树莓派套餐,含树莓派主机、SD卡、电源、读卡器、外壳、数据线

软件资源

1、 PuTTY

2、 Etcher

3、 Vnc

 

开发计划:

Step.1 唤醒小度

    刷入DuerOS镜像,成功唤醒小度小度

Step.2 调用SDK(Python)

    成功调用Python(SDK),并修改任意服务配置(聊天定制、唤醒词、TTS

 

开发过程:

Step.1 唤醒小度

 1、学习官网的开发资料

捕获.png 

 

技术文档和镜像软件地址

https://dueros.baidu.com/didp/doc/device-devkit/intro_markdownblob.png

---DevkitPersonalImg%2FDuerOS_For_Raspberry_v0.8.1_20171221.img.gz


2刷入DuerOS镜像

图片6.png图片7.png 

三步烧录镜像:寻找镜像文件,插入SD卡,烧录

(最早:我买的SD卡本身自带系统,烧录的时候提示空间不足,后来格式化重新烧录的系统。升级系统烧录一次成功)

3、硬件连接:

 

图片8.png图片9.png 

图片10.png 

首先将dueros和树莓派连接通过40P的排针,(我的树莓派南桥的散热器太高,只能破坏性的掰弯,才装的上dueros套件)按照前面下载的官方说明连接硬件。(此处注意数据线必须具有数据传输功能而不是双线的电源线。一般连接手机可以与电脑进行数据传输的数据线就可以。)

4成功唤醒小度小度

插卡,硬件连接后上电你会听到悦耳的小度的声音,开始网线连接可以实现联网,但是WIFI一直不行,小度之家APP(新版和旧版都试过)和改系统文件都不行,最后又重新SD卡烧录了一次系统,居然可以WiFi联网了。

----系统升级后烧录后一次联网成功,之前WIFI不行是由于路由器设置了WIFI处于隐藏不被发现状态。

 

Step.2 调用SDK(Python)更改唤醒词

1、首先学习帖子:

官方【导航帖】产品技术干货,你想知道的一切!https://dueros.baidu.com/didp/forum/topic/show?topicId=244650

参考gehongyang2009|开发日记】DUEROS之五--唤醒词替换https://dueros.baidu.com/didp/forum/topic/show?topicId=245257


2、要知道的常用的基础的信息:

 

duer 服务日志查看tail -f  /duer/duer_linux.log结束用ctrl+c是最简单的方法

 停止小度sudo systemctl stop duer

授权 ./auth.sh

唤醒加识别 ./wakeup_trigger_start.sh

enter按键触发识别 ./enter_trigger_start.sh

pi,密码是raspberry     

root 密码修改 sudo passwd root

 VNC正确使用方法(小白篇ssh连接终端 

Sshsudo vncserver或者Vncserver

找树莓派地址

在本地上运行 vnc viewer,输入地址、用户名、密码就可以正常登录了

2图片1.png 首先打开PuTTY,通过路由器找到树莓派的ip,登录账户pi密码raspnerry,更改密码 sudo passwd。打开vnc服务。

blob.png

找到ip,打开VNCviewer输入刚才的ip,


3、DuerOS - Python DuerOS SDK[树莓派平台]

 

 

按照官方帖子一步步操作就可以,其中注意事项有:

建议一步步来,先调通运行SDK,再替换唤醒词,这样错误可以快速定位,来得及更改;

如果不禁用小度的话每次要运行SDK就要停止小度:sudo systemctl stop duer

更改代码的时候要注意对齐,常用Tab键;

音频输出可以由树莓派改到dueros开发板:点击任务栏的开始->Preferences->Audio Device Setting

择声卡snd_rpi_hifiberry_dac,勾选Select Controls

 

4、唤醒词语制作:

先附上snowboy的官方地址:https://snowboy.kitt.ai/

可以在vnc远程登录,在树莓派中下载,就不用在用工具转到系统中了。

名字最好英文或者拼音;

用火狐或者谷歌浏览器,允许读取mic

文件夹替换的时候要先备份防止叹号出现;可以不用删除,改个名字就可以了。

SWIG编译的时候make一定要通过才可以,要先卸载之前的版本。

更改代码的时候要注意对齐,常用Tab键;更改代码的时候要注意对齐,常用Tab键;

添加一行:PATH=/usr/local/swig3.0.12/bin:$PATH时候可能要用到ROOT权限

     小绿唤醒视频: https://pan.baidu.com/s/1dFjMl3r 密码: 8jru

 

Step.3   增量升级

https://dueros.baidu.com/didp/forum/topic/show?topicId=248200

下载更新

2.在树莓派上新建一个文件夹

mkdir update


3.解压升级包到新建文件夹

tar -xvf DuerOS_For_Raspberry_vx.x.x.x-X_update.tar.gz -C update


4.进入文件夹

cd update


5.使用root权限执行升级脚本

sudo ./update.sh

扫描小度之家APP,联网结果失败,找不到设备。

原因为:为了稳定性只得重新烧录镜像,惨!惨!

不过欣慰的是可以联网。






收藏
点赞
2
个赞
共6条回复 最后由小悠小悠回复于2018-05-12 21:07
#2大象无形回复于2017-12-08

2012年12月25日

停止现有小度功能,因为会占用MIC资源

 sudo systemctl disable duer

 sudo systemctl stop duer

安装依赖包

 sudo apt-get update

 sudo apt-get install python-dateutil

 sudo apt-get install gir1.2-gstreamer-1.0

 sudo apt-get install python-pyaudio

 sudo apt-get install libatlas-base-dev

 sudo apt-get install python-dev     

 sudo pip install tornado

 sudo pip install hyper

hyper库用来支持http2.0 client, pyaudio用来支持录音,tornado用来完成oauth认证。

下载编译好的opensslPython安装包,并进行安装需要更新openssl才能支持python sdk的使用。

*从如下地址下载openssl安装包*(链接: https://pan.baidu.com/s/1skAP6WH 密码: wknz)

*从如下地址下载python2.7.14安装包*(链接: https://pan.baidu.com/s/1o8MHkzK 密码: ngx4)

 sudo tar -zxvf openssl1.1.tar.gz -C /usr

 sudo tar -zxvf python2.7.14.tar.gz -C /usr/local/

 sudo rm -rf /usr/bin/python

 sudo ln -s /usr/local/python2.7.14/bin/python /usr/bin/python

 

下载Python SDK和参考示例代码

 git clone https://github.com/MyDuerOS/DuerOS-Python-Client.git

 cd DuerOS-Python-Client

 git checkout raspberry-dev

运行和测试

授权

 ./auth.sh

停止小度sudo systemctl stop duer

唤醒加识别 ./wakeup_trigger_start.sh

blob.png

blob.png

说:小度,小度则可以唤醒,至此运行SDK完成。

blob.png






l 先附上snowboy的官方地址:https://snowboy.kitt.ai/

 可以在vnc远程登录,在树莓派中下载,就不用在用工具转到系统中了。


下载的模型为"xiaolv.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”命令,

首先要安装swig

Swig编译

swig源码http://www.swig.org/download.html

解压源码

tar -zxvf swig-3.0.12.tar.gz

配置编译环境

cd swig-3.0.12

./configure --prefix=/home/xxx/swigtool

编译,执行make命令

make

之后默默的等待即可安装

make install

如果还提示版本过低,需要将"/home/xxx/swigtool"配置到环境变量

 

sudo apt-get install g++//安装g++

sudo apt-get install libpcre3 libpcre3-dev //安装pcre

sudo tar -xzvf swig-3.0.12.tar.gz //解压swig

cd swig-3.0.12 //进入swig目录

//安装swig

./configure --prefix=/usr/local/swig3.0.12

make

sudo make install

//配置path

sudo vim /etc/profile

//在最后添加一行:PATH=/usr/local/swig3.0.12/bin:$PATH

 

修改profile文件

blob.png

blob.png

blob.png

blob.png

输入

:wq

写退出

VNC下登录dueros后



blob.png

3 Python DuerOS SDK代码更新


获得snowboy python接口组件

将snowboy/examples目录下的Python目录更名为snowboy,将训练好的唤醒模型(小白.pmdl)拷贝到app/snowboy目录中。

blob.png带箭头的文件要替换成真实的文件,

blob.png

blob.png

修改app/snowboy/snowboydecoder.py

[1]修改__ init __()函数

注释掉self.audio和self.stream_in


blob.png

blob.png

修改app/wakeup_trigger_main.py

在main()方法中更新唤醒模型,

blob.png

停止小度sudo systemctl stop duer

授权 ./auth.sh

唤醒加识别 ./wakeup_trigger_start.sh

enter按键触发识别 ./enter_trigger_start.sh

blob.png

应该是改代码的错误,再改一次吧。

blob.png

修改后,唤醒小绿成功

blob.png


不过唤醒词的误唤醒率太高了吧。呜呜

1
#4大象无形回复于2017-12-10

占贴

1
#5大象无形回复于2017-12-10

不积跬步何以成江河,点滴的积累,最后你会让人望尘莫及

1
#6大象无形回复于2017-12-10

再占一层

1
#7大象无形回复于2017-12-26

占位

1
#7小悠小悠回复于2018-05-12

您能告诉我您的QQ吗?有几个问题想要请教一下

 

0
TOP