【大鱼叔叔|开发日志】一站式 Python SDK 总结
大鱼叔叔 发布于2017-11-07 01:47 浏览:9165 回复:66
8
收藏

DuerOS Python SDK

1.暂停镜像版小度的服务,不然占用麦克风资源

(个人觉得不必要取消小度自启动服务,因为每次开机都可以直接用小度。)

 sudo systemctl stop duer

2.安装所有需要的依赖

sudo apt-get install python-dateutil gir1.2-gstreamer-1.0 python-pyaudio libatlas-base-dev python-dev
 sudo pip install tornado hyper

3.下载安装OpenSSL和Python2.7.14

  OpenSSL:链接: https://pan.baidu.com/s/1skAP6WH 密码: wknz (连接已经失效,如有需要请网络搜索,实在不行可以qq联系我。)

  Python2.7.14:链接: https://pan.baidu.com/s/1o8MHkzK 密码: ngx4 (镜像2.0版本自带2.7.14)

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

4.下载安装DuerOS Python SDK

git clone https://github.com/MyDuerOS/DuerOS-Python-Client.git
cd DuerOS-Python-Client
git checkout raspberry-dev

5.创建自定义产品

blob.png

blob.png

 

blob.png

说明:目前只有选择兼容 Amazon Alexa 才会有下游服务

blob.png

blob.png

 

6.设置授权回调页

 度开发者中心:http://developer.baidu.com/

blob.png

blob.png

 

blob.png

 

http://127.0.0.1:3000/authresponse

7.合成音

blob.png

8.聊天定制(系统画像)

注意:系统画像是更改一天后才生效。

blob.png

blob.png

blob.png

9.设置开发者ID和SECRET

blob.png

blob.png

10.首次授权与唤醒

cd /home/pi/DuerOS-Python-Client/

授权:(需要用到浏览器登录你的百度开发者账户)

 ./auth.sh

blob.png

语音唤醒:

./wakeup_trigger_start.sh

回车唤醒:

./enter_trigger_start.sh

至此,你就可以使用DuerOS Python SDK 了!快喊小度小度吧!

11.修改唤醒词

    Snowboy的官方地址:https://snowboy.kitt.ai/

blob.png

创建和训练自己的模型很简单,我这里直接使用已经有的“小白”。

下载地址:小白.pmdl

cd /home/pi

下载Snowboy Python

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

下载、安装和配置swig-3.0.12

出自君奉天老铁的帖子:https://dueros.baidu.com/didp/forum/topic/show?topicId=244925

下载地址:http://www.swig.org/download.html

安装配置swig

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

soucre /etc/profile

构建Snowboy

cd /home/pi/snowboy/swig/Python
make

获得Snowboy Python 的接口组件

cd /home/pi/snowboy/examples

将examples文件夹下的Python文件夹改名为 snowboy

mv Python snowboy

删除Python SDK 的app文件夹下的snowboy文件夹(建议先备份)

sudo rm -r /home/pi/DuerOS-Python-Client/app/snowboy

将home/pi/Snowboy/examples/snowboy 复制或者移动到SDK的app文件夹下

sudo mv /home/pi/snowboy/examples/snowboy /home/pi/DuerOS-Python-Client/app/

建议使用指令移动文件(这样文件不会出现感叹号),如果遇到感叹号,先删除文件夹,然后新建一个同名文件夹,再将文件夹里的东西全部复制过来。

注意:如果有感叹号,表示是软链接文件,并且链接找不到真正的文件,继续运行会报错误:ImportError: No module named _snowboydetect

sudo rm -r /home/pi/DuerOS-Python-Client/app/snowboy/resources
sudo rm /home/pi/DuerOS-Python-Client/app/snowboy/snowboydetect.py
sudo rm /home/pi/DuerOS-Python-Client/app/snowboy/_snowboydetect.so
sudo mkdir /home/pi/DuerOS-Python-Client/app/snowboy/resources
sudo mv /home/pi/snowboy/examples/snowboy/resources/* /home/pi/DuerOS-Python-Client/app/snowboy/resources/
sudo mv /home/pi/snowboy/examples/snowboy/snowboydetect.py /home/pi/DuerOS-Python-Client/app/snowboy/
sudo mv /home/pi/snowboy/examples/snowboy/_snowboydetect.so /home/pi/DuerOS-Python-Client/app/snowboy/

image.png

接下来就是修改Python SDK的代码了!

(1)更换唤醒模型

blob.png

blob.png

修改app/snowboy/snowboydecoder.py模块的__ init __()函数

 

(2)注释self.audio和self.stream_in

blob.png

(3)添加feed_data()方法

blob.png

(4)修改terminate()方法

blob.png

重新授权,执行语音唤醒shell脚本( ./wakeup_trigger_start.sh ),即可喊“小白”唤醒!

 

20180302 重要更新:如果你安装了所有依赖,但是执行代码报错,欢迎直接克隆我的GitHub上面的项目。

git clone https://github.com/HuangDayu/MyDuerOS-PythonDcsSdk-RaspberryClient.git

----------大功告成!----------

已经遇到事的问题与解决办法

(1)问题:在安装swig时,执行 ./configure 时遇到Cannot find pcre-config script from PCRE (Perl Compatible Regular Expressions)的错误。

   解决方案./configure --prefix=/usr/progam/swig --without-pcre。

(2)问题:在执行./wakeup_trigger_start.sh时出现以下错误:如图

    2017-12-13_190627.png

   解决方案:重新授权 ./auth.sh

(3)问题:授权后,执行./wakeup_trigger_start.sh时出现以下错误:如图

blob.png

    IOError:[Error Invalid sample rate]-9997

   原因:麦克风资源被占用

   解决办法:sudo systemctl stop duer

 

欢迎各位老铁跟帖补充,如有错误,欢迎指正。

收藏
点赞
8
个赞
共66条回复 最后由老哥不老回复于2018-05-19 22:35
#2暗夜微凉回复于2017-11-09

写的非常非常细致 @DuerOS 河童 强烈建议给这个帖子加精 

0
#3骑蜗牛的机器猫回复于2017-11-09

我只想知道原生树莓派debian 系统行不行

0
#4大鱼叔叔回复于2017-11-09
#3 骑蜗牛的机器猫回复
我只想知道原生树莓派debian 系统行不行

安装 DuerOS Python SDK 是可以的。

0
#5大鱼叔叔回复于2017-11-09
#2 暗夜微凉回复
写的非常非常细致 @DuerOS 河童 强烈建议给这个帖子加精 [图片]
展开

谢谢。我只是支持的总结者。

0
#6DuerOS-河童回复于2017-11-12
#2 暗夜微凉回复
写的非常非常细致 @DuerOS 河童 强烈建议给这个帖子加精 [图片]
展开

已经加精了哦~

大鱼叔叔不愧是叔叔~

0
#7大鱼叔叔回复于2017-11-12
#6 DuerOS-河童回复
已经加精了哦~ 大鱼叔叔不愧是叔叔~

求黑卡

0
#8江红之乡回复于2017-11-17


blob.png

有谁指导一下吗 我的到这步就不行,在线等 我搞了好久没用搞出来 求助!!!

blob.png

0
#9EddyLiu回复于2017-11-17

~

0
#10大鱼叔叔回复于2017-11-19
#8 江红之乡回复
[图片] 有谁指导一下吗 我的到这步就不行,在线等 我搞了好久没用搞出来 求助!!! [图片]
展开

安装pip了吗?

0
#11江红之乡回复于2017-11-20
#10 大鱼叔叔回复
安装pip了吗?

    你好,方便加一个qq吗 1203133576  有问题请教,非常感谢

0
#12艾尔温回复于2017-11-23

我想问下“DuerOS Python SDK”是否是 DuerOS 官方的Python SDK?

0
#13CallMe小凯回复于2017-11-26

貌似没有收藏功能啊,这个帖子很COOl啊

0
#14林风回复于2017-11-26

写的很好,标记

0
#15大鱼叔叔回复于2017-11-30
#12 艾尔温回复
我想问下“DuerOS Python SDK”是否是 DuerOS 官方的Python SDK?
展开

是的

0
#16IConquer回复于2017-12-01

你好,我按照楼主所说的,设置了系统画像,可是没有更改,还是以前的,不知道为什么,id什么的也改了,另没有.dueros.json  没有dueros开发板,自己接的麦克风,其他功能可用

0
#17鸿回复于2017-12-01

关于DuerOS修改成python SDK后,如何设置开机启动呢,我尝试

使能开机自启动:sudo systemctl enable duer

启动度秘服务:sudo systemctl start duer

均不可以,是否要把

 ./wakeup_trigger_start.sh

写入到启动文件呢

0
#18大鱼叔叔回复于2017-12-02
#16 IConquer回复
你好,我按照楼主所说的,设置了系统画像,可是没有更改,还是以前的,不知道为什么,id什么的也改了,另没有.dueros.json 没有dueros开发板,自己接的麦克风,其他功能可用
展开

系统画像修改一天后才生效,.dueros.json是隐藏文件,需要显示隐藏文件,找到直接删除就可以了。然后重新授权。

0
#19大鱼叔叔回复于2017-12-02
#17 鸿回复
关于DuerOS修改成python SDK后,如何设置开机启动呢,我尝试 使能开机自启动:sudo systemctl enable duer 启动度秘服务:sudo systemctl start duer 均不可以,是否要把 ./wakeup_trigger_start.sh 写入到启动文件呢
展开

是的,需要写入启动文件,自启动教程有好几种,我之前用过auto.desktop 的形式的

0
#20小比回复于2017-12-05

这个写得详细

0
#21lambert回复于2017-12-07

2017-12-07 00-05-40屏幕截图.png

这个问题怎么解决?

0
TOP