肖武 唐雅媛 胡蓉 潘學(xué)文
摘要:該文設(shè)計(jì)了基于嵌入式的語(yǔ)音識(shí)別系統(tǒng)。系統(tǒng)硬件需要實(shí)現(xiàn)與服務(wù)器連接生成二維碼,對(duì)Led的驅(qū)動(dòng)調(diào)用。系統(tǒng)軟件則包括App應(yīng)用的設(shè)計(jì),科大訊飛語(yǔ)音識(shí)別技術(shù)的SDK移植、服務(wù)器的搭建以及TCP/IP協(xié)議與Socket通信機(jī)制進(jìn)行網(wǎng)絡(luò)通信交互的設(shè)計(jì)。App里的語(yǔ)音系統(tǒng)對(duì)A23中的Led具有高效的控制力,通過(guò)服務(wù)器的轉(zhuǎn)發(fā),Led能夠?qū)邮盏降恼Z(yǔ)音命令作出迅速的反應(yīng),從而進(jìn)行相應(yīng)的開(kāi)燈或者關(guān)燈的操作。
關(guān)鍵詞:A23;TCP/IP;App;語(yǔ)音識(shí)別
中圖分類(lèi)號(hào):TN911-4;G434文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2021)09-0193-02
開(kāi)放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
Speech Recognition System based on Embedded
XIAO Wu, TANG Ya-yuan, HU Rong, PAN Xue-wen
(School of Electronics and Information Engineering , Hunan University of Science and Engineering , Yongzhou 425199, China)
Abstract: This paper designs a speech recognition system based on embedded system.System hardware needs to be connected with the server to generate QR code, the LED driver call, the system software includes the design of App application, the SDK transplantation of iFlytek speech recognition technology, the construction of server and the design of network communication interaction between TCP/IP protocol and Socket communication mechanism.The voice system in the App has efficient control over the LED in A23. Through the forwarding of the server, the LED can make a quick response to the voice command received, so as to turn on or turn off the light accordingly.
Key words:A23; TCP/IP; App; Speech Recognition
在近幾年來(lái),隨著物聯(lián)網(wǎng)的發(fā)展,嵌入式技術(shù)的也開(kāi)始更多的應(yīng)用到了人類(lèi)世界的方方面面,大家開(kāi)始通過(guò)使用這項(xiàng)技術(shù),讓人類(lèi)的生活越來(lái)越智能、高效、便捷。本文中的主要技術(shù)“語(yǔ)音識(shí)別”,就是一項(xiàng)能讓人類(lèi)智能生活變得更加智能的一項(xiàng)技術(shù)[1-4]。本文就是以嵌入式技術(shù)為基礎(chǔ),采用全志科技的A23主芯片和科大訊飛語(yǔ)音識(shí)別技術(shù)構(gòu)建語(yǔ)音識(shí)別系統(tǒng),應(yīng)用于家居生活中,通過(guò)人說(shuō)話實(shí)現(xiàn)對(duì)家中如臥室、廁所、廚房燈等的開(kāi)關(guān)的遠(yuǎn)程控制,解放雙手,實(shí)現(xiàn)人與機(jī)器之間交流。
1功能需求分析
本文旨在設(shè)計(jì)實(shí)現(xiàn)一個(gè)完整的語(yǔ)音識(shí)別系統(tǒng),即用戶可通過(guò)App中的智能語(yǔ)音模塊對(duì)硬件端中的Led燈進(jìn)行操控,實(shí)現(xiàn)其開(kāi)燈或關(guān)燈的操作。本設(shè)計(jì)分為三個(gè)模塊,即服務(wù)器、手機(jī)App端、硬件端,現(xiàn)對(duì)這三個(gè)模塊功能的分析如下:
(1)服務(wù)器:采用技術(shù)成熟的C/S架構(gòu),同時(shí)在服務(wù)器中裝載Sqlite3數(shù)據(jù)庫(kù)存儲(chǔ)用戶信息,方便數(shù)據(jù)的交互;json自定義協(xié)議,為服務(wù)器處理上行和下行數(shù)據(jù)提供便捷;同時(shí)多線程的使用,也方便了大量數(shù)據(jù)的接收和發(fā)送;總而言之服務(wù)器在這期間是一個(gè)中轉(zhuǎn)站的作用。
(2)手機(jī)App端:對(duì)自身信息存儲(chǔ)處理,實(shí)現(xiàn)一人一賬號(hào)的特點(diǎn),保證其用戶信息的隱私性和安全性;設(shè)計(jì)不同UI界面,具有注冊(cè)、登錄、刷新設(shè)備、掃描設(shè)備、命名設(shè)備、控制設(shè)備等六個(gè)界面;同時(shí)也是采用Socket通信方式與服務(wù)器建立連接,Json協(xié)議進(jìn)行數(shù)據(jù)上下行傳輸,通過(guò)掃描上FSPAD-723的二維碼綁定該設(shè)備;可通過(guò)語(yǔ)音或者按鍵觸發(fā)的方式控制Led。
(3)硬件端:采用全志A23處理器,其性能穩(wěn)定、功耗低,經(jīng)過(guò)二度開(kāi)發(fā)的FSPAD-723平板操作簡(jiǎn)單,節(jié)省了開(kāi)發(fā)步驟。可在App應(yīng)用中寫(xiě)入socket通信機(jī)制方便與服務(wù)器通信;同時(shí)添加生成二維碼的功能,以便APP對(duì)其掃描和綁定;且該芯片已具備linux內(nèi)核驅(qū)動(dòng),對(duì)LED的jni層與其應(yīng)用層建立本地連接,方便對(duì)其驅(qū)動(dòng)的調(diào)用。
2系統(tǒng)總體方案
該系統(tǒng)以C/S構(gòu)架服務(wù)器作為數(shù)據(jù)中轉(zhuǎn)站,App端和全志A23硬件端與服務(wù)器之間采用 SOCKET進(jìn)行連接通信,各模塊遵循 JSON協(xié)議從服務(wù)器接收指令和上傳數(shù)據(jù)信息,這樣各模塊就能與服務(wù)器進(jìn)行數(shù)據(jù)傳輸了,如圖1所示。
首先服務(wù)器通過(guò)連接家用路由器的WiFi熱點(diǎn)通網(wǎng),搭建本地局域網(wǎng),將其他模塊連接進(jìn)來(lái)。服務(wù)器可以將各個(gè)模塊的數(shù)據(jù)匯集和作為轉(zhuǎn)發(fā)中心可對(duì)接收的數(shù)據(jù)處理,從而在服務(wù)器后臺(tái)上可顯示各模塊數(shù)據(jù)。用戶使用手機(jī)App連接到服務(wù)器,在識(shí)別語(yǔ)音命令后,將其發(fā)送給服務(wù)器,服務(wù)器將命令轉(zhuǎn)發(fā)給向全志A23芯片,芯片上的LED燈根據(jù)命令執(zhí)行相應(yīng)操作。
3系統(tǒng)關(guān)鍵技術(shù)
3.1語(yǔ)音識(shí)別技術(shù)
由于語(yǔ)音識(shí)別算法的復(fù)雜性,為了開(kāi)發(fā)工作盡可能的簡(jiǎn)潔、方便、易理解,決定使用科大訊飛完備的語(yǔ)音識(shí)別技術(shù)。
首先需要在科大訊飛服務(wù)器上申請(qǐng)語(yǔ)音識(shí)別的應(yīng)用,并獲取它的APPID;然后下載其SDK,每個(gè)應(yīng)用根據(jù)不同的功能會(huì)產(chǎn)生不同的SDK和對(duì)應(yīng)的APPID,不匹配則不會(huì)成功;將SDK中的源碼關(guān)于APPID的部分替換成自己的ID。SDK中會(huì)有已經(jīng)訓(xùn)練好的語(yǔ)音轉(zhuǎn)換成字符串的模型。在activity文件中設(shè)置“開(kāi)燈”與“關(guān)燈”的語(yǔ)音模型,App應(yīng)用需要在聯(lián)網(wǎng)的情況下,長(zhǎng)按語(yǔ)音的Button的按鍵進(jìn)行對(duì)聲音的監(jiān)聽(tīng),通過(guò)人說(shuō)話的“開(kāi)燈”或者“關(guān)燈”聲音的捕捉,將語(yǔ)音信息上傳至訊飛云端服務(wù)器中,按照規(guī)定的語(yǔ)法標(biāo)準(zhǔn)獲取語(yǔ)音中的關(guān)鍵字,并形成Json字符串返回至App中,并Toast出來(lái)。最后將其Json字符串的命令通過(guò)標(biāo)志位發(fā)送給服務(wù)器,再由服務(wù)器進(jìn)行轉(zhuǎn)發(fā)給硬件端,以此實(shí)現(xiàn)控制LED燈,具體流程如圖2所示。
3.2二維碼生成技術(shù)
在mainActivity中直接調(diào)用Zxing庫(kù)的方法傳入url參數(shù)即可生成二維碼,具體流程為:首先創(chuàng)建QR二維碼圖片方法(設(shè)置QR二維碼參數(shù)、編碼方式、二維碼的內(nèi)容、生成一個(gè)由true和false組成的QR二維碼數(shù)據(jù)),二維碼的參數(shù)為:編碼內(nèi)容url地址、編碼類(lèi)型、生成圖片寬度、生成圖片高度;然后將輸入EditText的字符串進(jìn)行編碼,將其轉(zhuǎn)化成bitmap格式;然后運(yùn)用二維碼數(shù)據(jù)創(chuàng)建Bitmap圖片;將創(chuàng)建的bitmap圖片用最高的效果顯示;將顏色數(shù)組生成bitmap圖片顏色。
3.3用戶App界面和功能設(shè)計(jì)
UI 是一個(gè)應(yīng)用程序展現(xiàn)給用戶的界面,也就是layout。本文設(shè)計(jì)了六個(gè)界面,分別是登錄、注冊(cè)、掃描、添加設(shè)備名稱(chēng)、刷新設(shè)備、控制界面。
每一個(gè)XML文件都會(huì)自動(dòng)跟隨一個(gè)Activity文件,Activity文件內(nèi)的Intent 可以實(shí)現(xiàn)不同 Activity 之間的切換和數(shù)據(jù)傳遞。這里采用的Socket通信機(jī)制與服務(wù)器連接,JSON協(xié)議內(nèi)容與服務(wù)器一致,同時(shí)在Handle處理函數(shù)中添加線程方便接收和發(fā)送消息。手機(jī)端App的功能分為登錄、注冊(cè)、設(shè)備、掃描和控制等。登錄流程如圖3所示。
(1)注冊(cè):有設(shè)置用戶名、密碼和確認(rèn)密碼的功能,保證用戶的安全性;還有確認(rèn)按鈕和返回按鈕;若設(shè)置的用戶名和密碼是之前注冊(cè)過(guò)的,點(diǎn)擊確認(rèn)按鈕后,則提示該用戶已存在,界面不跳轉(zhuǎn),需要重新注冊(cè)新用戶信息;如填寫(xiě)錯(cuò)誤或不填,則會(huì)提示用戶賬號(hào)或密碼輸入不正確或?yàn)榭眨缑娌惶D(zhuǎn);只有填寫(xiě)正確才會(huì)跳轉(zhuǎn)到登錄界面;除此之外,點(diǎn)擊返回按鈕,即可跳轉(zhuǎn)到上一個(gè)界面。
(2)設(shè)備:登錄成功后跳轉(zhuǎn)到設(shè)備端,界面有掃描和刷新設(shè)備的按鍵;點(diǎn)擊掃描會(huì)跳轉(zhuǎn)到掃描界面,點(diǎn)擊刷新設(shè)備,則會(huì)顯示可控設(shè)備;除此之外,點(diǎn)擊返回按鈕,即可跳轉(zhuǎn)到上一個(gè)界面;
(3)掃描:進(jìn)入界面后,自動(dòng)打開(kāi)手機(jī)攝像頭掃描二維碼,識(shí)別成功后給設(shè)備取個(gè)名字,便于區(qū)別各個(gè)受控設(shè)備,然后回到設(shè)備界面;
(4)控制:點(diǎn)擊選定的要控制開(kāi)關(guān)的設(shè)備名稱(chēng),則會(huì)跳轉(zhuǎn)到控制界面,有語(yǔ)音按鈕和開(kāi)關(guān)燈按鈕;點(diǎn)擊語(yǔ)音按鈕,人開(kāi)口說(shuō)“開(kāi)燈”或“關(guān)燈”,系統(tǒng)自動(dòng)識(shí)別后,硬件設(shè)備端的LED燈會(huì)做出相應(yīng)反應(yīng),開(kāi)光按鈕同理;開(kāi)關(guān)燈流程圖如圖4-9所示:
4結(jié)論
本文先根據(jù)系統(tǒng)需求,定好系統(tǒng)的框架結(jié)構(gòu),對(duì)系統(tǒng)的服務(wù)器和Android的框架、全志A23硬件平臺(tái)的Led的驅(qū)動(dòng)調(diào)用等進(jìn)行設(shè)計(jì)。系統(tǒng)以 Socket進(jìn)行網(wǎng)絡(luò)通信,將json協(xié)議作為上下行數(shù)據(jù)的交換格式,sqlite3數(shù)據(jù)庫(kù),可以通過(guò)服務(wù)器實(shí)現(xiàn)消息的接收和轉(zhuǎn)發(fā)和用戶信息的存儲(chǔ)并顯示在后臺(tái)。利用App中的Socket通信機(jī)制連接服務(wù)器,實(shí)現(xiàn)功能界面的跳轉(zhuǎn),通過(guò)語(yǔ)音和按鈕控制硬件的Led設(shè)備。系統(tǒng)經(jīng)測(cè)試,能完成該語(yǔ)音識(shí)別系統(tǒng)的基本功能,具有應(yīng)用到實(shí)際生活中的價(jià)值。
參考文獻(xiàn):
[1] 張紅艷.一種嵌入式短詞語(yǔ)音識(shí)別系統(tǒng)的研究與設(shè)計(jì)[D].上海:華東師范大學(xué),2018.
[2] 袁毅,陳勝勇.基于Cortex-A9的嵌入式語(yǔ)音識(shí)別系統(tǒng)設(shè)計(jì)[J].現(xiàn)代信息科技,2019,3(14):166-168.
[3] 陳春玲,李雯雯,余瀚.嵌入式語(yǔ)音識(shí)別系統(tǒng)的測(cè)試方法研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2019,29(7):108-113.
[4] 張洪.基于Sphinx語(yǔ)音識(shí)別的智能家庭管家機(jī)器人的設(shè)計(jì)[D].武漢:武漢工程大學(xué),2018.
【通聯(lián)編輯:代影】