如何使用CrowPanel Advance和OpenAI Realtime API構(gòu)建一個緊湊的智能語音控制機器人系統(tǒng)
語音控制的機器人界面使用CrowPanel Advance和OpenAI。
本項目演示了如何使用CrowPanel Advance和OpenAI Realtime API構(gòu)建一個緊湊的智能語音控制機器人系統(tǒng)。CrowPanel記錄用戶的聲音,將其發(fā)送給OpenAI進行轉(zhuǎn)錄和解釋,并接收結(jié)構(gòu)化的命令。該命令在面板上進行解釋,然后通過藍牙傳輸給機器人(CrowBot)。
由于基于gpt的自然語言理解,機器人不僅可以對簡單的指令做出反應(yīng),比如“向前走”,還可以對間接的短語做出反應(yīng),比如“這里有點暗”,并通過打開前燈來回應(yīng)。
雖然這種設(shè)置可以與CrowBot一起開箱即用,但它可以很容易地適應(yīng)控制其他DIY機器人平臺,藍牙智能玩具,甚至家庭自動化系統(tǒng)。
特性
?免提語音控制使用CrowPanel Advance的內(nèi)置麥克風
?OpenAI支持的自然語言理解(實時API)
?通過結(jié)構(gòu)化JSON調(diào)用函數(shù),以實現(xiàn)安全、可擴展的命令執(zhí)行
?基于藍牙的命令傳輸?shù)紺rowBot
?用于Wi-Fi設(shè)置和API密鑰輸入的簡單GUI
?開源和可擴展:適應(yīng)您自己的機器人或系統(tǒng)
它是如何工作的
1. 用戶按住CrowPanel Advance,運行自定義控件應(yīng)用程序。
2. 他們會說命令,例如,“向前走,向右轉(zhuǎn)”,或者“這里有點暗”。
3. 聲音流到OpenAI實時API,在那里它被轉(zhuǎn)錄(通過gpt- 40 -mini- transcript)和處理。
4. OpenAI返回一個帶有函數(shù)名和參數(shù)的結(jié)構(gòu)化JSON。
5. CrowPanel解釋響應(yīng),并通過藍牙將命令發(fā)送給CrowBot。
6. 機器人執(zhí)行動作(例如,移動、轉(zhuǎn)彎、開/關(guān)燈)。
7. 不支持或不明確的請求使用內(nèi)置的reject_request函數(shù)安全處理。
由于集成了OpenAI,即使是復雜或間接的語音命令也被解析為可操作的步驟,使機器人控制更加直觀和有趣。
所需的硬件
- CrowPanel Advance
- CrowPanel插件(帶藍牙模塊)
- CrowBot或任何接受藍牙UART命令的機器人
- OpenAI API密鑰
固件
CrowPanel固件和語音控制邏輯:Grovety/OpenAI_Robot_Control
自定義CrowBot固件:CrowBot GRC固件
教程-快速入門指南
有兩種安裝選項:
?使用預構(gòu)建映像的快速設(shè)置
?為開發(fā)人員和制造商提供了一個完整的從源代碼構(gòu)建選項
選項1:Flash預構(gòu)建固件
?從帶有二進制文件的存儲庫中下載flash_tool.exe
?連接CrowPanel通過USB和運行閃光燈。
?閃爍后,連接Wi-Fi
?然后輸入OpenAI API密鑰。
?啟動CrowBot。
開始說話——試試這樣的命令:
“轉(zhuǎn)發(fā)”
“左轉(zhuǎn),打開燈”
選項2:從源代碼構(gòu)建
?克隆groovy /OpenAI_Robot_Control repo
?使用ESP-IDF v5.4+來構(gòu)建和刷新CrowPanel固件
?根據(jù)需要定制GUI、藍牙邏輯或命令解析器
?Flash CrowBot與兼容固件使用Arduino或PlatformIO
關(guān)于命令處理
這個項目沒有使用長文本提示,而是使用OpenAI的函數(shù)調(diào)用特性來安全地將用戶語音映射到有效的機器人動作。
JSON文件定義了所有可用的函數(shù):function_list_robot.json
每個函數(shù)都有一個名稱(例如go_forward)、描述和可選參數(shù)。
當用戶說:
“向前走,把燈打開?!?
CrowPanel發(fā)送:
可識別的文本
JSON函數(shù)列表
指令function_call: auto
OpenAI返回結(jié)構(gòu)化輸出,如:
{"name": "go_forward", "arguments": {}}
CrowPanel解析結(jié)果并向CrowBot發(fā)送相應(yīng)的藍牙命令。
為什么這種方法很棒:
?只有經(jīng)過批準的函數(shù)才能被調(diào)用——毫無疑問
?添加新命令很容易——只需更新JSON即可
?支持安全回退,如輸入不明確的reject_request
?可擴展和安全-遵循OpenAI推薦的嵌入式AI架構(gòu)
擴展理念
想要更進一步嗎?以下是一些說明:
-使用揚聲器和OpenAI的語音合成添加語音響應(yīng)系統(tǒng)
-整合對話系統(tǒng)與上下文記憶
-使用相同的設(shè)置,通過藍牙中繼控制智能家居設(shè)備
-將其與手勢識別或視覺反饋相結(jié)合
-通過JSON擴展命令集-只需更新function_list_robot.json
-使用OpenAI的流媒體API從一次轉(zhuǎn)錄切換到實時語音??語音交互
本文編譯自hackster.io