鄒智敏 劉偉
(容桂職業(yè)技術學校 廣東省佛山市 528305)
2020年學校教師帶領學生開發(fā)“智享一家”項目參加廣東省“眾創(chuàng)杯”創(chuàng)業(yè)創(chuàng)新大賽,該項目是利用人工智能技術為孤寡老人提供智能控制家電,如開關、晾衣架、窗簾等的公益項目,該項目獲得市優(yōu)勝獎。在該項目中教師帶領學生實現(xiàn)了基于語音識別的智能家電控制手機APP。通過實現(xiàn)該手機APP,讓學生掌握語音識別、智能家電控制、手機APP 開發(fā)等技術,緊跟人工智能時代發(fā)展方向。
語音實際上是一種波,如圖1 所示。要對聲音進行分析,首先是對聲音分幀,也就是把聲音切開成一小段一小段,每一小段稱為一幀。然后,對幀進行聲學特征提取,即將幀中的聲音頻率轉換為一系列數(shù)字,最常用的是梅爾倒譜系數(shù)(Mel-scale Frequency Cepstral Coefficients,簡稱MFCC)[1],它與頻率的關系如圖2 所示,式中f 為頻率。
語音分幀之后的處理單位是狀態(tài)、音素。單詞的發(fā)音由若干音素構成,漢語一般用全部聲母和韻母作為因素集,一個因素又劃分成3 個狀態(tài),一個狀態(tài)包含若干幀。
語音識別就是將輸入的語音與聲學模型中的語音進行匹配,從而給出可能性最大的對應文本。聲學模型可以理解為語音庫,匹配算法一般采用隱馬爾可夫模型(Hidden Markov Model, HMM)[2],該算法簡單來說就是在構建好的狀態(tài)網(wǎng)絡中尋找與語音最匹配的路徑的方法。語音識別過程如圖3 所示,輸入的語音會被分成幀,圖中的每個小豎條代表一幀,根據(jù)聲學模型,若干幀識別為狀態(tài),三個狀態(tài)識別為音素,若干音素識別為單詞。
實現(xiàn)手機無線控制智能家居的方法主要有Wi-Fi、藍牙兩種,相應的需要在家電設備上集成Wi-Fi、藍牙模塊。藍牙5.0 于2016年6月正式宣布規(guī)范,對比上一版本藍牙4.2,具有更高的通信距離、傳輸速度。藍牙5.0 與Wi-Fi 比較如表1 所示。
本項目使用藍牙技術控制智能設備,藍牙技術是一種無線數(shù)據(jù)通信開放的全球規(guī)范,為固定和移動設備建立通信環(huán)境的一種近距離無線技術連接。藍牙技術的通信過程包括搜索、配對、通信三個步驟。搜索是藍牙主設備搜索附近藍牙從設備的過程,在本項目中即手機藍牙搜索附件的智能家居中的藍牙從設備,當主設備找到從藍牙設備后,得到從藍牙設備的ID,服務ID、特征ID 等信息。配對是主設備與從設備建立有效連接的過程,配對時需要指定從設備的ID 等信息。通信是指主藍牙設備從藍牙設備特征讀取值,或者向從藍牙設備特征寫入值,通信時,需指定從藍牙設備的ID、服務ID、特征ID 等信息,讀取及寫入的值是16 進制數(shù)據(jù)[3]。
表1:藍牙5.0 與Wi-Fi 比較
圖1:語音示例
圖2:MFCC 公式
圖3:語音識別過程
圖4:藍牙設備、服務、特征關系圖
藍牙設備、服務、特征的關系如圖4 所示,一個藍牙設備包含多個服務,而一個服務又包含多個特征。每個藍牙設備、服務、特征都有一個48 位(6 個字節(jié))的唯一標識,稱為ID 或地址,通信時,需指定藍牙ID、服務ID 及特征ID。
為了培養(yǎng)學生的開發(fā)能力,此手機APP 由教師指導學生完成,我校是中等職業(yè)技術學校,側重于技術應用,所以開發(fā)時選擇易學易用的開發(fā)平臺和工具。
圖5:Wex5 開發(fā)平臺
圖6:科大訊飛語音插件使用示例
Wex5 是起步科技公司推出的可視化手機APP 開發(fā)平臺,其特點是為開發(fā)者提供良好的開發(fā)體驗,拖拽式頁面設計,易學易用。而且提供豐富的組件體系及其示例,方便快捷,包括該程序需要的語音組件和藍牙組件[4]。如圖5 所示,左邊是項目文件列表,中間“設計”欄是可視化界面編輯,中間“JS”欄是Java 程序編輯,右邊是控件列表,包括數(shù)據(jù)、布局、表單、擴展、高級等類別。
科大訊飛是知名的智能語音和人工智能上市企業(yè),長期從事語音及語言、自然語言理解、機器學習推理及自主學習等核心技術研究,并保持了國際前沿技術水平??拼笥嶏w多次在機器翻譯、自然語言理解、圖像識別、圖像理解、知識圖譜、知識發(fā)現(xiàn)、機器推理等各項國際評測中取得佳績。兩次榮獲“國家科技進步獎”及中國信息產(chǎn)業(yè)自主創(chuàng)新榮譽“信息產(chǎn)業(yè)重大技術發(fā)明獎”,被任命為中文語音交互技術標準工作組組長單位,牽頭制定中文語音技術標準。
圖7:藍牙插件使用示例
圖8:APP 界面
科大訊飛語音插件可以將語音轉成文字、文字合成語音,向開發(fā)者提供先進的轉寫,聽寫,命令詞識別等語音技術,支持中文、英語、粵語等語種[5]。
Wex5 支持科大訊飛語音插件,在UI2/demo/plugin/iFlytek 中有插件使用示例及源碼,如圖6 所示,點擊“開始語音聽寫”按鈕,然后輸入語音,例如“晾衣架下降”,插件即可識別。
具體來說,使用科大訊飛語音插件首先要在js 文件中引入該插件,代碼如下[6]:
然后即可在js 中調(diào)用插件相關接口。調(diào)用語音識別接口代碼如下:
其中res 是語音識別文本,其為Json 格式,使用JSON.stringify方法轉換為字符串。
調(diào)用語音合成接口代碼如下:
Wex5 支持藍牙插件,在UI2/demo/plugin/BLECentral 中有插件使用示例及源碼,如圖7所示,打開手機藍牙,點擊“搜索藍牙設備”,手機藍牙就可以搜索到智能開關上的從藍牙設備,得到其id 信息。
使用藍牙插件首先要在js 文件中引入該插件,代碼如下[7]:
搜索藍牙設備的代碼如下,其中info 對象即搜索到的從藍牙設備信息,其id 屬性就是設備id,后面配對時需要此id 信息。
搜索到從藍牙設備后,指定需配對的從藍牙設備id 就可以建立藍牙主設備與從設備的連接,其代碼如下所示。
讀取藍牙設備特征值的代碼如下, 其中service_id、characteristic_id 分別是從藍牙設備服務、特征id,可以在藍牙模塊使用說明中獲得。Buffer 是讀取的十六進制數(shù)據(jù)。
教師指導學生使用Wex5 開發(fā)平臺實現(xiàn)基于語音識別的智能家電控制APP,語音識別功能使用科大訊飛語音插件,藍牙無線控制智能家電使用藍牙插件。Wex5 創(chuàng)建、設計及發(fā)布APP 都是可視化模式,APP 主要包括所有智能家居列表頁面和智能家居控制界面,如圖8 所示。
以參加2020年廣東省“眾創(chuàng)杯”創(chuàng)業(yè)創(chuàng)新大賽為契機,教師帶領學生實現(xiàn)了基于語音識別的智能家電控制手機APP,讓學生了解語音識別、智能家電控制原理,初步掌握語音識別、智能家電控制、手機APP 的開發(fā)技術。讓學生了解前沿技術,并能進行初步工程應用。踐行了學校以培養(yǎng)學生學習能力、動手能力為目標的教學理念。