0. 写在前面
一些朋友拿到了DuerOS的个人开发板,急迫的想体验这个大玩具。
“我怎么才能和这块小黑板子对话啊?”
“你到是先买个树莓派啊!”
所以,我想给这些刚入坑的朋友写一个简单的运行个人开发板的说明,而DuerOS官方已经有一个制作好的树莓派系统,我打算从树莓派原始系统开始说起,告诉大家如何DuerOS From Scratch。
1. 购买树莓派
购买地点:淘宝或者京东,记住买3代就行,一般没有假货,中国版、英国版都一样
周边装备:TF卡(8G或者16G,下有选择说明),读卡器,HDMI线(接显示器),Android数据线(一头USB,一头Mini USB),板子的电源插头,外壳,AUX线(外接音箱)
2. 树莓派原生系统准备
从树莓派官网下载RASPBIAN烧录镜像:
https://www.raspberrypi.org/downloads/
依照原厂系统安装说明使用Etcher烧录树莓派系统到TF卡,系统会占用TF卡大概5G空间,如果你以后要经常备份卡可以考虑买8G TF卡,备份快,如果你需要在树莓派上开发程序16G也足够了。
用HDMI线接显示器,USB接鼠标和键盘,启动系统,就可以进入桌面了,设置WiFi并能联网。
树莓派的Mirror很多,选择一个最快的更新系统:
http://www.raspbian.org/RaspbianMirrors$ sudo apt-get update$ sudo apt-get upgrade
3. 接线
按图接线
4. 搞出声音
树莓派默认声音是从HDMI接口输出的,要想从音箱发声需要修改为从3.5mm接口输出。
$ sudo amixer cset numid=3 1$ alsamixer 调大音量
安装sox,录制并播放一个wav测试麦克和音箱:
$ sudo apt-get install sox $ AUDIODEV=hw:1,0 rec your_voice.wav随便唱个歌吼两声 $ play your_voice.wav能听到声音了
5. 安装运行环境
官方镜像中的程序是C写的,没有放出源码,目前开源的node.js版本有源码,为了便于学习使用node.js版本程序。
安装系统软件包:
$ sudo apt-get install libsox-fmt-mp3 $ sudo apt-get install libasound2 libasound2-dev alsa-utils $ sudo apt-get install python $ sudo apt-get install libatlas-base-dev $ sudo apt-get install libatlas-dev
安装libiconv:
$ wget https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.15.tar.gz$ tar xzvf libiconv-1.15.tar.gz$ cd libiconv-1.15$ ./configure --prefix=/usr$ make$ sudo make install
安装MPlayer:
$ sudo apt-get install libmpg123-dev$ wget http://www.mplayerhq.hu/MPlayer/releases/MPlayer-1.3.0.tar.xz$ tar xvf MPlayer-1.3.0.tar.xz$ cd MPlayer-1.3.0$ ./configure;$ make$ sudo make install
安装node
$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash $ . ~/.bashrc $ nvm install --lts$ nvm use --lts
安装cnpm
npm在国内很慢,使用淘宝的cnpm替代。
$ npm install -g cnpm --registry=https://registry.npm.taobao.org
6. 安装源码
下载源码
$ git clone https://github.com/dueros/dcs-sdk-js.git $ export CODE_ROOT=$(pwd)/dcs-sdk-js
安装node库
$ cd $CODE_ROOT$ cnpm install$ cd snowboy$ cnpm install$ cnpm install -g node-pre-gyp$ cnode-pre-gyp clean$ cnode-pre-gyp configure$ cnode-pre-gyp build
7. 修改配置文件
$ cd $CODE_ROOT$ cp dcs_config.json.pi dcs_config.json
修改dcs_config.json中的device_id和access_token,需要你到DuerOS的开发平台用百度帐号先创建一个产品,具体步骤可以参考:
http://developer.dueros.baidu.com/doc/overall/console-guide_markdown
将device_id修改为你创建产品的client_id,access_token通过以下方法获取。
修改上面网址中的{{CLIENT_ID}}为你创建产品的client_id,{{REDIRECT_URI}}设置为"oob",类似于这样:
https://openapi.baidu.com/oauth/2.0/authorize?client_id=xxxxxxyyyyyyyzzzzz&response_type=token&redirect_uri=oob
回车之后会出现百度oauth登录界面,输入帐号和密码之后过了短信验证,浏览器会被重定向到oauth成功的一个页面上;
看地址栏中的参数中已经有access_token了,类似于这样:
access_token=23.0e1814d2e6861779dc251eaeb5dc2008.2592000.1511768527.2300547068-10218111
这个token过期时间是1个月,就是说1个月之后要再获取新的token;
8. 唤醒野兽-小度
激动人心的一刻就要来了,启动程序
$ cd $CODE_ROOT $ node index.js
可以说“小度 小度”唤醒了,也可以用回车唤醒。
3. 搞出声音
树莓派默认声音是从HDMI接口输出的,要想从音箱发声需要修改为从3.5mm接口输出。
安装sox,录制并播放一个wav测试麦克和音箱:
4. 安装运行环境
官方镜像中的程序是C写的,没有放出源码,目前开源的node.js版本有源码,为了便于学习使用node.js版本程序。
安装系统软件包:
安装libiconv:
安装MPlayer:
安装node
安装cnpm
npm在国内很慢,使用淘宝的cnpm替代。
$ npm install -g cnpm --registry=https://registry.npm.taobao.org
5. 安装源码
下载源码
安装node库
6. 修改配置文件
修改dcs_config.json中的device_id和access_token,需要你到DuerOS的开发平台用百度帐号先创建一个产品,具体步骤可以参考:
将device_id修改为你创建产品的client_id,access_token通过以下方法获取。
打开一个浏览器,输入网址:https://openapi.baidu.com/oauth/2.0/authorize?client_id={{CLIENT_ID}}&response_type=token&redirect_uri={{REDIRECT_URI}};
修改上面网址中的{{CLIENT_ID}}为你创建产品的client_id,{{REDIRECT_URI}}为oauth认证的回调url,如http://127.0.0.1:8888,注意这里不能用“bdconnect://cancel,bdconnect://success”;
回车之后会出现百度oauth登录界面,输入帐号和密码之后过了短信验证,浏览器会被重定向到127.0.0.1的一个连接上,但是会打不开,因为没有服务器;
看地址栏中的参数中已经有access_token了,类似于这样:
这个token过期时间是1个月,就是说1个月之后要再获取新的token;
7. 唤醒野兽-小度
激动人心的一刻就要来了,启动程序
可以说“小度 小度”唤醒了,也可以用回车唤醒。
5. 安装源码
下载源码
安装node库
6. 修改配置文件
修改dcs_config.json中的device_id和access_token,需要你到DuerOS的开发平台用百度帐号先创建一个产品,具体步骤可以参考:
将device_id修改为你创建产品的client_id,access_token通过以下方法获取。
打开一个浏览器,输入网址:https://openapi.baidu.com/oauth/2.0/authorize?client_id={{CLIENT_ID}}&response_type=token&redirect_uri={{REDIRECT_URI}};
修改上面网址中的{{CLIENT_ID}}为你创建产品的client_id,{{REDIRECT_URI}}设置为"oob",类似于这样:
回车之后会出现百度oauth登录界面,输入帐号和密码之后过了短信验证,浏览器会被重定向到oauth成功的一个页面上;
看地址栏中的参数中已经有access_token了,类似于这样:
这个token过期时间是1个月,就是说1个月之后要再获取新的token;
7. 唤醒野兽-小度
激动人心的一刻就要来了,启动程序
可以说“小度 小度”唤醒了,也可以用回车唤醒。
纠正下 Android数据线(一头USB,一头Mini USB),应该是 micro USB
每次编辑帖子格式都要调整,不影响理解先不改了。
这个论坛编辑工具确实比较难用,直接用markdown感觉比这好用。
加油
我是用md写好转成html然后粘贴过来的,但是只要再编辑保存,所有html样式都变了。
一起努力
感谢参加论坛活动!写得真的好有条理好棒哟~
麻烦私聊发下您的邮箱地址~
方便后续跟您联系发放奖品