日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

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

發布時間:2025/7/14 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 我的 Rokid 之路 附:记事本技能全部源代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天(2017年12月25號,圣誕節,Rokid有心啦,木有收到圣誕節禮物的我,給我送來Rokid All in ONE 全棧語音智能開發套件作為圣誕節驚喜)

開箱后只能說做工相當不錯,很精致。

廢話不多說,正式走一遍遇到的坑,官方的開發指南其中已經寫好了很多必要的入門流程。

目前開發的技能

  • 記事本

    • 基本功能框架完成
    • 歡迎各位開發提交PR
  • 本人遇坑及經驗總結如下

  • 沒迅速找到官方的開發指南,直接進官方文檔就上,然后無法通過APP內置的點擊6下的開發模式連接Rokid,查詢官方文檔,可得知,需要通過Pebble設備方式進行連接,如果以后還有其它問題建議先進入開發套件常見問題解決方案匯總。
  • 在配置WiFi時,本人路由器名稱設置了默認隱藏,因此在通過藍牙配置WiFi連接時,一直無法配置通過,總結以往raspberry pi把玩經驗,果斷嘗試關閉隱藏WiFi,得以解決無法配置連接WiFi的問題,導致該問題需要修改固件里的WiFi連接腳本,這個本人就先不嘗試了,具體問題及解決方案已經發送到Rokid討論里了,希望能改進無法正常連接隱藏的WiFi,解決資料
  • 如果在APP的配網藍牙連接這里搜索不到設備,要么使用點擊6下的方式進入配網流程,要么使用Pebble設備的配網流程。
  • 本人測試通過的可信刷機鏡像(其實就是官方鏡像)

    • Android
    • Linux
  • CPU板正對USB Type-c 的那個按鍵就是刷機用的按鍵,先按住,再通電,看出USB_Burning_Tool上出現設備,就可以松了,比用Debug板進行刷機方便很多,很人性化。
  • 在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

    整理中。。。

    關于語言交互的設置

  • 詞表

    • 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' });
  • Session

    • this.setSession(key, value)中,所傳value為null時,該值不會被記錄。
  • 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 開發板試用,開啟你的嵌入式開發之旅」活動,歡迎正在閱讀的你申請試用,一起交流開發心得。 《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

    總結

    以上是生活随笔為你收集整理的我的 Rokid 之路 附:记事本技能全部源代码的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。