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

圖1 系統結構框圖[1][2]
(2)識別列表輸入,首先對需要識別的語音指令進行編碼,按不同編號區分不同的條目,編號范圍可以1-256之間選擇,每個條目采用標準普通化拼音作為語音參考模型,2個標準字漢語之間以空格進行填充。
(3)語音識別,通過設置特定寄存器的值,系統即可開始進行語音識別,語音識別的準確率與MIC的靈敏度設置有直接關系,根據實際環境條件,設置在40H~6FH可達到較好的效果。
(4)中斷響應,設置系統捕捉到MIC有信號產生,即產生中斷,中斷處理程序則根據LD3320寄存器的值對識別結果進行判斷,以C5寄存器的值作為參考的正確結果。
指令執行程序運行的ARM平臺上,負責監聽ATMEGA128的串口數據,當接收到識別結果時,把該結果以二進制形式讀出,通過預先設定的識別結果-執行指令對照表,查詢應當執行的指令,并根據指令完成相應的操作。
本文從整體、硬件、軟件等幾方面,深入討論了基于ARM的嵌入式語音識別系統的設計和實現,并對各個組成模塊的硬件電路及軟件實現進行了詳細的介紹。經實踐,本文設計的語音識別系統在穩定性、識別率方面有較好表現,配合車載智能移動終端,有較強的實用性。
[1]張戟,楊騰飛.車載自動語音識別系統設計[J].佳木斯大學學報(自然科學版),2011,29(2):201-205.
[2]劉建臣,趙建光,龐煒等.基于ARM9+linux的智能小區語音識別系統研究[J].河北建筑工程學院學報,2009,27(1):119-121.