新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于SPCE061A的語音識別系統(tǒng)的設(shè)計(jì)

基于SPCE061A的語音識別系統(tǒng)的設(shè)計(jì)

作者: 時(shí)間:2012-01-07 來源:網(wǎng)絡(luò) 收藏

1引言

語音識別技術(shù)就是讓機(jī)器通過識別和理解把語音信號轉(zhuǎn)變?yōu)橄鄳?yīng)的文本或命令的技術(shù)。語音識別是一門交叉學(xué)科,正逐步成為信息技術(shù)中人機(jī)接口的關(guān)鍵技術(shù),語音識別技術(shù)與語音合成技術(shù)的結(jié)合,使人們能夠甩掉鍵盤,通過語音命令進(jìn)行操作。近年來語音學(xué)研究的深入和數(shù)字信號處理軟硬件技術(shù)的發(fā)展,語音技術(shù)的應(yīng)用己經(jīng)逐步具備走出實(shí)驗(yàn)室,服務(wù)于社會的能力。尤其在中小字表孤立詞語音識別技術(shù)已基本成熟,逐漸開始應(yīng)用于家電產(chǎn)品、智能玩具等對識別率要求不是極其嚴(yán)格的領(lǐng)域。

2 硬件系統(tǒng)的總體方案介紹

本系統(tǒng)采用凌陽作為主控芯片,并根據(jù)功能需求設(shè)計(jì)嵌入式的硬件。由于這是一款包含DSP功能并集成了戶A/D,D/A等一系列功能的語音處理專用SOC,模塊電路、外擴(kuò)存儲FLASH、LED顯示電路、通信模塊、功放和喇叭輸出模塊等。

圖1 的硬件組成

2.1電源電路

采用低電壓供電方式,這可以大大降低芯片的功率損耗。其中,SPCE06lA的電源分兩種,即內(nèi)核電源(VDD)和I/O口電源(VDDH)。I/O口電源采用5V電壓,而內(nèi)核電源則為3.3V或者更低。降低芯片內(nèi)核電壓的目的主要還是降低芯片的功耗,同時(shí)也可以降低芯片的工作溫度,延長芯片使用壽命。盡管這種語音芯片的工作電壓范圍很大,但是為了使芯片內(nèi)核運(yùn)行更加穩(wěn)定,同時(shí)又保證I/O口及外部擴(kuò)展部件的工作電壓要求,系統(tǒng)采取:

AC220V電源通過AC10V進(jìn)行整流,利用以7805穩(wěn)壓集成塊為核心的電路,產(chǎn)生+5V電源,作為語音識別與播放模塊共同使用的電源。5V電源經(jīng)過TR1972-33得到DC3.3v為CPU核心供電。

圖2 電源電路

2.2存儲模塊部分電路設(shè)計(jì)

因?yàn)?a class="contentlabel" href="http://butianyuan.cn/news/listbylabel/label/SPCE061A">SPCE061A的FLASH只有32Kwords,要存放大量的語音資源,就需要外擴(kuò)存儲器。系統(tǒng)使用的是一種用SIO擴(kuò)展串行存儲器的方法。本方案采用凌陽公司的SPR4096芯片進(jìn)行設(shè)計(jì)。SPR4096是一個(gè)高性能的4M-bit(512K×8-bit)總線FLASH,分為256個(gè)扇區(qū)(sector)每個(gè)扇區(qū)為2K-byte。SPR4096還內(nèi)置了一個(gè)4K×8-bit的SRAM。在進(jìn)行FLASH的編程/擦除的時(shí)候,可以并發(fā)執(zhí)行SRAM的讀/寫。SPR4096內(nèi)置了一個(gè)總線存儲器接口和一個(gè)串行接口,它允許單片機(jī)通過8-bit并行模式或者1-bit的串行模式訪問FLASH SRAM存儲區(qū)。本例使用串行模式,其接口的工作頻率為5MHz。SPR4096有兩個(gè)電源輸入端VDDI和VDDQ。VDDI為內(nèi)部FLASH和控制邏輯供電;VDDQ專門為I/O供電。SPR4096最大讀電流為2mA,最大編程/擦除電流為6mA。

2.3音頻輸出電路模塊

放音利用的是SPCE06lA內(nèi)部集成的DAC,它是電流輸出,為了能夠驅(qū)動揚(yáng)聲器SPEAKER放音需要相應(yīng)的驅(qū)動電路。圖中的SPY0030單運(yùn)放是凌陽公司的產(chǎn)品。與常用的單運(yùn)放LM386比,SPY0030的優(yōu)勢在如LM386的工作電壓需要在4v以上,而SPY0030只需要2.4v可工作,LM386的輸出功率在100mw以下,而SPY0030約為700mw,可以提供足夠的驅(qū)動能力。音頻輸出電路如圖3所示。

圖3 音頻輸出電路

2.4 MIC輸入模塊

SPCE061A的A/D轉(zhuǎn)換器有8個(gè)通道,其中有1個(gè)通道是MIC-NI輸入,它專門用于對語音信號進(jìn)行采樣。語音信號經(jīng)過MCI轉(zhuǎn)換成電信號,然后輸入至SPCE061A內(nèi)部前置放大器。由于人們說話時(shí),麥克風(fēng)距離嘴邊的距離不同,語音信號的能量將會有很大的差異,此時(shí),如果芯片的的輸入信號太大或是太小都將影響識別的精度。而SPCE06lA內(nèi)部就帶有自動增益控制電路AGC能隨時(shí)跟蹤、監(jiān)視前置放大器輸出的音頻信號電平,當(dāng)輸入信號增大時(shí)AGC電路自動減小放大器的增益;當(dāng)輸入信號減小時(shí),AGC電路自動增大放大器的增益,從而以補(bǔ)償太小或是太大的信號,以便使進(jìn)入戶A/D的信號保持在最佳電平,又可使削波減至最小。

2.5通信接口電路

單片機(jī)中的數(shù)據(jù)通過串口經(jīng)MAX232電平轉(zhuǎn)換成RS-232電平向上位傳輸。由于SPCE06lA的串行口都為TTL電平,它與RS-232C電平互不相容,所以在二者接口處,必須進(jìn)行電平轉(zhuǎn)換。利用MAX232芯片外接5V電源,外接電容,可產(chǎn)生正負(fù)10V的電源形成232C的收發(fā)器。本系統(tǒng)中設(shè)有通信電路是為將大量語音數(shù)據(jù)處理都需要上傳給PC,由PC完成。比如,噪聲能量和過零率的計(jì)算,數(shù)字濾波器設(shè)計(jì),模型庫的訓(xùn)練等。

3軟件設(shè)計(jì)部分

總體來說,本系統(tǒng)包含語音識別模塊的軟件設(shè)計(jì)和語音回放模塊的軟件設(shè)計(jì)。

3.1語音識別部分設(shè)計(jì)

語音識別程序是軟件編程的主體工作識別模塊的程序流程圖4所示。本系統(tǒng)采用了常用的能量過零率雙門限法進(jìn)行語音端點(diǎn)檢測,采用了計(jì)算量較小的線性預(yù)測倒譜系數(shù)作為語音信號特征矢量,另外,基于非特定人的嵌入式系統(tǒng)要求,為了達(dá)到減少計(jì)算量和存儲量的目的,在特征參數(shù)提取完成之后,利用矢量量化方法進(jìn)行數(shù)據(jù)壓縮。語音識別模型采用(DHMM)離散隱馬爾可夫模型,利用Baum-welth重估算法、前向后向算法、viterbi算法來完成語音模板的訓(xùn)練和語音識別的任務(wù)。

圖4 語音識別模塊流程圖

初始化子程序的作用是將微處理器中與語音識別相關(guān)的資源進(jìn)行參數(shù)設(shè)置,使其實(shí)現(xiàn)為相應(yīng)的功能,例如自動A/D變換等;

端點(diǎn)檢測用來避免不必要的計(jì)算量,同時(shí)設(shè)定語音識別解碼的起點(diǎn)和終點(diǎn),防止無效搜索;預(yù)處理用來提高語音識別性能,增強(qiáng)穩(wěn)健性的重要環(huán)節(jié)。預(yù)處理包括對原始語音信號的濾波、預(yù)加重、加窗、分幀等環(huán)節(jié)。同時(shí)還可能包含語音增強(qiáng)、噪聲抵消、端點(diǎn)檢測等等。預(yù)加重主要是為了提升高頻部分,以彌補(bǔ)聲音在唇部輻射時(shí)產(chǎn)生的高頻部分的損失,可以使信號的頻譜平坦,減少信號的動態(tài)范圍;

特征提取就是對語音信號進(jìn)行分析處理,去除對語音識別無關(guān)緊要的冗余信息,提取出對語音識別有用的重要信息;

矢量量化(VQ)是一種重要的信號壓縮方法,它可以減少語音信號處理中所需要的大量的存儲空間,并可以減少識別匹配的計(jì)算量;

語音信號本身是一個(gè)可觀察的序列:它是由大腦中的(不可觀察的)、根據(jù)言語需要和語法知識(狀態(tài)選擇)所發(fā)出的音素(詞、句)的參數(shù)流,所以用離散隱馬爾可夫模型(DHMM)來模擬語音信號。

3.2語音播放的模塊設(shè)計(jì)

為了有一個(gè)友好的人機(jī)交互的功能,該系統(tǒng)還必須語音回放。語音數(shù)據(jù)的保存形式是以臺灣凌陽公司開發(fā)的幾種語音壓縮編碼算法來實(shí)現(xiàn)的。同時(shí),凌陽公司還提供了相應(yīng)的語音壓縮與解壓算法的API接口,可以方便開發(fā)人員進(jìn)行編程開發(fā)工作。

先用凌陽Compress Tool事先把所需要的語音信號錄制好,用凌陽壓縮工具進(jìn)行壓縮,這樣就可以得到所要播報(bào)的語音了。語音播放程序調(diào)用凌陽提供的音頻編碼算法庫中的API函數(shù),采用凌陽壓縮算法中的SACM_S480進(jìn)行自動放音,其語音自動播放程序流程圖如下圖5所示。語音播放是在中斷服務(wù)程序中執(zhí)行,本系統(tǒng)使用了FIQ_TMA中斷源。語音播放通常會出現(xiàn)兩種情況:一是系統(tǒng)能正確識別語音,此時(shí)的識別后處理是通過語音播報(bào)出正確的結(jié)果;二是系統(tǒng)不能正確識別語音,則播報(bào)出不能識別的原因。語音回放流程圖如圖5所示。

圖5 語音回放流程圖

4 總結(jié)

本文的創(chuàng)新點(diǎn)是設(shè)計(jì)的提出的嵌入式非特定人所選用的SPCE061A微處理CPU最高時(shí)鐘可達(dá)到49MHZ,因此在處理復(fù)雜的數(shù)字信號方面它可以和DSP相媲美,但其價(jià)格卻要比專用的DSP芯片廉價(jià),并且它具有較強(qiáng)的中斷處理能力,系統(tǒng)支持10個(gè)中斷向量及10余個(gè)中斷源,適合實(shí)時(shí)語音處理,并具有雙通道10位DAC方式的音頻輸出功能,配置帶自動增益控制功能(AGC)的麥克風(fēng)輸入方式,為語音處理帶來了極大便利;其次,采用了離散隱馬爾可夫模型來模擬語音信號,并且隨著DHMM在語音模板的訓(xùn)練階段計(jì)算復(fù)雜度的增加,識別階段的計(jì)算負(fù)擔(dān)相應(yīng)的大大減少,對于特定人、小詞匯量的語音控制系統(tǒng)己能滿足要求。此項(xiàng)目投入市場后,半年內(nèi)產(chǎn)生50余萬的經(jīng)濟(jì)效益。

參考文獻(xiàn)

[1]薛均義,張延斌,虞鶴松等.凌陽16位單片機(jī)原理及應(yīng)用[M].北京航空航天大學(xué)出版社2003.72~89

[2]易克初等.語音信號處理.國防工業(yè)出版社[M].2000.11-15 ;154-172

[3]胡航.語音信號處理.哈爾濱工業(yè)大學(xué)出版社[M].2000.88-120

[4]胡凱,張穎超.生化分析儀的設(shè)計(jì)及與PC機(jī)的通信[J].微計(jì)算機(jī)信息.2006,9-1:20-22

[5]馬鴻文.基于AT89C52單片機(jī)的自動存取柜的設(shè)計(jì)與實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2006,7-2:10-13.

矢量控制相關(guān)文章:矢量控制原理


關(guān)鍵詞: SPCE061A 語音識別系統(tǒng)

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉