目录
【Minecode|开发日记】1.据说小度在等待帅的人把它唤醒
【Minecode|开发日记】2.打造属于自己的小度(1):使用PythonSDK
【Minecode|开发日记】3.打造属于自己的小度(2):小白小白!——唤醒词替换
(未完持更)
写在前面
上一教程中,我们成功唤醒了小度,恭喜你踏入了AI的第一步!但是这样是基于镜像的,并不能去打造自己的小度。如果我们想要打造自己的小度,并在日后按自己的需求进行开发,又该如何配置呢?答案就是使用Python SDK来自行配置。
本篇我们将详细讲解如何通过SDK来唤醒小度。
【本节基于上一节的成果完成,如果没有通过镜像唤醒,建议先查看第一篇教程。】
开始配置
直接在树莓派系统中操作
安装前准备工作
1. 关闭镜像中的小度服务:现有服务占用麦克风资源,造成资源抢夺
sudo systemctl disable duersudo systemctl stop duer
2. 安装依赖包:hyper库用来支持http2.0 client, pyaudio用来支持录音,tornado用来完成oauth认证。
sudo apt-get updatesudo apt-get install python-dateutilsudo apt-get install gir1.2-gstreamer-1.0sudo apt-get install python-pyaudiosudo apt-get install libatlas-base-devsudo apt-get install python-dev sudo pip install tornadosudo 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 /usrsudo tar -zxvf python2.7.14.tar.gz -C /usr/local/sudo rm -rf /usr/bin/pythonsudo 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.gitcd DuerOS-Python-Clientgit checkout raspberry-dev
测试SDK
auth认证需要使用client_id和client_secret,SDK提供了默认值,如果需要打造属于自己的小度,则需要设置自己的,我们后面再进行设置。首先检查一下SDK安装情况。
1. Auth认证
首先运行auth来授权
./auth.sh
注意:可能出现如图所示报错。暂时未发现有影响,可以忽略。
2. 唤醒
有两种唤醒模式,语音唤醒和Enter键唤醒,道理相同,我们选择前者。
语音唤醒+识别:
./wakeup_trigger_start.sh
Enter键唤醒+识别:
./enter_trigger_start.sh
执行唤醒命令,之后就可以通过语音来和小度交互了。如下图所示:
常见问题:
1. 若无法配置正常且控制台输出正常,但无音频输出,请尝试换插DuerOS和树莓派的音频接口。
现在,我们完成了Python SDK的唤醒,向自己的小度迈出了一大步。那么接下来,我们就开始将SDK部署到自己的开发者账户中。
配置Auth授权
创建产品
进入DuerOS开放平台(http://developer.dueros.baidu.com/)
登录个人开发者账户,进入“控制台”页面。
按图片所示新建项目
选择Linux平台
输入产品名称后即可成功创建项目。
产品配置
1. 获取产品授权码
如上图所示,进入产品对应控制台。记录下对应的client_id和client_secret,一会我们要用到。
同时,填写合适的包名。
2. 将DuerOS项目部署到该产品上
将client_id和client_secret填写到DuerOS-Python-Client/app/auth.py中,如下图所示
并注释掉默认登录方法,调用红圈所示代码。
3. 设置安全模式授权
虽然我们设置了开发者注册信息,但是此时我们还是无法获得授权,我们需要在账号后台进行设置。
进入百度开发者中心->应用管理(http://developer.baidu.com/console#app/project)
选择对应应用,进入安全设置,首先启用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再次进发,通过自行训练模型实现替换唤醒词、更改用户画像、自定义问答等功能。
如果出现任何问题,欢迎评论区留言