具身智能是一種將智能與物理實(shí)體深度融合的人工智能形態(tài),強(qiáng)調(diào)智能行為既依賴智能體自身算力,更離不開其與環(huán)境的感知交互。在具身智能體與人類交互方面,自然語(yǔ)言是極為直觀且高效的溝通方式。
大語(yǔ)言模型(LLM)憑借卓越的自然語(yǔ)言理解、生成與推理能力,與具身智能結(jié)合,人類可經(jīng)語(yǔ)音智能體發(fā)出指令、提出問(wèn)題或者表達(dá)需求,LLM 能處理理解語(yǔ)言信息并生成回復(fù),還可以將用戶指令解析為具體動(dòng)作或任務(wù)目標(biāo),助力具身智能體精準(zhǔn)把握人類意圖并協(xié)同工作。
我們利用 MATLAB 開發(fā)了一個(gè)簡(jiǎn)易智能助手,實(shí)現(xiàn)了基于語(yǔ)音的人機(jī)交互。下面的視頻將展示該語(yǔ)音助手如何被喚醒,以及它如何應(yīng)答用戶提問(wèn)和接收指令以操控電機(jī)開關(guān)。
系統(tǒng)概況
下圖展示了該智能助手簡(jiǎn)要的工作流程:它通過(guò)監(jiān)聽環(huán)境并檢測(cè)觸發(fā)詞來(lái)被喚醒,之后調(diào)用語(yǔ)音轉(zhuǎn)文本模型將用戶語(yǔ)音轉(zhuǎn)化為文本,通過(guò)文本判斷是否為用戶指令:若為指令,則將其轉(zhuǎn)化為控制信息發(fā)送至硬件執(zhí)行;若非指令,則調(diào)用LLM生成相應(yīng)的回復(fù);最后,通過(guò)文本轉(zhuǎn)語(yǔ)音模型將回復(fù)文本轉(zhuǎn)化為語(yǔ)音并播放。

本文將展示如何在 MATLAB 中構(gòu)建這樣一個(gè)語(yǔ)音助手,以及 MATLAB 在智能應(yīng)用快速原型方面的如下能力:
用戶界面設(shè)計(jì)與實(shí)現(xiàn)
語(yǔ)音信號(hào)采集與處理
Python 模型集成
大語(yǔ)言模型支持
硬件控制與代碼部署
用戶界面設(shè)計(jì)與實(shí)現(xiàn)
MATLAB 提供一個(gè)用于設(shè)計(jì)和編程 App 的交互式開發(fā)環(huán)境 App Designer,可以用來(lái)設(shè)計(jì)智能助手的用戶界面。App Designer 內(nèi)置完整的 MATLAB 編輯器和豐富的交互式 UI 組件,支持通過(guò)網(wǎng)格布局管理界面,并可自動(dòng)適應(yīng)屏幕尺寸變化。用戶可直接在工具欄將 App 打包為安裝文件分發(fā),或借助 MATLAB Compiler 創(chuàng)建獨(dú)立桌面或 Web App。

可參考如下網(wǎng)頁(yè)快速入門 App Designer:
使用 App 設(shè)計(jì)工具開發(fā) App:https://ww2.mathworks.cn/help/matlab/app-designer.html
語(yǔ)音采集與處理
除了基本的 Signal Processing Toolbox,MATLAB 還專門為音頻、語(yǔ)音和聲學(xué)信號(hào)的處理與分析提供了Audio Toolbox,這也為我們智能助手的語(yǔ)音采集和處理提供了便利。Audio Toolbox 提供豐富的算法,可用于音頻信號(hào)處理、聲學(xué)指標(biāo)估算、音頻數(shù)據(jù)集標(biāo)注與增強(qiáng),以及音頻特征提取。
可訪問(wèn)如下網(wǎng)頁(yè)學(xué)習(xí)如何在 MATLAB 中通過(guò) Audio Toolbox 采集、分析及處理語(yǔ)音信號(hào):
Audio Toolbox:https://ww2.mathworks.cn/help/audio/index.html
結(jié)合上一步,如需在用戶界面上實(shí)現(xiàn)音頻文件的波形顯示與播放,可參考如下示例:
創(chuàng)建音頻播放與可視化應(yīng)用:*https://ww2.mathworks.cn/help/audio/ug/create-an-app-to-play-and-visualize-audio-files.html *
在智能助手應(yīng)用中,觸發(fā)詞檢測(cè)、語(yǔ)音轉(zhuǎn)文本和文本轉(zhuǎn)語(yǔ)音這三個(gè)模塊都是基于Audio Toolbox 網(wǎng)頁(yè)上提供的 “AI for Audio” 相關(guān)參考示例和函數(shù)來(lái)實(shí)現(xiàn)的。MATLAB 提供了Statistics and Machine Learning Toolbox 和 Deep Learning Toolbox 來(lái)支持 AI 方面的應(yīng)用。其中,觸發(fā)詞檢測(cè)主要是通過(guò)訓(xùn)練一個(gè)深度學(xué)習(xí)網(wǎng)絡(luò)來(lái)完成。可在 MathWorks 官網(wǎng)上搜索以下示例,學(xué)習(xí)如何在 MATLAB 中對(duì)音頻信號(hào)打標(biāo)簽,如何設(shè)計(jì)與訓(xùn)練一個(gè)用于觸發(fā)詞檢測(cè)的深度學(xué)習(xí)網(wǎng)絡(luò),以及如何裁剪及量化 神經(jīng)網(wǎng)絡(luò)并把它部署到樹莓派中。

對(duì)于語(yǔ)音與文本的相互轉(zhuǎn)換,需在 MATLAB 工具欄的“Add-Ons”下點(diǎn)擊“Get Add-Ons”,搜索并安裝“Audio Toolbox Interface for SpeechBrain and Torchaudio Libraries”。也可訪問(wèn)如下網(wǎng)頁(yè)直接下載安裝,并查看其使用文檔及相關(guān)示例:
Audio Toolbox Interface for SpeechBrain and Torchaudio Libraries:https://ww2.mathworks.cn/matlabcentral/fileexchange/160371-audio-toolbox-interface-for-speechbrain-and-torchaudio-libraries

該插件可自動(dòng)安裝 Python 和 PyTorch,并下載 SpeechBrain 和 Torchaudio 庫(kù)中的深度學(xué)習(xí)模型,從而為 Audio Toolbox 提供了基于 AI 的語(yǔ)音識(shí)別(ASR)和語(yǔ)音合成功能,使得MATLAB 用戶無(wú)需深度學(xué)習(xí)經(jīng)驗(yàn)即可直接使用前沿的 AI 語(yǔ)音模型。
用戶可通過(guò) speechClient 對(duì)象,調(diào)用speech2text和text2speech函數(shù),選用本地模型或者Google、IBM、Microsoft、Amazon 等云服務(wù),分別實(shí)現(xiàn)語(yǔ)音轉(zhuǎn)文本(STT)(或自動(dòng)語(yǔ)音識(shí)別(ASR))和文本轉(zhuǎn)語(yǔ)音(TTS)(或語(yǔ)音合成)功能。對(duì)于中文,可選擇whisper 模型實(shí)現(xiàn)語(yǔ)音轉(zhuǎn)文本,注意這時(shí)需單獨(dú)下載模型權(quán)重。
Python 模型集成
在文本轉(zhuǎn)語(yǔ)音模塊中,text2speech 函數(shù)使用的是 HiFi-GAN/Tacotron2 預(yù)訓(xùn)練模型,無(wú)法合成超過(guò)約 10 秒的語(yǔ)音信號(hào)。因此,可在 MATLAB 中配置 Python 環(huán)境,安裝和調(diào)用其他預(yù)訓(xùn)練好的 Python 模型。具體操作可參考:
從 MATLAB 中調(diào)用 Python:https://ww2.mathworks.cn/help/matlab/call-python-libraries.html
在智能助手的示例中,我們選用的是pyttsx3,一個(gè)可直接調(diào)用多種操作系統(tǒng)的 TTS,支持在離線狀態(tài)下實(shí)現(xiàn)文本轉(zhuǎn)語(yǔ)音并播放功能的Python 庫(kù)。
在 MATLAB 命令行,可使用如下命令安裝pyttsx3庫(kù):

然后,通過(guò)如下函數(shù)初始化一個(gè)基于pyttsx3的TTS引擎并設(shè)置其參數(shù):

之后,就可利用* engine.say()* 函數(shù)傳入需要合成并播放的文本,使用*engine.runAndWait() *函數(shù)等待朗讀任務(wù)的完成。
大語(yǔ)言模型支持
在我們的智能助手項(xiàng)目中,大語(yǔ)言模型被用來(lái)回答用戶的提問(wèn)。為此,需要在附加功能資源瀏覽器中搜索并安裝 “Large Language Models (LLM) with MATLAB” ,或訪問(wèn)如下網(wǎng)頁(yè)直接下載并安裝:
Large Language Models (LLMs) with MATLAB:https://ww2.mathworks.cn/matlabcentral/fileexchange/163796-large-language-models-llms-with-matlab

這個(gè)Add-on可以幫助用戶通過(guò) MATLAB 連接或者調(diào)用各種大語(yǔ)言模型。目前支持 OpenAI Chat Completions API 和 OpenAI Images API 等,還支持調(diào)用 Ollama 部署的本地大模型。可參考之前發(fā)布的微信文章《如何運(yùn)行本地 DeepSeek 模型并在 MATLAB 中使用?》了解更多。
硬件控制和代碼部署
與硬件設(shè)備進(jìn)行交互是具身智能的一大特色,在這個(gè)智能助手項(xiàng)目中,用戶可以通過(guò)指令控制電機(jī)啟動(dòng)和關(guān)閉。MATLAB 和 Simulink 可以直接與一些硬件鏈接并進(jìn)行實(shí)時(shí)數(shù)據(jù)流傳輸,還能支持將算法和模型自動(dòng)生成 C/C++、HDL 或 PLC 代碼等,部署到嵌入式系統(tǒng)中,如機(jī)器人控制器、無(wú)人車的車載計(jì)算機(jī)等,實(shí)現(xiàn)具身智能系統(tǒng)的實(shí)際運(yùn)行。
可在如下網(wǎng)頁(yè)中找到更詳細(xì)的信息:
MATLAB 的硬件支持:https://ww2.mathworks.cn/hardware-support/home.html
為了演示智能助手對(duì)電機(jī)的控制,我們基于如下 MATLAB 隨軟件附帶的示例做了簡(jiǎn)單修改:
使用基于 STM32 處理器的板子實(shí)現(xiàn)對(duì)三相交流電機(jī)的開環(huán)控制:https://ww2.mathworks.cn/help/ecoder/stmicroelectronicsstm32f4discovery/ug/Openn-Loop-Control-Example.html
原始示例是通過(guò)板卡上的按鍵打開或者關(guān)閉電機(jī)運(yùn)行,我們將“Communication” 下的“Start and Stop Motor” 模塊修改成通過(guò) USART2 串口接收信號(hào)控制電機(jī)啟動(dòng)與停止(如下圖所示)。所以,當(dāng)智能助手檢測(cè)到電機(jī)控制指令時(shí),只需要在串口發(fā)送該指令所相對(duì)應(yīng)的數(shù)字即可。

記得在 MATLAB 電機(jī)控制命令發(fā)送函數(shù)中使用與 STM32 USART2 端口配置中相同的波特率與字長(zhǎng)。

總結(jié)
目前,我們僅使用 MATLAB 將具身智能與大語(yǔ)言模型(LLM)結(jié)合,在人機(jī)交互方面進(jìn)行了初步探索,未來(lái)將繼續(xù)探索能否直接使用多模態(tài)模型直接解析用戶需求來(lái)實(shí)現(xiàn)具身智能的人機(jī)交互。
除了人機(jī)交互, MATLAB 在具身智能的建模與仿真、感知與數(shù)據(jù)處理、決策與控制、學(xué)習(xí)與訓(xùn)練、測(cè)試與評(píng)估、嵌入式部署及代碼生成等眾多領(lǐng)域,均是功能強(qiáng)大的工具。歡迎感興趣的小伙伴們和我們一同進(jìn)行探索與研究!
-
人機(jī)交互
+關(guān)注
關(guān)注
12文章
1276瀏覽量
57664 -
matlab
+關(guān)注
關(guān)注
189文章
3018瀏覽量
237715 -
智能助手
+關(guān)注
關(guān)注
0文章
26瀏覽量
3232 -
具身智能
+關(guān)注
關(guān)注
0文章
294瀏覽量
790
原文標(biāo)題:大語(yǔ)言模型(LLM) 賦能具身智能中的人機(jī)交互
文章出處:【微信號(hào):MATLAB,微信公眾號(hào):MATLAB】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
智能語(yǔ)音助手將成為智能家居用戶入口
語(yǔ)音助手的常見問(wèn)題有哪些?
【 平頭哥CB5654語(yǔ)音開發(fā)板試用連載】智能聲控語(yǔ)音助手
如何在matlab中實(shí)現(xiàn)Virtual Reality 技術(shù)
語(yǔ)音助手成智能電視標(biāo)配 真的會(huì)用了就離不開語(yǔ)音助手嗎?
用語(yǔ)音助手打電話訂餐廳
如何在MATLAB中開發(fā)基于像素的視頻和圖像處理算法

如何在MATLAB中構(gòu)建智能語(yǔ)音助手
評(píng)論