《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于凌陽(yáng)單片機(jī)的通用型語(yǔ)音控制系統(tǒng)
基于凌陽(yáng)單片機(jī)的通用型語(yǔ)音控制系統(tǒng)
現(xiàn)代電子技術(shù)
屠澄軼
摘要: 通用型語(yǔ)音控制系統(tǒng)主要用來(lái)完成語(yǔ)音識(shí)別,、語(yǔ)音控制和語(yǔ)音播放等綜合功能,,其硬件部分以凌陽(yáng)SPCE061A為核心,,軟件設(shè)計(jì)采用VisualBasic.NET,、C語(yǔ)言和匯編語(yǔ)言。這里只采用單片芯片就完成了語(yǔ)音處理和控制功能,此外開(kāi)發(fā)了一整套圖形化的通用型語(yǔ)音集成軟件,用戶只需要輸入語(yǔ)音素材的有關(guān)參數(shù),即可實(shí)現(xiàn)代碼的自動(dòng)生成,,目前國(guó)內(nèi)還沒(méi)有此類設(shè)計(jì)方案。實(shí)際應(yīng)用表明,,該系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,,成本低,可擴(kuò)充性強(qiáng),,并可大大縮短開(kāi)發(fā)周期,。
Abstract:
Key words :

      隨著電子技術(shù)的迅速發(fā)展,家用電器及其他電子產(chǎn)品日趨人性化,。為了實(shí)現(xiàn)語(yǔ)音處理和語(yǔ)音控制,,這里設(shè)計(jì)了基于凌陽(yáng)單片機(jī)的通用型語(yǔ)音控制系統(tǒng)。該系統(tǒng)主要用來(lái)完成語(yǔ)音識(shí)別,、語(yǔ)音控制和語(yǔ)音播放等綜合功能,,使家用電器及其他電子產(chǎn)品實(shí)現(xiàn)語(yǔ)音的自動(dòng)控制。目前國(guó)內(nèi)還沒(méi)有此類設(shè)計(jì)方案,。該方案主要分為語(yǔ)音識(shí)別模塊設(shè)計(jì),、語(yǔ)音播放模塊設(shè)計(jì)和語(yǔ)音控制模塊設(shè)計(jì),,只采用單片芯片就可實(shí)現(xiàn)語(yǔ)音處理和控制功能。此外,,通過(guò)對(duì)一整套圖形化的通用型語(yǔ)音集成軟件進(jìn)行開(kāi)發(fā),,可使用戶只需要輸入語(yǔ)音素材的有關(guān)參數(shù),即可實(shí)現(xiàn)代碼的自動(dòng)生成,。下面介紹通用型語(yǔ)音控制系統(tǒng)的設(shè)計(jì)方案,。

1 通用型語(yǔ)音控制系統(tǒng)設(shè)計(jì)方案
   
圖1給出通用型語(yǔ)音控制系統(tǒng)方框圖。


    語(yǔ)音識(shí)別模塊的主要作用是完成語(yǔ)音辨識(shí),,本設(shè)計(jì)采用特定發(fā)音人識(shí)別模式,。語(yǔ)音識(shí)別功能采用語(yǔ)音識(shí)別電路,并通過(guò)軟件編程來(lái)實(shí)現(xiàn),。語(yǔ)音播放模塊的主要作用是完成語(yǔ)音播放,。語(yǔ)音播放功能采用語(yǔ)音播放電路,并通過(guò)軟件編程來(lái)實(shí)現(xiàn),。語(yǔ)音控制模塊的主要作用是使語(yǔ)音識(shí)別和語(yǔ)音播放實(shí)現(xiàn)自動(dòng)控制。語(yǔ)音控制功能采用語(yǔ)音控制電路,,并通過(guò)軟件編程來(lái)實(shí)現(xiàn),。主控制器部分的主要作用是將語(yǔ)音控制系統(tǒng)嵌入到家電產(chǎn)品及其他電子產(chǎn)品中后,使電子產(chǎn)品的所有功能實(shí)現(xiàn)語(yǔ)音的自動(dòng)控制,。
1. 1 凌陽(yáng)單片機(jī)SPCE061A簡(jiǎn)介
   
SPCE061A是凌陽(yáng)科技推出的一個(gè)16位結(jié)構(gòu)的微控制器,。CPU時(shí)鐘頻率為0.32~49.152 MHz,具有較高的處理速度,,可使μ’nSPTM能夠非常容易,、快速地處理復(fù)雜的數(shù)字信號(hào);擁有可編程音頻處理,;內(nèi)置2 KWord的SRAM和32 KWord的FLASH,;2個(gè)16位可編程定時(shí)器/計(jì)數(shù)器(可自動(dòng)預(yù)置初始計(jì)數(shù)值),2個(gè)10位DAC輸出通道,,32位通用可編程輸入/輸出端口,。它是數(shù)字語(yǔ)音識(shí)別應(yīng)用領(lǐng)域產(chǎn)品中的一種比較經(jīng)濟(jì)的選擇。
1.2 通用型語(yǔ)音集成軟件
   
開(kāi)發(fā)了一套通用型語(yǔ)音集成軟件,,用戶無(wú)需進(jìn)行代碼修改,,只需要輸入語(yǔ)音素材的相關(guān)參數(shù),即可實(shí)現(xiàn)代碼的自動(dòng)生成,。如圖2所示,,是通用型語(yǔ)音集成軟件vO.1版的操作界面。



2 語(yǔ)音播放模塊設(shè)計(jì)
   
語(yǔ)音處理大致可以分為A/D,、編碼處理,、存儲(chǔ),、解碼處理以及D/A等。然而,,麥克風(fēng)輸入所生成的WAVE文件,,其占用的存儲(chǔ)空間很大,對(duì)于單片機(jī)來(lái)說(shuō)想要存儲(chǔ)大量的信息顯然是不可能的,,而凌陽(yáng)SPCE061A提出了解決的方法,,即SACM-LIB,該庫(kù)可將A/D,、編碼,、解碼、存儲(chǔ)及D/A做成相應(yīng)的模塊,,對(duì)應(yīng)的每個(gè)模塊都有其應(yīng)用程序接口API,,所以只需了解每個(gè)模塊所要實(shí)現(xiàn)的功能及其參數(shù)的內(nèi)容,然后調(diào)用該API函數(shù)即可實(shí)現(xiàn)該功能,。

3 語(yǔ)音識(shí)別模塊設(shè)計(jì)
3.1 語(yǔ)音識(shí)別原理

    語(yǔ)音識(shí)別系統(tǒng)包括學(xué)習(xí)訓(xùn)練過(guò)程和識(shí)別過(guò)程2大部分,,基本原理如圖3所示。


    (1)預(yù)處理,。包括預(yù)加重,、加窗分幀、端點(diǎn)檢測(cè)等處理過(guò)程,,在預(yù)處理之前還有語(yǔ)音信號(hào)的數(shù)字化處理過(guò)程,。其中,包括反混疊濾波,、模/數(shù)轉(zhuǎn)換自動(dòng)增益等用以去除聲門激勵(lì),、口鼻輻射、高于1/2采樣率的高頻信號(hào)和噪聲信號(hào)的影響,,以實(shí)現(xiàn)語(yǔ)音信號(hào)的數(shù)字化,。
    (2)聲學(xué)特征分析提取。經(jīng)過(guò)預(yù)處理后的語(yǔ)音信號(hào),,要對(duì)其進(jìn)行特征提取,,即特征參數(shù)分析。該過(guò)程就是從原始語(yǔ)音信號(hào)中抽取能夠反映語(yǔ)音本質(zhì)的特征參數(shù),,以形成特征矢量序列,。目前語(yǔ)音識(shí)別所用的特征參數(shù)主要有2種類型:線性預(yù)測(cè)倒譜系數(shù)(LPCC)和美爾頻標(biāo)倒譜系數(shù)(MFCC)。LPCC系數(shù)主要是模擬人的發(fā)聲模型,,未考慮人耳的聽(tīng)覺(jué)特性,。MFCC系數(shù)考慮到了人的聽(tīng)覺(jué)特性,但要計(jì)算傅里葉變換將耗費(fèi)大量寶貴的計(jì)算資源,。因此,,在嵌入式語(yǔ)音識(shí)別系統(tǒng)中一般都選用LPCC系數(shù),。語(yǔ)音特征提取是分幀提取的,每幀特征參數(shù)一般構(gòu)成一個(gè)矢量,。為此,,有必要采用很有效的數(shù)據(jù)壓縮技術(shù)方法對(duì)數(shù)據(jù)進(jìn)行壓縮。
    (3)參考模板,。參考模版時(shí)將一個(gè)或多個(gè)說(shuō)話者多次重復(fù)的語(yǔ)音參數(shù)經(jīng)過(guò)訓(xùn)練得到,,它是聲學(xué)參數(shù)模版,在系統(tǒng)識(shí)別使用前獲得并存儲(chǔ)起來(lái),。
    (4)判定識(shí)別,。模式識(shí)別是將輸入的待識(shí)別語(yǔ)音特征參數(shù)與訓(xùn)練得到的參考語(yǔ)音模式進(jìn)行逐一比較分析,獲得的最佳匹配參考模式便為識(shí)別結(jié)果,。目前常用的語(yǔ)音識(shí)別算法主要有動(dòng)態(tài)時(shí)間規(guī)則,、離散隱馬爾可夫模型、連續(xù)隱馬爾可夫模型及人工神經(jīng)網(wǎng),。
3.2 語(yǔ)音識(shí)別系統(tǒng)原理和算法
   
在SPCE061A內(nèi)置的8通道10位模/數(shù)轉(zhuǎn)換器(analog to digital converter,,ADC)中專門設(shè)置了一個(gè)只用于語(yǔ)音輸入的通道MIC_IN,針對(duì)較弱信號(hào)的轉(zhuǎn)換還設(shè)計(jì)了一個(gè)音頻放大器(automation gain control,,AGC),。對(duì)其自動(dòng)增益控制放大后再進(jìn)行A/D轉(zhuǎn)換。實(shí)際上,,可以把模/數(shù)轉(zhuǎn)換器看作是一個(gè)實(shí)現(xiàn)模/數(shù)信號(hào)轉(zhuǎn)換的編碼器。ADC轉(zhuǎn)換的原理是依次把設(shè)定在逐次逼近寄存器SAR中的數(shù)字送至10位DAC0中進(jìn)行D/
A轉(zhuǎn)換,。DAC0的電壓模擬量輸出值與外部的電壓模擬量輸入值進(jìn)行比較,,以便盡快找出外部電壓模擬量的數(shù)字量輸出,其輸出的模擬量VDAC0與采樣后的輸入電壓值VIN相比較時(shí)可采用對(duì)半搜索法,,即從SAR中最高有效位開(kāi)始,,根據(jù)比較的大小逐位確定其數(shù)碼取“1”,其余位為“ 0”,。語(yǔ)音識(shí)別算法的原理是:在訓(xùn)練過(guò)程中,,從每個(gè)說(shuō)話人發(fā)出的訓(xùn)練語(yǔ)句中提取相應(yīng)的能充分描述各個(gè)說(shuō)話人行為的特征矢量,這些特征矢量稱為各說(shuō)話人的模板,。在測(cè)試階段,,從說(shuō)話人發(fā)出的語(yǔ)音信號(hào)中按同樣的處理方法提取測(cè)試模板,并與相應(yīng)的參考模板相比較,。由于說(shuō)話人每次發(fā)音是變化的,,測(cè)試模板和參考模板在時(shí)間尺度上不可能完全一致。為了使二者能在時(shí)間等效點(diǎn)上加以比較,,采用了動(dòng)態(tài)時(shí)間規(guī)整
法(DTW),?;驹硎窃趨⒖紭颖咎卣魇噶啃蛄蠥=[a1,a2,,…,,aM]與待識(shí)語(yǔ)音特征矢量序列B=[b1,b2,,…,,bN]之間用一種非線性規(guī)整技術(shù)實(shí)現(xiàn)匹配。從目前來(lái)看,,基于動(dòng)態(tài)時(shí)間規(guī)整匹配的DTW算法可能是一個(gè)最為小巧的語(yǔ)音識(shí)別算法,,系統(tǒng)開(kāi)銷小,識(shí)別速度快,,在小詞匯量的語(yǔ)音命令控制系統(tǒng)中是一個(gè)非常有效的算法,。在訓(xùn)練階段,用戶將詞匯表中的詞依次說(shuō)一遍,,提取出每一幀采樣數(shù)據(jù)的特征向量,,并將特征向量作為模板存入模板庫(kù)中。在識(shí)別階段,,提取待識(shí)語(yǔ)音的特征向量,,然后將其依次與模板庫(kù)中的每一個(gè)模板進(jìn)行相似度比較,并將相似度最高者作為結(jié)果輸出,。

4 語(yǔ)音控制模塊設(shè)計(jì)
4.1 語(yǔ)音控制模塊設(shè)計(jì)

    語(yǔ)音控制模塊硬件部分的功能采用設(shè)計(jì)的超小迷你電路板來(lái)完成,。該硬件具有結(jié)構(gòu)簡(jiǎn)單,成本低,,體積小,,易于家用電器嵌套等特點(diǎn)。各I/O口的分配及功能是IOB4~I(xiàn)OB7為識(shí)別到特定語(yǔ)音后向外部發(fā)出信號(hào)的常用口,;IOB0~I(xiàn)OB1為向外發(fā)送信號(hào)的預(yù)留口,;IOB2~I(xiàn)OB3是外部觸發(fā)SPCE061的外中斷觸發(fā)口,當(dāng)資源緊張時(shí)也可做為輸出端口,,如圖4所示,。


4.2 主程序流程
   
至此,整套系統(tǒng)完成了,。在使用時(shí),,第一次要進(jìn)行特定人語(yǔ)音識(shí)別,識(shí)別成功后,,自動(dòng)存入FLASH,,以后就無(wú)需再訓(xùn)練,上電后自動(dòng)加載進(jìn)RAM中,,然后進(jìn)行識(shí)別,,當(dāng)識(shí)別到特定語(yǔ)音時(shí),,IOB就發(fā)出相應(yīng)信號(hào)。

5 通用型語(yǔ)音集成軟件的設(shè)計(jì)
5.1 集成軟件的總體設(shè)計(jì)和所使用的工具

    該方案的集成開(kāi)發(fā)環(huán)境采用Visual Studio(VS)2005的VB.NET來(lái)設(shè)計(jì),。Visual Basic.NET是微軟公司推出的全新集成開(kāi)發(fā)環(huán)境VS.NET的重要成員之一,,簡(jiǎn)單、易學(xué),、易用,,很多新特性也正適應(yīng)了新一代軟件開(kāi)發(fā)的需要,只要稍有點(diǎn)語(yǔ)言基礎(chǔ)就可以很快掌握,,進(jìn)而精通,。可視化的用戶界面設(shè)計(jì)功能,,把程序設(shè)計(jì)人員從繁瑣復(fù)雜的界面設(shè)計(jì)中解脫出來(lái),;可視化編程環(huán)境的“所見(jiàn)即所得”功能,使界面設(shè)計(jì)如同積木游戲一般,。
    采用Visual Studio(VS)2005來(lái)編寫(xiě)此集成開(kāi)發(fā)環(huán)境,,極大地減輕了開(kāi)發(fā)強(qiáng)度,縮短了開(kāi)發(fā)周期,,也使它的代碼強(qiáng)度和可移植性大大提高,。
5.2 通用型語(yǔ)音集成軟件使用簡(jiǎn)介
   
通用型語(yǔ)音集成軟件包括了語(yǔ)音識(shí)別模塊設(shè)計(jì)、語(yǔ)音播放模塊設(shè)計(jì),、語(yǔ)音控制模塊設(shè)計(jì)的所有代碼自動(dòng)生成,,如圖2所示。開(kāi)始可加入提示音,,單擊打開(kāi)文件選項(xiàng),,選擇想要播放的語(yǔ)音,后面方框打勾表示有此項(xiàng)功能,;下面是5條語(yǔ)音的播放和識(shí)別,每一條功能相同,,現(xiàn)簡(jiǎn)介如下:第一條語(yǔ)音提示功能同上,,觸發(fā)端口指辨識(shí)到該條語(yǔ)音后所觸發(fā)的端口號(hào),有IOB0~I(xiàn)OB7,,電平指向外發(fā)信號(hào)是低電平還是高電平,,有高電平“1”和低電平“0”兩種情況可供選擇,以適應(yīng)不同的情況,。訓(xùn)練成功語(yǔ)音提示指第一次訓(xùn)練時(shí)每訓(xùn)練成功1條指令的提示,;訓(xùn)練失敗語(yǔ)音提示指第一次訓(xùn)練時(shí)失敗的提示;訓(xùn)練完成語(yǔ)音提示指第一次訓(xùn)練成功時(shí)的語(yǔ)音指令提示,。

6 結(jié)語(yǔ)
   
該通用型語(yǔ)音控制系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,,成本低,,可擴(kuò)充性強(qiáng),開(kāi)發(fā)周期短,,可廣泛應(yīng)用于家用電器和其他各種電子產(chǎn)品中,。如果該方案能成功應(yīng)用,定會(huì)產(chǎn)生較好的經(jīng)濟(jì)效益和社會(huì)效益,。

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