引言
一般使用DVD播放器時(shí)要同時(shí)使用電視機(jī)來(lái)顯示所播放的圖像。因此必須同時(shí)使用DVD播放器的遙控器以及電視機(jī)的遙控器進(jìn)行控制,使用很不方便。人們很希望用一個(gè)遙控器既可以控制DVD播放器又可以控制電視機(jī)。本文設(shè)計(jì)的遙控器就是一款DVD/TV并用的遙控器。DVD遙控器是定制的,其控制碼型是完全確定的。但是用戶所使用的電視機(jī)卻是各種類型的,其控制碼型也各式各樣,無(wú)法預(yù)先確定,因此對(duì)電視機(jī)的遙控器需采用學(xué)習(xí)式,即將電視機(jī)的控制碼通過(guò)學(xué)習(xí)過(guò)程送入遙控器。本遙控器就是一款學(xué)習(xí)式的,適應(yīng)各種類型電視機(jī)使用的遙控器。
這款遙控器引用了語(yǔ)音辨識(shí)功能,既可以應(yīng)用按鍵控制也可以發(fā)語(yǔ)音命令進(jìn)行控制,給人們帶來(lái)極大方便。
系統(tǒng)硬件設(shè)計(jì)
系統(tǒng)主芯片采用清華大學(xué)與Infineon公司合作新推出的具有DSP和單片機(jī)(M8051)雙核的語(yǔ)音專用芯片UniSpeech。該芯片集成了12bit的ADC和11bit的DAC,省去了額外的CODEC器件。由于采用了SoC結(jié)構(gòu),構(gòu)成系統(tǒng)的芯片數(shù)量少,系統(tǒng)的集成度和穩(wěn)定性高。因此該芯片非常適合于開(kāi)發(fā)帶有語(yǔ)音識(shí)別功能的遙控器等應(yīng)用。
紅外線信號(hào)的發(fā)射是通過(guò)MCU的功能引腳PWM驅(qū)動(dòng)紅外線發(fā)射管實(shí)現(xiàn)的,由于PWM引腳具有脈沖寬度調(diào)制功能,只要設(shè)置相應(yīng)的寄存器,就能輸出具有一定占空比的載波信號(hào),因此不需額外的驅(qū)動(dòng)器件就可根據(jù)需要發(fā)出所要的紅外信號(hào)。紅外線的接收則是由紅外線接收管連接到MCU的通用輸入/輸出引腳實(shí)現(xiàn)。
考慮到語(yǔ)音聲學(xué)模型、遙控碼等所需要的存儲(chǔ)數(shù)據(jù)量比較大,本文采用了SST公司的8Mbits的Flash存儲(chǔ)器39VF080。
遙控器設(shè)計(jì)中比較重要的一點(diǎn)是按鍵的功能設(shè)計(jì),結(jié)合一般用戶使用DVD和TV遙控器的習(xí)慣,本設(shè)計(jì)只設(shè)置了較少的4×4的掃描式按鍵。只有最常用的幾個(gè)功能既可以按鍵控制,又可以語(yǔ)音控制,其它功能可以完全由語(yǔ)音控制實(shí)現(xiàn)。其系統(tǒng)硬件框圖如圖1所示。
系統(tǒng)中 MCU作為主控制芯片,完成對(duì)各種接口的控制和系統(tǒng)的配置。DSP作為協(xié)處理器,完成語(yǔ)音識(shí)別算法和語(yǔ)音合成計(jì)算。通過(guò)MIC的輸入語(yǔ)音,經(jīng)過(guò)ADC的8kHz采樣、12bit的線性量化,然后送到DSP進(jìn)行處理。
由于系統(tǒng)語(yǔ)音識(shí)別部分是面向非特定人設(shè)計(jì)的,因此必須事先準(zhǔn)備訓(xùn)練好的聲學(xué)模型和已經(jīng)編輯好的語(yǔ)音命令詞條。系統(tǒng)通過(guò)UART與計(jì)算機(jī)串口相接,將已經(jīng)編輯好的語(yǔ)音命令詞條和聲學(xué)模型存入Flash中。考慮到實(shí)際使用的需要,本文將各語(yǔ)音命令詞條(如“開(kāi)機(jī)”、“關(guān)機(jī)”)對(duì)應(yīng)到一個(gè)按鍵所對(duì)應(yīng)的遙控碼上。這樣,當(dāng)輸入不同的語(yǔ)音命令,通過(guò)語(yǔ)音識(shí)別得到與之匹配的指令,就可實(shí)現(xiàn)與對(duì)應(yīng)按鍵相同的控制效果。
系統(tǒng)軟件設(shè)計(jì)
本系統(tǒng)軟件被設(shè)計(jì)為一個(gè)超循環(huán)(Super-Loops)結(jié)構(gòu)的實(shí)時(shí)系統(tǒng)。通過(guò)在主程序中構(gòu)造一個(gè)超循環(huán)把所有任務(wù)模塊鏈接起來(lái)。任務(wù)級(jí)的程序得到控制權(quán)后,首先檢查是否有事件需要處理。如果沒(méi)有就放棄控制權(quán),使得超循環(huán)任務(wù)鏈中的下一個(gè)任務(wù)得到控制。如果確實(shí)有事件需要處理,那么就完全或部分地處理該事件,然后就立刻交出控制權(quán)。通過(guò)這樣的協(xié)作,所有的任務(wù)每次執(zhí)行時(shí)都只占用系統(tǒng)很少的運(yùn)行時(shí)間。系統(tǒng)流程如圖2所示。
代碼結(jié)構(gòu)如下:
void main(void)
{
EA = 0;
// 屏蔽中斷
Init();
// 系統(tǒng)初始化
EA = 1;
// 打開(kāi)中斷
while (1)
{
Drv_Ring(); //驅(qū)動(dòng)層,負(fù)責(zé)掃描鍵盤(pán)和檢測(cè)是否有語(yǔ)音輸入
App_Ring(); //應(yīng)用層,負(fù)責(zé)紅外線信號(hào)的發(fā)射和接收以及語(yǔ)音命令的識(shí)別
}
}
功能模塊之間的切換是通過(guò)一個(gè)功能開(kāi)關(guān)和一個(gè)語(yǔ)音識(shí)別啟動(dòng)鍵實(shí)現(xiàn)的,當(dāng)功能開(kāi)關(guān)置為“LEARN”學(xué)習(xí)功能時(shí),系統(tǒng)進(jìn)入學(xué)習(xí)功能;當(dāng)置為“DVD”檔時(shí),系統(tǒng)進(jìn)入DVD功能;當(dāng)置為“TV”檔時(shí),系統(tǒng)則進(jìn)入TV功能。
DVD功能模塊
DVD遙控器的遙控碼已由DVD播放器生產(chǎn)廠商提供。為此,DVD遙控碼型將根據(jù)所屬?gòu)S家提供的信息直接在程序中確定,因此在按鍵發(fā)送紅外信號(hào)時(shí),也是直接由程序確定對(duì)應(yīng)的碼型。通過(guò)PWM引腳發(fā)射。
TV功能模塊
對(duì)TV功能而言,其遙控碼型必須通過(guò)學(xué)習(xí)過(guò)程取得,并存于數(shù)據(jù)Flash中。當(dāng)用戶按鍵時(shí),程序根據(jù)按鍵鍵值,從數(shù)據(jù)Flash中讀取對(duì)應(yīng)的遙控碼型,然后通過(guò)功能引腳PWM發(fā)送該遙控碼。
語(yǔ)音識(shí)別模塊
當(dāng)語(yǔ)音識(shí)別啟動(dòng)鍵被按下時(shí),系統(tǒng)進(jìn)入識(shí)別狀態(tài),開(kāi)始接收語(yǔ)音命令的輸入,識(shí)別完語(yǔ)音命令之后,根據(jù)識(shí)別結(jié)果發(fā)送相應(yīng)的遙控碼。語(yǔ)音識(shí)別子系統(tǒng)的基本結(jié)構(gòu)如圖3所示。
語(yǔ)音識(shí)別引擎采用基于子詞的非特定人語(yǔ)音識(shí)別模型,與以往的基于孤立詞整詞的模型相比,具有靈活性高、穩(wěn)健性好的特點(diǎn)。
按照各自的功能,大致上可以將識(shí)別算法分為三個(gè)部分:特征提取、模型參數(shù)訓(xùn)練和識(shí)別網(wǎng)絡(luò)解碼。對(duì)于一個(gè)基于子詞的非特定人嵌入式語(yǔ)音識(shí)別引擎而言,聲學(xué)模型(采用HMM)是與識(shí)別任務(wù)無(wú)關(guān)的,模型參數(shù)相對(duì)固定,因此模型參數(shù)訓(xùn)練的過(guò)程可以在PC平臺(tái)上完成(見(jiàn)圖3虛框部分),需要嵌入到片上的模塊只有特征提取和識(shí)別網(wǎng)絡(luò)解碼部分。特征提取選用了MFCC參數(shù)作為語(yǔ)音識(shí)別引擎的語(yǔ)音特征參數(shù),識(shí)別網(wǎng)絡(luò)解碼采用維特比(Viterbi)搜索算法。為了保證算法能夠達(dá)到較高的識(shí)別精度,而又占用較少的資源,采用兩級(jí)識(shí)別結(jié)構(gòu),在一顆專用芯片上達(dá)到了99%的識(shí)別精度。
學(xué)習(xí)模塊
當(dāng)系統(tǒng)處于學(xué)習(xí)功能狀態(tài)時(shí),系統(tǒng)檢測(cè)紅外遙控碼。根據(jù)用戶所選按鍵,將接收到的紅外遙控信息存到該按鍵對(duì)應(yīng)的Flash數(shù)據(jù)區(qū)中。當(dāng)下次按下該按鍵時(shí),就可從該按鍵對(duì)應(yīng)的Flash數(shù)據(jù)區(qū)中取出新學(xué)習(xí)到的紅外遙控碼。
責(zé)任編輯:gt
-
芯片
+關(guān)注
關(guān)注
456文章
51170瀏覽量
427227 -
存儲(chǔ)器
+關(guān)注
關(guān)注
38文章
7528瀏覽量
164341 -
遙控器
+關(guān)注
關(guān)注
18文章
840瀏覽量
66584
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論