前言
經(jīng)過(guò)前面的學(xué)習(xí),相信大家已經(jīng)了解離線語(yǔ)音開(kāi)發(fā)環(huán)境的搭建流程。甚至已經(jīng)編譯過(guò)固件,并進(jìn)行了測(cè)試。本文將從產(chǎn)品創(chuàng)建開(kāi)始講起,一步一步實(shí)現(xiàn)語(yǔ)音控制LED的功能。
安信可語(yǔ)音開(kāi)放平臺(tái):
http://voice.ai-thinker.com/#/
一、RGB品類(lèi)產(chǎn)品生成
在燈具品類(lèi)選擇RGB燈,選擇場(chǎng)景里選擇純離線方案,選擇模組可以根據(jù)自己實(shí)際的硬件選擇,我這里選擇VC-02。填寫(xiě)產(chǎn)品信息中的產(chǎn)品名稱(chēng)隨意天線,語(yǔ)言選擇中文就好。下拉到最底部,點(diǎn)擊保存。
1. 產(chǎn)品功能定義
在語(yǔ)音SDK選項(xiàng)中,前端信號(hào)處理、Pin腳配置保持默認(rèn)
2. 定義控制LED的喚醒詞及回復(fù)語(yǔ)3. 定義命令詞及回復(fù)語(yǔ)
在基礎(chǔ)信息中
· 行為:即action,用于代碼內(nèi)部識(shí)別,必填
· 命令詞:即語(yǔ)音命令詞,需要給模組寫(xiě)入的指令,多個(gè)命令用 “ | ”隔開(kāi),必填
· 回復(fù)語(yǔ):即命令詞對(duì)應(yīng)的回復(fù)語(yǔ),多個(gè)回復(fù)語(yǔ)用 “ | ”隔開(kāi),必填
4. 添加控制
在控制詳情中添加命令詞對(duì)應(yīng)做的控制:
在開(kāi)發(fā)板中,默認(rèn)引出了三個(gè)LED燈,對(duì)應(yīng)的GPIO分別是:
可以添加喚醒狀態(tài)燈,例如:藍(lán)色燈為喚醒狀態(tài)燈、暖光燈為被命令詞控制燈。
5. 完整的制作過(guò)程(包含SDK生成)
二、SDK下載和固件下載
SDK的生成需要時(shí)間,不用著急。
如果不需要再外加功能,可以直接選擇固件下載,可生成和定制功能一致的固件,之后燒錄即可。
如需外加別的功能,比如退出喚醒關(guān)閉藍(lán)色燈。就下載SDK,修改源碼實(shí)現(xiàn)功能。
1. 固件下載
固件下載是通過(guò)遠(yuǎn)程服務(wù)器編譯當(dāng)前SDK后生成的固件,一般有四個(gè)固件,它們分別是:
uni_app_debug.bin:調(diào)試版固件,有調(diào)試信息輸出,需要用專(zhuān)門(mén)的調(diào)試器進(jìn)行燒錄
uni_app_debug_update.bin:調(diào)試版的串口升級(jí)固件,可以使用UART進(jìn)行燒錄
uni_app_release.bin:正式版固件,需要用專(zhuān)門(mén)的調(diào)試器進(jìn)行燒錄
uni_app_release_update.bin:正式版的串口升級(jí)固件,可以使用UART進(jìn)行燒錄
2. SDK下載
SDK下載的文件是壓縮格式,推薦使用Linux系統(tǒng)進(jìn)行解壓,解壓指令:
tar -xzvf uni_hb_m_solution-xxxxx-xxxxxxxx.tar.gz
三、代碼修改及編譯
我們需要在這個(gè)SDK中添加一個(gè)退出喚醒關(guān)閉藍(lán)色LED燈的功能,所以需要看一下代碼。我們定制的SDK的功能默認(rèn)是在user/src/examples/hb_auto_gpio.c 中,所使用的Demo是USER_DEMO_AUTO_GPIO :
注冊(cè)退出喚醒事件及其回調(diào)
在原代碼中。默認(rèn)已經(jīng)注冊(cè)了喚醒事件的回調(diào)。并且在回調(diào)中點(diǎn)亮了藍(lán)色LED燈(GPIO_A25高電平),需要添加的功能:退出喚醒時(shí)關(guān)閉藍(lán)色LED燈,修改步驟:
· 注冊(cè)退出喚醒事件
· 添加退出喚醒事件回調(diào)的功能
//退出喚醒回調(diào)
static void _goto_sleeping_cb(USER_EVENT_TYPE event, user_event_context_t* context)
{
event_goto_sleeping_t* sleeping = NULL;
if (context)
{
sleeping = &context->goto_sleeping;
user_gpio_set_value(GPIO_NUM_A25, 0);
user_player_reply_list_random(sleeping->reply_files);
}
}
static void _register_event_callback(void) {
....
//注冊(cè)退出喚醒回調(diào)
user_event_subscribe_event(USER_GOTO_SLEEPING, _goto_sleeping_cb);
}
為了方便燒錄我們使用串口方式進(jìn)行燒錄,在路徑uni_hb_m_solution/unione_lite_app_hb_m執(zhí)行編譯領(lǐng)命:
./build.sh update
之后,使用串口升級(jí)即可驗(yàn)證功能
四、更多資料
安信可語(yǔ)音開(kāi)放平臺(tái):http://voice.ai-thinker.com
官方官網(wǎng):https://www.ai-thinker.com
開(kāi)發(fā)DOCS:https://docs.ai-thinker.com
技術(shù)支持:support@aithinker.com
審核編輯 黃宇
-
led
+關(guān)注
關(guān)注
242文章
23577瀏覽量
668116 -
RGB
+關(guān)注
關(guān)注
4文章
803瀏覽量
59308 -
開(kāi)發(fā)板
+關(guān)注
關(guān)注
25文章
5318瀏覽量
100331 -
語(yǔ)音控制
+關(guān)注
關(guān)注
5文章
494瀏覽量
28523
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
安信可語(yǔ)音開(kāi)放平臺(tái)的使用——VC系列SDK的獲取

DLP6500想調(diào)用API進(jìn)行自主二次開(kāi)發(fā),怎么構(gòu)建開(kāi)發(fā)環(huán)境?
怎么配置dlp6500二次開(kāi)發(fā)的環(huán)境,可以使用VS2013嗎?
DLP4500-C350REF如何在linux下借助SDK二次開(kāi)發(fā)?
TSW14J56EVM板卡提供二次開(kāi)發(fā)的接口怎么使用的?
SOLIDWORKS二次開(kāi)發(fā)應(yīng)用范圍與實(shí)例
什么~FPGA可以自行二次開(kāi)發(fā)了?

ARMxy ARM工業(yè)邊緣計(jì)算網(wǎng)關(guān)帶Ubuntu OS支持二次開(kāi)發(fā)

聆思CSK6視覺(jué)語(yǔ)音大模型AI開(kāi)發(fā)板入門(mén)資源合集(硬件資料、大模型語(yǔ)音/多模態(tài)交互/英語(yǔ)評(píng)測(cè)SDK合集)
LoRa-Kit 開(kāi)發(fā)板使用介紹

基于ASR-PRO離線語(yǔ)音芯片,DIY一個(gè)可轉(zhuǎn)動(dòng)的語(yǔ)音控制的月球音響燈
LoRa-Kit開(kāi)發(fā)板怎么使用? 安信可圖文詳解LoRa-Kit開(kāi)發(fā)板使用步驟

安信可星閃開(kāi)發(fā)板or模組燒錄指導(dǎo)

評(píng)論