廣西盛源行電子信息有限公司 謝家春
東風柳州汽車有限公司 葛永軍
隨著汽車工業(yè)的發(fā)展以及電子市場的成熟,車載智能終端逐漸成為汽車重要的配套設備,另外,近年來,經(jīng)濟的繁榮也促使國內(nèi)各地汽車數(shù)量急劇增加,人們的出行習慣也隨之發(fā)生變化,人車共處的時間越來越長,因此,車載智能終端的功能從簡單的行車導航多功能轉(zhuǎn)變,但駕駛?cè)藛T在行車過程中,面對繁復的界面進行功能選擇操作,易造成安全隱患,因此本文提出基于ARM的車載語音識別系統(tǒng)設計方案,旨在讓駕駛?cè)送ㄟ^語音指令,操作智能終端,實現(xiàn)基本的導航、語音通信等功能,為安全駕駛提供保障。
語音識別過程是首先將采集到的語音數(shù)據(jù)進行預處理,以提高自然語言的識別率,并降低處理器對數(shù)據(jù)進行密集運算的處理量,然后再進行端點檢測、語音特征提取,完成從采集到的語音數(shù)據(jù)波型中,分析并提取以時間為參照的語音特征序列,隨后轉(zhuǎn)換為可對比的信號參數(shù),與系統(tǒng)語音模型庫進行語言匹配,即可得出識別結(jié)果。
本系統(tǒng)由硬件、軟件兩部分構(gòu)成,操作系統(tǒng)采用嵌入式Linux,為語音識別指令操作實現(xiàn)、車載智能終端功能實現(xiàn)提供基本的軟件平臺,硬件系統(tǒng)由語音識別部分、核心處理部分、外圍電子設備部分構(gòu)成,語音識別階段由LD3320專用芯片在51級單片機的控制下完成,獲取語音特征后,指令識別程序進行指令的對比識別,并通過指令操作系統(tǒng)程序調(diào)用諸如定位、導航、媒體播放、視頻監(jiān)控等應用程序,系統(tǒng)結(jié)構(gòu)如下圖1所示。
硬件系統(tǒng)主要包括系統(tǒng)主板、核心處理器、語音采拾器、語音識別芯片、語音控制單片機、存儲器、電源等部分構(gòu)成,詳細介紹如下:
系統(tǒng)中,核心處理器既做語音指令識別、指令下達的核心部件,還是車載智能終端的核心,考慮車載智能終端的多功能性,例如定位導航、媒體播放、遠程視頻監(jiān)控等,系統(tǒng)核心處理器采用飛思卡爾推出的iMX27芯片,利用其H.264硬件編解碼模塊可在車載智能終端上實現(xiàn)MPEG4、H.263及H.264視頻流的高效處理,在能夠支持語音識別功能的同時,還使智能終端產(chǎn)品達到D1(DVD畫面質(zhì)量,720×480的屏幕分辨率)分辨率。
iMX27在處理H.264的同時占用極少的CPU的資源并提高了視頻處理的性能,使核心有更多資源進行其它的應用,例如本系統(tǒng)的語音識別功能,另外,iMX27還具備非常靈活和豐富的標準接口、串行端口和擴展端口,實現(xiàn)與多種外部設備的連接,包括攝像頭、顯示器,還可以使用Wi-Fi、藍牙實現(xiàn)即插即用及無線互連的功能,通過增加適當?shù)耐鈬K,即可實現(xiàn)GPS定位、GPRS通信等應用。
目前語音識別方案,有針對特定人的語音識別技術,但用戶無法自行修定識別內(nèi)容,還有基于ARM的軟件識別技術,即將采集到的語音數(shù)據(jù),直接交由ARM平臺上運行的軟件進行處理、比對、識別,這種方案優(yōu)點是可以附帶龐大的語音模型庫,適應范圍較廣,但對ARM硬件平臺要求較高,軟件設計也相對復雜,本系統(tǒng)根據(jù)設計目的,提出的解決方案是,采用專用的語音識別芯片LD3320完成語音識別功能,將識別后的少量數(shù)據(jù)通過串行通信接口傳送給ARM處理器,再由軟件執(zhí)行判斷并執(zhí)行相應的功能,一方面僅需求少量的外圍電子器件,即可完成非特定人、非特定人、孤立詞、小詞匯量的語音識別功能,另一方面也可減少對ARM硬件的需求,空余更多的資源用于處理其它功能項目,而且軟件設計也可以相對簡化。
LD3320是由ICRoute公司生產(chǎn)的一種基于非特定人語音識別技術的專用芯片,內(nèi)置語音搜索引擎以及語音識別模型特征庫,另外還包含一些外部電路,例如AD、DA轉(zhuǎn)換器、音頻輸入輸出接口等,不再需要存儲器等外圍器件,也不需要預置語音訓練,將MIC接入LD3320的AD引腳上,再通過51級的MCU進行控制,就可以進行語音識別,經(jīng)過實踐,LD3320的語音識別穩(wěn)定性較好,準確性基本保持在96%左右。
51MCU主控制器采用Atmel公司生產(chǎn)的ATMEGA128芯片,其具備先進的RISC指令系統(tǒng),包含133條指令,并且大多指令可以一個時鐘周期內(nèi)完成,執(zhí)行效率高,內(nèi)置128K字節(jié)的可編程Flash,4K字節(jié)的EEPROM,以及多達64K字節(jié)的優(yōu)化的外部存儲器空間,足以滿足語音識別的控制需求。
主控制器主要完成需識別關鍵詞語的拼音串通過設置寄存器的方式傳入芯片內(nèi)部,從而實現(xiàn)識別列表的動態(tài)編輯,每次可以設置50項候選識別句,每個識別句可以是單字,詞組或短句。
為存儲更多的語音數(shù)據(jù),可通過存儲芯片來擴展系統(tǒng)的存儲空間,本系統(tǒng)采用意法半導體推出的M25P16-VMF6P芯片,該芯片是16-Mbit(2M x 8)串行閃存,具有先進的寫保護機制,支持速度高達50MHz的SPI兼容總線的存取操作。存儲器主要用于保存聲音素材。
軟件系統(tǒng)由兩大部分構(gòu)成,一個是基于ARM平臺的嵌入式Linux操作系統(tǒng),主要為系統(tǒng)的實現(xiàn)提供基本的軟件平臺,另一部分是語音識別程序以及應用程序,主要完成語音的識別以及系統(tǒng)應用性功能。
本文采用可以支持ARM CPU,具有MMU功能的Linux操作系統(tǒng),通過內(nèi)核精簡和裁減,并在實時性方面進行加強,以適應車載環(huán)境的應用需求。
語音識別程序的設計,主要基于LD3320系列產(chǎn)品開發(fā)手冊,主要工作流程分為以下幾個步驟:系統(tǒng)初始化、識別列表輸入、語音識別、中斷響應等。
(1)系統(tǒng)初始化分為兩個子步驟,分別通用初始化以及設備初始化,時鐘頻率、模式等參數(shù)在這一環(huán)節(jié)中進行設定。
圖1 系統(tǒng)結(jié)構(gòu)框圖[1][2]
(2)識別列表輸入,首先對需要識別的語音指令進行編碼,按不同編號區(qū)分不同的條目,編號范圍可以1-256之間選擇,每個條目采用標準普通化拼音作為語音參考模型,2個標準字漢語之間以空格進行填充。
(3)語音識別,通過設置特定寄存器的值,系統(tǒng)即可開始進行語音識別,語音識別的準確率與MIC的靈敏度設置有直接關系,根據(jù)實際環(huán)境條件,設置在40H~6FH可達到較好的效果。
(4)中斷響應,設置系統(tǒng)捕捉到MIC有信號產(chǎn)生,即產(chǎn)生中斷,中斷處理程序則根據(jù)LD3320寄存器的值對識別結(jié)果進行判斷,以C5寄存器的值作為參考的正確結(jié)果。
指令執(zhí)行程序運行的ARM平臺上,負責監(jiān)聽ATMEGA128的串口數(shù)據(jù),當接收到識別結(jié)果時,把該結(jié)果以二進制形式讀出,通過預先設定的識別結(jié)果-執(zhí)行指令對照表,查詢應當執(zhí)行的指令,并根據(jù)指令完成相應的操作。
本文從整體、硬件、軟件等幾方面,深入討論了基于ARM的嵌入式語音識別系統(tǒng)的設計和實現(xiàn),并對各個組成模塊的硬件電路及軟件實現(xiàn)進行了詳細的介紹。經(jīng)實踐,本文設計的語音識別系統(tǒng)在穩(wěn)定性、識別率方面有較好表現(xiàn),配合車載智能移動終端,有較強的實用性。
[1]張戟,楊騰飛.車載自動語音識別系統(tǒng)設計[J].佳木斯大學學報(自然科學版),2011,29(2):201-205.
[2]劉建臣,趙建光,龐煒等.基于ARM9+linux的智能小區(qū)語音識別系統(tǒng)研究[J].河北建筑工程學院學報,2009,27(1):119-121.