【Minecode|开发日记】2.打造属于自己的小度(1):使用PythonSDK
Minecode 发布于2017-11-04 02:14 浏览:2454 回复:8
2
收藏

目录

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

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

(未完持更)


写在前面

上一教程中,我们成功唤醒了小度,恭喜你踏入了AI的第一步!但是这样是基于镜像的,并不能去打造自己的小度。如果我们想要打造自己的小度,并在日后按自己的需求进行开发,又该如何配置呢?答案就是使用Python SDK来自行配置。

本篇我们将详细讲解如何通过SDK来唤醒小度。

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


开始配置

直接在树莓派系统中操作

安装前准备工作

1. 关闭镜像中的小度服务:现有服务占用麦克风资源,造成资源抢夺

 sudo systemctl disable duer
 sudo systemctl stop duer

2. 安装依赖包:hyper库用来支持http2.0 client, pyaudio用来支持录音,tornado用来完成oauth认证。

 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


安装Python SDk

1. 安装OpenSSL和Python:用于支持Python SDK的环境及网络需求

首先下载OpenSSL:(链接: https://pan.baidu.com/s/1skAP6WH 密码: wknz)

其次下载Python:(链接: https://pan.baidu.com/s/1o8MHkzK 密码: ngx4)

下载后使用 cd [文件所在目录] 进入目录,然后执行下面的操作

 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

2. 下载Python SDK和参考代码

请使用git指令从git仓库下载,若直接下载ZIP包,将无法执行git checkout检查

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


测试SDK

auth认证需要使用client_id和client_secret,SDK提供了默认值,如果需要打造属于自己的小度,则需要设置自己的,我们后面再进行设置。首先检查一下SDK安装情况。

1. Auth认证

首先运行auth来授权

 ./auth.sh

auth.sh.png

注意:可能出现如图所示报错。暂时未发现有影响,可以忽略。

2. 唤醒

有两种唤醒模式,语音唤醒和Enter键唤醒,道理相同,我们选择前者。

语音唤醒+识别:

./wakeup_trigger_start.sh

Enter键唤醒+识别:

 ./enter_trigger_start.sh

执行唤醒命令,之后就可以通过语音来和小度交互了。如下图所示:

wakeup_.png


常见问题:

1. 若无法配置正常且控制台输出正常,但无音频输出,请尝试换插DuerOS和树莓派的音频接口。

现在,我们完成了Python SDK的唤醒,向自己的小度迈出了一大步。那么接下来,我们就开始将SDK部署到自己的开发者账户中。


配置Auth授权

创建产品

进入DuerOS开放平台(http://developer.dueros.baidu.com/)

登录个人开发者账户,进入“控制台”页面。

image.png

按图片所示新建项目

image.png

选择Linux平台

输入产品名称后即可成功创建项目。


产品配置

1. 获取产品授权码

image.png

如上图所示,进入产品对应控制台。记录下对应的client_id和client_secret,一会我们要用到。

同时,填写合适的包名。

2. 将DuerOS项目部署到该产品上

将client_id和client_secret填写到DuerOS-Python-Client/app/auth.py中,如下图所示

并注释掉默认登录方法,调用红圈所示代码。

设置id.png

3. 设置安全模式授权

虽然我们设置了开发者注册信息,但是此时我们还是无法获得授权,我们需要在账号后台进行设置。

进入百度开发者中心->应用管理(http://developer.baidu.com/console#app/project)

image.png

选择对应应用,进入安全设置,首先启用Implicit Grant授权方式,而后设置授权回调页为

http://127.0.0.1:3000/authresponse

4. 设置完成,接下来SDK就是通过我们自己的开发者账号进行服务交互了~


完成配置

进行到这里,我们已经完成了配置。

按照“SDK测试”章节的做法,再次使用auth.sh和wakeup_trigger_start.sh测试,运转正常。

现在,我们成功使用Python SDK运行了小度,且将项目成功迁移到了个人账号中。

实测视频:


http://v.youku.com/v_show/id_XMzEzMjY1NDcwNA==.html?spm=a2h3j.8428770.3416059.1



接下来我们将向AI再次进发,通过自行训练模型实现替换唤醒词、更改用户画像、自定义问答等功能。

如果出现任何问题,欢迎评论区留言

收藏
点赞
2
个赞
共8条回复 最后由文艾琴回复于2018-10-11 16:51
#2kk47回复于2018-01-25

支持支持

0
#3kk47回复于2018-01-25

你的百度云盘被吃了

0
#4悲回风sky回复于2018-06-12

百度云盘失效了,求再发一个

 

[已解决]从这篇帖子里的网盘得到了这两个文件http://open.duer.baidu.com/forum/topic/show/244796?pageNo=1

0
#5wfxp2002回复于2018-07-13

学习了,希望楼主继续 

0
#6文艾琴回复于2018-10-10

请问楼主出现这样的问题是我哪里没有设置呢?

0
#7文艾琴回复于2018-10-10

0
#8文艾琴回复于2018-10-11

0
#9文艾琴回复于2018-10-11

问题多多呀!

0
TOP