語音識別是人機交互的一種重要技術(shù)手段,。根據(jù)實際需要和應(yīng)用場合的不同,語音識別可以分為孤立詞識別和連續(xù)語音識別,、特定人識別和非特定人識別,。語音識別追求的主要指標(biāo)為高識別率、實時性和大詞匯量,;而對于一個語音識別系統(tǒng),,還應(yīng)考慮軟硬件設(shè)計簡單、價格低廉,、外圍控制靈活,、人機交互便捷等特點,。性能良好且成本低廉的語音識別系統(tǒng)在智能家電接口、智能玩具,、智能儀器等領(lǐng)域提供便捷的人機交互服務(wù),,將具有廣闊的應(yīng)用前景。
語音識別系統(tǒng)構(gòu)成
語音識別系統(tǒng)主要包括識別單元選取,、預(yù)處理,、特征提取、模式匹配,、參考模式庫等幾個部分,。根據(jù)模式識別的原理,對未知的語音的模板與已知語音的參考模板逐一進行比較,,得到的最佳匹配的參考模板就是識別的最終結(jié)果,。語音識別的系統(tǒng)框圖如圖1所示。
初步處理:語音信號首先經(jīng)過話筒會變成電信號,,之后進行初步處理,。初步處理包括對信號進行的濾波、數(shù)字化,、預(yù)加重,、分幀加窗以及端點檢測等一系列步驟。通過這些處理,,將語音信號變成數(shù)字信號,,并利用窗函數(shù)把語音數(shù)據(jù)序列分成連續(xù)的信號幀,找出信號中的語音部分,。
特征提?。盒盘柦?jīng)過初步處理之后,進入特征提取單元進行特征分析和特征提取,。提取特征單元的功能一般是完成基于頻譜的特征矢量的計算,,提取出代表信號特征的參數(shù),形成矢量模板,。語音幀的特征矢量按照一定的規(guī)則進行處理之后,,作為參考模型和待識別語音的模板。
參考模型庫:參考模型庫就是語音信號的參考模板庫,,通常是對說話人進行多次重復(fù)的語音訓(xùn)練之后,,使用平均或者聚類的分析方法,對這些語音信號進行一系列的分析和計算得到的特征矢量模板組成,。
模板匹配:模板匹配單元完成特征矢量與已存語音信號模板之間的匹配計算,。將輸入語音形成的特征矢量模板與訓(xùn)練得的到語音模板庫進行分析比較,根據(jù)一定的搜索和匹配原則找出與參考模板中差別最小的特征矢量模板,,然后根據(jù)此模板對應(yīng)的語音信號找出識別結(jié)果。
語音識別系統(tǒng)的設(shè)計思想
隨著語音識別算法的發(fā)展以及嵌入式設(shè)備的運算能力的提高,在具有一定計算能力和存儲空間的嵌入式硬件平臺上實現(xiàn)語音識別,,進而取代一些繁雜的直接操作已經(jīng)成為了語音識別的重要發(fā)展方向,。本系統(tǒng)是基于C8051F040單片機的語音識別系統(tǒng),其識別框架如圖2所示,。
圖1 語音識別系統(tǒng)結(jié)構(gòu)圖

圖2 嵌入式語音識別系統(tǒng)框架圖
嵌入式語音識別系統(tǒng)的工作過程:首先采集語音信號,,在程序運行時,通過控制模塊輸入當(dāng)前需要進行的模板的訓(xùn)練操作,,輸入完成后系統(tǒng)采集特定人的語音信號,,A/D轉(zhuǎn)換之后進入控制器,通過一系列的算法建立起該特定人的標(biāo)準(zhǔn)語音庫,,并將其存入存儲電路之中,;在語音識別時,首先通過控制模塊輸入當(dāng)前需要進行的操作,,然后采集用戶的語音,,將采集到的信號進行一系列運算處理提取出特征矢量模板,存入存儲單元之中,,并與標(biāo)準(zhǔn)語音庫中的語音命令進行比較,,在允許的誤差范圍內(nèi)找出語音庫中最接近該段音頻的語音信號,并把該語音信號作為識別結(jié)果通過顯示模塊告知用戶,。
語音識別系統(tǒng)的硬件結(jié)構(gòu)
語音識別系統(tǒng)的硬件部分主要由聲音采集模塊(拾音器以及功率放大電路),、帶通濾波器、存儲電路,、串口通信電路,、鍵盤控制電路、顯示電路以及微控制器等幾個基本單元組成,。系統(tǒng)的硬件組成框圖如圖3所示,。
圖3 語音識別系統(tǒng)硬件結(jié)構(gòu)圖
系統(tǒng)的微控制器部分是整個系統(tǒng)的控制中心,主要完成對語音信號的存儲,、對外部命令的響應(yīng),、算法的實現(xiàn)以及實驗結(jié)果的輸出。本系統(tǒng)的采樣功能由單片機本身實現(xiàn),,選用的C8051F040型號單片機包含有A/D采樣的功能,,而且采樣速率能夠滿足進行語音信號時所需要的采樣頻率。
進行語音實驗時,,語音首先要進入聲音采集模塊,。聲音采集模塊由拾音器和功率放大器組成。拾音器用于將語音信號轉(zhuǎn)化成電信號,。當(dāng)語音信號從拾音器出來之后會轉(zhuǎn)換成微弱的電信號(毫伏級),,因此在拾音器的后端需要將該電信號進行放大處理(放大到伏級),,這就是該模塊中功率放大電路的作用。
一般的語音最高頻率是3.4KHz,,最低頻率為300Hz,,而在語音信號通過輸入系統(tǒng)之后需要對該頻率段之外的頻率成分濾除,以提高語音的信噪比,。帶通濾波器用于對語音信號進行濾波,,以保留300Hz~3.4KHz的信號。為了實現(xiàn)對放大后信號的濾波處理,,帶通濾波器可由低通濾波器和高通濾波器級聯(lián)而成,,即設(shè)計一個下限截止頻率為300Hz的高通濾波器和上限截止頻率為3.4KHz的低通濾波器來級聯(lián)。
語音信號的采集一般需要8KHz的采樣頻率,,而單片機本身片上資源較少,,當(dāng)存儲語音數(shù)據(jù)時可能會有存儲空間不夠的情況,此時,,系統(tǒng)需要外部存儲器,。
鍵盤控制模塊用于對語音的錄入、模版的訓(xùn)練和語音信號的識別過程進行控制,。
LCD顯示模塊用于顯示當(dāng)前的系統(tǒng)狀況和識別結(jié)果,,以便提示用戶進行下一步的操作。
串口通信模塊用于實現(xiàn)上下位機之間的點對點通訊,。
語音識別系統(tǒng)的硬件設(shè)計
微控制器
語音信號的數(shù)據(jù)量非常大,,系統(tǒng)語音識別時需要具有較強的計算能力。系統(tǒng)選用C8051F040單片機作為處理器,。
C8051F040單片機是完全集成的混合信號系統(tǒng)級芯片,,采用了流水線處理技術(shù),除了不再劃分時鐘周期和機器周期,,還能在執(zhí)行指令期間對下一條指令進行預(yù)處理,,因而大大提高了指令的執(zhí)行速度。C8051F040有著強大的處理能力,,它在一個芯片內(nèi)集成了數(shù)據(jù)采集和控制所需的幾乎全部硬件外設(shè),,代表了目前8位單片機的發(fā)展方向。

圖4 7805芯片連接圖
圖5 AS1117芯片連接圖
圖6 兩級放大電路圖

圖7 帶通濾波器電路圖
電源系統(tǒng)
本系統(tǒng)外部提供9V的直流電源,,因此采用線性穩(wěn)壓芯片7805作為電壓調(diào)節(jié)和穩(wěn)壓器件來將較高的直流電壓轉(zhuǎn)變成所需的工作電壓,,即將9V~12V電源轉(zhuǎn)換為穩(wěn)定的5V直流電源。
使用7805芯片進行穩(wěn)壓之后,,采用AS1117芯片穩(wěn)壓數(shù)字電源DV和模擬電源AV的輸入,。
輸入系統(tǒng)
輸入系統(tǒng)用于把語音信號通過麥克風(fēng)變成電信號。同時,,由于語音信號比較微弱,,所以必須要將電信號適當(dāng)?shù)胤糯?。一般情況下,拾音器的輸出為毫伏級的電壓,,要將電壓信號放大到伏級,,需要放大的倍數(shù)大致為1000倍。
由于輸入到放大器的信號很微小,,為了減小動態(tài)誤差,本系統(tǒng)處于深度反饋之中,。同相放大器的電壓放大倍數(shù)一般在1~100之間,,由于放大倍數(shù)為1000左右,本文選擇NE5532芯片進行兩級同向放大器的設(shè)計,。在兩級放大電路中,,前一級的輸出信號就是后一級的輸入信號,后一級的輸入電阻就是前一級的負載,。兩級放大電路的電壓放大倍數(shù)等于各級電壓放大倍數(shù)的乘積,。
帶通濾波電路
語音的頻率范圍一般為300Hz~3.4KHz,為了提高語音信號的質(zhì)量,,可以在輸入與輸出的回路中設(shè)計一個帶通濾波器來濾除語音頻率范圍以外的頻率成分,。本文采用運算放大器NE5532設(shè)計巴特沃斯帶通濾波器。這個帶通濾波器通過前級的二階壓控型低通濾波器與后級的二階壓控高通濾波器級聯(lián)而成,。需要低通濾波器的上限截止頻率為3.4KHz,,高通濾波器的下限截止頻率為300Hz。
存儲系統(tǒng)
在系統(tǒng)中,,對語音信號的存儲以及識別算法要求系統(tǒng)有足夠的空間來存儲這些原始數(shù)據(jù)和中間數(shù)據(jù),。本文選擇的C8051F040單片機雖然集成了4KB的外部內(nèi)存,但是對于系統(tǒng)大量的存儲需要,,還需要擴展外部內(nèi)存,。語音識別時采用8KHz的采樣率,每段2s的音頻信號至少需要16KB的存儲空間,,因此系統(tǒng)使用外擴256K字節(jié)的FLASH ROM作為語音參考模板的存儲空間,。對于待識別語音,本系統(tǒng)外擴了32K字節(jié)的SRAM作為存儲空間,,這樣就至少能錄制4s的語音信號,,滿足需求。在擴展內(nèi)存之時,,為了配置端口的方便考慮,,將其擴展到P4~P7口,即P7口對應(yīng)于8位數(shù)據(jù)線,,P6口對應(yīng)于地址線的高8位,。
通信電路
為了便于系統(tǒng)調(diào)試,,系統(tǒng)采用串口通信作為單片機與上位機之間的通訊方式,將計算數(shù)據(jù)和識別結(jié)果傳輸?shù)綑C之中,。
C8051F040有兩種串行通信總線:增強型串行通信總線UART0和異步全雙工串行通信總線UART1,。
圖8 單片機與MAX3232接口電路圖
UART0包含四種工作模式(模式0、模式1,、模式2和模式3),,本系統(tǒng)選擇UART0的模式1作為通信模式。UART0的模式1:同步方式為異步,,波特時鐘為T1,、T2、T3或T4溢出,,有效位為8位,,1起始位,1停止位,。
單片機與PC機之間最簡單的通信方式就是串口通信,。但是RS-223C所規(guī)定的邏輯電平與單片機的邏輯電平是不同,必須把單片機的電平轉(zhuǎn)變?yōu)镽S-223C電平,。本系統(tǒng)采用MAX3232芯片進行這種電平轉(zhuǎn)換,。單片機與MAX3232的接口電路如圖8所示。
MAX3232的輸入TXD和RXD通過單片機的交叉開關(guān)配置,,可以配置到P0.0口以及P0.1口,。將TXD和RXD分別接入MAX3232的一端輸入T1in以及R1out。MAX3232的輸出TD,、RD分別接入9針串行插口的2腳和3腳,,5腳接地,然后通過串口線與PC上的串行接口相連,,即可完成單片機與PC機之間的通信電路搭建,。
系統(tǒng)軟件設(shè)計
在語音識別系統(tǒng)的整個程序設(shè)計中,系統(tǒng)進入主程序之后,,主程序采用調(diào)用子程序的方式來完成對語音模板的訓(xùn)練和識別等任務(wù),。系統(tǒng)的主程序流程如圖9所示。系統(tǒng)運行之后,,有按鍵按下時,,判斷為何種命令,如果是模板訓(xùn)練命令則進行模板訓(xùn)練的算法操作,,如果是語音識別命令則執(zhí)行語音識別子程序,。
結(jié)束語
C8051F040是高度集成的混合信號SoC級微控制器芯片。本文基于此芯片,實現(xiàn)了特定人孤立詞語音識別的系統(tǒng)的設(shè)計,。硬件設(shè)計中,,以C8051F040為核心進行了電源系統(tǒng)、語音輸入,、帶通濾波,、存儲系統(tǒng)和通訊模塊等電路的設(shè)計。本設(shè)計的系統(tǒng)可靠性高,、成本低,、操作簡單,具有較好的應(yīng)用前景,。

圖9 語音識別主程序流程圖