《鴻蒙機(jī)器人編程》課件-4. 通過語(yǔ)音讓SPARK實(shí)現(xiàn)智能家居控制_第1頁(yè)
《鴻蒙機(jī)器人編程》課件-4. 通過語(yǔ)音讓SPARK實(shí)現(xiàn)智能家居控制_第2頁(yè)
《鴻蒙機(jī)器人編程》課件-4. 通過語(yǔ)音讓SPARK實(shí)現(xiàn)智能家居控制_第3頁(yè)
《鴻蒙機(jī)器人編程》課件-4. 通過語(yǔ)音讓SPARK實(shí)現(xiàn)智能家居控制_第4頁(yè)
《鴻蒙機(jī)器人編程》課件-4. 通過語(yǔ)音讓SPARK實(shí)現(xiàn)智能家居控制_第5頁(yè)
已閱讀5頁(yè),還剩27頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

?NXROBO2023通過語(yǔ)音實(shí)現(xiàn)智能家居控制課程說明了解網(wǎng)絡(luò)通信星火派WiFi-STA實(shí)現(xiàn)在線/離線語(yǔ)音功能開源鴻蒙套件控制燈效?NXROBO20232了解網(wǎng)絡(luò)通信?NXROBO20233網(wǎng)絡(luò)通信介紹?NXROBO20234

網(wǎng)絡(luò)通信是指通過計(jì)算機(jī)網(wǎng)絡(luò)實(shí)現(xiàn)數(shù)據(jù)傳輸和交換的過程。計(jì)算機(jī)網(wǎng)絡(luò)是由多個(gè)計(jì)算機(jī)和其他設(shè)備(如路由器、交換機(jī)等)組成的互聯(lián)網(wǎng),它們通過物理鏈路或無(wú)線信道相連,構(gòu)成一個(gè)覆蓋范圍廣泛的信息傳輸系統(tǒng)。

網(wǎng)絡(luò)通信的基本原理是使用協(xié)議對(duì)信息進(jìn)行編碼和解碼。通信協(xié)議規(guī)定了數(shù)據(jù)格式、傳輸速率、錯(cuò)誤檢測(cè)和糾正等方面的細(xì)節(jié),從而使得網(wǎng)絡(luò)設(shè)備可以相互識(shí)別和交換信息。常用的網(wǎng)絡(luò)通信協(xié)議包括TCP/IP、HTTP、FTP、SMTP等。-TCP/IP協(xié)議是Internet上最常用的協(xié)議之一,它負(fù)責(zé)將數(shù)據(jù)分割成小塊并在網(wǎng)絡(luò)上傳輸;-HTTP是超文本傳輸協(xié)議,用于Web瀏覽器和服務(wù)器之間的通信;-FTP是文件傳輸協(xié)議,用于在不同計(jì)算機(jī)之間傳輸文件;-SMTP是簡(jiǎn)單郵件傳輸協(xié)議,用于電子郵件的發(fā)送和接收。WiFi網(wǎng)絡(luò)組建?NXROBO20235手機(jī)客戶端要與星火派正常進(jìn)行網(wǎng)絡(luò)通信,需要二者處于同一局域網(wǎng)內(nèi),連接同一熱點(diǎn)或者路由,配置IP。由于星火派每次重啟都會(huì)重置IP地址,如果設(shè)置為動(dòng)態(tài)IP的話開發(fā)板IP會(huì)不斷變化,所以這里采用靜態(tài)IP的配置方法,配置靜態(tài)IP時(shí)要確保該IP能夠正常分配到,網(wǎng)關(guān)與掩碼都要進(jìn)行配置。由于Spark有熱點(diǎn)功能,也可以通過讓Spark開啟熱點(diǎn),供給手機(jī)客戶端與星火派開發(fā)板進(jìn)行連接。STA聯(lián)網(wǎng)?NXROBO20236STA(Station)是指設(shè)備作為無(wú)線局域網(wǎng)的客戶端或終端,用于連接到無(wú)線網(wǎng)絡(luò)的設(shè)備。STA聯(lián)網(wǎng)是指該設(shè)備通過無(wú)線接口連接到一個(gè)無(wú)線網(wǎng)絡(luò),并獲取網(wǎng)絡(luò)連接的功能。在無(wú)線局域網(wǎng)中,通常有一個(gè)無(wú)線接入點(diǎn)(AP)作為網(wǎng)絡(luò)的中心設(shè)備,負(fù)責(zé)提供無(wú)線信號(hào)和網(wǎng)絡(luò)連接。STA設(shè)備可以通過掃描周圍的無(wú)線信號(hào)找到可用的無(wú)線網(wǎng)絡(luò),并與其中的一個(gè)網(wǎng)絡(luò)進(jìn)行連接。連接后,STA設(shè)備可以與該網(wǎng)絡(luò)進(jìn)行通信,訪問互聯(lián)網(wǎng)或與網(wǎng)絡(luò)中的其他設(shè)備進(jìn)行交互。STA聯(lián)網(wǎng)的過程通常涉及以下步驟:1.掃描:STA設(shè)備掃描周圍的無(wú)線信號(hào),獲取可用的無(wú)線網(wǎng)絡(luò)列表。2.連接:選擇要連接的無(wú)線網(wǎng)絡(luò),并與該網(wǎng)絡(luò)建立連接。這通常需要提供網(wǎng)絡(luò)的身份驗(yàn)證信息,如SSID(網(wǎng)絡(luò)名稱)和密碼。3.鑒權(quán):STA設(shè)備向無(wú)線網(wǎng)絡(luò)發(fā)送身份驗(yàn)證信息,并等待網(wǎng)絡(luò)的確認(rèn)和鑒權(quán)。4.獲取IP地址:一旦STA設(shè)備通過身份驗(yàn)證,它會(huì)分配一個(gè)IP地址,用于在網(wǎng)絡(luò)中唯一標(biāo)識(shí)設(shè)備。5.聯(lián)網(wǎng):STA設(shè)備成功獲取IP地址后,可以與網(wǎng)絡(luò)中的其他設(shè)備進(jìn)行通信,訪問互聯(lián)網(wǎng)或執(zhí)行其他網(wǎng)絡(luò)相關(guān)的操作。STA聯(lián)網(wǎng)相關(guān)API?NXROBO20237OpenHarmony提供相關(guān)接口API位置于:/openharmony3.1.6/device/soc/hisilicon/hi3861v100/sdk_liteos/include其中hi_wifi_api.h文件提供STA聯(lián)網(wǎng)相關(guān)API星火派WiFi-STA實(shí)現(xiàn)?NXROBO20238WIFI開啟的流程?NXROBO202391.STA初始化,hi_wifi_sta_start()2.注冊(cè)回調(diào)函數(shù),hi_wifi_register_event_callback():wifi模塊接收到事件觸發(fā)回調(diào)3.根據(jù)網(wǎng)絡(luò)接口查找對(duì)應(yīng)的netif結(jié)構(gòu)體指針,netifapi_netif_find():傳遞網(wǎng)絡(luò)接口名稱作為參數(shù),可以獲取到該網(wǎng)絡(luò)接口對(duì)應(yīng)的netif結(jié)構(gòu)體指針,進(jìn)而可以對(duì)該網(wǎng)絡(luò)接口進(jìn)行相關(guān)操作,如配置IP地址、啟動(dòng)DHCP等。4.掃描WIFI,hi_wifi_sta_scan():獲取到掃描到的無(wú)線網(wǎng)絡(luò)的信息,如SSID(網(wǎng)絡(luò)名稱)、信號(hào)強(qiáng)度等。這樣可以在應(yīng)用程序中顯示可用的Wi-Fi網(wǎng)絡(luò)列表或進(jìn)行其他相關(guān)操作。5.獲取WIFI掃描結(jié)果,hi_wifi_sta_scan_results:獲取Wi-Fi掃描結(jié)果,即獲取附近可用的Wi-Fi網(wǎng)絡(luò)列表。通過調(diào)用該函數(shù),可以獲取包含掃描到的Wi-Fi網(wǎng)絡(luò)信息的結(jié)構(gòu)體數(shù)組。6.連接WiFi,hi_wifi_start_connect():與指定的Wi-Fi網(wǎng)絡(luò)進(jìn)行連接。通過調(diào)用該函數(shù),可以指定要連接的Wi-Fi網(wǎng)絡(luò)的SSID(網(wǎng)絡(luò)名稱)、認(rèn)證方式和密碼,并進(jìn)行連接操作。7.配置DHCP獲取IP地址,dhcp_start():?jiǎn)?dòng)動(dòng)態(tài)主機(jī)配置協(xié)議(DHCP)客戶端,通過向DHCP服務(wù)器發(fā)送請(qǐng)求,獲取IP地址、子網(wǎng)掩碼、默認(rèn)網(wǎng)關(guān)等網(wǎng)絡(luò)配置信息。編寫WIFI業(yè)務(wù)代碼wifi_sta.c?NXROBO202310wifi_sta.c文件位于:/spark_hm_pi/example/08_wifi_sta/08_wifi_sta目錄下,內(nèi)容如下:(更多信息請(qǐng)查看實(shí)訓(xùn)指導(dǎo)書)編寫業(yè)務(wù)編譯構(gòu)建文件BUILD.gn?NXROBO202311BUILD.gn文件位于:/spark_hm_pi/example/08_wifi_sta/BUILD.gn,內(nèi)容如下:(更多信息請(qǐng)查看實(shí)訓(xùn)指導(dǎo)書)編寫模塊編譯構(gòu)建文件BUILD.gn?NXROBO202312BUILD.gn文件位于:/spark_hm_pi/example/BUILD.gn,內(nèi)容如下:(更多信息請(qǐng)查看實(shí)訓(xùn)指導(dǎo)書)編譯&燒錄&調(diào)試?NXROBO202313具體過程參照《鴻蒙開發(fā)板開發(fā)環(huán)境操作手冊(cè)》與《星火派SPARK-HM-PI程序燒錄說明》打開串口調(diào)試助手,按下開發(fā)板reset,可以看到串口打印出WIFI信息:在線/離線語(yǔ)音功能?NXROBO202314語(yǔ)音技術(shù)介紹?NXROBO202315外設(shè)通過無(wú)線,內(nèi)部通過串口和NUC通信,控制底盤。在線語(yǔ)音功能是指使用互聯(lián)網(wǎng)連接,與其他人進(jìn)行實(shí)時(shí)語(yǔ)音通話。用戶可以通過應(yīng)用程序或網(wǎng)頁(yè)界面打開麥克風(fēng)和揚(yáng)聲器,并與其他人進(jìn)行通話。這種功能常見于即時(shí)通訊軟件、社交媒體平臺(tái)或網(wǎng)絡(luò)電話服務(wù)。也可以通過在線語(yǔ)音功能進(jìn)行遠(yuǎn)程控制。

離線語(yǔ)音功能是指在沒有互聯(lián)網(wǎng)連接的情況下,仍然能夠使用語(yǔ)音功能完成一些操作。例如,在手機(jī)或電腦上安裝語(yǔ)音識(shí)別軟件,可以使用離線語(yǔ)音功能將語(yǔ)音轉(zhuǎn)換為文字,從而輔助用戶進(jìn)行文字輸入。另外,還有一些設(shè)備自帶的離線語(yǔ)音播報(bào)功能,例如汽車導(dǎo)航系統(tǒng)、智能家居產(chǎn)品,可以在沒有網(wǎng)絡(luò)連接的情況下,對(duì)用戶進(jìn)行語(yǔ)音提示和指導(dǎo)。本章節(jié)的功能實(shí)現(xiàn)采用離線語(yǔ)音功能的語(yǔ)音識(shí)別技術(shù)。語(yǔ)音識(shí)別技術(shù)?NXROBO202316語(yǔ)音識(shí)別技術(shù),也稱為自動(dòng)語(yǔ)音識(shí)別(AutomaticSpeechRecognition,ASR),可以基于機(jī)器識(shí)別和理解,將語(yǔ)音信號(hào)轉(zhuǎn)變?yōu)槲谋净蛎睢1景咐胁捎玫氖侨A為的鴻蒙手機(jī),利用語(yǔ)音識(shí)別功能提供面向移動(dòng)終端的語(yǔ)音識(shí)別能力。開發(fā)基于華為智慧引擎(HUAWEIHiAIEngine)中的語(yǔ)音識(shí)別引擎,向開發(fā)者提供人工智能應(yīng)用層API。該技術(shù)可以將語(yǔ)音文件、實(shí)時(shí)語(yǔ)音數(shù)據(jù)流轉(zhuǎn)換為漢字序列,準(zhǔn)確率達(dá)到90%以上(本地識(shí)別95%)。約束與限制:支持的輸入文件格式有wav或pcm當(dāng)前僅支持對(duì)普通話的識(shí)別輸入時(shí)長(zhǎng)不能超過20s采樣要求:采樣率16000Hz,單聲道引擎的使用必須初始化和釋放處理,且調(diào)用必須在UI的主線程中進(jìn)行多線程調(diào)用:HUAWEIHiAIEngine不支持同一應(yīng)用使用多線程調(diào)用同一接口,這樣會(huì)使某一線程調(diào)用release方法后,卸載模型,導(dǎo)致正在運(yùn)行的另一些線程出錯(cuò)。故多線程執(zhí)行同一功能達(dá)不到并行的效果。但是引擎支持使用多線程調(diào)用不同接口,如開啟兩個(gè)線程同時(shí)使用文檔矯正和ASR接口接口說明?NXROBO202317接口說明?NXROBO202318開發(fā)步驟?NXROBO2023191在使用語(yǔ)音識(shí)別API時(shí),將實(shí)現(xiàn)ASR的相關(guān)的類添加至工程//提供ASR引擎執(zhí)行時(shí)所需要傳入的參數(shù)類importohos.ai.asr.AsrIntent;//錯(cuò)誤碼的定義類importohos.ai.asr.util.AsrError;//加載語(yǔ)音識(shí)別Listenerimportohos.ai.asr.AsrListener;//提供調(diào)用ASR引擎服務(wù)接口的類importohos.ai.asr.AsrClient;//ASR回調(diào)結(jié)果中的關(guān)鍵字封裝類importohos.ai.asr.util.AsrResultKey;開發(fā)步驟?NXROBO2023202.調(diào)用API接口2.1創(chuàng)建一個(gè)AsrClient對(duì)象。context為應(yīng)用上下文信息,應(yīng)為ohos.aafwk.ability.Ability或ohos.aafwk.ability.AbilitySlice的實(shí)例或子類實(shí)例AsrClientasrClient=AsrClient.createAsrClient(context).orElse(null);2.2設(shè)置引擎參數(shù)。如果希望識(shí)別文件,音頻文件需滿足約束與限制,并設(shè)置音頻類型為“ASR_SRC_TYPE_FILE”;如果希望識(shí)別音頻流,則設(shè)置音頻類型為“ASR_SRC_TYPE_PCM”AsrIntentinitIntent=newAsrIntent();initIntent.setAudioSourceType(AsrIntent.AsrAudioSrcType.ASR_SRC_TYPE_PCM);2.3初始化ASR服務(wù)。其中,mMyAsrListener為實(shí)現(xiàn)了AsrListener接口的實(shí)例對(duì)象asrClient.init(initIntent,mMyAsrListener);開發(fā)步驟?NXROBO2023212.調(diào)用API接口2.4開始識(shí)別。用戶可以不設(shè)置參數(shù),使用默認(rèn)參數(shù)AsrIntentasrIntent=newAsrIntent();//設(shè)置后置的端點(diǎn)檢測(cè)(VAD)時(shí)間asrIntent.setVadEndWaitMs(2000);//設(shè)置前置的端點(diǎn)檢測(cè)(VAD)時(shí)間asrIntent.setVadFrontWaitMs(4800);//設(shè)置語(yǔ)音識(shí)別的超時(shí)時(shí)間asrIntent.setTimeoutThresholdMs(20000);asrClient.startListening(asrIntent);//buffer需要替換為真實(shí)的音頻數(shù)據(jù)byte[]buffer=newbyte[]{0,1,0,10,1};//對(duì)于長(zhǎng)度大于1280的音頻,需要多次調(diào)用writePcm分段傳輸asrClient.writePcm(buffer,1280);開發(fā)步驟?NXROBO2023222.調(diào)用API接口2.5取消或停止識(shí)別asrClient.stopListening();//停止識(shí)別asrClient.cancel();//取消識(shí)別2.6釋放引擎asrClient.destroy();開源鴻蒙套件控制燈效?NXROBO202323WS2812LED介紹?NXROBO202324WS2812的8x8燈板是一種由64個(gè)WS2812LED燈珠組成的點(diǎn)陣屏幕。每個(gè)WS2812LED燈珠都可以獨(dú)立控制顏色和亮度,因此可以在這種燈板上顯示彩色圖像和動(dòng)畫。WS2812LED介紹?NXROBO202325WS2812LED燈珠使用一種特殊的通信協(xié)議,可以通過單個(gè)數(shù)據(jù)線連接多個(gè)燈珠。這意味著您只需要使用一個(gè)引腳來控制整個(gè)8x8燈板。要控制WS2812的8x8燈板,您需要使用單片機(jī)或微控制器來發(fā)送控制數(shù)據(jù),并使用相應(yīng)的庫(kù)函數(shù)來設(shè)置每個(gè)LED燈珠的顏色和亮度。相關(guān)API?NXROBO202326圖片取模介紹?NXROBO202327

圖片取模是指將一幅圖片轉(zhuǎn)換為點(diǎn)陣數(shù)據(jù)的過程。這通常用于將圖片顯示在點(diǎn)陣屏幕(如LED點(diǎn)陣屏幕或LCD字符顯示屏)上。

在圖片取模過程中,首先需要將圖片縮放到與目標(biāo)點(diǎn)陣屏幕大小相匹配。然后,根據(jù)屏幕的顏色深度和顯示能力,將圖片的顏色數(shù)據(jù)轉(zhuǎn)換為點(diǎn)陣數(shù)據(jù)。例如,對(duì)于單色點(diǎn)陣屏幕,圖片的顏色數(shù)據(jù)需要轉(zhuǎn)換為黑白二值數(shù)據(jù)。

最后,根據(jù)屏幕控制器的要求,將點(diǎn)陣數(shù)據(jù)進(jìn)行適當(dāng)?shù)木幋a和排列。例如,對(duì)于橫向取模的控制器,需要將點(diǎn)陣數(shù)據(jù)按行排列;對(duì)于縱向取模的控制器,則需要將點(diǎn)陣數(shù)據(jù)按列排列。

圖片取模通常使用專門的取模軟件來完成,也可以通過編程實(shí)現(xiàn),具體可以網(wǎng)上搜索取模軟件。“SPARK“圖片取模?NXROBO202328

橫向取模和字節(jié)倒序是點(diǎn)陣字庫(kù)中常用的術(shù)語(yǔ)。

橫向取模是指在點(diǎn)陣字庫(kù)中,一個(gè)字符的

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論