目录

【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相关推荐

  1. 【DuerOS开发日记】3.打造属于自己的小度(2):小白小白!——唤醒词替换

    目录 [Minecode|开发日记]1.据说小度在等待帅的人把它唤醒 [Minecode|开发日记]2.打造属于自己的小度(1):使用PythonSDK [Minecode|开发日记]3.打造属于自己 ...

  2. python疲劳检测代码_【君奉天|开发日记】疲劳驾驶检测

    我之前写的关于DuerOS开发日记: 今天看了2017百度世界大会上李彦宏董事长介绍了百度的疲劳驾驶检测,正好我之前阿德里安·罗斯布鲁克的文章中介绍了利用Facial landmarks + drow ...

  3. 广东海洋大学体育馆管理系统 开发日记2

    GYM用来对体育馆进行管理,主要功能包括人员管理.场地使用管理.体育赛事管理.器材管理.运营金额数据报表. GYM包括三种角色(Actor): 1.   普通用户(User) 普通用户指的是GYM系统 ...

  4. 开发日记-20190513 关键词 汇编语言(六)

    其实,每次当我写一篇开发日记,并且这篇开发日记并没有关键词,或者我并没有和你扯东扯西的情况下... 这意味着我这天偷懒了= = ;AddTwo.asm --两个32位整数相加.386.model fl ...

  5. 开发日记-20190328 关键词 利用eolinker一键快速生成API接口文档

    今天感觉效率真的很低= =各个层面的,apk发布到现场发现出现了问题,所以一个下午都在忙着解决现场出现的问题,领导一直打电话询问进度,午觉也没有睡所以今天预计的很多计划都处于停滞状态,像昨天规划的今天 ...

  6. LayIM.AspNetCore Middleware 开发日记(一)闲言碎语

    前言 前几天写博客的时候突然看见了历史上的今天.不禁感慨时光如梭,这系列博客后来被我标注了已经过时,但是还有很多小伙伴咨询我.既然过时就要更新,正好 .NET Core 也出来很久了,于是乎想到把La ...

  7. YunTable开发日记(3) – BigTable的数据模型和调用接口 (转载)

    源地址:http://peopleyun.com/?p=665 本文将深入分析BigTable的数据模型,并介绍它是如何被调用的. 数据模型 就像向我之前所说的那样,其实BigTable顾名思义,是一 ...

  8. ping 工具开发日记(1)

    ping 工具开发日记(1) 2021.1.15 hyp 0.准备 开发语言:python 3.8 开发环境:windows 7 开发工具:pycharm 应用功能:1.能实现不同系统(windows ...

  9. 【原创】shadowebdict开发日记:基于linux的简明英汉字典(三)

    全系列目录: [原创]shadowebdict开发日记:基于linux的简明英汉字典(一) [原创]shadowebdict开发日记:基于linux的简明英汉字典(二) [原创]shadowebdic ...

最新文章

  1. 计算机组成与原理如何书写DEC微指令,计算机组成原理课程设计16位机微程序控制器指令系统设计与实现.doc...
  2. 玩转MaxCompute studio SQL编辑器
  3. 炸!亿级数据DB秒级平滑扩容!!!
  4. Redis源码剖析(三)字典结构的设计与实现
  5. linux用于查看文件内容 tail、cat、more、less、head 、sed 命令
  6. Python学习之路——装饰器
  7. datagrip替换字_DataGrip使用进阶-导航及搜索(一)
  8. 一步一步写算法(之字符串查找 下篇)
  9. suse tomcat mysql_JDK TOMCAT MYSQL SUSE LINUX 环境搭建
  10. 文件无法复制到c盘的解决办法
  11. 《Java数据结构入门》顺序表详解
  12. 保护眼睛的颜色和各种背景颜色设置方法(转)
  13. Cisco AP-Regulatory Domain
  14. 2021年美国大学生数学建模竞赛(题目详细介绍)
  15. 服务器状态监控app,服务器/网站连接状态监控工具
  16. 转载:各个手机尺寸版本
  17. 区块链/BlockChain+ProofOfWork
  18. 解决桌面图标无法拖动的方法
  19. MQTT协议之Mosquitto
  20. PHP 常用函数 - 数组函数

热门文章

  1. vscode文件飘红色波浪线
  2. OpenCV学习十:blur、GaussianBlur、medianBlur 、bilateralFilter 图片的模糊、高斯模糊、中值模糊、二值滤波(课程里将模糊与滤波认定为一样) 以及 锐化算子
  3. 解决mmdetection训练过程loss为nan的问题
  4. Android警告信息:Insufficient image color contrast ratio
  5. pychram+python 看源码: 按住crtl,点击函数
  6. OPPO R7s线刷和恢复出厂设置的比较
  7. cad面积累计lisp怎么用_CAD增强的填充面积统计插件LISP源码
  8. IP与MAC绑定的难题
  9. 上课案列-翻牌游戏(重置、历史记录)
  10. 21点扑克游戏的出牌策略的研究