薛輝,劉愛軍
(商洛學院數(shù)學與計算機應用學院,陜西商洛726000)
基于訊飛語音控制的空調(diào)系統(tǒng)設(shè)計
薛輝,劉愛軍
(商洛學院數(shù)學與計算機應用學院,陜西商洛726000)
為了通過語音控制空調(diào)工作,針對帶WiFi功能的空調(diào)和傳統(tǒng)的不帶WiFi功能的空調(diào)分別設(shè)計了兩種不同的控制方案,應用訊飛語音識別與合成技術(shù)實現(xiàn)對空調(diào)的控制。研究了語音控制的關(guān)鍵技術(shù),包括語音技術(shù)的選取、語音識別的流程、BNF語法的編寫、語音識別結(jié)果檢測以及語音合成的流程等,設(shè)計了手機APP并對手機APP進行了測試,結(jié)果表明,在低噪音環(huán)境下語音識別準確率能夠達到90%以上,在中等噪音環(huán)境下語音識別準確率能夠達到80%以上,識別準確率較高。
訊飛;語音;識別;控制;空調(diào)
隨著信息技術(shù)和物聯(lián)網(wǎng)技術(shù)的發(fā)展,許多智能家電逐漸步入了人類生活。如今,市面上已經(jīng)出現(xiàn)了多款帶WiFi功能的空調(diào),用戶可以通過手機APP控制空調(diào)的運轉(zhuǎn),比傳統(tǒng)的遙控器控制更加靈活方便。語音是人類最常用的交流方式之一,如果能給手機APP加上語音控制功能,就能增強空調(diào)的智能特性,更加方便用戶使用,給用戶帶來更加奇妙和舒適的用戶體驗[1]。同時,大量已經(jīng)存在的傳統(tǒng)空調(diào)沒有WiFi功能,能不能把傳統(tǒng)空調(diào)升級成為智能空調(diào)并通過語音控制他們呢[2]?由于在人機交互上使用語音可以極大的方便人們操作[3],所以許多公司都在語音技術(shù)上投入了巨大的人力和財力進行研究與開發(fā)[4],比如谷歌、微軟、IBM、百度、科大訊飛等。科大訊飛的語音技術(shù)達到了世界領(lǐng)先的高度,提供完善的語音識別、語音合成、聲紋識別等技術(shù)[5-6],已經(jīng)有很多應用采用訊飛語音技術(shù)[7],并取得了良好的效果[8]。本文針對帶WiFi功能的空調(diào)和傳統(tǒng)空調(diào)分別設(shè)計了兩種不同的控制方案,并應用訊飛語音識別與合成技術(shù)實現(xiàn)對空調(diào)的語音控制。
為了實現(xiàn)通過語音對空調(diào)進行控制,針對市面上帶WiFi功能的空調(diào)和傳統(tǒng)的不帶WiFi功能的空調(diào)分別設(shè)計了兩種不同的方案,可以在不改變原有空調(diào)硬件系統(tǒng)的情況下通過語音對空調(diào)進行控制。
1.1 帶WiFi功能空調(diào)的語音控制方案
市面上帶WiFi功能的空調(diào)的體系結(jié)構(gòu)如圖1所示,給空調(diào)增加WiFi模塊,通過WiFi模塊連接無線路由器,經(jīng)無線路由器和手機進行通信,并在手機上定制APP客戶端,這樣,用戶就可以使用手機上的APP軟件對空調(diào)進行控制。
要在圖1所示的體系結(jié)構(gòu)上增加語音控制功能,無須修改該體系結(jié)構(gòu),也無須做硬件上的變動,只需給手機的APP軟件增加語音識別和語音響應功能即可,利用手機上的語音輸入和聲音播放部件就能完成語音控制功能。
圖1 帶WiFi功能的空調(diào)的體系結(jié)構(gòu)
1.2 不帶WiFi功能的空調(diào)的升級方案
傳統(tǒng)的不帶WiFi功能的空調(diào)的升級方案如圖2所示,無需對空調(diào)做任何改動,只需增加一個帶WiFi功能的紅外控制器(圖2中虛框所示),通過WiFi網(wǎng)絡(luò)與手機相連,然后給手機上定制帶語音控制功能的APP,借助手機上的語音輸入和聲音播放部件實現(xiàn)對空調(diào)的語音控制[9]。
紅外控制器由中央控制芯片、WiFi模塊、紅外模塊、按鍵和LED燈組成,用來把無線網(wǎng)絡(luò)信號轉(zhuǎn)換成紅外發(fā)射信號,控制空調(diào)的運轉(zhuǎn)。
1)中央控制芯片采用CC2530,CC2530集成了8051微控制器,運算速度比8051快,還帶有可編程閃存,使用方便。
2)WiFi模塊采用HLK-RM04,通過串口與CC2530連接,可以通過AT指令配置它的工作方式、IP地址和端口號等,使之連接上WiFi網(wǎng)絡(luò)[10]。
3)紅外模塊采用學習型紅外發(fā)射模塊IR-U64/448,它可以學習紅外信號并按指令進行發(fā)射,分為學習模式和發(fā)射模式兩種不同的工作模式,在學習模式可以學習空調(diào)遙控器各按鍵對應的紅外碼并存儲起來,在發(fā)射模式可以按指令發(fā)射相應的紅外碼,從而控制空調(diào)工作。
4)按鍵可以指令紅外模塊發(fā)射紅外信號,控制空調(diào)工作,相當于空調(diào)的遙控器,方便系統(tǒng)調(diào)試[11]。LED燈用來指示系統(tǒng)的工作狀態(tài)。
圖2 不帶WiFi功能的空調(diào)的升級方案
1.3 手機與WiFi模塊的通信
手機與WiFi模塊通過無線路由器相連,處于同一個局域網(wǎng)內(nèi)。為了便于定位WiFi模塊,需給WiFi模塊設(shè)置固定的IP地址并設(shè)定專用的端口號形成套接字,并在手機端進行匹配。在通信協(xié)議的選擇上,選用UDP協(xié)議。因為TCP協(xié)議是基于連接、基于流傳輸?shù)膮f(xié)議,UDP是無連接、基于消息傳輸?shù)膮f(xié)議,傳輸速度快,而語音控制信息具有數(shù)據(jù)量小、信息較短的特點,所以選用UDP協(xié)議比較合適。
對于以上兩種方案,可以采用類似的手機APP。本系統(tǒng)設(shè)計的手機APP基于Android平臺進行開發(fā),在Android平臺,要實現(xiàn)socket數(shù)據(jù)通信,需使用DatagramPacket和DatagramSocket兩個類,DatagramPacket用來存放通信數(shù)據(jù),DatagramSocket用來在兩個端點之間使用UDP協(xié)議發(fā)送數(shù)據(jù)報。
2.1 語音技術(shù)的選取
通過語音控制空調(diào)工作時,用戶通過語音把控制命令輸入手機,手機APP進行語音識別后轉(zhuǎn)換成控制信號,通過無線網(wǎng)絡(luò)把控制信號傳遞給WiFi模塊控制空調(diào)工作。同時手機通過語音合成生成反饋語音,提示用戶空調(diào)工作方式已改變。所以,本系統(tǒng)需要語音識別與語音合成技術(shù)。
訊飛語音技術(shù)提供語音識別、語音合成、語音評測、聲紋識別等功能,其中語音識別又分為語音聽寫、命令詞識別和語義理解三種。語音聽寫是將用戶說出的語音轉(zhuǎn)換成文字,可以識別詞語、句子、語氣以及斷句等;命令詞識別是通過關(guān)鍵詞判斷用戶下達的命令,從而完成相應的工作;語義理解是分析用戶語音或文字包含的信息以及需要獲得的信息,給出相應的反饋。對于通過語音控制空調(diào)來說,主要是告訴空調(diào)工作的模式以及工作的溫度等,所以語音識別采用命令詞識別技術(shù)比較合適。語音識別完成之后需要通過語音合成技術(shù)合成語音。訊飛語音技術(shù)的命令詞識別與語音合成都包括云端合成和本地合成兩種,為了提供快速的反饋,本系統(tǒng)均采用本地合成。
2.2 語音識別技術(shù)的應用
2.2.1 語音識別的流程
要使用訊飛語音技術(shù)開發(fā)手機語音識別系統(tǒng),先要將SDK中l(wèi)ibs目錄下的Msc.jar文件和armeabi文件夾復制到Android工程的libs目錄中,然后在AndroidManifest.xml文件中添加需要的權(quán)限[12]。命令詞識別的具體流程如下:
1)創(chuàng)建語音配置對象:要使用命令詞識別技術(shù),需要創(chuàng)建SpeechRecognizer對象[13],并設(shè)置SpeechRecognizer對象的引擎類型為本地。
2)構(gòu)建語法:構(gòu)建以命令詞為關(guān)鍵詞的BNF語法,構(gòu)建的語法要覆蓋人們通常的說法種類,并要有合理的結(jié)構(gòu),以提高識別的準確率。
3)語音輸入:用戶通過手機把控制語音輸入系統(tǒng),可以只說關(guān)鍵詞,比如“制冷”“制熱”,也可以說部分的或者完整的句子。
4)語音識別:基于構(gòu)建的語法對用戶所說的信息進行匹配,從而識別出用戶所說的句子,里面含有控制空調(diào)的關(guān)鍵詞。
5)結(jié)果檢測:檢測識別的結(jié)果,分離出關(guān)鍵詞,從而確定用戶所發(fā)出的控制信息。
6)發(fā)送信息:把控制信息通過無線網(wǎng)絡(luò)傳遞給WiFi模塊,并通過CC2530控制紅外模塊發(fā)出紅外信號,從而控制空調(diào)工作。
2.2.2 BNF語法編寫
訊飛離線命令詞識別技術(shù)使用巴科斯范式(BNF)描述語音識別的語法,語法編寫的好壞直接關(guān)系到識別的準確率。對于控制命令,編寫B(tài)NF語法時有兩種方法。第一種是只編寫關(guān)鍵的控制詞語,用戶說話時嚴格按照控制詞語來說,比如控制空調(diào)開關(guān),只編寫“打開”和“關(guān)閉”,不編寫前后無關(guān)的詞語。這種方法的優(yōu)點是語法編寫簡單、識別準確,缺點是用戶使用時不方便,必須按照既定的命令去說,也不能帶有無關(guān)的話語。第二種是模擬人通常的說法,既編寫關(guān)鍵的控制詞語,也編寫前后無關(guān)的詞語,并盡量覆蓋各種說法。這種方法編寫起來比較復雜,識別的準確率也不如第一種,但用戶使用時比較方便,可以隨心所欲的按各種說法說。為了方便用戶使用,本系統(tǒng)采用第二種方法編寫,力求覆蓋盡可能多的說法。使用該種方法識別的準確率雖然稍低,但識別結(jié)果分離開后,無關(guān)的詞語識別是否準確并不影響控制信息,只要關(guān)鍵詞語識別準確即可,最終的準確率并不比第一種方法低多少,所以本系統(tǒng)采用第二種方法進行編寫。本系統(tǒng)編寫的BNF語法如下:
該語法文件覆蓋了常用的各種說法,可以控制空調(diào)開關(guān)、轉(zhuǎn)換模式、調(diào)整溫度等,溫度支持20℃~39℃,滿足日常生活使用。用戶使用時既可以說“空調(diào)開”“二十六度”等簡短的命令,也可以說“把空調(diào)調(diào)到制冷模式”等比較完整的句子,使用非常方便。
2.2.3 語音識別結(jié)果檢測
訊飛語音識別技術(shù)可以使用JSON格式或XML格式返回語音識別結(jié)果。JSON(JavaScript Object Notation)是一種輕量級的數(shù)據(jù)交換格式,易于機器解析和生成,也便于人閱讀和編寫。為了方便對語音識別的結(jié)果進行檢測,本系統(tǒng)采用JSON格式。
檢測識別結(jié)果時,先要檢測用戶是控制空調(diào)開關(guān),還是轉(zhuǎn)換空調(diào)工作模式,或者是設(shè)置空調(diào)溫度。語音識別模塊返回JSON格式文本后,通過循環(huán)檢測ws里的每一個對象,如果有slot值為<switch>的對象,即說明用戶在控制空調(diào)開關(guān),此時,該對象的cw里第零個元素的id值如果為101,就是開空調(diào),如果為102,就是關(guān)空調(diào);如果有slot值為<state>的對象,即說明用戶在轉(zhuǎn)換空調(diào)工作模式,此時,該對象的cw里第零個元素的w值即用戶指定的工作模式;如果有slot值為<ten>的對象,即說明用戶在設(shè)置空調(diào)溫度,此時,還需要檢測slot值為<single>的對象,將兩個對象的cw里第零個元素的id值組合起來即可得到用戶所說的數(shù)值。
2.3 語音合成技術(shù)的應用
手機APP識別出用戶的控制命令并發(fā)送信息后,需要合成語音給用戶形成反饋[14],比如制冷后需要反饋“空調(diào)已調(diào)為制冷模式”,這就需要使用到語音合成技術(shù)。語音合成的流程如下:
1)創(chuàng)建語音合成引擎:要使用語音合成技術(shù),先要創(chuàng)建SpeechSynthesizer對象,使用SpeechSynthesizer對象完成語音合成功能。
2)設(shè)置參數(shù):使用本地引擎合成語音,需要將引擎類型設(shè)置為本地,并設(shè)置本地語音發(fā)言人,不同發(fā)言人的音色不同,還需要設(shè)置本地合成資源路徑等,這需要通過SpeechSynthesizer對象的setParameter方法完成。
3)讀取合成語音文本:對于每一個控制命令,預定一個對應的反饋文本,并存儲在數(shù)據(jù)庫里,在語音合成時讀取對應的文本,準備合成。
4)開始合成:使用SpeechSynthesizer對象的startSpeaking方法開始合成語音。
5)監(jiān)聽命令:監(jiān)聽用戶的命令,比如暫停播放、繼續(xù)播放等,接收到用戶命令時按要求執(zhí)行。
對于本系統(tǒng)而言,語音識別的正確率高低是系統(tǒng)能否正常運行的關(guān)鍵,因此對語音識別的正確率進行了測試??紤]到不同類型的控制命令識別的正確率存在差異性,本研究對電源管理類命令、工作模式轉(zhuǎn)換類命令和溫度控制類命令分別進行了測試。同時,在不同的噪音環(huán)境下,識別的正確率也會有差異,因此本研究把系統(tǒng)的語音識別功能在安靜的臥室(低噪音環(huán)境)和開著電視的客廳(中等噪音環(huán)境)也分別進行了測試,結(jié)果如表1所示。由表1可見,語音識別的正確率是比較高的,如果識別錯誤,用戶重新說一下即可。因此,本系統(tǒng)可以達到實用的程度。
表1 語音識別結(jié)果正確率
空調(diào)是人們生活中常用的家用電器之一,應用語音技術(shù)可以給用戶帶來更加優(yōu)良的交互體驗。本文設(shè)計了兩種不同的空調(diào)語音控制方案,一種針對帶WiFi功能的空調(diào),另一種針對傳統(tǒng)的不帶WiFi功能的空調(diào),均在不改變原有空調(diào)系統(tǒng)的前提下,通過手機對空調(diào)進行語音控制,并應用訊飛語音技術(shù)實現(xiàn)對語音的識別與合成,選取了適當?shù)恼Z音處理技術(shù)、設(shè)計了語音識別的流程、編寫了合理的BNF語法,并對語音識別的正確率進行了測試。測試結(jié)果表明,語音識別正確率較高,能夠達到實用的程度。語音交互比按鍵、觸摸屏等交互方式要方便很多[15-16],在更多的地方應用語音交互技術(shù),可以使人們的生活更加美好。
[1]韋銀,王杰輝.基于語音識別模塊的家庭交互系統(tǒng)設(shè)計[J].福建電腦,2016,32(12):22-23.
[2]曹璇,劉訪.基于語音識別的家居空調(diào)控制系統(tǒng)設(shè)計[J].家電科技,2013(7):62-63.
[3]陳松.基于Android平臺的家居遠程語音控制系統(tǒng)研究[J].赤峰學院學報(自然科學版),2016,32(21):25-26.
[4]崔悅,宋齊軍.智能語音技術(shù)發(fā)展趨勢及電信運營商應用淺析[J].郵電設(shè)計技術(shù),2016(12):2,6-11.
[5]黃賢立,羅冬梅.基于訊飛語音技術(shù)的智能家居控制APP設(shè)計[J].福建電腦,2016,32(8):112,145.
[6]李亞文.基于LPG的語音信號特征參數(shù)提取算法研究[J].商洛學院學報,2015,29(4):25-28.
[7]張慶芳.基于語音識別的燈光控制系統(tǒng)[J].輕工科技,2016(11):73-74.
[8]劉方洲,馬騰.基于科大訊飛MSP的粵語自助學習系統(tǒng)的設(shè)計[J].計算機光盤軟件與應用,2013(3):175-176.
[9]劉芳.基于DSP的家居空調(diào)語音識別控制系統(tǒng)的設(shè)計實現(xiàn)[J].電子世界,2014(14):159-160.
[10]張紅英.Wi-Fi語音模塊在智能家電領(lǐng)域中的應用[J].家電科技,2014(4):28.
[11]楊麗英.基于SPCE061A的燈光電器語音控制實現(xiàn)[J].山東工業(yè)技術(shù),2016(21):156.
[12]李慧.基于訊飛語音的安卓手機應用開發(fā)步驟的研究[J].無線互聯(lián)科技,2015(14):123-124.
[13]王海洋,郭星.基于語音識別的智慧旅游系統(tǒng)研究[J].計算機技術(shù)與發(fā)展,2015(5):143-147.
[14]王貴.基于Android的語音助理軟件的分析與設(shè)計[J].電子世界,2016(20):37-38.
[15]曾祥義,張云偉,陳嶺,等.基于Android和Arduino的語音控制小車設(shè)計[J].微處理機,2016,37(5):56-59.
[16]易圓皓.基于MatlabGUI語音識別推箱子的設(shè)計[J].電子設(shè)計工程,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
薛輝,男,陜西商州人,碩士,工程師