1 引言
隨著科技的發展和人們生活水平的提高,人們對居住環境方便快捷的要求越來越高,智能家居系統應運而生。智能家居是現代電子技術、通訊技術及自動化技術相結合的產物。它能夠實現對家電設備的自動控制和管理、對家庭的安全進行監測報警,能夠為用戶提供安全舒適、高效便利的生活環境。本文結合語音識別技術,利用SPCE061A 豐富的語音處理功能,在已有的電力線和電話線的基礎上, 設計了一套智能家居系統, 該系統結構簡單、功能完善并且具有較高的性價比。
2 系統架構
系統主要由主控制器、分控制器(89C51)、電話接口和電力線載波通信等幾部分組成。本系統使用了大量的硬件電路來完成部分功能模塊,其目的就是充分利用硬件電路的可靠性和穩定性以使系統達到較高的性能。系統的總體結構如下圖1所示。
本系統主要完成遠程控制家用電器和自動報警兩個功能, 下面我們簡要介紹一下系統的工作過程:
當用戶通過遠方任何一部電話撥打家中的電話時,系統檢測到電話線上出現的振鈴信號并開始計數。如果五次振鈴無人接聽, 主控制器則發出摘機信號, 實現模擬摘機,并播放語音提示。用戶根據語音提示輸入密碼,DTMF 電路將接收到的DTMF 信號進行解碼,并將解碼后的數字信號送入CPU 驗證密碼是否正確, 三次輸入密碼錯誤則系統自動掛機。如果密碼正確,則進一步提示用戶輸入控制命令,這時用戶可以通過按鍵或者直接用口令對家用電器進行控制。
如果采用口令來控制,則口令經電話線,以及電話接口的語音通道進入,SPCE061A 單片機則將采集到的話音與預先存儲的模板進行比較,進行語音識別并判斷出用戶的指令,然后發送相應的控制信號。控制信號被送入電力線調制解調器調制后,通過電力線接口電路耦合到電力線上進行傳輸,控制信息也就以廣播形式發送出去。
由電力線傳送的被調制信號由分控制器系統的電力線接口電路接收并被送入ST7537 進行解調,解調后的信號被送入分控制器。每個分控制器都有自己的固定地址,分控器讀取解碼后的地址信息,并判斷與自己的固有地址是否一致,若一致則接收數據信息并執行相應的操作,從而實現了對相應家電的控制。操作完成后,分控制器向主控制器發回確認信息,再由主控制器控制語音提示電路發出操作完成或失敗的語音提示,通知電話遙控者。
如果采用按鍵控制,用戶發出的按鍵信號(DTMF)經解碼后送入CPU,CPU 接收到信號后從中分析出地址信息和控制信息并發出控制信號。控制信號經ST7537 調制后通過電力線傳輸到分控制器,由分控制器執行相應的操作。
當傳感器檢測到警情時, 就會發出報警信號, 分控制器接收到報警信號, 則將報警信號耦合到電力線上。
中心控制器接收到報警信號后則自動撥打用戶預先設置的電話號碼, 電話接通后延遲兩秒, 系統自動播放語音報警信息。
3 SPCE061A 芯片特性簡介
SPCE061A 是一款基于μ ‘nSP 內核的16 位單片機,其芯片特性如下:
1.工作電壓:內核工作電壓VDD 為3.0-3.6V(CPU),I/O 口工作電壓VDDH 為2.4~5.5V(I/O);2. CPU 時鐘:0.32MHz~49.152MHz;3. 內置 2K 字SRAM 和32K 閃存ROM;4. 系統處于備用狀態下(時鐘處于停止狀態),耗電小于2 μ A@3.6V;5 。 具備觸鍵喚醒的功能;6 。 3 2 位通用可編程輸入/ 輸出端口;7 。 2 個1 6 位可編程定時器/ 計數器( 可自動預置初始計數值) ;8. 7 通道10 位電壓模- 數轉換器(ADC)和單通道聲音模- 數轉換器;9. 2 個10 位DAC(數- 模轉換)輸出通道;10.14 個中斷源可來自定時器A/B,時基,2 個外部時鐘源輸入, 鍵喚醒;1 1. 具備串行設備接口;12. 低電壓復位(LVR)功能和低電壓監測(LVD)功能;13. 內置在線仿真(ICE,In-Circuit Emulator)接口。
SPCE061A 的內部結構框圖如圖2 所示。
4 語音識別技術簡介
語音識別技術就是一種讓機器通過識別和理解過程把語音信號轉變成相應的文本或命令的技術。機器對語音進行識別、處理的過程與人對語音進行識別、處理的過程基本上是一致的。目前主流的語音識別技術是基于統計模式識別的基本理論。一個完整的語音識別系統可大致分為語音特征提取、聲學模型與模式匹配(識別算法)和語義理解三部分。其基本原理如下圖所示。
從圖中我們可以看出語音識別一般分為兩個步驟:
第一步是系統“學習”或“訓練”階段,這一個階段的任務是建立識別基本單元的聲學模型以及進行文法分析的語言模型, 即構建參考模式庫。第二步是“識別”或“測試”階段,根據識別系統的類型選擇能夠滿足要求的識別方法,采用語音分析方法分析出這種識別方法所要求的語音特征參數,按照一定的準則和測度與參考模式庫中的模型進行比較, 通過判決得出結果。
在本應用中,語音識別技術方面采用凌陽SPCE061A作為關鍵器件,同時凌陽公司提供bsrv222SDL.lib 庫函數支持,在使用時通過調用庫函數里相關的API 函數來實現所要求的功能。
5 主要硬件模塊設計
下面主要對主控制器和語音提示電路作介紹。
5.1 主控制器
系統主控制器主要由MIC 輸入模塊、控制模塊、存儲模塊、功放和喇叭輸出模塊四部分組成,其結構如下。
(1) 控制單元與語音識別:由SPCE061A 單片機完成。
(2) MIC 輸入模塊:SPCE061A 的A/D 轉換器有8個通道,其中有一個通道是MIC_IN 輸入,專門對語音信號進行采樣。選用駐極體話筒,其偏壓由SPCE061A 的VMIC 腳提供。該模塊電路比較簡單,只需外接三個電阻和電容對電流信號進行濾波就可以了。
(3) 功放和喇叭輸出模塊:SPCE061A 提供雙通道10 位的D/A 輸出AUD1、AUD2,每個通道的輸出能力是30mA。為了能驅動揚聲器放音,我們將輸出電路設計為由負載電阻和三極管8050 組成的功放電路。
(4) 存儲模塊:由于芯片內置的存儲空間有限,為了運行復雜的識別程序,必須通過擴展必要的存儲芯片來完成系統的功能。在本系統中我們采用SPBA01B 和W29C040 來對SPCE061A 進行Memory 擴展。
5.2 語音提示單元
本系統主要由語音識別電路和語音提示電路來完成人機交互,其中語音提示電路的電路原理圖如圖4 所示。
圖4 語音提示電路
數碼語音芯片選用的是單片語音錄放集成電路ISD25120,它具有抗斷電、音質好、使用方便、無需專用的開發系統等優點。錄音時間為120s,能重復錄放達10 萬次。芯片采用多電平直接模擬量存儲專利技術,省去了A/D、D/A 轉換器。每個采樣值直接存儲在片內單個存儲單元中, 因此能夠非常真實、自然地再現語音、音樂、音調和效果聲。
SPCE061A的IOA11~IOA15 與ISD25120 的地址線相連,用以設置語音段的起始地址。IOB11 和IOB13 用以控制錄放音狀態。IOB12 連接一按鍵,供錄放音測試時使用。ANA IN 與ANA OUT 是模擬信號的輸入端和輸出端,它們之間連接耦合電容,通常取值為0.22~1uF。
語音信號由SP+ 和SP- 端經耦合器耦合到電話線或由揚聲器直接播放。錄音時,單片機通過口線設置語音段的起始地址,再使端PD 端和P/ R 端和CE 為低電平啟動錄音。結束時,單片機又讓CE 端回到高電平,即完成一段語音的錄制。放音時,根據需要播放的語音內容,找到相應的語音段起始地址,并通過口線送出。再將P/ R端設為高電平, PD 端設為低電平,并讓CE 端產生一負脈沖啟動放音,這時單片機只需等待ISD25120 的信息結束信號,即低電平EOM 的產生。結束信號為一負脈沖,在負脈沖的上升沿, 標志著該段語音播放結束。
6 軟件設計
6.1 系統軟件結構
軟件的設計不僅要考慮到各個模塊實現的功能,而且要對整個系統進行有效的管理和協調。在此基礎之上,才能夠從整個系統的角度全面完善地實現系統所需要的各項功能。本系統的軟件主要包括一個主程序和四個子程序, 其總體結構如下圖所示。
主程序主要負責對整個控制器的工作進行管理、協調和對子程序的調用以及對用戶的各種服務的響應。
四個子程序分別是語音識別、DTMF 收發、語音錄放、信號音檢測四個子程序。限于篇幅,下面只對語音識別子程序的軟件設計進行介紹。
6.2 語音識別子程序設計
語音識別程序設計包括三部分: 訓練樣本; 識別; 語音提示。
訓練過程即提取語音樣本的特征參數過程主要調用庫函數BSR_Train 完成。為了防止誤命令,每條語音命令訓練2 遍,只有2 次命令相同時才成功,BSR_Train函數有8 種可能的返回值, 如: 0 - 訓練成功; - 1 - 沒有語音識別技術方面有bsrv222SDL.lib 庫函數支持,在使用時通過調用庫函數里相關的API 函數來實現所要求的功能。下面給出語音識別的流程圖及具體代碼。
圖7 語音識別流程圖
其中,BSR-GetResult 函數為啟動辯識,當無命令識別出來時,返回0;識別器停止、未初始化或識別未激活返回-1 ;當識別不合格時返回-2 ;當識別出來時返回命令的序號。部分程序源代碼如下:
7 結語
本系統主要有以下性能特點:實現了語音控制家用電器的啟動和關閉;實現雙向的功能:能夠遠距離控制家用電器,又能快速及時地傳送報警信息;設計簡單,系統組織靈活,控制范圍可大可小,利用已有電力線和電話布置設施成本低,且不受供電范圍和距離的限制;使用單片機實現語音識別控制功能,提高了系統的性價比。隨著經濟的發展,人們對物質文化需求的日益增長,智能家居系統必將受到人們的青睞,相信這種功能強大的單片機系統會有廣闊的應用和發展前景。
評論
查看更多