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

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

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


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



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

3 語音識別模塊設(shè)計
3.1 語音識別原理

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


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

4 語音控制模塊設(shè)計
4.1 語音控制模塊設(shè)計

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


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

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

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

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

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