天天看點

智能語音終端SDK快速上手說明 | 《無需從0開發 1天上手智能語音離線上方案》第三章

上一章: 智能語音終端開發闆介紹 | 《無需從0開發 1天上手智能語音離線上方案》第二章>>> 下一章: 智能語音應用開發指南 | 《無需從0開發 1天上手智能語音離線上方案》第四章>>>

智能語音終端SDK快速上手說明

1. 使用Windows開發環境

1.1 概述

Windows開發環境采用劍池CDK開發工具。劍池CDK開發工具以極簡開發為理念,是專為IoT應用開發打造的內建開發環境。它在不改變使用者開發習慣的基礎上,全面接入雲端開發資源,結合圖形化的OSTracer、Profiling等調試分析工具,加速使用者産品開發。

1.2 CDK工具下載下傳

• 登入平頭哥晶片開放社群,進入欄目“技術部落->資源下載下傳->工具->CDK內建開發環境”,下載下傳最新版本的劍池CDK內建開發環境安裝包。下載下傳完成後,點選setup.exe,根據CDK安裝向導提示完成安裝。

• 掃描下方二維碼即可下載下傳。

智能語音終端SDK快速上手說明 | 《無需從0開發 1天上手智能語音離線上方案》第三章

注意:

  1. 建議CDK不要安裝在C槽,否則需要管理者權限運作
  2. 下載下傳或安裝過程中有可能被防火牆攔截,注意将其添加到防火牆白名單中

1.3 Windows調試環境安裝

安裝序列槽驅動程式

• 登入平頭哥晶片開放社群,進入欄目“技術部落->資源下載下傳->工具->驅動工具”,下載下傳并安裝“CP210x_Windows10_Drivers”序列槽轉USB驅動包(注:根據作業系統選擇對應的版本)。

智能語音終端SDK快速上手說明 | 《無需從0開發 1天上手智能語音離線上方案》第三章

安裝Debug Server

• 登入平頭哥晶片開放社群,進入欄目“技術部落 -> 資源下載下傳 -> 工具 -> Debug Server”,下載下傳最新CSKY-DebugServer-windows版本。

智能語音終端SDK快速上手說明 | 《無需從0開發 1天上手智能語音離線上方案》第三章

注:下載下傳或安裝過程中有可能被防火牆攔截,注意将其添加到防火牆白名單中

• Debug Server安裝過程中,會同時安裝JTAG調試驅動。

檢查驅動狀态

• 插入開發闆調試序列槽和JTAG調試口後,打開計算機裝置管理器,确認序列槽驅動以及JTAG調試驅動安裝無誤。

智能語音終端SDK快速上手說明 | 《無需從0開發 1天上手智能語音離線上方案》第三章

driver_status

運作Debug Server

• 燒錄之前需要打開并運作CSkyDebugServer。CSkyDebugServer初始狀态,左下角顯示Ready:

智能語音終端SDK快速上手說明 | 《無需從0開發 1天上手智能語音離線上方案》第三章

• 上電開發闆,確定藍色JTAG訓示燈被點亮。點選 ,CSkyDebugServer與裝置連接配接成功:

智能語音終端SDK快速上手說明 | 《無需從0開發 1天上手智能語音離線上方案》第三章

debugserver_run

DebugServer處于上述的運作态時,可以燒錄固件和對程式進行GDB調試,參考《2. 使用GDB調試》。

1.4 應用開發

建立執行個體工程

本節以“智能語音終端解決方案”為例,介紹如何使用CDK進行應用開發。

• 運作CDK,在首頁點選建立工程:

• 在搜尋框内輸入智能語音并按回車,在第一個搜尋結果右邊點選建立工程:

智能語音終端SDK快速上手說明 | 《無需從0開發 1天上手智能語音離線上方案》第三章

• 輸入工程名稱,點選下載下傳方案:

CDK_Download           

• 輸入工作空間名稱和路徑,點選OK建立工作空間

• 之後CDK會建立工程并自動下載下傳工程所需依賴。

編譯

• 下載下傳成功後,可以在左邊的導航欄中看到項目(本例中項目名稱demo_project)。右擊項目名稱,選擇Build開始編譯。

編譯時間大約需要10分鐘。

• 編譯成功後,在界面底部的輸出視窗,會顯示成功資訊:

智能語音終端SDK快速上手說明 | 《無需從0開發 1天上手智能語音離線上方案》第三章

CDK_Build_Success

燒錄

點選工具欄的 開始燒錄:

智能語音終端SDK快速上手說明 | 《無需從0開發 1天上手智能語音離線上方案》第三章

CDK_Start_Program

燒錄完成後,顯示燒錄成功視窗:

智能語音終端SDK快速上手說明 | 《無需從0開發 1天上手智能語音離線上方案》第三章

CDK_Program_Success

2. 使用Linux開發環境

2.1 安裝YocTools

YocTools需要通過 pip 指令安裝,YocTools 支援 python2.7+、python3.6+,建議使用 python2 作為預設 python。

• 解除安裝舊版本YocTools,之前如果沒安裝請跳過該步驟

$sudo pip uninstall yoctools

• 安裝YocTools

$sudo pip install --no-binary=yoctools

http://yoctools.oss-cn-beijing.aliyuncs.com/yoctools-1.0.60.1.tar.gz

-i

https://mirrors.163.com/pypi/simple/

2.2 工具鍊安裝

編譯工具鍊采用gcc編譯,第一次編譯時,makefile會自動下載下傳編譯工具鍊:

$ make

scons: Reading SConscript files ...

100.00% [##################################################] Speed: 9.260MB/S

Start install, wait half a minute please.

Congratulations!

工具鍊會被安裝在目前使用者的~/.thead目錄下:

~/.thead$ ll

drwxr-xr-x 1 User user 4096 Apr 7 18:11 csky-abiv2-elf/

配置工具鍊路徑到環境變量:

$echo "export PATH=$HOME/.thead/csky-abiv2-elf/bin:$PATH" >> ~/.bashrc

$source ~/.bashrc

2.3 Linux調試環境安裝

• 登入平頭哥晶片開放社群,進入欄目“技術部落 -> 資源下載下傳 -> 工具 -> Debug Server”,下載下傳最新CSKY-DebugServer-Linux版本,并解壓

• 執行sudo sh ./CSKY-DebugServer-linux-*.sh -i,開始安裝

• 系統提示“Do you agree to install the DebugServer[yes/no]”,輸入yes

• 系統提示設定安裝路徑“Set full installing path:”,推薦安裝到預設路徑:直接回車

• 系統會提示”This software will be installed to the default path: (/usr/bin/)?[yes/no/cancel]:”,輸入yes

• 安裝成功後會提示:

Done !           

You can use command “DebugServerConsole” to start DebugServerConsole!

(NOTE:The full path of ‘DebugServerConsole.elf’ is /usr/bin/C-Sky_DebugServer)

注意:安裝過程中使用者需要擷取sudo權限。

Linux虛拟機下安裝Debug Server

很多開發者習慣在Windows系統(或Mac OS系統)下安裝Linux虛拟機來進行開發,常見的虛拟機有WSL(Windows Subsystem for Linux),VMware,VirtualBox等。然而在Linux虛拟機下,由于Debug Server沒辦法擷取到USB裝置資訊,導緻部分情況下Debug Server連接配接失敗。

是以需要切換到Windows環境安裝和使用Debug Server。具體安裝步驟,請參考《1.3 Windows調試環境安裝》。

• 安裝完成後,在任意目錄下通過指令 sudo DebugServerConsole,來打開 DebugServer。打開後界面如下:

• DebugServer連接配接成功如下:

2.4 應用開發

2.4.1 編譯

以CB5654開發闆為例,進入開發闆目錄,使用make指令開始編譯:

$ cd solutions_cb5654/smart_speaker_cb5654

$ make clean; make

2.4.2 燒錄

調試腳本

• 鏡像的燒寫通過GDB完成,需要先配置調試伺服器的IP位址為本機位址。輸入指令ifconfig擷取本機位址(下例為:30.21.178.4):

$ ifconfig           

wifi0: flags=4163 mtu 1500

inet 30.21.178.4  netmask 255.255.252.0  broadcast 30.21.179.255
    inet6 fe80::b031:5c7e:9a91:d8d2  prefixlen 64  scopeid 0xfd<compat,link,site,host>
    ether 60:f2:62:77:45:d9  (Ethernet)
    RX packets 0  bytes 0 (0.0 B)
    RX errors 0  dropped 0  overruns 0  frame 0
    TX packets 0  bytes 0 (0.0 B)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0           

• 在開發目錄下(例如:solutions_cb5654/smart_speaker_cb5654)建立檔案.gdbinit,設定JTAG IP位址為本機IP位址,端口号為1025:

$ cat .gdbinit           

target jtag jtag://30.21.178.4:1025

全部燒錄

• 上電開發闆,確定電源訓示燈被點亮;運作Debug Server并保證與開發闆連接配接成功

• 首次運作時,需要執行全部燒錄指令,保證所有分區内容都被燒錄:

$ make flashall
 該指令會燒錄Bootloader分區、算法分區、應用分區。
           

注意:Bootloader燒寫若異常斷電可能會導緻裝置無法引導。

應用固件燒錄

• 大部分應用程式都運作應用分區上,修改應用程式代碼後可以隻燒寫相應的應用程式固件,加快燒寫速度。

$ make flash
           

燒錄成功

• 燒錄成功後,可以看到所有分區燒寫進度都已至100%。

Program partition: bmtb         address: 0x8000000, size 192 byte           

erasing...

program 08000000, 100%

Program partition: boot address: 0x8001000, size 41592 byte

program 08009000, 100%

Program partition: tee address: 0x8011000, size 22048 byte

program 08011000, 100%

Program partition: imtb address: 0x8021000, size 8192 byte

program 08021000, 100%

Program partition: prim address: 0x8023000, size 1712796 byte

program 081c3000, 100%

Program partition: cpu1 address: 0x8323000, size 233708 byte

program 0835b000, 100%

Program partition: cpu2 address: 0x83a3000, size 388358 byte

program 083fb000, 100%

Program partition: lpm address: 0x85a7000, size 25508 byte

program 085a7000, 100%

Program partition: lfs address: 0x85c7000, size 143360 byte

program 085e7000, 100%

Program partition: kp address: 0x8fff000, size 576 byte

program 08fff000, 100%

3. 例程運作

3.1 配置序列槽工具

Windows序列槽工具

• 序列槽工具可以選擇putty/SecureCRT/Xshell等常見Windows工具

• 以Xshell為例,選擇對應的端口号(安裝完序列槽驅動後,從裝置管理器中可以查詢到),波特率設定為115200,資料位設為8,停止位設1,奇偶校驗位和流控制位均設為‘無’:

智能語音終端SDK快速上手說明 | 《無需從0開發 1天上手智能語音離線上方案》第三章

Linux序列槽工具

• Linux下推薦使用minicom作為序列槽工具,安裝指令:

$sudo apt-get install minicom           

• 啟動minicom并配置參數:

$sudo minicom -s           

//選擇‘Serial port setup’

A - Serial Device : /dev/ttyS0

E - Bps/Par/Bits : 115200 8N1

F - Hardware Flow Control: No

3.2 開發闆上電

• 按開發闆上的複位按鍵,複位開發闆,開發闆正常上電log列印如下:

boot_v1.4

sdram ok

boot core...build: May 16 2020 14:29:18

BOOT[I] part_num:12

BOOT[E] otp cant find pk region

BOOT[I] verify [prim] ok

BOOT[I] load img & jump to [tee]

BOOT[I] all copy over..

BOOT[I] j m

BOOT[I] j 0x18000000

Tee v1.4.0 Initliaze done, Jun 22 2020 17:29:06

... 後續日志省略

3.3 配置 WiFi 密碼

首次上電時,開發闆沒有配置 WiFi 使用者名密碼,無法連接配接無線路由器。使用者可以通過序列槽指令行指令快速配置 WiFi 密碼,步驟如下:

• 序列槽中輸入指令分别設定 WiFi 參數(ssid, password),其中 {ssid} 為 wifi 名稱,{password} 為 wifi 密碼,如果路由器沒有密碼,密碼可随意填寫

注意:所有指令都需要以換行符 \n 或\r\n結尾           

kv set wifi_ssid {ssid}

kv set wifi_psk {password}

• 可以通過 kv get wifi_ssid/kv get wifi_psk 來擷取設定的ssid/密碼,驗證設定是否正确

kv get wifi_ssid

kv get test

kv get wifi_psk

kv get 123456

• 按開發闆複位鍵,重新開機開發闆

• 等待語音提示 正在啟動,網絡連接配接成功,并可以觀察到序列槽列印輸出 wifi 連接配接成功

7.801532[netmgr ]start dhcp

7.855701[netmgr ]IP: 192.168.1.103

也可以通過指令ifconfig檢查網絡連接配接狀态,如果Wi-Fi連接配接失敗,會顯示“WiFi Not connected”:

ifconfig

wifi0 Link encap:WiFi HWaddr 18:bc:5a:60:d7:f1

inet addr:192.168.1.80
GWaddr:192.168.1.1
Mask:255.255.255.0
DNS SERVER 0: 208.67.222.222
WiFi Not connected
           

3.4 語音互動示範

開發闆成功連網後,就可以進行語音互動示範了。

開發者可以通過喚醒詞“寶拉寶拉”喚醒開發闆,之後可以通過語音指令控制或詢問開發闆。

互動示例

人:寶拉寶拉

機:在

人:杭州天氣

機:杭州今天陰轉小雨,微風,15攝氏度,出門别忘了得帶傘哦!

人:聲音調大一點

機:好的

常用語音互動指令

控制指令:

• 聲音大點/提高音量

• 聲音小點/降低音量

• 停止播放

• 繼續播放

互動指令:

• 講個笑話

• 現在幾點

• 天氣預報/{城市}天氣/明天天氣/後天天氣/下周天氣

3.5 其他測試指令

更多測試指令,請參考解決方案檔案夾下面的README.md檔案。