《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 其他 > 設(shè)計(jì)應(yīng)用 > 一種嵌入式語(yǔ)音識(shí)別模塊的設(shè)計(jì)與實(shí)現(xiàn)
一種嵌入式語(yǔ)音識(shí)別模塊的設(shè)計(jì)與實(shí)現(xiàn)
維庫(kù)
摘要: 語(yǔ)音識(shí)別的基本原理如圖1所示。語(yǔ)音識(shí)別包括兩個(gè)階段:訓(xùn)練和識(shí)別。不管是訓(xùn)練還是識(shí)別,,都必須對(duì)輸入語(yǔ)音預(yù)處理和特征提取,。訓(xùn)練階段所做的具體工作是通過(guò)用戶(hù)輸入若干次訓(xùn)練語(yǔ)音,經(jīng)過(guò)預(yù)處理和特征提取后得到特征矢量參數(shù),,最后通過(guò)特征建模達(dá)到建立訓(xùn)練語(yǔ)音的參考模型庫(kù)的目的。而識(shí)別階段所做的主要工作是將輸入語(yǔ)音的特征矢量參數(shù)和參考模型庫(kù)中的參考模型進(jìn)行相似性度量比較,然后把相似性最高的輸入特征矢量作為識(shí)別結(jié)果輸出,。這樣,,最終就達(dá)到了語(yǔ)音識(shí)別的目的。
Abstract:
Key words :

 服務(wù)機(jī)器人以服務(wù)為目的,,因此人們需要一種更方便,、更自然、更加人性化的方式與機(jī)器人交互,,而不再滿(mǎn)足于復(fù)雜的鍵盤(pán)和按鈕操作,。基于聽(tīng)覺(jué)的人機(jī)交互是該領(lǐng)域的一個(gè)重要發(fā)展方向,。目前主流的語(yǔ)音識(shí)別技術(shù)是基于統(tǒng)計(jì)模式,。然而,由于統(tǒng)計(jì)模型訓(xùn)練算法復(fù)雜,,運(yùn)算量大,,一般由工控機(jī)、PC機(jī)或筆記本來(lái)完成,,這無(wú)疑限制了它的運(yùn)用,。嵌入式語(yǔ)音交互已成為目前研究的熱門(mén)課題。

  嵌入式語(yǔ)音識(shí)別系統(tǒng)和PC機(jī)的語(yǔ)音識(shí)別系統(tǒng)相比,,雖然其運(yùn)算速度和內(nèi)存容量有一定限制,,但它具有體積小、功耗低,、可靠性高,、投入小、安裝靈活等優(yōu)點(diǎn),,特別適用于智能家居,、機(jī)器人及消費(fèi)電子等領(lǐng)域。

  1 模塊整體方案及架構(gòu)

  語(yǔ)音識(shí)別的基本原理如圖1所示,。語(yǔ)音識(shí)別包括兩個(gè)階段:訓(xùn)練和識(shí)別,。不管是訓(xùn)練還是識(shí)別,都必須對(duì)輸入語(yǔ)音預(yù)處理和特征提取,。訓(xùn)練階段所做的具體工作是通過(guò)用戶(hù)輸入若干次訓(xùn)練語(yǔ)音,,經(jīng)過(guò)預(yù)處理和特征提取后得到特征矢量參數(shù),最后通過(guò)特征建模達(dá)到建立訓(xùn)練語(yǔ)音的參考模型庫(kù)的目的,。而識(shí)別階段所做的主要工作是將輸入語(yǔ)音的特征矢量參數(shù)和參考模型庫(kù)中的參考模型進(jìn)行相似性度量比較,,然后把相似性最高的輸入特征矢量作為識(shí)別結(jié)果輸出。這樣,,最終就達(dá)到了語(yǔ)音識(shí)別的目的,。

 語(yǔ)音識(shí)別的基本原理
 

圖1 語(yǔ)音識(shí)別的基本原理

  現(xiàn)有的語(yǔ)音識(shí)別技術(shù)按照識(shí)別對(duì)象可以分為特定人識(shí)別和非特定人識(shí)別。特定人識(shí)別是指識(shí)別對(duì)象為專(zhuān)門(mén)的人,,非特定人識(shí)別是指識(shí)別對(duì)象是針對(duì)大多數(shù)用戶(hù),,一般需要采集多個(gè)人的語(yǔ)音進(jìn)行錄音和訓(xùn)練,,經(jīng)過(guò)學(xué)習(xí),達(dá)到較高的識(shí)別率,。

  基于現(xiàn)有技術(shù)開(kāi)發(fā)嵌入式語(yǔ)音交互系統(tǒng),,目前主要有兩種方式:一種是直接在嵌入式處理器中調(diào)用語(yǔ)音開(kāi)發(fā)包;另一種是嵌入式處理器外圍擴(kuò)展語(yǔ)音芯片,。第一種方法程序量大,,計(jì)算復(fù)雜,需要占用大量的處理器資源,,開(kāi)發(fā)周期長(zhǎng);第二種方法相對(duì)簡(jiǎn)單,,只需要關(guān)注語(yǔ)音芯片的接口部分與微處理器相連,,結(jié)構(gòu)簡(jiǎn)單,搭建方便,,微處理器的計(jì)算負(fù)擔(dān)大大降低,,增強(qiáng)了可靠性,縮短了開(kāi)發(fā)周期,。

  語(yǔ)音識(shí)別技術(shù)在國(guó)內(nèi)外的發(fā)展十分迅速,。目前國(guó)內(nèi)在PC應(yīng)用領(lǐng)域,具有代表性的有:科大訊飛的InterReco2.0,、中科模式識(shí)別的Pattek ASR3.0,、捷通華聲的jASRv5.5;在嵌入式應(yīng)用領(lǐng)域,,具有代表性的有:凌陽(yáng)的SPCE061A,、ICRoute的LD332X、上海華鎮(zhèn)電子的WS-117,。

  本文的語(yǔ)音識(shí)別方案是以嵌入式微處理器為核心,,外圍加非特定人語(yǔ)音識(shí)別芯片及相關(guān)電路構(gòu)成。語(yǔ)音識(shí)別芯片選用ICRoute公司的LD33 20芯片,。

  2 硬件電路設(shè)計(jì)

  如圖2所示,,硬件電路主要包括主控核心部分和語(yǔ)音識(shí)別部分。語(yǔ)音進(jìn)入語(yǔ)音識(shí)別部分后,,將處理過(guò)的數(shù)據(jù)并行傳輸?shù)街骺刂破?,主控制器?jīng)過(guò)處理后,發(fā)送命令數(shù)據(jù)到USART,,USART可用于擴(kuò)展外圍串行設(shè)備,,如語(yǔ)音合成模塊等。

  硬件電路
 

圖2 硬件電路

  2.1 語(yǔ)音識(shí)別電路

  圖3為語(yǔ)音識(shí)別部分原理圖,,參照了ICRoute發(fā)布的LD3320數(shù)據(jù)手冊(cè)進(jìn)行設(shè)計(jì),。LD3320的內(nèi)部集成了快速穩(wěn)定的優(yōu)化算法,,不需外接Fla-sh、RAM,,不需要用戶(hù)事先訓(xùn)練和錄音而完成非特定人語(yǔ)音識(shí)別,,識(shí)別準(zhǔn)確率高。

語(yǔ)音識(shí)別部分原理圖
 


圖3 語(yǔ)音識(shí)別部分原理圖

  圖中,,LD3320采用并行方式直接與STM32F103C8T6相接,,均采用1kΩ電阻上拉,A0用于判斷是數(shù)據(jù)段還是地址段,;控制信號(hào),,復(fù)位信號(hào)以及中斷返回信號(hào)INTB與STM32F103C8T6直接相連,采用10kΩ電阻上拉,,輔助系統(tǒng)穩(wěn)定工作,;和STM32F103C8T6采用同一個(gè)外部8 MHz時(shí)鐘;發(fā)光二極管D1,、D2用于復(fù)位后的上電指示,;MBS(引腳12)作為*偏置,接了一個(gè)RC電路,,保證能輸出一個(gè)浮動(dòng)電壓給*,。

  2.2主控制器電路

  本文的主控制器選用的是ST公司的STM32F103C8T6芯片。該芯片基于ARM Cortex-M3 32位的RISC內(nèi)核,,工作頻率最高可達(dá)72 MHz,,內(nèi)置高速存儲(chǔ)器(64 KB的閃存和20 KB的SRAM),豐富的增強(qiáng)I/O端口和聯(lián)接到兩條APB總線(xiàn)的外設(shè),。STM32系列提供了全新的32位產(chǎn)品選項(xiàng),,結(jié)合了高性能、實(shí)時(shí),、低功耗,、低電壓等特性,同時(shí)保持了高集成度和易于開(kāi)發(fā)的優(yōu)勢(shì),,將32位MCU世界的性能和功效引向一個(gè)新的級(jí)別,。

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

  軟件系統(tǒng)的設(shè)計(jì)主要包括3部分:主控單元的嵌入式操作系統(tǒng)μC/OS-II移植、LD3320的語(yǔ)音識(shí)別程序設(shè)計(jì),、對(duì)話(huà)管理單元的設(shè)計(jì),。

  3.1 嵌入式操作系統(tǒng)μC/OS-II移植

  μC/OS-II是一個(gè)源碼公開(kāi)、可移植,、可固化,、可裁剪、占先式的實(shí)時(shí)多任務(wù)操作系統(tǒng),。它是專(zhuān)門(mén)為計(jì)算機(jī)的嵌入式應(yīng)用設(shè)計(jì)的,,絕大部分代碼采用C語(yǔ)言編寫(xiě),,具有執(zhí)行效率高、占用空間小,、實(shí)時(shí)性能優(yōu)良和可擴(kuò)展性強(qiáng)等特點(diǎn),,最小內(nèi)核可至2 KB。在μC/OS-II中,,任務(wù)的概念尤為重要,,它是可剝奪型的內(nèi)核,因此任務(wù)優(yōu)先級(jí)的劃分至關(guān)緊要,?;诜謱踊湍K化的設(shè)計(jì)理念,整個(gè)系統(tǒng)任務(wù)的劃分如表1所列,。

表1 主控系統(tǒng)任務(wù)優(yōu)先級(jí)規(guī)劃

 主控系統(tǒng)任務(wù)優(yōu)先級(jí)規(guī)劃

  表1中除OSTaskStat和OSTaskIdle任務(wù)為系統(tǒng)自帶,,其他7個(gè)任務(wù)均為用戶(hù)創(chuàng)建。App_TaskStart是系統(tǒng)的第一個(gè)任務(wù),,對(duì)系統(tǒng)時(shí)鐘和底層設(shè)備進(jìn)行初始化,,創(chuàng)建所有事件和其他各項(xiàng)用戶(hù)任務(wù),,并對(duì)系統(tǒng)狀態(tài)進(jìn)行監(jiān)測(cè),;App_TaskSR完成語(yǔ)音識(shí)別;App_TaskCmd完成對(duì)話(huà)集中命令的解析和執(zhí)行,,并通過(guò)USART1向外發(fā)送,;App_TaskCom作為外圍擴(kuò)展任務(wù),通過(guò)USART2向外發(fā)送指令或數(shù)據(jù),,負(fù)責(zé)控制外圍擴(kuò)展設(shè)備,,如語(yǔ)音合成設(shè)備等;

  App_TaskUpdate通過(guò)解析USART1接收的命令和數(shù)據(jù)進(jìn)行對(duì)話(huà)集的更新,;App_TaskPB是按鍵掃描任務(wù),,負(fù)責(zé)檢測(cè)3個(gè)獨(dú)立按鍵,分為短按和長(zhǎng)按檢測(cè),;App_TaskLED驅(qū)動(dòng)4個(gè)LED指示燈,,指示當(dāng)前工作狀態(tài)。

  3.2 語(yǔ)音識(shí)別程序設(shè)計(jì)

  語(yǔ)音識(shí)別程序的設(shè)計(jì),,參考了LD332X開(kāi)發(fā)手冊(cè),,本文中采用中斷方式工作,其工作流程分為通用初始化一語(yǔ)音識(shí)別用初始化-寫(xiě)入識(shí)別列表-開(kāi)始識(shí)別-響應(yīng)中斷,。

 ?、偻ㄓ贸跏蓟驼Z(yǔ)音識(shí)別用初始化。在初始化程序里,,主要完成軟復(fù)位,、模式設(shè)定,、時(shí)鐘頻率設(shè)定、FIFO設(shè)定,。

 ?、趯?xiě)入識(shí)別列表。列表的規(guī)則是,,每個(gè)識(shí)別條目對(duì)應(yīng)一個(gè)特定的編號(hào)(1個(gè)字節(jié)),,編號(hào)可以相同,可以不連續(xù),,但是數(shù)值要小于256(00H~FFH),。本芯片最多支持50個(gè)識(shí)別條目,每個(gè)識(shí)別條目是標(biāo)準(zhǔn)普通話(huà)的漢語(yǔ)拼音(小寫(xiě)),,每2個(gè)字(漢語(yǔ)拼音)之間用一個(gè)空格間隔,。本文中采取了連續(xù)不同編號(hào)的識(shí)別條目,表2是簡(jiǎn)單的示例,。

表2 識(shí)別列表示例

識(shí)別列表示例

 ?、坶_(kāi)始識(shí)別。設(shè)置幾個(gè)相關(guān)的寄存器,,即可開(kāi)始語(yǔ)音的識(shí)別,。圖4是相關(guān)的流程。ADC通道即為*輸入通道,,ADC增益也就是*音量,,可設(shè)定值00H~7FH,建議設(shè)置值為40H~6FH,,值越大代表MIC音量越大,,識(shí)別啟動(dòng)越敏感,但可能帶來(lái)更多誤識(shí)別,;值越小代表MIC音量越小,,需要近距離說(shuō)話(huà)才能啟動(dòng)識(shí)別功能,好處是對(duì)遠(yuǎn)處的干擾語(yǔ)音沒(méi)有反應(yīng),。本文中設(shè)定值為43H,。

開(kāi)始識(shí)別流程

圖4 開(kāi)始識(shí)別流程

  ④響應(yīng)中斷,。如果*采集到聲音,,不管是否識(shí)別出正常結(jié)果,都會(huì)產(chǎn)生一個(gè)中斷信號(hào),。而中斷程序要根據(jù)寄存器的值分析結(jié)果,。讀取BA寄存器的值,可以知道有幾個(gè)候選答案,而C5寄存器里的答案是得分最高,、最可能正確的答案,。

  3.3 對(duì)話(huà)管理單元設(shè)計(jì)

  為了方便進(jìn)行對(duì)話(huà)的管理,本文中設(shè)計(jì)了一個(gè)對(duì)話(huà)管理單元,,用于對(duì)等待識(shí)別的語(yǔ)句和等待執(zhí)行的命令進(jìn)行存儲(chǔ),,在主控制器中通過(guò)定義二維數(shù)組來(lái)實(shí)現(xiàn)。LD3320每次識(shí)別最多可以設(shè)置50項(xiàng)候選識(shí)別句,,每個(gè)識(shí)別句可以是單字,、詞組或短句,長(zhǎng)度為不超過(guò)10個(gè)漢字或者79個(gè)字節(jié)的拼音串,?;谏鲜鲈颍疚脑O(shè)計(jì)的對(duì)話(huà)管理數(shù)組如表3所列,。

表3 對(duì)話(huà)管理單元數(shù)組

對(duì)話(huà)管理單元數(shù)組

  行為數(shù)組中存儲(chǔ)要執(zhí)行的行為編號(hào),,對(duì)應(yīng)于50條語(yǔ)音識(shí)別語(yǔ)句,共有50組指令,,每組指令中可以最多包含6個(gè)行為,,并行的行為可以歸為一步,通過(guò)多個(gè)行為的組合,,就可以完成更復(fù)雜的任務(wù),。

  4 性能測(cè)試與應(yīng)用

  為了保證設(shè)計(jì)的語(yǔ)音識(shí)別模塊的語(yǔ)音識(shí)別率、穩(wěn)定性和響應(yīng)時(shí)間,,本文對(duì)所描述的語(yǔ)音識(shí)別模塊做了相應(yīng)的測(cè)試,,測(cè)試環(huán)境分別為安靜的家庭環(huán)境和嘈雜的醫(yī)院環(huán)境,,共8條語(yǔ)音指令,,對(duì)每條語(yǔ)音指令分別進(jìn)行10次測(cè)試,每個(gè)環(huán)境下對(duì)每個(gè)特定人的總實(shí)驗(yàn)次數(shù)為80次,,記錄成功識(shí)別的次數(shù),。測(cè)試結(jié)果如表4所列。

表4 測(cè)試結(jié)果

測(cè)試結(jié)果

  測(cè)試中的3個(gè)非特定人中,,非特定人1為女性,,非特定人2和非特定人3為男性。由表中數(shù)據(jù)可以看出,,家庭環(huán)境下對(duì)非特定人的語(yǔ)音識(shí)別率可達(dá)到90%以上,,嘈雜的醫(yī)院環(huán)境下的語(yǔ)音識(shí)別率也可達(dá)82.5%以上。識(shí)別率方面,,在嘈雜環(huán)境下比在安靜環(huán)境下的語(yǔ)音識(shí)別率有所降低,;穩(wěn)定性方面,在安靜環(huán)境下系統(tǒng)的穩(wěn)定性較好,,語(yǔ)音說(shuō)1遍,,最多說(shuō)2遍模塊就可以做出正確的響應(yīng),;在噪聲環(huán)境下,系統(tǒng)的穩(wěn)定性有所下降,,個(gè)別語(yǔ)音命令需要說(shuō)3遍甚至3遍以上才能被模塊準(zhǔn)確識(shí)別,;實(shí)時(shí)性方面,在安靜環(huán)境下的語(yǔ)音能保證系統(tǒng)響應(yīng)的實(shí)時(shí)性,,響應(yīng)時(shí)間一般不超過(guò)1 s,,在噪聲環(huán)境下的響應(yīng)時(shí)間相對(duì)長(zhǎng)一些。

  結(jié)語(yǔ)

  本文討論了基于STM32的嵌入式語(yǔ)音識(shí)別模塊的設(shè)計(jì)和實(shí)現(xiàn),,對(duì)模塊各個(gè)組成單元的硬件電路及軟件實(shí)現(xiàn)進(jìn)行了詳細(xì)的介紹,。大量實(shí)驗(yàn)及實(shí)際應(yīng)用表明,本文設(shè)計(jì)的語(yǔ)音識(shí)別模塊具有穩(wěn)定性好,、語(yǔ)音識(shí)別率高,、抗噪聲干擾能力強(qiáng)、結(jié)構(gòu)簡(jiǎn)單和使用方便等特點(diǎn),。該模塊實(shí)用性強(qiáng),,可廣泛應(yīng)用于服務(wù)機(jī)器人智能空間、智能家居和消費(fèi)電子產(chǎn)品等多個(gè)領(lǐng)域,。

 

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