《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 基于Arduino的語(yǔ)音識(shí)別與控制系統(tǒng)實(shí)現(xiàn)
基于Arduino的語(yǔ)音識(shí)別與控制系統(tǒng)實(shí)現(xiàn)
趙 璐,吳 蒙
(南京郵電大學(xué) 通信與信息工程學(xué)院,,江蘇 南京 210003)
摘要: 通過對(duì)Arduino開發(fā)板的研究,將聲控技術(shù)引入到智能系統(tǒng)的設(shè)計(jì)當(dāng)中,,實(shí)現(xiàn)了一套基于Arduino的語(yǔ)音控制系統(tǒng)。本文首先確定了各硬件模塊的選型,,并在擬定了各模塊之間的通信接口后對(duì)Arduino引腳資源進(jìn)行整合,、分配,搭建了系統(tǒng)的硬件平臺(tái),。在軟件設(shè)計(jì)部分,,編寫了監(jiān)控程序、功能實(shí)現(xiàn)程序,、中斷服務(wù)程序,,最終實(shí)現(xiàn)了對(duì)機(jī)械手的語(yǔ)音控制以及語(yǔ)音播報(bào)的功能。此外,,系統(tǒng)還增設(shè)了登錄口令驗(yàn)證和錯(cuò)誤識(shí)別吸收功能,,從安全、效率兩個(gè)方面改進(jìn)系統(tǒng)的性能,。實(shí)際應(yīng)用測(cè)試表明,,在低噪或無(wú)噪條件下,該系統(tǒng)識(shí)別精度高,,穩(wěn)定性好,,達(dá)到了預(yù)期要求。
Abstract:
Key words :

  摘  要: 通過對(duì)Arduino開發(fā)板的研究,,將聲控技術(shù)引入到智能系統(tǒng)的設(shè)計(jì)當(dāng)中,,實(shí)現(xiàn)了一套基于Arduino的語(yǔ)音控制系統(tǒng)。本文首先確定了各硬件模塊的選型,,并在擬定了各模塊之間的通信接口后對(duì)Arduino引腳資源進(jìn)行整合,、分配,搭建了系統(tǒng)的硬件平臺(tái),。在軟件設(shè)計(jì)部分,,編寫了監(jiān)控程序,、功能實(shí)現(xiàn)程序,、中斷服務(wù)程序,最終實(shí)現(xiàn)了對(duì)機(jī)械手的語(yǔ)音控制以及語(yǔ)音播報(bào)的功能,。此外,,系統(tǒng)還增設(shè)了登錄口令驗(yàn)證和錯(cuò)誤識(shí)別吸收功能,從安全、效率兩個(gè)方面改進(jìn)系統(tǒng)的性能,。實(shí)際應(yīng)用測(cè)試表明,,在低噪或無(wú)噪條件下,該系統(tǒng)識(shí)別精度高,,穩(wěn)定性好,,達(dá)到了預(yù)期要求。

  關(guān)鍵詞: Arduino,;機(jī)械手,;語(yǔ)音識(shí)別語(yǔ)音合成,;聲控

0 引言

  隨著自動(dòng)化控制技術(shù)和智能化技術(shù)的飛速發(fā)展,,人們開始追求輕松、有序,、高效的智能化生活方式,,智能家居也應(yīng)運(yùn)而生。然而,,觸屏控制,、鼠標(biāo)控制等傳統(tǒng)的控制方式,它們繁復(fù)的按鍵操作和菜單操作不符合智能化導(dǎo)向,,并不適用于智能系統(tǒng)的設(shè)計(jì),。近年來(lái),人們的焦點(diǎn)開始轉(zhuǎn)移到語(yǔ)音技術(shù)及其應(yīng)用上面,,國(guó)內(nèi)外企業(yè)積極地拓展語(yǔ)音市場(chǎng),。智能語(yǔ)音產(chǎn)業(yè)是通過語(yǔ)音識(shí)別技術(shù)和語(yǔ)音合成技術(shù)為使用者提供各種服務(wù)的產(chǎn)業(yè)。語(yǔ)音合成技術(shù)和語(yǔ)音識(shí)別技術(shù)實(shí)現(xiàn)了簡(jiǎn)單易行的人機(jī)接口,,代表了更好的用戶體驗(yàn)度,,充分體現(xiàn)了人性化的產(chǎn)品設(shè)計(jì)理念[1]。本文主要采用意大利開源Arduino Uno開發(fā)板設(shè)計(jì)了一套聲控智能系統(tǒng),,能完成針對(duì)非特定人,、小詞匯量語(yǔ)音識(shí)別。聲控技術(shù)的引入擺脫了用雙手控制機(jī)械的模式,,實(shí)現(xiàn)了真正意義上的智能,,設(shè)計(jì)成果可應(yīng)用于智能家居系統(tǒng),這一研究可幫助和簡(jiǎn)化人們的生活,,有助于開拓智能家居的新市場(chǎng),。

1 語(yǔ)音識(shí)別工作原理

  語(yǔ)音識(shí)別技術(shù)是讓機(jī)器通過識(shí)別和理解過程,把人類的語(yǔ)音信號(hào)轉(zhuǎn)變?yōu)橄鄳?yīng)的文本或命令的技術(shù),,屬于多維模式識(shí)別和智能計(jì)算機(jī)接口的范疇,。模式匹配原理被目前大多數(shù)語(yǔ)音識(shí)別系統(tǒng)所采用,,它將未知語(yǔ)音進(jìn)行特征提取并與參考模式庫(kù)中已知語(yǔ)音參考模式逐一地進(jìn)行模式匹配,其中最佳匹配的參考模式被選為識(shí)別結(jié)果[2-3],。

  當(dāng)前語(yǔ)音識(shí)別技術(shù)的主流算法,,主要有基于動(dòng)態(tài)時(shí)間規(guī)整(DTW)方法、基于非參數(shù)模型矢量量化(VQ)方法,、基于參數(shù)模型的隱馬爾可夫模型(HMM)方法和基于人工神經(jīng)網(wǎng)絡(luò)(ANN)等[4],。語(yǔ)音識(shí)別技術(shù)可以被劃分為特定人語(yǔ)音識(shí)別和非特定人語(yǔ)音識(shí)別,根據(jù)所針對(duì)的發(fā)音人的不同,,特定人語(yǔ)音識(shí)別技術(shù)只能識(shí)別某幾個(gè)人的語(yǔ)音,,后者則可用于任何人,技術(shù)實(shí)現(xiàn)相對(duì)復(fù)雜但更加符合實(shí)際需要,。

  本系統(tǒng)設(shè)計(jì)選用了中文語(yǔ)音識(shí)別芯片LD3320,,通過將待識(shí)別的內(nèi)容設(shè)置成關(guān)鍵詞列表,能實(shí)現(xiàn)不需要用戶事先錄音和訓(xùn)練的非特定人語(yǔ)音識(shí)別[5],。

2 系統(tǒng)設(shè)計(jì)

  2.1 系統(tǒng)硬件平臺(tái)搭建

  本文設(shè)計(jì)的基于Arduino的語(yǔ)音識(shí)別及控制系統(tǒng),,是一個(gè)建立在語(yǔ)音識(shí)別技術(shù)基礎(chǔ)上,并在Arduino核心處理器的控制下對(duì)輸入的語(yǔ)音命令做出特定輸出響應(yīng)的系統(tǒng)[6],。系統(tǒng)包括四個(gè)部分:MCU模塊,、語(yǔ)音識(shí)別模塊、語(yǔ)音合成模塊,、機(jī)械手模塊,。語(yǔ)音識(shí)別模塊作為該系統(tǒng)的人機(jī)交互接口,用戶的語(yǔ)音命令由此輸入,,其語(yǔ)音識(shí)別正確率決定了系統(tǒng)的運(yùn)行質(zhì)量,;語(yǔ)音合成模塊和機(jī)械手模塊作為系統(tǒng)對(duì)外輸出部分,在MCU的控制下,,做出對(duì)語(yǔ)音輸入的響應(yīng)[7-8]:語(yǔ)音合成模塊播報(bào)提示音提示系統(tǒng)當(dāng)前狀態(tài),,提供了更好的用戶體驗(yàn)度,機(jī)械手模塊則進(jìn)行與命令對(duì)應(yīng)的二維抓取運(yùn)動(dòng),。圖1為系統(tǒng)硬件結(jié)構(gòu)框圖,。

001.jpg

  2.1.1 Arduino開發(fā)板

  系統(tǒng)由源自意大利的開源、便捷靈活的開源電子原型平臺(tái)Arduino Uno作為主控系統(tǒng),。Arduino Uno提供了豐富的引腳資源,,包括14個(gè)數(shù)字I/O(DIGITAL 0~13),其中6個(gè)數(shù)字口,,可提供PWM輸出用于控制舵機(jī),,6個(gè)模擬I/O口(ANALOG 0~5)。其簡(jiǎn)單的開發(fā)方式利于縮短開發(fā)的周期,,適合用于交互產(chǎn)品開發(fā)[9-10],。

  2.1.2 語(yǔ)音識(shí)別模塊

  無(wú)線語(yǔ)音模塊選用開源硬件廠商DFRobot生產(chǎn)的中文語(yǔ)音識(shí)別板DFR0177。DFR0177與Arduino之間通過同步串行外設(shè)接口(Serial Peripheral Interface,,SPI)進(jìn)行通信,。模塊的核心是LD3320中文語(yǔ)音識(shí)別芯片,當(dāng)麥克風(fēng)采集到語(yǔ)音信號(hào)時(shí),,LD3320發(fā)送低電平請(qǐng)求中斷,,MCU執(zhí)行ASR識(shí)別流程序[11],其識(shí)別過程如圖2,。

002.jpg

  2.1.3 語(yǔ)音合成模塊

  語(yǔ)音合成模塊使用SYN6288芯片實(shí)現(xiàn)提示音合成,,芯片提供一組全雙工的異步串行通信(UART)接口實(shí)現(xiàn)與Arduino的數(shù)據(jù)傳輸。Arduino控制板將待合成語(yǔ)音的信息以命令幀的形式通過串口發(fā)送至SYN6288,。芯片輸出信號(hào)經(jīng)過功率放大器和揚(yáng)聲器后完成語(yǔ)音合成[12],。

  2.1.4 機(jī)械手模塊

  機(jī)械手由兩個(gè)舵機(jī)和金屬夾持器組裝而成,每個(gè)舵機(jī)能控制機(jī)械手在一個(gè)維度上的運(yùn)動(dòng),,Arduino通過綜合控制兩個(gè)舵的旋轉(zhuǎn)角度便能令機(jī)械手進(jìn)行二自由度的活動(dòng),,舵機(jī)的控制由PWM信號(hào)驅(qū)動(dòng)實(shí)現(xiàn)[13-14]。由于舵機(jī)工作時(shí)可產(chǎn)生1~2 A電流,,考慮到安全性和穩(wěn)定性,,機(jī)械手模塊由外部5 V電源單獨(dú)供電。

  2.2 系統(tǒng)功能設(shè)計(jì)

  本文設(shè)計(jì)了一套小型智能家居系統(tǒng):基于Arduino的聲控機(jī)械手,,用戶使用語(yǔ)音識(shí)別這一人機(jī)交互界面,,對(duì)系統(tǒng)下達(dá)指令,機(jī)械手依據(jù)語(yǔ)音命令執(zhí)行不同的操作,,同時(shí),,系統(tǒng)能進(jìn)行人性化的語(yǔ)音提示,播報(bào)系統(tǒng)當(dāng)前運(yùn)行的相關(guān)信息,。除了實(shí)現(xiàn)基本的聲控功能外,,考慮到安全、識(shí)別正確率等因素,,增加登錄口令和垃圾錯(cuò)誤吸收,。

  2.2.1 登錄口令

  為了保障系統(tǒng)的安全,防止授權(quán)用戶以外人員的非法使用,,須對(duì)系統(tǒng)設(shè)置相應(yīng)的使用權(quán)限,,如設(shè)置一條登錄口令“芝麻開門”。任何使用者在進(jìn)入系統(tǒng)前,,須對(duì)系統(tǒng)的麥克風(fēng)說(shuō)出登錄口令作為觸發(fā)口令,。若系統(tǒng)識(shí)別并確認(rèn)了口令的正確性,則播報(bào)歡迎使用的提示音,,并等待識(shí)別用戶的操作命令,;否則,,則將該用戶判定為非授權(quán)用戶,進(jìn)行下一輪的登錄口令識(shí)別,。

  2.2.2 吸收錯(cuò)誤識(shí)別

  語(yǔ)音識(shí)別芯片的工作原理是把關(guān)鍵詞列表中得分最高的關(guān)鍵詞作為識(shí)別結(jié)果輸出,,如果用戶說(shuō)的關(guān)鍵詞不在列表內(nèi)必然會(huì)引起誤識(shí)別,因此,,可在設(shè)定好要識(shí)別的關(guān)鍵詞列表中再添加一些額外的詞匯用來(lái)吸收錯(cuò)誤識(shí)別,,從而進(jìn)一步降低錯(cuò)誤識(shí)別率。把這些待吸收的關(guān)鍵詞語(yǔ)稱之為“垃圾關(guān)鍵詞語(yǔ)”,,它的設(shè)置可以提高用戶的主觀使用體驗(yàn),。“垃圾關(guān)鍵詞語(yǔ)”最好選擇一些字?jǐn)?shù)與關(guān)鍵詞語(yǔ)相同的高頻口語(yǔ)詞,,用來(lái)吸收可能發(fā)生的錯(cuò)誤識(shí)別,,比如“啊”,“哦”等,。

  2.3 系統(tǒng)軟件設(shè)計(jì)

  系統(tǒng)軟件設(shè)計(jì)基于Arduino IDE軟件開發(fā)環(huán)境,,使用C/C++編程語(yǔ)言。Arduino有豐富的庫(kù)文件以供使用,,利用庫(kù)文件簡(jiǎn)化了程序開發(fā)工作,。軟件設(shè)計(jì)時(shí)把整個(gè)系統(tǒng)程序分為三個(gè)模塊:監(jiān)控主程序、中斷服務(wù)(ASR識(shí)別)子程序和功能實(shí)現(xiàn)子程序,,對(duì)每個(gè)模塊分別進(jìn)行獨(dú)立設(shè)計(jì),、編程,最后將各模塊構(gòu)建一個(gè)完整的工程,。

  2.3.1 主監(jiān)控程序

  監(jiān)控程序作為程序的核心,,主要負(fù)責(zé)芯片的初始啟動(dòng)工作以及調(diào)度其他程序模塊,圖3為系統(tǒng)主程序流程圖,。

003.jpg

  識(shí)別芯片在正式進(jìn)入識(shí)別流程前,,必須先進(jìn)行初始化工作,包括完成軟復(fù)位,、時(shí)鐘頻率設(shè)定,、模式設(shè)定和激活內(nèi)部數(shù)據(jù)處理模塊,同時(shí)還須將關(guān)鍵字列表寫入LD3320芯片的內(nèi)部寄存器,。這些工作均在監(jiān)控程序完成,。

  若芯片啟動(dòng)失敗達(dá)到一定的次數(shù),提示啟動(dòng)失敗并無(wú)法進(jìn)行后續(xù)操作,;若啟動(dòng)成功,,系統(tǒng)將開始循環(huán)等待,期間如有用戶下達(dá)語(yǔ)音命令,,則進(jìn)入中斷并執(zhí)行中斷服務(wù)程序,。監(jiān)控程序依據(jù)中斷服務(wù)程序的執(zhí)行結(jié)果判斷是否調(diào)度功能實(shí)現(xiàn)程序,。

  2.3.2 中斷服務(wù)程序

  中斷服務(wù)程序在麥克風(fēng)采集信號(hào)產(chǎn)生低電平中斷后執(zhí)行,主要實(shí)現(xiàn)一次ASR識(shí)別流,,可調(diào)用LD3320庫(kù)文件實(shí)現(xiàn)相關(guān)寄存器操作,。最后將該統(tǒng)計(jì)學(xué)意義上最優(yōu)的關(guān)鍵字作為最終識(shí)別結(jié)果輸出,中斷程序執(zhí)行完后,,回到中斷點(diǎn),,繼續(xù)執(zhí)行監(jiān)控程序[15],。

  2.3.3 功能實(shí)現(xiàn)程序

  功能實(shí)現(xiàn)程序用于完成一些實(shí)質(zhì)性的功能,,即在語(yǔ)音識(shí)別成功后控制舵機(jī)轉(zhuǎn)動(dòng)和語(yǔ)音播報(bào)。在中斷服務(wù)程序得到正確的識(shí)別結(jié)果后,,監(jiān)控程序?qū)?huì)調(diào)用功能實(shí)現(xiàn)程序,。功能實(shí)現(xiàn)程序的主體是基于switch選擇語(yǔ)句,程序依據(jù)語(yǔ)音識(shí)別結(jié)果,,執(zhí)行不同的程序段,,如發(fā)送PWM信號(hào)控制舵機(jī)轉(zhuǎn)向以實(shí)現(xiàn)機(jī)械手左右轉(zhuǎn)、張開,、夾持動(dòng)作,,或向SYN6288發(fā)送帶合成文字的GB2312編碼。若識(shí)別的是垃圾關(guān)鍵詞,,系統(tǒng)將執(zhí)行程序預(yù)設(shè)的default缺省操作,。

3 實(shí)驗(yàn)結(jié)果及分析

  搭建硬件平臺(tái)并將編寫的聲控程序編譯、燒寫至開發(fā)板,。對(duì)系統(tǒng)進(jìn)行聲控測(cè)試:進(jìn)入系統(tǒng)前,,若對(duì)系統(tǒng)的麥克風(fēng)正確說(shuō)出預(yù)先設(shè)置的登錄口令,如“芝麻開門”,,系統(tǒng)識(shí)別并確認(rèn)了口令后播報(bào)“歡迎使用智能聲控系統(tǒng)”的提示音,,并等待識(shí)別用戶后續(xù)的操作命令;如果給出錯(cuò)誤的登錄口令,,系統(tǒng)將繼續(xù)等待口令而不被觸發(fā),。進(jìn)入系統(tǒng)后,對(duì)系統(tǒng)分別使用“左轉(zhuǎn)”,、“右轉(zhuǎn)”,、“張開”、“夾持”,、“復(fù)位”等語(yǔ)音命令進(jìn)行多次測(cè)試,,系統(tǒng)的識(shí)別率接近90%,各硬件模塊在Arduino程序的控制下協(xié)同工作,,其中機(jī)械手和語(yǔ)音合成模塊作為系統(tǒng)的輸出模塊,,也做出了預(yù)期的響應(yīng),,實(shí)現(xiàn)了對(duì)機(jī)械手的控制以及語(yǔ)音播報(bào)的功能。

  測(cè)試表明,,該系統(tǒng)在無(wú)噪或低噪環(huán)境下運(yùn)行良好,,識(shí)別精度較高,能實(shí)現(xiàn)智能聲控的要求,。

4 結(jié)論

  本文主要對(duì)基于Arduino的智能語(yǔ)音控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)進(jìn)行闡述,。系統(tǒng)的設(shè)計(jì)工作主要包括系統(tǒng)硬件平臺(tái)搭建以及依據(jù)功能對(duì)程序結(jié)構(gòu)進(jìn)行制定,編寫了監(jiān)控程序,、中斷服務(wù)程序,、功能實(shí)現(xiàn)程序。最后經(jīng)過測(cè)試,,該系統(tǒng)運(yùn)行狀況良好,。

  在本次設(shè)計(jì)中,除了實(shí)現(xiàn)基本的智能聲控功能外,,還從安全,、效率、器材選型三個(gè)方面做出創(chuàng)新,,提高了系統(tǒng)的性能:(1)考慮到安全因素增設(shè)了觸發(fā)口令,;(2)設(shè)計(jì)垃圾關(guān)鍵詞語(yǔ)達(dá)到降低誤識(shí)別率的目的;(3)設(shè)計(jì)選用了當(dāng)前熱門的Arduino開放源代碼平臺(tái)作為系統(tǒng)的核心,,Arduino以其開放性,、易用性、豐富的第三方資源等優(yōu)勢(shì)得到了廣泛注目,。同時(shí),,本聲控系統(tǒng)不需要用戶事先訓(xùn)練和錄音,屬于可被任何人使用的非特定人語(yǔ)音識(shí)別系統(tǒng),,更加符合實(shí)際需要,。

  本智能聲控系統(tǒng)具有體積小、功耗低和通用性好的特點(diǎn),,可應(yīng)用于智能家居系統(tǒng)的設(shè)計(jì),,引入聲控作為人機(jī)交互界面方便了用戶的使用,實(shí)現(xiàn)了真正意義上的智能,,具有一定的實(shí)用價(jià)值,。

  參考文獻(xiàn)

  [1] 劉露.智能語(yǔ)音時(shí)代來(lái)臨[J].課外語(yǔ)文,2014(5):11-12,,17.

  [2] 詹新明,,黃南山,楊燦.語(yǔ)音識(shí)別技術(shù)研究進(jìn)展[J].現(xiàn)代計(jì)算機(jī)(專業(yè)版),2008(9):43-45.

  [3] 王敏妲.語(yǔ)音識(shí)別技術(shù)的研究與發(fā)展[J].微型機(jī)與應(yīng)用,,2009,,28(23):1-2,6.

  [4] 馬志欣,,王宏,,李鑫.語(yǔ)音識(shí)別技術(shù)綜述[J].昌吉學(xué)院學(xué)報(bào),2006(3):93-97.

  [5] 洪家平.LD3320的嵌入式語(yǔ)音識(shí)別系統(tǒng)的應(yīng)用[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,,2012,,12(2):47-53.

  [6] 楊繼志,郭敬.Arduino的互動(dòng)產(chǎn)品平臺(tái)創(chuàng)新設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,,2012,,12(4):39-41.

  [7] 程晨.Arduino開發(fā)實(shí)戰(zhàn)指南[M].北京:機(jī)械工業(yè)出版社,2012.

  [8] 孫俊榮,,吳明展,,盧聰勇.Arduino一試就上手[M].北京:科學(xué)出版社,,2012.

  [9] ICRouter.LD332x數(shù)據(jù)手冊(cè)[EB/OL].(2010-10-11)[2015-04-02]http://www.icroute.com/web_cn/DownLoad.html#LD332X-DataSheet.

  [10] 語(yǔ)音天下.SYN6288中文語(yǔ)音合成芯片數(shù)據(jù)手冊(cè)[EB/OL].(2011-09-06)[2015-04-27]http://www.tts168.com.cn/bao/SYN6288--Manual.pdf.

  [11] 蔡睿妍.基于Arduino的舵機(jī)控制系統(tǒng)設(shè)計(jì)[J].電腦知識(shí)與技術(shù),,2012,8(15):3719-3721.

  [12] 孫兵.基于單片機(jī)的機(jī)械手聲控系統(tǒng)設(shè)計(jì)[J].機(jī)械工程與自動(dòng)化,,2007(6):113-114,,117.

  [13] ADRIANSYAH A, DANI A W. Design of small smart home system based on Arduino[J]. Electrical Power,, Electronics,, Communications, Controls and Informatics Seminar (EECCIS),, 2014(10):121-125.

  [14] KANG B,, LIU F, YUN Z,, et al. Design of an Internet of Things-based smart home system[C]. Harbin: Lligent Control and Information Processing(ICICIP),, 2011:921-924.

  [15] 金鑫,田犇,,闕大順.基于LD3320的語(yǔ)音控制系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)[J].電腦與信息技術(shù),,2011,19(6):22-25.


此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。