今天(2017年12月25号,圣诞节,Rokid有心啦,木有收到圣诞节礼物的我,给我送来Rokid All in ONE 全栈语音智能开发套件作为圣诞节惊喜)

开箱后只能说做工相当不错,很精致。

废话不多说,正式走一遍遇到的坑,官方的开发指南其中已经写好了很多必要的入门流程。

目前开发的技能

  1. 记事本

    • 基本功能框架完成
    • 欢迎各位开发提交PR

本人遇坑及经验总结如下

  1. 没迅速找到官方的开发指南,直接进官方文档就上,然后无法通过APP内置的点击6下的开发模式连接Rokid,查询官方文档,可得知,需要通过Pebble设备方式进行连接,如果以后还有其它问题建议先进入开发套件常见问题解决方案汇总。
  2. 在配置WiFi时,本人路由器名称设置了默认隐藏,因此在通过蓝牙配置WiFi连接时,一直无法配置通过,总结以往raspberry pi把玩经验,果断尝试关闭隐藏WiFi,得以解决无法配置连接WiFi的问题,导致该问题需要修改固件里的WiFi连接脚本,这个本人就先不尝试了,具体问题及解决方案已经发送到Rokid讨论里了,希望能改进无法正常连接隐藏的WiFi,解决资料
  3. 如果在APP的配网蓝牙连接这里搜索不到设备,要么使用点击6下的方式进入配网流程,要么使用Pebble设备的配网流程。
  4. 本人测试通过的可信刷机镜像(其实就是官方镜像)

    • Android
    • Linux
  5. CPU板正对USB Type-c 的那个按键就是刷机用的按键,先按住,再通电,看出USB_Burning_Tool上出现设备,就可以松了,比用Debug板进行刷机方便很多,很人性化。
  6. 在Windows下使用adb shell连接到开发板后,使用ls命令,如果出现类似如下的内容,可能是自带的字符串着色与Windows的console不兼容,登入shell后,直接执行 alias ls='busybox ls --color=never' 即可。建议Rokid预安装bash作为备用选项,或者开发者自行下载使用Cmder软件,可解决以上问题。(不怎么直接使用sh,一直用的bash或者zsh,没有出现过类似问题)

    [0;0mdefault.prop[0m  [1;36mlib64[0m         [1;34mopt[0m           [1;34msrv[0m
    [1;34mdev[0m           [1;34mlibexec[0m       [1;34mproc[0m

关于WiFi连接及配网

  • 坑走完之后就是Demo了,能正式配置Rokid的WiFi连接,剩下的就很方便了,通过官方开发指南先做一个简单的人机对话,在开发过程中与Rokid的直接交流语言的JavaScript,因此若要开发更为灵活的服务功能,需要依托其它的后台接口开发。

关于入口词的一些事

  • Rokid 中可能涉及的入口词问题,本人发现Rokid是针对技能貌似是独占的(还没有完全确定这一点),前期可能刺激开发者或者其他人员抢占入口词,建议平台针对这点进行入口词融合、增加针对用户或者设备调试不同技能的优先级功能。

顺便来几张开箱照(图片太丑,请点击下方链接查看):

  • 未拆图
  • 已全拆图

技能开发过程需要知道的事情

技能类型说明

属性 开放性 开发平台
公有 所有用户 云端
私有 - 云端 指定用户 云端
私有 - 本地 指定用户 本地(/opt/apps或/data/apps目录)

关于rokidos-cli

整理中。。。

关于语言交互的设置

  1. 词表

    • Rokid 预定义词表
    • 自定义词表
      自定义词表除了可以通过普通的一行一个词的方式设定自己的词表,还可以通过如下的方式引用其它词表(引用词表以 $ 符号开头)

      $ROKID.YES_ZH
      $ROKID.NO_ZH
    • setConfirm
      如果要通过setConfirm获取用户对话过程的任意内容,可以参考如下方式
      意图定义:

      {"intent": "RecordAny","slots": [{"name": "content","type": "ROKID.ANY"}],"user_says": ["!$content"]
      }

      服务代码中对应handler中使用如下setConfirm语句:

      this.setConfirm({confirmIntent: 'RecordAny',confirmSlot: 'content'
      });
  2. Session

    • this.setSession(key, value)中,所传value为null时,该值不会被记录。
  3. dbServer

    • dbServer.set(key, value, callback) 该方法为异步形式,因此涉及数据库操作时,应该将其后的业务逻辑放于callback中,否则数据还没取回就执行到后面的业务中。
    • get:Rokid.dbServer.get(key, callback)与Rokid.dbServer.delete(key,callback)是否为异步形式尚未验证,建议同样将数据库操作之后的业务逻辑放于callback中。
    • 鉴于关于数据库操作为异步形式,因此建议相关开发者自建统一的数据库存取管理的相关代码以避免多层嵌套(具体参考代码稍后会以GitHub的形式放出),或者改写为Promise形式,目前尚未改写成功。
    • 集成测试中的后端服务测试与服务列表中的测试用例在逻辑上不属于同一个会话,因此在调试中需要做区别,也就是数据库里的数据不共享,需要单独各自添加测试数据。

后续进一步整合raspberry pi与Rokid

该文章持续更新中。。。

本文参与了 SegmentFault「Rokid 开发板试用,开启你的嵌入式开发之旅」活动,欢迎正在阅读的你申请试用,一起交流开发心得。

我的 Rokid 之路 附:记事本技能全部源代码相关推荐

  1. 对QT学习之路12-14的源代码补充与修正

    QT学习之路12-14的源代码有些不完整,为了更好的让大家学习,本人做了一点修正与补充,谢谢.源代码如下: 头文件: #ifndef MAINWINDOW_H #define MAINWINDOW_H ...

  2. 深度学习模型的准备和使用教程,LSTM用于锂电池SOH预测(第一节)(附Python的jypter源代码)

    本Python笔记本显示和分析了如何处理NASA获得的电池充电/放电数据集. 对于这个模型的训练阶段,需要安装Python 3.x以及以下库: Tensorflow 2.0 Numpy Pandas ...

  3. ***:***之路的必备技能

    1.***的精神态度是很重要的,但技术则更是重要.***的态度虽然是无可取代,随著新科技的发明和旧技术的取代,这些工具随时间在慢慢的改变.例如:以往总是会学会用机器码写程序,直到最近我们开始使用HTM ...

  4. c++ 贪吃蛇的精英进阶之路 附源码

    15PB预科班的结业考试项目,仅仅学了1个月做出来的 详解 前言 一.都包含哪些功能 二.使用步骤 1.首先就要想程序的流程和怎么拆分成对象 废话不多说直接上码 前言 作业:用c++ 写一个贪吃蛇的项 ...

  5. 计算机视觉与深度学习 | 像素坐标转相机坐标转世界坐标,求R,t(附C++和Python源代码)

    ================================================ 博主github:https://github.com/MichaelBeechan 博主CSDN:h ...

  6. 下载android4.4.2源代码全过程(附已下载的源代码)

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/maosidiaoxian/article/details/36625727 今天在下载andriod ...

  7. ServerSuperIO Designer IDE 发布,打造物联网通讯大脑,随心而联。附:C#驱动源代码。

    1.概况 注:ServerSuperIO Designer IDE 同行业网友随便使用,不涉及到软件使用限制的问题. 从2015年到现在的将近两年的时间,一直在开发.完善ServerSuperIO(S ...

  8. loss下降auc下降_梯度下降算法 线性回归拟合(附Python/Matlab/Julia源代码)

    梯度下降 梯度下降法的原理 梯度下降法(gradient descent)是一种常用的一阶(first-order)优化方法,是求解无约束优化问题最简单.最经典的方法之一. 梯度下降最典型的例子就是从 ...

  9. 如何使用KEIL5快速建立FreeRTOS项目(附建立成功的源代码以及问题解析)

    前言 上次我已经讲过如何快速使用在线库建立我们的STM32项目,这次我会给大家介绍如何快速使用Keil5在线库建立FreeRTOS项目,废话不说,没有看我上次建立项目的,可以去看一下我上次建立的STM ...

最新文章

  1. 单片机简单的计算器c语言程序,求一个 89C51 简易计算器的c语言程序 只要加减乘除就行!...
  2. ERROR 1222 (21000): The used SELECT statements have a different number of columns :
  3. laravel框架cookie应用到中间件的理解
  4. 【PAT乙级】1058 选择题 (20 分)
  5. mysql5.7 修改密码
  6. hdu 1050 Moving Tables
  7. Android笔记:Activity
  8. 关于STM32的两个小问题的总结
  9. JavaScript中的原型和继承
  10. C++学习之路:适合C++新手的练手项目,高薪之路必备项目!
  11. 洛谷 P1129 [ZJOI2007]矩阵游戏 解题报告
  12. 机器学习--逻辑斯谛回归(Logistic Regression)
  13. webpack基础,运行webpack-dev-server报错,Cannot find module WebpackOptions.json
  14. 64位和32位的区别
  15. JavaScript - 用户名表单验证
  16. Vue使用fabric图片缩放失效
  17. C++经典算法题-洗扑克牌(乱数排列)
  18. 该来的没来,不该走的走了?
  19. python轮子下载教程
  20. 文件操作,函数练习及答案

热门文章

  1. 前端 python java三者哪个比较容易就业_前端和后端(Java)开发哪个难?,哪个学习容易一点?...
  2. python模块手册_python模块说明
  3. [osgearth][原]仿照谷歌,修改oe漫游器中focal(视角切换)功能
  4. JMF介绍之媒体框架二
  5. [题解]第十一届北航程序设计竞赛预赛——L.偶回文串
  6. Ubuntu 将应用程序 固定到快快速启动栏(以Sublime为例)
  7. 【semantic】本体和语义网的研究方向
  8. Windows Server 2008 RemoteApp(四)---发布应用程序
  9. 在Exchange Server 2007中使用多主机名称证书
  10. Laravel提交POST请求报错