薛輝,劉愛軍
(商洛學院數學與計算機應用學院,陜西商洛726000)
基于訊飛語音控制的空調系統設計
薛輝,劉愛軍
(商洛學院數學與計算機應用學院,陜西商洛726000)
為了通過語音控制空調工作,針對帶WiFi功能的空調和傳統的不帶WiFi功能的空調分別設計了兩種不同的控制方案,應用訊飛語音識別與合成技術實現對空調的控制。研究了語音控制的關鍵技術,包括語音技術的選取、語音識別的流程、BNF語法的編寫、語音識別結果檢測以及語音合成的流程等,設計了手機APP并對手機APP進行了測試,結果表明,在低噪音環境下語音識別準確率能夠達到90%以上,在中等噪音環境下語音識別準確率能夠達到80%以上,識別準確率較高。
訊飛;語音;識別;控制;空調
隨著信息技術和物聯網技術的發展,許多智能家電逐漸步入了人類生活。如今,市面上已經出現了多款帶WiFi功能的空調,用戶可以通過手機APP控制空調的運轉,比傳統的遙控器控制更加靈活方便。語音是人類最常用的交流方式之一,如果能給手機APP加上語音控制功能,就能增強空調的智能特性,更加方便用戶使用,給用戶帶來更加奇妙和舒適的用戶體驗[1]。同時,大量已經存在的傳統空調沒有WiFi功能,能不能把傳統空調升級成為智能空調并通過語音控制他們呢[2]?由于在人機交互上使用語音可以極大的方便人們操作[3],所以許多公司都在語音技術上投入了巨大的人力和財力進行研究與開發[4],比如谷歌、微軟、IBM、百度、科大訊飛等。科大訊飛的語音技術達到了世界領先的高度,提供完善的語音識別、語音合成、聲紋識別等技術[5-6],已經有很多應用采用訊飛語音技術[7],并取得了良好的效果[8]。本文針對帶WiFi功能的空調和傳統空調分別設計了兩種不同的控制方案,并應用訊飛語音識別與合成技術實現對空調的語音控制。
為了實現通過語音對空調進行控制,針對市面上帶WiFi功能的空調和傳統的不帶WiFi功能的空調分別設計了兩種不同的方案,可以在不改變原有空調硬件系統的情況下通過語音對空調進行控制。
1.1 帶WiFi功能空調的語音控制方案
市面上帶WiFi功能的空調的體系結構如圖1所示,給空調增加WiFi模塊,通過WiFi模塊連接無線路由器,經無線路由器和手機進行通信,并在手機上定制APP客戶端,這樣,用戶就可以使用手機上的APP軟件對空調進行控制。
要在圖1所示的體系結構上增加語音控制功能,無須修改該體系結構,也無須做硬件上的變動,只需給手機的APP軟件增加語音識別和語音響應功能即可,利用手機上的語音輸入和聲音播放部件就能完成語音控制功能。

圖1 帶WiFi功能的空調的體系結構
1.2 不帶WiFi功能的空調的升級方案
傳統的不帶WiFi功能的空調的升級方案如圖2所示,無需對空調做任何改動,只需增加一個帶WiFi功能的紅外控制器(圖2中虛框所示),通過WiFi網絡與手機相連,然后給手機上定制帶語音控制功能的APP,借助手機上的語音輸入和聲音播放部件實現對空調的語音控制[9]。
紅外控制器由中央控制芯片、WiFi模塊、紅外模塊、按鍵和LED燈組成,用來把無線網絡信號轉換成紅外發射信號,控制空調的運轉。
1)中央控制芯片采用CC2530,CC2530集成了8051微控制器,運算速度比8051快,還帶有可編程閃存,使用方便。
2)WiFi模塊采用HLK-RM04,通過串口與CC2530連接,可以通過AT指令配置它的工作方式、IP地址和端口號等,使之連接上WiFi網絡[10]。
3)紅外模塊采用學習型紅外發射模塊IR-U64/448,它可以學習紅外信號并按指令進行發射,分為學習模式和發射模式兩種不同的工作模式,在學習模式可以學習空調遙控器各按鍵對應的紅外碼并存儲起來,在發射模式可以按指令發射相應的紅外碼,從而控制空調工作。
4)按鍵可以指令紅外模塊發射紅外信號,控制空調工作,相當于空調的遙控器,方便系統調試[11]。LED燈用來指示系統的工作狀態。

圖2 不帶WiFi功能的空調的升級方案
1.3 手機與WiFi模塊的通信
手機與WiFi模塊通過無線路由器相連,處于同一個局域網內。為了便于定位WiFi模塊,需給WiFi模塊設置固定的IP地址并設定專用的端口號形成套接字,并在手機端進行匹配。在通信協議的選擇上,選用UDP協議。因為TCP協議是基于連接、基于流傳輸的協議,UDP是無連接、基于消息傳輸的協議,傳輸速度快,而語音控制信息具有數據量小、信息較短的特點,所以選用UDP協議比較合適。
對于以上兩種方案,可以采用類似的手機APP。本系統設計的手機APP基于Android平臺進行開發,在Android平臺,要實現socket數據通信,需使用DatagramPacket和DatagramSocket兩個類,DatagramPacket用來存放通信數據,DatagramSocket用來在兩個端點之間使用UDP協議發送數據報。
2.1 語音技術的選取
通過語音控制空調工作時,用戶通過語音把控制命令輸入手機,手機APP進行語音識別后轉換成控制信號,通過無線網絡把控制信號傳遞給WiFi模塊控制空調工作。同時手機通過語音合成生成反饋語音,提示用戶空調工作方式已改變。所以,本系統需要語音識別與語音合成技術。
訊飛語音技術提供語音識別、語音合成、語音評測、聲紋識別等功能,其中語音識別又分為語音聽寫、命令詞識別和語義理解三種。語音聽寫是將用戶說出的語音轉換成文字,可以識別詞語、句子、語氣以及斷句等;命令詞識別是通過關鍵詞判斷用戶下達的命令,從而完成相應的工作;語義理解是分析用戶語音或文字包含的信息以及需要獲得的信息,給出相應的反饋。對于通過語音控制空調來說,主要是告訴空調工作的模式以及工作的溫度等,所以語音識別采用命令詞識別技術比較合適。語音識別完成之后需要通過語音合成技術合成語音。訊飛語音技術的命令詞識別與語音合成都包括云端合成和本地合成兩種,為了提供快速的反饋,本系統均采用本地合成。
2.2 語音識別技術的應用
2.2.1 語音識別的流程
要使用訊飛語音技術開發手機語音識別系統,先要將SDK中libs目錄下的Msc.jar文件和armeabi文件夾復制到Android工程的libs目錄中,然后在AndroidManifest.xml文件中添加需要的權限[12]。命令詞識別的具體流程如下:
1)創建語音配置對象:要使用命令詞識別技術,需要創建SpeechRecognizer對象[13],并設置SpeechRecognizer對象的引擎類型為本地。
2)構建語法:構建以命令詞為關鍵詞的BNF語法,構建的語法要覆蓋人們通常的說法種類,并要有合理的結構,以提高識別的準確率。
3)語音輸入:用戶通過手機把控制語音輸入系統,可以只說關鍵詞,比如“制冷”“制熱”,也可以說部分的或者完整的句子。
4)語音識別:基于構建的語法對用戶所說的信息進行匹配,從而識別出用戶所說的句子,里面含有控制空調的關鍵詞。
5)結果檢測:檢測識別的結果,分離出關鍵詞,從而確定用戶所發出的控制信息。
6)發送信息:把控制信息通過無線網絡傳遞給WiFi模塊,并通過CC2530控制紅外模塊發出紅外信號,從而控制空調工作。
2.2.2 BNF語法編寫
訊飛離線命令詞識別技術使用巴科斯范式(BNF)描述語音識別的語法,語法編寫的好壞直接關系到識別的準確率。對于控制命令,編寫BNF語法時有兩種方法。第一種是只編寫關鍵的控制詞語,用戶說話時嚴格按照控制詞語來說,比如控制空調開關,只編寫“打開”和“關閉”,不編寫前后無關的詞語。這種方法的優點是語法編寫簡單、識別準確,缺點是用戶使用時不方便,必須按照既定的命令去說,也不能帶有無關的話語。第二種是模擬人通常的說法,既編寫關鍵的控制詞語,也編寫前后無關的詞語,并盡量覆蓋各種說法。這種方法編寫起來比較復雜,識別的準確率也不如第一種,但用戶使用時比較方便,可以隨心所欲的按各種說法說。為了方便用戶使用,本系統采用第二種方法編寫,力求覆蓋盡可能多的說法。使用該種方法識別的準確率雖然稍低,但識別結果分離開后,無關的詞語識別是否準確并不影響控制信息,只要關鍵詞語識別準確即可,最終的準確率并不比第一種方法低多少,所以本系統采用第二種方法進行編寫。本系統編寫的BNF語法如下:


該語法文件覆蓋了常用的各種說法,可以控制空調開關、轉換模式、調整溫度等,溫度支持20℃~39℃,滿足日常生活使用。用戶使用時既可以說“空調開”“二十六度”等簡短的命令,也可以說“把空調調到制冷模式”等比較完整的句子,使用非常方便。
2.2.3 語音識別結果檢測
訊飛語音識別技術可以使用JSON格式或XML格式返回語音識別結果。JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,易于機器解析和生成,也便于人閱讀和編寫。為了方便對語音識別的結果進行檢測,本系統采用JSON格式。
檢測識別結果時,先要檢測用戶是控制空調開關,還是轉換空調工作模式,或者是設置空調溫度。語音識別模塊返回JSON格式文本后,通過循環檢測ws里的每一個對象,如果有slot值為<switch>的對象,即說明用戶在控制空調開關,此時,該對象的cw里第零個元素的id值如果為101,就是開空調,如果為102,就是關空調;如果有slot值為<state>的對象,即說明用戶在轉換空調工作模式,此時,該對象的cw里第零個元素的w值即用戶指定的工作模式;如果有slot值為<ten>的對象,即說明用戶在設置空調溫度,此時,還需要檢測slot值為<single>的對象,將兩個對象的cw里第零個元素的id值組合起來即可得到用戶所說的數值。
2.3 語音合成技術的應用
手機APP識別出用戶的控制命令并發送信息后,需要合成語音給用戶形成反饋[14],比如制冷后需要反饋“空調已調為制冷模式”,這就需要使用到語音合成技術。語音合成的流程如下:
1)創建語音合成引擎:要使用語音合成技術,先要創建SpeechSynthesizer對象,使用SpeechSynthesizer對象完成語音合成功能。
2)設置參數:使用本地引擎合成語音,需要將引擎類型設置為本地,并設置本地語音發言人,不同發言人的音色不同,還需要設置本地合成資源路徑等,這需要通過SpeechSynthesizer對象的setParameter方法完成。
3)讀取合成語音文本:對于每一個控制命令,預定一個對應的反饋文本,并存儲在數據庫里,在語音合成時讀取對應的文本,準備合成。
4)開始合成:使用SpeechSynthesizer對象的startSpeaking方法開始合成語音。
5)監聽命令:監聽用戶的命令,比如暫停播放、繼續播放等,接收到用戶命令時按要求執行。
對于本系統而言,語音識別的正確率高低是系統能否正常運行的關鍵,因此對語音識別的正確率進行了測試。考慮到不同類型的控制命令識別的正確率存在差異性,本研究對電源管理類命令、工作模式轉換類命令和溫度控制類命令分別進行了測試。同時,在不同的噪音環境下,識別的正確率也會有差異,因此本研究把系統的語音識別功能在安靜的臥室(低噪音環境)和開著電視的客廳(中等噪音環境)也分別進行了測試,結果如表1所示。由表1可見,語音識別的正確率是比較高的,如果識別錯誤,用戶重新說一下即可。因此,本系統可以達到實用的程度。

表1 語音識別結果正確率
空調是人們生活中常用的家用電器之一,應用語音技術可以給用戶帶來更加優良的交互體驗。本文設計了兩種不同的空調語音控制方案,一種針對帶WiFi功能的空調,另一種針對傳統的不帶WiFi功能的空調,均在不改變原有空調系統的前提下,通過手機對空調進行語音控制,并應用訊飛語音技術實現對語音的識別與合成,選取了適當的語音處理技術、設計了語音識別的流程、編寫了合理的BNF語法,并對語音識別的正確率進行了測試。測試結果表明,語音識別正確率較高,能夠達到實用的程度。語音交互比按鍵、觸摸屏等交互方式要方便很多[15-16],在更多的地方應用語音交互技術,可以使人們的生活更加美好。
[1]韋銀,王杰輝.基于語音識別模塊的家庭交互系統設計[J].福建電腦,2016,32(12):22-23.
[2]曹璇,劉訪.基于語音識別的家居空調控制系統設計[J].家電科技,2013(7):62-63.
[3]陳松.基于Android平臺的家居遠程語音控制系統研究[J].赤峰學院學報(自然科學版),2016,32(21):25-26.
[4]崔悅,宋齊軍.智能語音技術發展趨勢及電信運營商應用淺析[J].郵電設計技術,2016(12):2,6-11.
[5]黃賢立,羅冬梅.基于訊飛語音技術的智能家居控制APP設計[J].福建電腦,2016,32(8):112,145.
[6]李亞文.基于LPG的語音信號特征參數提取算法研究[J].商洛學院學報,2015,29(4):25-28.
[7]張慶芳.基于語音識別的燈光控制系統[J].輕工科技,2016(11):73-74.
[8]劉方洲,馬騰.基于科大訊飛MSP的粵語自助學習系統的設計[J].計算機光盤軟件與應用,2013(3):175-176.
[9]劉芳.基于DSP的家居空調語音識別控制系統的設計實現[J].電子世界,2014(14):159-160.
[10]張紅英.Wi-Fi語音模塊在智能家電領域中的應用[J].家電科技,2014(4):28.
[11]楊麗英.基于SPCE061A的燈光電器語音控制實現[J].山東工業技術,2016(21):156.
[12]李慧.基于訊飛語音的安卓手機應用開發步驟的研究[J].無線互聯科技,2015(14):123-124.
[13]王海洋,郭星.基于語音識別的智慧旅游系統研究[J].計算機技術與發展,2015(5):143-147.
[14]王貴.基于Android的語音助理軟件的分析與設計[J].電子世界,2016(20):37-38.
[15]曾祥義,張云偉,陳嶺,等.基于Android和Arduino的語音控制小車設計[J].微處理機,2016,37(5):56-59.
[16]易圓皓.基于MatlabGUI語音識別推箱子的設計[J].電子設計工程,2016,24(15):60-63.
(責任編輯:李堆淑)
Design of Air Conditioning System Based on Iflytek Speech Control
XUE Hui,LIU Ai-jun
(School of Mathematics and Computer Application,Shangluo University,Shangluo 726000,Shaanxi)
Two different controlling projects of the air conditioner with WiFi function and the traditional air conditioner without WiFi function are designed to control air conditioner via speech.Key technologies of speech controlling are proposed based on the application of Iflytek's speech recognition and synthetic techniques.The key technologies include the selection of speech technologies,the speech recognition process,the preparation of BNF grammar,the detection of speech recognition results,and the speech synthesis process.One mobile phone APP is designed and tested.The results showed that the speech recognition accuracy rate can reach more than 90%in low noise environment,and more than 80%in medium noise environment.The recognition accuracy rate is relatively high.
Iflytek;speech;recognition;control;air conditioner
TN912.34
:A
:1674-0033(2017)04-0015-05
10.13440/j.slxy.1674-0033.2017.04.004
2017-05-20
薛輝,男,陜西商州人,碩士,工程師