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

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

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

評論