【DuerOS开发日记】2.打造属于自己的小度(1):使用PythonSDK
目录
【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再次进发,通过自行训练模型实现替换唤醒词、更改用户画像、自定义问答等功能。
如果出现任何问题,欢迎评论区留言
【DuerOS开发日记】2.打造属于自己的小度(1):使用PythonSDK相关推荐
- 【DuerOS开发日记】3.打造属于自己的小度(2):小白小白!——唤醒词替换
目录 [Minecode|开发日记]1.据说小度在等待帅的人把它唤醒 [Minecode|开发日记]2.打造属于自己的小度(1):使用PythonSDK [Minecode|开发日记]3.打造属于自己 ...
- python疲劳检测代码_【君奉天|开发日记】疲劳驾驶检测
我之前写的关于DuerOS开发日记: 今天看了2017百度世界大会上李彦宏董事长介绍了百度的疲劳驾驶检测,正好我之前阿德里安·罗斯布鲁克的文章中介绍了利用Facial landmarks + drow ...
- 广东海洋大学体育馆管理系统 开发日记2
GYM用来对体育馆进行管理,主要功能包括人员管理.场地使用管理.体育赛事管理.器材管理.运营金额数据报表. GYM包括三种角色(Actor): 1. 普通用户(User) 普通用户指的是GYM系统 ...
- 开发日记-20190513 关键词 汇编语言(六)
其实,每次当我写一篇开发日记,并且这篇开发日记并没有关键词,或者我并没有和你扯东扯西的情况下... 这意味着我这天偷懒了= = ;AddTwo.asm --两个32位整数相加.386.model fl ...
- 开发日记-20190328 关键词 利用eolinker一键快速生成API接口文档
今天感觉效率真的很低= =各个层面的,apk发布到现场发现出现了问题,所以一个下午都在忙着解决现场出现的问题,领导一直打电话询问进度,午觉也没有睡所以今天预计的很多计划都处于停滞状态,像昨天规划的今天 ...
- LayIM.AspNetCore Middleware 开发日记(一)闲言碎语
前言 前几天写博客的时候突然看见了历史上的今天.不禁感慨时光如梭,这系列博客后来被我标注了已经过时,但是还有很多小伙伴咨询我.既然过时就要更新,正好 .NET Core 也出来很久了,于是乎想到把La ...
- YunTable开发日记(3) – BigTable的数据模型和调用接口 (转载)
源地址:http://peopleyun.com/?p=665 本文将深入分析BigTable的数据模型,并介绍它是如何被调用的. 数据模型 就像向我之前所说的那样,其实BigTable顾名思义,是一 ...
- ping 工具开发日记(1)
ping 工具开发日记(1) 2021.1.15 hyp 0.准备 开发语言:python 3.8 开发环境:windows 7 开发工具:pycharm 应用功能:1.能实现不同系统(windows ...
- 【原创】shadowebdict开发日记:基于linux的简明英汉字典(三)
全系列目录: [原创]shadowebdict开发日记:基于linux的简明英汉字典(一) [原创]shadowebdict开发日记:基于linux的简明英汉字典(二) [原创]shadowebdic ...
最新文章
- 计算机组成与原理如何书写DEC微指令,计算机组成原理课程设计16位机微程序控制器指令系统设计与实现.doc...
- 玩转MaxCompute studio SQL编辑器
- 炸!亿级数据DB秒级平滑扩容!!!
- Redis源码剖析(三)字典结构的设计与实现
- linux用于查看文件内容 tail、cat、more、less、head 、sed 命令
- Python学习之路——装饰器
- datagrip替换字_DataGrip使用进阶-导航及搜索(一)
- 一步一步写算法(之字符串查找 下篇)
- suse tomcat mysql_JDK TOMCAT MYSQL SUSE LINUX 环境搭建
- 文件无法复制到c盘的解决办法
- 《Java数据结构入门》顺序表详解
- 保护眼睛的颜色和各种背景颜色设置方法(转)
- Cisco AP-Regulatory Domain
- 2021年美国大学生数学建模竞赛(题目详细介绍)
- 服务器状态监控app,服务器/网站连接状态监控工具
- 转载:各个手机尺寸版本
- 区块链/BlockChain+ProofOfWork
- 解决桌面图标无法拖动的方法
- MQTT协议之Mosquitto
- PHP 常用函数 - 数组函数
热门文章
- vscode文件飘红色波浪线
- OpenCV学习十:blur、GaussianBlur、medianBlur 、bilateralFilter 图片的模糊、高斯模糊、中值模糊、二值滤波(课程里将模糊与滤波认定为一样) 以及 锐化算子
- 解决mmdetection训练过程loss为nan的问题
- Android警告信息:Insufficient image color contrast ratio
- pychram+python 看源码: 按住crtl,点击函数
- OPPO R7s线刷和恢复出厂设置的比较
- cad面积累计lisp怎么用_CAD增强的填充面积统计插件LISP源码
- IP与MAC绑定的难题
- 上课案列-翻牌游戏(重置、历史记录)
- 21点扑克游戏的出牌策略的研究