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

基于藍牙技術的智能遙控器

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

評論