摘 要: 一個(gè)基于語(yǔ)音識(shí)別的智能家居控制系統(tǒng),設(shè)計(jì)了智能家居的控制方案,研究了通過語(yǔ)音進(jìn)行了控制的技術(shù),制定了軟件系統(tǒng)設(shè)計(jì)的原則,并設(shè)計(jì)了APP的功能模塊,經(jīng)測(cè)試表明,該系統(tǒng)語(yǔ)音識(shí)別的準(zhǔn)確率較高。
關(guān)鍵詞: 語(yǔ)音; 識(shí)別; 智能家居; 控制
中圖分類號(hào): TP311 ? ? ?文獻(xiàn)標(biāo)志碼: A
Research and Design of Smart Home Control System Based on Speech Recognition
XUE Hui
(School of Mathematics and Computer Application, Shangluo University, Shangluo 726000)
Abstract: In order to build a smart home control system based on speech recognition, this paper designed a control scheme of smart home, studied the technology of speech control, formulated the principle of software system design, and designed the function module of the APP. The test showed that the speech recognition accuracy of the system is high.
Key words: Speech; Recognition; Smart home; Control
0 引言
隨著信息技術(shù)的發(fā)展,智能家居逐漸進(jìn)入了人們的視野,人們的生活越來(lái)越智能化、便利化[1]。智能家居成為了科技界和工業(yè)屆的研究熱點(diǎn),關(guān)于智能家居方面的論文日漸增多,許多廠家也都在研制更加智能、更加實(shí)用的家電產(chǎn)品,但是目前的研究主要集中在使用手機(jī)控制智能家居,為了使智能家居使用更加方便,本文在手機(jī)控制的基礎(chǔ)上增加了語(yǔ)音控制功能,研究和設(shè)計(jì)了一種基于語(yǔ)音識(shí)別的智能家居控制系統(tǒng),采用語(yǔ)音直接控制家庭中的各種電器,能給人們提供更加智能、更加舒適的家居環(huán)境。
1 智能家居控制方案
智能家居控制方案如圖1所示。
由于Wifi網(wǎng)絡(luò)已經(jīng)普遍使用于家庭中,所以采用Wifi網(wǎng)絡(luò)組網(wǎng)[2],采用智能手機(jī)做為控制終端。市面上已有的智能家電,比如智能電視[3]、智能空調(diào)、智能掃地機(jī)器人等本身攜帶有Wifi模塊,可以通過無(wú)線網(wǎng)絡(luò)直接連接到無(wú)線路由器上。對(duì)于電燈,通過單片機(jī)采用繼電器進(jìn)行控制[4],單片機(jī)可以通過HLK-RM04等Wifi模塊連接到無(wú)線網(wǎng)絡(luò)上。Wifi模塊、單片機(jī)和繼電器實(shí)際構(gòu)成了一個(gè)智能開關(guān),可以通過手機(jī)控制燈的開和關(guān)。對(duì)于紅外線控制家電,比如普通的電視機(jī)、空調(diào)、電熱水器等可以通過學(xué)習(xí)型紅外模塊IR-U64/448進(jìn)行控制,并給手機(jī)APP上增加語(yǔ)音識(shí)別功能,使人可以通過說(shuō)話控制家庭里的各種電器[5]。
2 語(yǔ)音控制技術(shù)
2.1 語(yǔ)音識(shí)別技術(shù)簡(jiǎn)介
語(yǔ)音識(shí)別技術(shù)是指機(jī)器識(shí)別人說(shuō)出的語(yǔ)音,明白人發(fā)出的控制命令或者意圖。語(yǔ)音識(shí)別通過預(yù)處理、特征提取、訓(xùn)練、匹配、后處理這樣幾個(gè)過程來(lái)完成[6],如圖2所示。
經(jīng)過多年的發(fā)展,語(yǔ)音識(shí)別技術(shù)已經(jīng)比較成熟,已經(jīng)可以應(yīng)用到實(shí)際的生活環(huán)境中[7]。
2.2 語(yǔ)音識(shí)別技術(shù)選取
如今,谷歌、微軟、百度、科大訊飛等公司都已經(jīng)開發(fā)出了自己的比較完善的語(yǔ)音識(shí)別技術(shù),其中科大訊飛在中文語(yǔ)音識(shí)別領(lǐng)域取得了領(lǐng)先的地位,因此本系統(tǒng)采用科大訊飛的語(yǔ)音識(shí)別技術(shù)。
訊飛將語(yǔ)音識(shí)別分為語(yǔ)音聽寫技術(shù)、命令詞識(shí)別技術(shù)和語(yǔ)義理解技術(shù)3種。語(yǔ)音聽寫是根據(jù)人所說(shuō)的話生成相應(yīng)的文字,實(shí)現(xiàn)用文字記錄語(yǔ)音;命令詞識(shí)別是識(shí)別人所說(shuō)的話中的關(guān)鍵詞語(yǔ),執(zhí)行相應(yīng)的命令;語(yǔ)義理解是分析語(yǔ)句的含義,理解人所說(shuō)的話的意圖,給出相應(yīng)的反饋結(jié)果。對(duì)于智能家居控制系統(tǒng)來(lái)說(shuō),需要識(shí)別出人所說(shuō)出的控制命令,所以應(yīng)該采用命令詞識(shí)別技術(shù)。
2.3 語(yǔ)音識(shí)別流程
使用訊飛語(yǔ)音技術(shù)進(jìn)行語(yǔ)音識(shí)別,需在訊飛語(yǔ)音平臺(tái)下載語(yǔ)音識(shí)別SDK并導(dǎo)入Android工程。命令詞技術(shù)的語(yǔ)音識(shí)別流程如圖3所示。
首先要在AndroidManifest.xml文件里添加需要用到的權(quán)限,比如錄音的權(quán)限、存儲(chǔ)的權(quán)限、獲取wifi狀態(tài)的權(quán)限等,然后通過SpeechUtility.createUtility創(chuàng)建語(yǔ)音配置對(duì)象,把設(shè)置好的參數(shù)傳遞給SDK,SDK進(jìn)行初始化,接著通過mAsr.buildGrammar構(gòu)建命令詞識(shí)別的語(yǔ)法,SDK儲(chǔ)存并對(duì)語(yǔ)法進(jìn)行分析,再下來(lái)通過mAsr.startListening對(duì)用戶所說(shuō)的語(yǔ)音進(jìn)行監(jiān)聽,把監(jiān)聽到的語(yǔ)音信息發(fā)送給SDK進(jìn)行識(shí)別,SDK把接收到的語(yǔ)音和語(yǔ)法文件進(jìn)行匹配后輸出json格式的識(shí)別結(jié)果,最后檢測(cè)json文件里的控制命令,并發(fā)出相應(yīng)的控制信息。
2.4 BNF語(yǔ)法編寫
訊飛命令詞識(shí)別技術(shù)采用BNF語(yǔ)法文件定義用戶所說(shuō)的控制命令。BNF是Backus-Naur Form的縮寫,即巴科斯范式,是用形式化的符號(hào)來(lái)描述語(yǔ)法,廣泛的使用于編程語(yǔ)言的語(yǔ)法描述上。對(duì)于智能家居來(lái)說(shuō),由于家庭中的電器比較多,而且各不相同,所以需要針對(duì)相應(yīng)的電器構(gòu)建各種不同的BNF語(yǔ)法,語(yǔ)音識(shí)別結(jié)果是否準(zhǔn)確關(guān)鍵在于語(yǔ)法構(gòu)建的是否合理。
2.4.1 為了提高準(zhǔn)確率,語(yǔ)法構(gòu)建應(yīng)遵循以下原則:
(1) 簡(jiǎn)潔性 智能家居系統(tǒng)中涉及到的電器比較多,控制命令也比較多[8],雖然可以通過語(yǔ)音喚醒先喚醒相應(yīng)的電器然后再控制,但這樣用戶說(shuō)話比較麻煩,為了使用戶可以直接對(duì)不同的電器下達(dá)命令,語(yǔ)法文件應(yīng)編寫的盡可能簡(jiǎn)潔,不要使用過于復(fù)雜的結(jié)構(gòu),避免不同的電器相互干擾,力求準(zhǔn)確控制指定的電器。
(2) 完整性 人們平時(shí)說(shuō)話是比較隨意的,同一個(gè)控制命令往往有多種說(shuō)法,為了用戶使用起來(lái)方便,要盡量包含日常生活中的各種說(shuō)法,比如“開”,可以通過“開”、“打開”、“開開”、“開啟”、“啟動(dòng)”等多種不同的方式表達(dá)。
(3) 實(shí)用性 現(xiàn)在的電器功能很多,但是有些功能是極少使用甚至幾乎不用的,比如電視機(jī)上就有一些功能生活中很少用到。編寫B(tài)NF語(yǔ)法的時(shí)候,只需把常用的功能包含進(jìn)去就可以了,那些極少使用的功能在需要的時(shí)候可以通過電器本身的控制按鈕或者遙控器來(lái)完成,這樣避免語(yǔ)法過于復(fù)雜導(dǎo)致識(shí)別準(zhǔn)確率降低。
2.2.4 現(xiàn)以電熱水器為例,示意語(yǔ)法文件的編寫:
#BNF+IAT 1.0 UTF-8;
!grammar controlheater;
!slot 〈switch〉;
!slot 〈state〉;
!slot 〈number〉;
!start 〈start〉;
〈start〉: [〈command〉][〈heater〉][〈action〉][〈to〉]〈control〉;
〈control〉:〈switch〉[〈 heater〉][〈mode〉]|〈state〉[〈mode〉]|〈number〉[〈hundred〉][〈watt〉];
〈command〉:把|將|讓|使;
〈heater〉:熱水器|電熱水器;
〈action〉:調(diào)|轉(zhuǎn)|變|改|換;
〈to〉:成|到|為;
〈switch〉:開!id(101)|打開!id(101)|開開!id(101)|開啟!id(101)|關(guān)!id(102)|關(guān)閉!id(102)|關(guān)上!id(102)|關(guān)掉!id(102)|關(guān)了!id(102);
〈state〉:低溫|中溫|高溫;
〈mode〉:模式|狀態(tài)|功能;
〈number〉:一千!id(1 000)|一千五!id(1 500)|兩千!id(2 000)|兩千五!id(2 500);
〈hundred〉百;
〈watt〉:瓦;
該語(yǔ)法文件遵循了2.4.1的語(yǔ)法構(gòu)建原則,結(jié)構(gòu)比較簡(jiǎn)潔,可以控制電熱水器開關(guān)、控制加熱溫度、調(diào)整功率等,滿足基本功能,覆蓋了生活中常用的說(shuō)法,識(shí)別準(zhǔn)確率高,使用方便。
2.5 識(shí)別結(jié)果檢測(cè)
訊飛命令詞識(shí)別的結(jié)果通過xml格式或者json格式標(biāo)記輸出,可以在參數(shù)里面設(shè)置,為了程序處理起來(lái)方便,一般采用json格式。json格式輸出的結(jié)果里用ws表示詞組,cw表示詞,w表示分詞,用戶說(shuō)出的控制命令經(jīng)識(shí)別后存儲(chǔ)在w里,通過循環(huán)檢測(cè)w里面的分詞獲取識(shí)別結(jié)果,從而對(duì)家電進(jìn)行控制。
3 控制系統(tǒng)軟件設(shè)計(jì)
3.1 APP需求分析
基于語(yǔ)音識(shí)別的智能家居控制系統(tǒng)主要是通過語(yǔ)音控制家庭的各種家電,所以首先要能根據(jù)家庭的情況對(duì)電器進(jìn)行設(shè)置,比如增加電器、刪除電器、修改電器等,其次就是要能進(jìn)行語(yǔ)音識(shí)別和控制,用戶通過手機(jī)輸入語(yǔ)音后進(jìn)行識(shí)別,先分析是對(duì)哪個(gè)電器下達(dá)命令,然后分析控制命令的具體內(nèi)容,最后根據(jù)控制命令發(fā)出相應(yīng)的控制信息[9],通過Wifi網(wǎng)絡(luò)傳輸?shù)浇K端,完成控制的過程。
3.2 APP設(shè)計(jì)的原則
為了使家居控制系統(tǒng)易于使用,本系統(tǒng)在設(shè)計(jì)的時(shí)候遵循以下原則:
(1) 靈活擴(kuò)展 現(xiàn)如今,人們生活中各種各樣的電器很多,所以系統(tǒng)要比較靈活,可以方便的進(jìn)行各種擴(kuò)展,電器可以隨時(shí)增加,BNF文件也可以隨時(shí)更新,還可以及時(shí)把不再需要的電器去除掉。
(2) 方便易用 在手機(jī)終端加上語(yǔ)音控制的目的就是為了方便人們使用,所以系統(tǒng)要盡可能的方便,APP首頁(yè)就直接顯示“按住說(shuō)話”的控制按鈕,用戶說(shuō)話后系統(tǒng)自動(dòng)區(qū)分要控制的電器,識(shí)別后直接發(fā)出控制信息,使得用戶可以通過簡(jiǎn)單的操作完成控制。
(3) 及時(shí)反饋 語(yǔ)音識(shí)別后及時(shí)發(fā)出識(shí)別結(jié)果和控制信號(hào)的反饋信息,比如“燈已打開”、“空調(diào)已經(jīng)啟動(dòng)”、“電視音量已經(jīng)增大”等,這些反饋信息可以通過語(yǔ)音合成,形成人機(jī)語(yǔ)音交互。
(4) 可視化管理 對(duì)于電燈和電器的設(shè)置通過形象的模擬界面來(lái)完成,可以按房間分類顯示,也可以按電器的種類分類顯示,使得用戶可以直觀的完成各種操作。
3.3 APP功能模塊設(shè)計(jì)
系統(tǒng)的功能模塊設(shè)計(jì)如圖4所示。
主要分為電燈管理、電器管理和語(yǔ)音控制3個(gè)模塊,電燈管理和電器管理模塊分別對(duì)電燈和電器進(jìn)行設(shè)置,語(yǔ)音控制模塊是系統(tǒng)的核心模塊,分為BNF文件管理、語(yǔ)音識(shí)別和控制命令三個(gè)子模塊,其中BNF文件管理模塊用來(lái)管理語(yǔ)法文件,可以把已經(jīng)編輯好的BNF文件輸入系統(tǒng),語(yǔ)音識(shí)別模塊調(diào)用SDK對(duì)用戶輸入的語(yǔ)音進(jìn)行識(shí)別,把識(shí)別結(jié)果傳送給控制命令模塊,控制命令模塊分析識(shí)別結(jié)果中的命令,并把控制信息發(fā)送給相應(yīng)的電器。系統(tǒng)采用手機(jī)上常用的Android平臺(tái)[10],用SQLite數(shù)據(jù)庫(kù)儲(chǔ)存電器數(shù)據(jù),通過socket數(shù)據(jù)通信實(shí)現(xiàn)向Wifi模塊發(fā)送控制信息。
4 軟件系統(tǒng)測(cè)試
對(duì)軟件系統(tǒng)的測(cè)試表明,本系統(tǒng)語(yǔ)音識(shí)別的準(zhǔn)確率較高,如表1所示。
由表1可見,從上到下不同種類電器的控制信號(hào)越來(lái)越復(fù)雜,控制信號(hào)越復(fù)雜,識(shí)別準(zhǔn)確率越低,為了解決這個(gè)問題,對(duì)于控制信號(hào)復(fù)雜的電器,可以只設(shè)置常用的控制命令,以提高識(shí)別的準(zhǔn)確率。
5 總結(jié)
為了實(shí)現(xiàn)一個(gè)智能家居控制系統(tǒng),方便人們通過語(yǔ)音對(duì)家庭中的電器進(jìn)行控制,本文設(shè)計(jì)了一種基于Wifi網(wǎng)絡(luò)的智能家居控制方案,研究了通過語(yǔ)音進(jìn)行控制的技術(shù),制定了軟件系統(tǒng)設(shè)計(jì)的原則,并設(shè)計(jì)了APP的功能模塊,經(jīng)測(cè)試表明,本系統(tǒng)語(yǔ)音識(shí)別的準(zhǔn)確率較高。
參考文獻(xiàn)
[1] 王基策,李意蓮,賈巖,等.智能家居安全綜述[J].計(jì)算機(jī)研究與發(fā)展,2018,55(10):2111-2124.
[2] 劉德陽(yáng),溫宗周,薛冬旺,等.基于WiFi的智能家居中央控制系統(tǒng)設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2018,18(8):82-87.
[3] 王森,劉平.基于智能電視非特定語(yǔ)音控制系統(tǒng)的設(shè)計(jì)[J].信息技術(shù),2017(6):58-61.
[4] 陳盛,胡維平,張佑賢,等.基于嵌入式的語(yǔ)音控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電子設(shè)計(jì)工程,2018,6(19):57-61.
[5] 王磊,何勇,張宇,等.基于便攜式語(yǔ)音的智能家居系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2018,39(5):1290-1295.
[6] 包曉安,徐海,張娜,等.基于深度學(xué)習(xí)的語(yǔ)音識(shí)別模型及其在智能家居中的應(yīng)用[J].浙江理工大學(xué)學(xué)報(bào)(自然科學(xué)版),2019,41(2):217-223.
[7] 趙麗,鄭艷芳,田會(huì)峰,等.基于云平臺(tái)的家庭語(yǔ)音控制系統(tǒng)[J].實(shí)驗(yàn)室研究與探索,2018,37(10):73-75.
[8] 孫紅軍,周萬(wàn)根.基于LD3320語(yǔ)音識(shí)別的智能家居控制系統(tǒng)設(shè)計(jì)[J].電子測(cè)試,2017(18):18-20.
[9] 李澤彬,姚有峰,張飛龍,等.基于單片機(jī)的智能家居語(yǔ)音控制系統(tǒng)設(shè)計(jì)[J].電子設(shè)計(jì)工程,2017,25(8):175-177.
[10] 許秀富,呂小南.Android手機(jī)的智能家居語(yǔ)音控制系統(tǒng)設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2018,18(1):48-51+56.
(收稿日期: 2019.08.12)
作者簡(jiǎn)介:薛輝(1983-),男,陜西商洛人,碩士,工程師,研究方向:計(jì)算機(jī)教育教學(xué)改革、應(yīng)用軟件開發(fā)。文章編號(hào):1007-757X(2020)01-0149-03