杜丹,陳世鴻,楊靖
(貴州大學,貴州 貴陽 550025)
現(xiàn)如今,對于語音識別的研究可以說是成果豐碩,對于提高識別精度,識別效率人們更多傾向于算法的實現(xiàn),把語音識別技術運用到各種設備上也是對語音識別的挑戰(zhàn)。語音識別技術經歷了幾十年的發(fā)展歷程,芯片制作技術的成熟,各種相關算法也在完善,語音識別產品也逐漸走進生產生活的各方面[1-6]。本設計從語音識別的實用性出發(fā),分析語音識別在智能家居方面的用途,結合紅外無線通信,設計一款利用基于語音識別的開關系統(tǒng),適用于多數場合,例如智能家居,醫(yī)院呼叫系統(tǒng),化工行業(yè)的智能控制系統(tǒng)等等。該系統(tǒng)對成本要求不高且操作簡單[7-10]。
本系統(tǒng)是基于語音識別的智能開關控制系統(tǒng),就是通過語音識別,輸出開關量。在開始識別之前,需要通過程序向語音識別模塊寫入關鍵詞。當對著麥克風說話,語音識別模塊便根據說話的內容進行頻譜分析,提取關鍵特征。說話的內容與輸入的關鍵詞通過算法匹配是否一致,如果一致,則在語音識別器中產生識別結果,反之就會進行復位等待下一次識別。獲取到的識別結果會發(fā)送到主控單片機中,單片機根據識別結果利用本身自帶的Ι/O可輸出開關量,紅外發(fā)射電路與語音端單片機相連,作為搭建通信的橋梁。當語音識別成功以后,單片機輸出相應的控制指令,該指令為二進制碼,單片機對它進行編碼、調制后加載到固定頻率為38 kHz載波上,使之成為一系列脈沖串信號,然后通過紅外發(fā)射二極管發(fā)送到開關控制板。開關控制板接收到紅外信號并進行解碼,然后單片機輸出開關量就可以控制LED發(fā)光二極管亮滅,驅動步進電機的正轉反轉。圖1是系統(tǒng)框圖。
圖1 系統(tǒng)框圖Fig.1 System block diagram
目前國內主流的專門用來進行語音識別的芯片有三種,分別是上海ΙCRoute公司推出的LD332X系列語音識別芯片,北京凌陽科技的SPCE061A和深圳科大訊飛的XFS5152CE,在權衡上面三種芯片的幾種條件之后,本文選用性價比較高的LD3320芯片進行開發(fā)[11-14]。表1是主流專用芯片對比。
表1 主流專用芯片對比Table 1 Mainstream dedicated chip comparison
目前常用的無線通信方式主要有WΙFΙ,藍牙以及紅外通信,通過比較,紅外通信多用于室內,無需過遠距離通信,不受手機電腦等電磁信號的干擾。因此選用價格低、功耗小、更輕量化的紅外通信作為無線傳輸。
2.3.1 語音識別模塊硬件設計
圖2 LD3320硬件原理圖Fig.2 LD3320 hardware schematic diagram
LD3320是一塊基于非特定人,采用ASR識別技術的中文普通話識別芯片,還可通過寫入特殊拼音串識別方言和英文等的芯片[15-17]。語音識別模塊芯片為3.3V電壓供電,48號引腳ΙNTB為中斷信號口,與語音板單片機P3.2連接進入外部中斷;45號引腳RDB為讀信號口,與語音板單片機P3.7連接,控制語音芯片發(fā)出數據;43號引腳CSB為片選信號口,與語音板單片機P2.1連接,為低電平時說明使用的是并行方式進行數據交換;LD3320的P0到P7引腳與語音板單片機的P0.0到P0.7連接,作為地址和數據總線;47號引腳RSTB為芯片復位口,與語音板單片機P3.5連接,當該引腳為低電平是LD3320啟動復位;44號引腳A0是地址或數據選擇位,與語音板單片機P2.0連接,在WRB有效時,高電平表示P0到P7是地址線,而低電平表示P0到P7是數據線;42號引腳WRB為寫信號口,與語音板單片機P3.6連接,當其為低電平時語音芯片接收信號。引腳MΙCP與MΙCN與麥克風的正負兩端相連,通過這兩端輸入聲音電壓信號。圖2 是LD3320硬件原理圖。
2.3.2 紅外發(fā)射電路設計
紅外發(fā)射電路與語音端單片機相連,作為搭建通信的橋梁。當語音識別成功以后,單片機輸出相應的控制指令,該指令為二進制碼,單片機對它進行編碼、調制后加載到固定頻率為38 kHz載波上,使之成為一系列脈沖串信號,然后通過紅外發(fā)射二極管發(fā)送到開關控制板。
2.3.3 開關控制板設計
開關控制板是整個系統(tǒng)的執(zhí)行機構,接收紅外信號后需要用到單片機進行開關量控制,單片機型號選擇為STC89C52RC,主要的原因是步進電機需要的驅動電流較大,驅動電壓為5~12 V,綜合考慮5 V供電的單片機作為主控芯片,然后進行外圍電路設計。包含紅外接收電路、限位開關電路、晶振和復位電路的設計。小燈通過限流電阻與單片機Ι/O口直接連接,程序控制Ι/O口高低電平實現(xiàn)開燈與關燈,步進電機通過驅動板ULN2003驅動,實現(xiàn)電機正反轉功能。圖3是開關控制板結構框圖。
圖3 開關控制板結構框圖Fig.3 Block diagram of switch control board
2.4.1 語音板程序設計
主函數作為程序的入口,主要功能是進行單片機初始化,進行定時器、中斷、延時程序等的設置。語音識別初始化程序對LD3320語音芯片進行復位操作,需要對芯片RSTB引腳發(fā)送低電平,然后對片選端CS做拉低拉高的操作,以激活內部的DSP。其次是通用初始化,主要是對LD3320芯片中的讀寫寄存器進行賦初值,該函數為出廠配置,一般不需要更改。最后是語音識別初始化,ASR功能的寄存器賦初值,也不需要修改。識別列表程序主要是添加語音識別關鍵詞,需要在下面二維數組中寫入中文拼音串,只能是小寫的,而且兩個拼音之間必須用空格隔開,LD3320芯片最多可支持50條關鍵詞,當關鍵詞識別匹配成功以后會有一個一維數組對應的識別碼,在該識別碼下可進行語音控制的其他操作。圖4是語音板主程序流程圖。
圖4 語音板主程序流程圖Fig.4 Voice board master program flow chart
2.4.2 紅外發(fā)送子程序設計
為了避免紅外線發(fā)送的數據被空氣中的紅外線或其他紅外設備干擾,需要利用單片機產生38 ΚHz固定頻率的紅外線作為載波信號,把要發(fā)送的二進制數據加到38 kHz載波上,這樣接收端就只能接收該頻率的紅外數據。所以程序一開始要對定時器進行設置,利用一個周期內高低電平的變化次數來得到38 kHz的頻率,需要計算出每隔多長時間進行電平的取反操作[18-20]。紅外發(fā)射程序是在語音識別碼下執(zhí)行,當識別成功以后發(fā)送八位的二進制紅外數據。其流程圖如圖5所示。
圖5 紅外發(fā)送程序流程圖Fig.5 Flow chart of infrared sending program
圖6 開關控制板主程序流程圖Fig.6 Master program flow chart of switch control board
2.4.3 開關控制板程序設計
開關控制板作為開關電路,當接收到語音板的紅外信號以后,會觸發(fā)紅外中斷處理函數,在該中斷中進行數據解碼。當解碼成功以后會有一個返回值,此時程序會進行二次比對,以防接收到的不是語音板發(fā)送過來的紅外數據,只有比對成功以后才進行控制步進電機和LED小燈的操作。這樣,在不同的紅外數據值下,我們只要對想控制的Ι/O口進行賦值或者利用標志位處理。就可以進行相應的開關控制等。圖6是開關控制板主程序流程圖。
通過加入紅外無線收發(fā)模塊進行遠程控制,使開關控制具有可移動性,可實現(xiàn)一端進行語音識別,另一端進行控制。在控制端加了一些控制功能,比如步進電機的正反轉控制,LED小燈的PWM調節(jié)亮度,加入英文語音識別。圖7是系統(tǒng)測試圖。
圖7 系統(tǒng)測試圖Fig.7 System test chart
整個設計的創(chuàng)新之處是在開關控制系統(tǒng)中加入語音識別和紅外無線通信,這種應用在智能家居,醫(yī)院呼叫系統(tǒng),化工行業(yè)的智能控制系中都可以有廣泛的應用,然而這樣一個系統(tǒng)如果要應用到具體黃環(huán)境中,相應的功能還必須加以完善。針對本次設計,由于研究人員水平有限,所以系統(tǒng)還有以下幾點需要完善的地方:
1) 通信距離受限,由于選用紅外無線通信,所以理想通信距離為十米左右,
但實際距離只為3~5 m,對于遠距離傳輸確實有待提高。解決辦法可以考慮使用性能比較好的紅外模塊來提高通信距離,改進措施是可以考慮應用ZigBee無線無線傳感器網絡,這可以作為嘗試,在后續(xù)的研究中來進行推進。
2) 語音識別易受環(huán)境噪音影響,導致識別效果不太穩(wěn)定,該系統(tǒng)目前適用于相對安靜的室內環(huán)境,但是這種環(huán)境要求是苛刻的。所以要提高系統(tǒng)的語音識別模塊部分的抗干擾能力以及識別的精度。
放眼全球,智能化的語音成品已經相當豐富,一股全球語音聲控的熱潮已經洶涌而來。在面臨語音識別率和語音采集等問題上還有一些技術瓶頸,但在技術不斷走向成熟的動力下,把語音技術融入更多領域將是必然趨勢,困擾其應用的準確度和穩(wěn)定性的問題也有望迎刃而解,將會有越來越多的人投身到這一場科技浪潮里。