C8051F040單片機(jī)在語(yǔ)音識(shí)別系統(tǒng)中的應(yīng)用
掃描二維碼
隨時(shí)隨地手機(jī)看文章
語(yǔ)音識(shí)別是人機(jī)交互的一種重要技術(shù)手段。根據(jù)實(shí)際需要和應(yīng)用場(chǎng)合的不同,語(yǔ)音識(shí)別可以分為孤立詞識(shí)別和連續(xù)語(yǔ)音識(shí)別、特定人識(shí)別和非特定人識(shí)別。語(yǔ)音識(shí)別追求的主要指標(biāo)為高識(shí)別率、實(shí)時(shí)性和大詞匯量;而對(duì)于一個(gè)語(yǔ)音識(shí)別系統(tǒng),還應(yīng)考慮軟硬件設(shè)計(jì)簡(jiǎn)單、價(jià)格低廉、外圍控制靈活、人機(jī)交互便捷等特點(diǎn)。性能良好且成本低廉的語(yǔ)音識(shí)別系統(tǒng)在智能家電接口、智能玩具、智能儀器等領(lǐng)域提供便捷的人機(jī)交互服務(wù),將具有廣闊的應(yīng)用前景。
語(yǔ)音識(shí)別系統(tǒng)構(gòu)成
語(yǔ)音識(shí)別系統(tǒng)主要包括識(shí)別單元選取、預(yù)處理、特征提取、模式匹配、參考模式庫(kù)等幾個(gè)部分。根據(jù)模式識(shí)別的原理,對(duì)未知的語(yǔ)音的模板與已知語(yǔ)音的參考模板逐一進(jìn)行比較,得到的最佳匹配的參考模板就是識(shí)別的最終結(jié)果。語(yǔ)音識(shí)別的系統(tǒng)框圖如圖1所示。
初步處理:語(yǔ)音信號(hào)首先經(jīng)過(guò)話筒會(huì)變成電信號(hào),之后進(jìn)行初步處理。初步處理包括對(duì)信號(hào)進(jìn)行的濾波、數(shù)字化、預(yù)加重、分幀加窗以及端點(diǎn)檢測(cè)等一系列步驟。通過(guò)這些處理,將語(yǔ)音信號(hào)變成數(shù)字信號(hào),并利用窗函數(shù)把語(yǔ)音數(shù)據(jù)序列分成連續(xù)的信號(hào)幀,找出信號(hào)中的語(yǔ)音部分。
特征提?。盒盘?hào)經(jīng)過(guò)初步處理之后,進(jìn)入特征提取單元進(jìn)行特征分析和特征提取。提取特征單元的功能一般是完成基于頻譜的特征矢量的計(jì)算,提取出代表信號(hào)特征的參數(shù),形成矢量模板。語(yǔ)音幀的特征矢量按照一定的規(guī)則進(jìn)行處理之后,作為參考模型和待識(shí)別語(yǔ)音的模板。
參考模型庫(kù):參考模型庫(kù)就是語(yǔ)音信號(hào)的參考模板庫(kù),通常是對(duì)說(shuō)話人進(jìn)行多次重復(fù)的語(yǔ)音訓(xùn)練之后,使用平均或者聚類的分析方法,對(duì)這些語(yǔ)音信號(hào)進(jìn)行一系列的分析和計(jì)算得到的特征矢量模板組成。
模板匹配:模板匹配單元完成特征矢量與已存語(yǔ)音信號(hào)模板之間的匹配計(jì)算。將輸入語(yǔ)音形成的特征矢量模板與訓(xùn)練得的到語(yǔ)音模板庫(kù)進(jìn)行分析比較,根據(jù)一定的搜索和匹配原則找出與參考模板中差別最小的特征矢量模板,然后根據(jù)此模板對(duì)應(yīng)的語(yǔ)音信號(hào)找出識(shí)別結(jié)果。
語(yǔ)音識(shí)別系統(tǒng)的設(shè)計(jì)思想
隨著語(yǔ)音識(shí)別算法的發(fā)展以及嵌入式設(shè)備的運(yùn)算能力的提高,在具有一定計(jì)算能力和存儲(chǔ)空間的嵌入式硬件平臺(tái)上實(shí)現(xiàn)語(yǔ)音識(shí)別,進(jìn)而取代一些繁雜的直接操作已經(jīng)成為了語(yǔ)音識(shí)別的重要發(fā)展方向。本系統(tǒng)是基于C8051F040單片機(jī)的語(yǔ)音識(shí)別系統(tǒng),其識(shí)別框架如圖2所示。
圖1 語(yǔ)音識(shí)別系統(tǒng)結(jié)構(gòu)圖
圖2 嵌入式語(yǔ)音識(shí)別系統(tǒng)框架圖
嵌入式語(yǔ)音識(shí)別系統(tǒng)的工作過(guò)程:首先采集語(yǔ)音信號(hào),在程序運(yùn)行時(shí),通過(guò)控制模塊輸入當(dāng)前需要進(jìn)行的模板的訓(xùn)練操作,輸入完成后系統(tǒng)采集特定人的語(yǔ)音信號(hào),A/D轉(zhuǎn)換之后進(jìn)入控制器,通過(guò)一系列的算法建立起該特定人的標(biāo)準(zhǔn)語(yǔ)音庫(kù),并將其存入存儲(chǔ)電路之中;在語(yǔ)音識(shí)別時(shí),首先通過(guò)控制模塊輸入當(dāng)前需要進(jìn)行的操作,然后采集用戶的語(yǔ)音,將采集到的信號(hào)進(jìn)行一系列運(yùn)算處理提取出特征矢量模板,存入存儲(chǔ)單元之中,并與標(biāo)準(zhǔn)語(yǔ)音庫(kù)中的語(yǔ)音命令進(jìn)行比較,在允許的誤差范圍內(nèi)找出語(yǔ)音庫(kù)中最接近該段音頻的語(yǔ)音信號(hào),并把該語(yǔ)音信號(hào)作為識(shí)別結(jié)果通過(guò)顯示模塊告知用戶。
語(yǔ)音識(shí)別系統(tǒng)的硬件結(jié)構(gòu)
語(yǔ)音識(shí)別系統(tǒng)的硬件部分主要由聲音采集模塊(拾音器以及功率放大電路)、帶通濾波器、存儲(chǔ)電路、串口通信電路、鍵盤控制電路、顯示電路以及微控制器等幾個(gè)基本單元組成。系統(tǒng)的硬件組成框圖如圖3所示。
圖3 語(yǔ)音識(shí)別系統(tǒng)硬件結(jié)構(gòu)圖
系統(tǒng)的微控制器部分是整個(gè)系統(tǒng)的控制中心,主要完成對(duì)語(yǔ)音信號(hào)的存儲(chǔ)、對(duì)外部命令的響應(yīng)、算法的實(shí)現(xiàn)以及實(shí)驗(yàn)結(jié)果的輸出。本系統(tǒng)的采樣功能由單片機(jī)本身實(shí)現(xiàn),選用的C8051F040型號(hào)單片機(jī)包含有A/D采樣的功能,而且采樣速率能夠滿足進(jìn)行語(yǔ)音信號(hào)時(shí)所需要的采樣頻率。
進(jìn)行語(yǔ)音實(shí)驗(yàn)時(shí),語(yǔ)音首先要進(jìn)入聲音采集模塊。聲音采集模塊由拾音器和功率放大器組成。拾音器用于將語(yǔ)音信號(hào)轉(zhuǎn)化成電信號(hào)。當(dāng)語(yǔ)音信號(hào)從拾音器出來(lái)之后會(huì)轉(zhuǎn)換成微弱的電信號(hào)(毫伏級(jí)),因此在拾音器的后端需要將該電信號(hào)進(jìn)行放大處理(放大到伏級(jí)),這就是該模塊中功率放大電路的作用。
一般的語(yǔ)音最高頻率是3.4KHz,最低頻率為300Hz,而在語(yǔ)音信號(hào)通過(guò)輸入系統(tǒng)之后需要對(duì)該頻率段之外的頻率成分濾除,以提高語(yǔ)音的信噪比。帶通濾波器用于對(duì)語(yǔ)音信號(hào)進(jìn)行濾波,以保留300Hz~3.4KHz的信號(hào)。為了實(shí)現(xiàn)對(duì)放大后信號(hào)的濾波處理,帶通濾波器可由低通濾波器和高通濾波器級(jí)聯(lián)而成,即設(shè)計(jì)一個(gè)下限截止頻率為300Hz的高通濾波器和上限截止頻率為3.4KHz的低通濾波器來(lái)級(jí)聯(lián)。
語(yǔ)音信號(hào)的采集一般需要8KHz的采樣頻率,而單片機(jī)本身片上資源較少,當(dāng)存儲(chǔ)語(yǔ)音數(shù)據(jù)時(shí)可能會(huì)有存儲(chǔ)空間不夠的情況,此時(shí),系統(tǒng)需要外部存儲(chǔ)器。
鍵盤控制模塊用于對(duì)語(yǔ)音的錄入、模版的訓(xùn)練和語(yǔ)音信號(hào)的識(shí)別過(guò)程進(jìn)行控制。
LCD顯示模塊用于顯示當(dāng)前的系統(tǒng)狀況和識(shí)別結(jié)果,以便提示用戶進(jìn)行下一步的操作。
串口通信模塊用于實(shí)現(xiàn)上下位機(jī)之間的點(diǎn)對(duì)點(diǎn)通訊。
語(yǔ)音識(shí)別系統(tǒng)的硬件設(shè)計(jì)
微控制器
語(yǔ)音信號(hào)的數(shù)據(jù)量非常大,系統(tǒng)語(yǔ)音識(shí)別時(shí)需要具有較強(qiáng)的計(jì)算能力。系統(tǒng)選用C8051F040單片機(jī)作為處理器。
C8051F040單片機(jī)是完全集成的混合信號(hào)系統(tǒng)級(jí)芯片,采用了流水線處理技術(shù),除了不再劃分時(shí)鐘周期和機(jī)器周期,還能在執(zhí)行指令期間對(duì)下一條指令進(jìn)行預(yù)處理,因而大大提高了指令的執(zhí)行速度。C8051F040有著強(qiáng)大的處理能力,它在一個(gè)芯片內(nèi)集成了數(shù)據(jù)采集和控制所需的幾乎全部硬件外設(shè),代表了目前8位單片機(jī)的發(fā)展方向。
圖4 7805芯片連接圖
圖5 AS1117芯片連接圖
圖6 兩級(jí)放大電路圖
圖7 帶通濾波器電路圖
電源系統(tǒng)
本系統(tǒng)外部提供9V的直流電源,因此采用線性穩(wěn)壓芯片7805作為電壓調(diào)節(jié)和穩(wěn)壓器件來(lái)將較高的直流電壓轉(zhuǎn)變成所需的工作電壓,即將9V~12V電源轉(zhuǎn)換為穩(wěn)定的5V直流電源。
使用7805芯片進(jìn)行穩(wěn)壓之后,采用AS1117芯片穩(wěn)壓數(shù)字電源DV和模擬電源AV的輸入。
輸入系統(tǒng)
輸入系統(tǒng)用于把語(yǔ)音信號(hào)通過(guò)麥克風(fēng)變成電信號(hào)。同時(shí),由于語(yǔ)音信號(hào)比較微弱,所以必須要將電信號(hào)適當(dāng)?shù)胤糯?。一般情況下,拾音器的輸出為毫伏級(jí)的電壓,要將電壓信號(hào)放大到伏級(jí),需要放大的倍數(shù)大致為1000倍。
由于輸入到放大器的信號(hào)很微小,為了減小動(dòng)態(tài)誤差,本系統(tǒng)處于深度反饋之中。同相放大器的電壓放大倍數(shù)一般在1~100之間,由于放大倍數(shù)為1000左右,本文選擇NE5532芯片進(jìn)行兩級(jí)同向放大器的設(shè)計(jì)。在兩級(jí)放大電路中,前一級(jí)的輸出信號(hào)就是后一級(jí)的輸入信號(hào),后一級(jí)的輸入電阻就是前一級(jí)的負(fù)載。兩級(jí)放大電路的電壓放大倍數(shù)等于各級(jí)電壓放大倍數(shù)的乘積。
帶通濾波電路
語(yǔ)音的頻率范圍一般為300Hz~3.4KHz,為了提高語(yǔ)音信號(hào)的質(zhì)量,可以在輸入與輸出的回路中設(shè)計(jì)一個(gè)帶通濾波器來(lái)濾除語(yǔ)音頻率范圍以外的頻率成分。本文采用運(yùn)算放大器NE5532設(shè)計(jì)巴特沃斯帶通濾波器。這個(gè)帶通濾波器通過(guò)前級(jí)的二階壓控型低通濾波器與后級(jí)的二階壓控高通濾波器級(jí)聯(lián)而成。需要低通濾波器的上限截止頻率為3.4KHz,高通濾波器的下限截止頻率為300Hz。
存儲(chǔ)系統(tǒng)
在系統(tǒng)中,對(duì)語(yǔ)音信號(hào)的存儲(chǔ)以及識(shí)別算法要求系統(tǒng)有足夠的空間來(lái)存儲(chǔ)這些原始數(shù)據(jù)和中間數(shù)據(jù)。本文選擇的C8051F040單片機(jī)雖然集成了4KB的外部?jī)?nèi)存,但是對(duì)于系統(tǒng)大量的存儲(chǔ)需要,還需要擴(kuò)展外部?jī)?nèi)存。語(yǔ)音識(shí)別時(shí)采用8KHz的采樣率,每段2s的音頻信號(hào)至少需要16KB的存儲(chǔ)空間,因此系統(tǒng)使用外擴(kuò)256K字節(jié)的FLASH ROM作為語(yǔ)音參考模板的存儲(chǔ)空間。對(duì)于待識(shí)別語(yǔ)音,本系統(tǒng)外擴(kuò)了32K字節(jié)的SRAM作為存儲(chǔ)空間,這樣就至少能錄制4s的語(yǔ)音信號(hào),滿足需求。在擴(kuò)展內(nèi)存之時(shí),為了配置端口的方便考慮,將其擴(kuò)展到P4~P7口,即P7口對(duì)應(yīng)于8位數(shù)據(jù)線,P6口對(duì)應(yīng)于地址線的高8位。
通信電路
為了便于系統(tǒng)調(diào)試,系統(tǒng)采用串口通信作為單片機(jī)與上位機(jī)之間的通訊方式,將計(jì)算數(shù)據(jù)和識(shí)別結(jié)果傳輸?shù)綑C(jī)之中。
C8051F040有兩種串行通信總線:增強(qiáng)型串行通信總線UART0和異步全雙工串行通信總線UART1。
圖8 單片機(jī)與MAX3232接口電路圖
UART0包含四種工作模式(模式0、模式1、模式2和模式3),本系統(tǒng)選擇UART0的模式1作為通信模式。UART0的模式1:同步方式為異步,波特時(shí)鐘為T1、T2、T3或T4溢出,有效位為8位,1起始位,1停止位。
單片機(jī)與PC機(jī)之間最簡(jiǎn)單的通信方式就是串口通信。但是RS-223C所規(guī)定的邏輯電平與單片機(jī)的邏輯電平是不同,必須把單片機(jī)的電平轉(zhuǎn)變?yōu)镽S-223C電平。本系統(tǒng)采用MAX3232芯片進(jìn)行這種電平轉(zhuǎn)換。單片機(jī)與MAX3232的接口電路如圖8所示。
MAX3232的輸入TXD和RXD通過(guò)單片機(jī)的交叉開(kāi)關(guān)配置,可以配置到P0.0口以及P0.1口。將TXD和RXD分別接入MAX3232的一端輸入T1in以及R1out。MAX3232的輸出TD、RD分別接入9針串行插口的2腳和3腳,5腳接地,然后通過(guò)串口線與PC上的串行接口相連,即可完成單片機(jī)與PC機(jī)之間的通信電路搭建。
系統(tǒng)軟件設(shè)計(jì)
在語(yǔ)音識(shí)別系統(tǒng)的整個(gè)程序設(shè)計(jì)中,系統(tǒng)進(jìn)入主程序之后,主程序采用調(diào)用子程序的方式來(lái)完成對(duì)語(yǔ)音模板的訓(xùn)練和識(shí)別等任務(wù)。系統(tǒng)的主程序流程如圖9所示。系統(tǒng)運(yùn)行之后,有按鍵按下時(shí),判斷為何種命令,如果是模板訓(xùn)練命令則進(jìn)行模板訓(xùn)練的算法操作,如果是語(yǔ)音識(shí)別命令則執(zhí)行語(yǔ)音識(shí)別子程序。
結(jié)束語(yǔ)
C8051F040是高度集成的混合信號(hào)SoC級(jí)微控制器芯片。本文基于此芯片,實(shí)現(xiàn)了特定人孤立詞語(yǔ)音識(shí)別的系統(tǒng)的設(shè)計(jì)。硬件設(shè)計(jì)中,以C8051F040為核心進(jìn)行了電源系統(tǒng)、語(yǔ)音輸入、帶通濾波、存儲(chǔ)系統(tǒng)和通訊模塊等電路的設(shè)計(jì)。本設(shè)計(jì)的系統(tǒng)可靠性高、成本低、操作簡(jiǎn)單,具有較好的應(yīng)用前景。
圖9 語(yǔ)音識(shí)別主程序流程圖