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

基于藍(lán)牙技術(shù)的智能遙控器

一加TV的遙控器帶有Google智能助理按鈕
藍(lán)牙語音遙控器方案

評論