張海靜,侯建軍,霍娟娟
(北京交通大學 電子信息工程學院,北京100044)
地理教學離不開地球儀,傳統地球儀只能借助外力實現一維轉動,配合教師傳授地理知識,缺乏令人耳目一新的效果,不能積極調動學生對地理課的學習興趣。為了改善地理教學的枯燥,增強其趣味性,在教學過程中需要借助先進的教學模具,從而激發學生的學習興趣,保證教學質量。而功能強大的智能地球儀可以在無任何支撐及觸點電的空中自轉,如磁懸浮地球儀是一種可以利用無線發聲及先進隱形碼光學識別技術來實現語音控制轉動的智能語音地球儀[1]。這些地球儀結構設計復雜,成本高昂。
本文采用低成本模塊化設計,使用單片機控制模塊、語音識別模塊及云臺轉動模塊,設計了一款能將用戶的聲控命令轉化為國家地理位置的智能地球儀。該地球儀能智能識別任意用戶說出的國家名稱,驅動云臺轉動使目標國家正對著用戶,點亮代表該國首都的彩色LED指示燈,并且語音播放該國的詳細介紹,包括人口、面積、現任領導人、地理、歷史、氣候、資源等。與其他智能地球儀相比,該智能地球儀易于操作、趣味性強,能充分激發學生的好奇心和求知欲。同時設計簡單、成本低廉,更適合在各學校普及使用。
智能語音地球儀硬件系統如圖1所示,主要由雙自由度云臺模塊、語音識別播放模塊、單片機控制單元和外圍控制電路組成;軟件系統包括系統控制主程序和語音識別播放程序。

圖1 硬件框圖
AT89S52是由Atmel公司設計制造的一種低功耗、高性能的8位單片機[2],作為智能地球儀的主控制器,P1口用來接收語音識別結果控制云臺的轉動,P2和P3口用來控制外圍的一些電路,主要包括復位電路、LED燈的點亮電路等。
語音芯片LD3320芯片是一款基于非特定人語音識別技術的聲控芯片,可以實現語音識別及MP3播放功能[3]。為了能使芯片正常工作,共有42個引腳需要配置,而單獨使用AT89S52單片機無法直接完成對該芯片的配置。雖然采用擴展I/O口的做法也能實現,但是為了使整個系統更加穩定可靠地工作,本文選用單片機STC10L08XE作為系統的協MCU來完成對LD3320語音模塊的控制。
雙自由度云臺有4個控制轉動方向的端口,分別是水平左轉、水平右轉、上升、下降,需要24 V的交流電來驅動,而語音識別結果的二進制序列經過解碼后由單片機AT89S52的I/O口輸出,其端口電平是0~5 V的直流。為了能使單片機根據語音識別結果驅動云臺轉動,在AT89S52和云臺之間放置一個電流放大器件ULN2003。ULN2003是大電流、高耐壓達林頓陣列,包括7個達林頓管,在5 V的工作電壓下,能夠與 TTL和CMOS電路直接相連,這樣就可以直接處理原來需要標準邏輯緩沖器來處理的數據[4]。將控制云臺轉動方向的4個端口D_Right、D_Left、D_Up、D_Down 分 別 與 繼 電 器 K1、K2、K3、K4相連,單片機AT89S52根據解碼后的語音識別結果控制繼電器的斷開和閉合,從而控制云臺轉動的方向和角度。云臺轉動電路圖如圖2所示。

語音識別播放電路主要由語音芯片LD3320、STC10L08XE單片機及其他外圍電路構成。語音芯片LD3320內部固化有完整的非特定人語音識別特征庫和高效的非特定人語音識別搜索引擎模塊,不需要事先訓練和錄音。只需要單片機把候選識別語句的拼音串傳入芯片內部,通過芯片內部的DSP算法,找出最佳識別結果。同時此芯片還支持MP3播放功能,此時需要外接Flash芯片,用來存儲播放的聲音素材等數據。STC10L08XE單片機讀取串行存儲芯片的MP3數據,依次送入LD3320芯片內部就可以從芯片的相應引腳輸出聲音[3]。STC10L08XE單片機與語音芯片LD3320之間采用并行的通信方式,故在硬件上需要使用8根數據線和4個控制信號將語音芯片與單片機并行連接。
2.4.1 復位電路
為了保證智能地球儀在每次上電啟動或復位操作后具有唯一確定的位置,故需要為其設定起始轉動位置。當云臺轉到初始位置時,就給單片機AT89S52發送一個判斷信號,表示復位完成,可以開始語音識別。本設計中利用光電開關完成這一信號的給定。光電開關利用被檢測物體對光束的遮擋或反射檢測物體的有無,一般包括發射部分和接收部分。發射部分由發光管輻射出光脈沖,接收部分為光敏三極管。當沒有物體遮住時,光敏三極管導通,電阻極小;當有物體遮住時,電阻極大[5]。系統設計中在云臺平臺側面設置擋板,初始位置固定光電開關,當云臺轉至初始位置時,擋板會正好停在光電開關中央,使光電開關處于截止狀態,此時會給單片機一個信號(低電平 0),此信號接在 AT89S52單片機P3_7引腳。光電開關示意圖如圖3所示。

地球儀轉動至目標國家時,點亮目標國家首都位置的彩色LED指示燈以增強智能地球儀的演示效果。系統設計中選用LED彩燈和譯碼器完成由單片機AT89S52控制的彩色LED燈點亮電路。單片機AT89S52接收語音識別結果二進制序列并作為譯碼電路輸入,輸出則與代表目標國家首都的LED彩燈相連。譯碼電路示意圖如圖4所示。

軟件主要由系統控制主程序和語音識別播放程序組成。編程時著重考慮了以下幾個方面:正確地初始化語音識別播放程序;正確地分析、判斷、處理識別結果;精確地控制云臺轉動。
AT89S52單片機接收語音識別結果,并根據識別結果控制云臺的轉動。程序中通過標志位g(AT89S52單片機P3_7腳的信號)來判斷云臺是否處于初始位置,通過對繼電器通電時間的控制來完成對云臺轉動角度的控制。系統控制流程圖如圖5所示。

圖5 系統控制流程圖
每個國家都對應著繼電器的閉合時間,控制云臺轉動的角度能使智能地球儀準確轉動,從而使目標國家正對用戶。設定地球儀上經度和緯度為0的位置是初始位置,任一國家首都所在經度為 L,緯度為W,從初始位置轉動到任一國家首都所在位置需要的水平時間為TH(單位為 s),垂直時間為 TV(單位為 s,符號代表方向),測量得出云臺水平轉動 360°需 105 s,垂直轉動 60°需要18 s。根據下式可以計算得出從初始位置轉到任一國家首都位置需要的時間。

式中,E表示東經,W表示西經,+表示北緯,-表示南緯。
由于語音識別和MP3播放會使用LD3320芯片的一些公共資源,為了使芯片穩定地工作,軟件設計在功能切換的時候,必須從“通用初始化”開始,對芯片進行一系列的設置,避免產生沖突。為了提高識別精度,可以修改語音芯片寄存器35的值,值越大識別啟動就越敏感,但是會帶來更多誤識別,識別的正確率降低。為了保證識別靈敏度的同時兼顧正確率,系統將寄存器35的值設置為40H。語音識別播放流程圖如圖6所示。

圖6 語音識別播放流程圖
在系統設計中為了提高語音采集的質量,避免誤識別,硬件方面采用高精度的麥克實現語音命令采集,并增加按鍵開關以確認有效的語音識別結果。該系統已經實現了對48個國家的智能語音控制功能用以效果演示,在此基礎上很容易擴展實現對更多國家的語音控制。同時還可以增加液晶顯示模塊,更加生動形象地顯示目標國家的圖片和文字。
系統穩定正常的工作具有非常重要的意義。智能地球儀在上電后,讓其連續不斷地工作48 h,期間隨時對其發出語音命令,測試能否正確識別。同時檢測是否會出現程序跑飛的現象,導致死機。經測試該系統運行穩定可靠,在長時間運行過程中未發生死機或程序跑飛等異常情況。
總地來說,該智能地球儀系統設計思路巧妙,利用一些簡單的芯片和元器件實現了相對復雜的功能。用戶可以通過聲音命令對地球儀進行控制,系統根據語音識別結果來精確計算地球儀轉動的角度,點亮目標國家的LED燈,增強整個系統的演示效果。實際應用表明,該智能地球儀能夠廣泛應用于地理、歷史等學科教學和科學素養拓展教育,滿足學校教學多元化和個性化需求,促進教師教學觀念、手段和方法的更新,激發學生的學習興趣,促進學習方式的變革。
[1]劉幺和,宋庭新.語音識別與控制應用技術[M].北京:科學出版社,2008.
[2]孫育才,王榮興,孫華芳.ATME新型AT89S52系列單片機及其應用[M].北京:清華大學出版社,2006.
[3]用聲音去溝通VUI Voice User Inter.LD3320開發手冊[EB/OL].[2011-8-26].http://www.icroute.com/.
[4]友達電子.ULN2003[EB/OL].[2011-7-20].http://wenku.baidu.com/view/04568009763231126edb119c.html.
[5]維庫電子市場.光電開關原理及應用[EB/OL].[2011-7-20].http://www.dzsc.com/data/html/2007-4-18/12659.html.