徐楷燚
(南京郵電大學(xué),江蘇 南京 210017)
當(dāng)前市場的數(shù)據(jù)顯示,傳統(tǒng)家具、家電的增速已經(jīng)放緩。用戶如今不僅僅要求產(chǎn)品有高顏值,富有個性,還需要家具、家電能融入當(dāng)前高科技[1]。離線語音識別毫無疑問是當(dāng)前最契合智能家具、智能家電的功能。支持離線語音識別智能家具、智能家電使用起來也更加方便快捷,省去了諸如尋找遙控器的麻煩。而隨著語音識別技術(shù)的愈加成熟,市面上會出現(xiàn)越來越多的智能家具、智能家電。
語音識別是一門交叉學(xué)科,所涉及的學(xué)科包括:信號處理、模式識別、概率論和信息論、發(fā)聲機理和聽覺機理、人工智能等等。語音識別技術(shù)源于上個世紀50年代。1952年貝爾研究所研究成功了世界上第一個能識別10個英文發(fā)音的識別系統(tǒng)[2]。此時的語音識別主要是基于模式匹配的非統(tǒng)計模型方法。此后,動態(tài)時間規(guī)整算法,線性預(yù)測編碼算法,矢量量化及LBG聚類算法也被應(yīng)用到語音識別中。大規(guī)模的語音識別研究則是在上世紀70年代開始的。此時的語音識別由于隱馬爾可夫模型的引入,開始實現(xiàn)從非統(tǒng)計模型方法到統(tǒng)計模型方法的轉(zhuǎn)變。20世紀80年代人工神經(jīng)網(wǎng)絡(luò)也被用來搭建語音識別系統(tǒng)。研究的重點也逐漸轉(zhuǎn)向大詞匯量、非特定人連續(xù)語音識別。同時在研究思路上發(fā)生了重大變化,即由傳統(tǒng)的基于標準模板匹配的技術(shù)思路開始轉(zhuǎn)向基于統(tǒng)計模型(HMM)的技術(shù)思路。而隨著硬件及其他技術(shù)的不斷提升,不同深度的神經(jīng)網(wǎng)絡(luò)模型也在語音識別中實現(xiàn)了應(yīng)用。2016年科大訊飛提出的全序列卷積神經(jīng)網(wǎng)絡(luò)大幅提升了訓(xùn)練速度和準確性。
語言模型是語音識別框架中的另一個重要的組件。20世紀初期,淺層的前饋神經(jīng)網(wǎng)絡(luò)被用于語言模型的建模。但是前饋神經(jīng)網(wǎng)絡(luò)模型是基于當(dāng)前詞與前詞的關(guān)系的假設(shè),因此始終不能很好的處理任意長度的信息。近年來,深層伸進模型也被用于語言模型的建立,使其效果進一步提升。2017年提出的Transformer網(wǎng)絡(luò)結(jié)構(gòu)則利用注意力機制,不僅實現(xiàn)的上下文建模的效果,同時也大大降低了語言模型訓(xùn)練的難度,因此現(xiàn)在的很多基于深度學(xué)習(xí)的語音識別技術(shù)都應(yīng)用此結(jié)構(gòu)。
總的來說,隨著語音識別技術(shù)的發(fā)展,硬件性能不斷提高,聲學(xué)、語言模型的建立越發(fā)簡便,精確度和處理速度也不斷提高。
搭建中文語音識別系統(tǒng),首先需要對語音進行預(yù)加重,分頻,加窗等預(yù)操作,再建立聲學(xué)模型,接著通過訓(xùn)練文本語料建立語言模型,基于語料庫建立發(fā)聲詞典,最后將三者組成解碼器來輸出識別結(jié)果[3]。語音識別本質(zhì)上就是尋找與語音最相近的文字序列的過程,其工作狀態(tài)與搜索引擎類似。
1.2.1 語音預(yù)處理
人們在說話時語音信號會受到聲門氣流波和口唇輻射的影響不斷衰減,而且頻率越高衰減越快。因此需要對語音進行預(yù)加重處理,實際情況中常常通過一階高通濾波器來實現(xiàn)。
同時還要對語音信號進行分幀、加窗操作。分析信號頻譜是常用到的傅里葉變換適用于平穩(wěn)的信號,而語音信號通常是快速變化的。但是語音信號還具有短時平穩(wěn)性,因此,在分析語音信號時要將信號劃分成幾十毫秒的小段,即分幀操作,每一小段就為一幀信號[4]。此時的語音信號既有符合要求的周期長度,變化又不劇烈,較為適合傅里葉變換分析。
1.2.2 特征提取
在預(yù)處理結(jié)束之后,通常需要對信號進行MFCC(Mel-scale FrequencyCepstral Coefficients梅爾倒譜系數(shù))特征提取,即在傅里葉變換后,利用多個Mel濾波器得到梅爾頻譜,再進行倒譜分析得到每幀信號的特征。人耳對高低頻的語音信號的感知是不同的,而且人耳能夠接收到的信號使在一定范圍內(nèi)的,MFCC在一定程度上模仿人耳處理語音的過程和特點。
離線語音識別是基于語言庫進行的線下語音識別過程。常見的離線語音識別就是將有限指令燒錄在芯片中,使用者通過預(yù)設(shè)的語音命令來操控設(shè)備。相較于在線語音識別需要連接網(wǎng)絡(luò),離線語音識別對于使用者來說會比較方便,安全,對于制造商來說,離線語音識別意味著不需要云端來儲存龐大的語音庫,能夠節(jié)約一些成本,也使得產(chǎn)品的安全性有更高的保障。
離線語音識別相比于在線語音識別缺少對話的能力,且長語音的分析能力很差,而且基本只能基于預(yù)設(shè)的指令進行工作,因此更適合于照明,風(fēng)扇,空調(diào)等一些不需要聯(lián)網(wǎng)的設(shè)備。下面對離線語音識別在照明設(shè)備的應(yīng)用進行舉例說明。(例中所使用的芯片為啟英泰倫公司生產(chǎn)的CI1122,及其對應(yīng)的開發(fā)板)
(1)在啟英泰倫語音AI開發(fā)平臺下載語言模型。將命令詞列表模板下載后,輸入相應(yīng)的喚醒詞,命令詞。再將此模板上傳至語音AI開發(fā)平臺網(wǎng)站,網(wǎng)站會自動生成聲學(xué)模型和語言模型。
(2)播報音合成。下載播音詞列表模板,對應(yīng)命令詞列表填寫此列表。再將其上傳,網(wǎng)站自動生成語音合成文件,即為相對應(yīng)的播音語音。
(3)將下載的聲學(xué)模型文件放在SDK中,替換原來SDK中相對應(yīng)的文件。將下載的播音聲源復(fù)制到voice文件夾中替換原音源。將播報音與命令詞序號相對應(yīng)?!昂铣煞謪^(qū)bin文件”可以檢測語音模型文件是否都復(fù)制到SDK文件中。
(4)燒錄。將文件打包升級,燒錄至開發(fā)板中。利用CH340串口工具將開發(fā)板連接電腦即給開發(fā)板上電并開始燒錄。燒錄完成后離線語音識別即可使用。說出提前設(shè)置的命令詞,開發(fā)版即會發(fā)出相應(yīng)的播音聲音。
(5)在Eclipse中打開SDK對燈進行初始化。在user_msg_deal中修改cmd_id為命令詞對應(yīng)的序號,并修改相應(yīng)的功能。在這里需要將命令詞與相對應(yīng)的指令操作寫在一個邏輯段中。
(6)通過電路將開發(fā)板連接至燈上即可在離線情況下進行語音識別對燈進行控制。
由于當(dāng)前離線語音芯片技術(shù)已經(jīng)十分成熟,因此只需要掌握一些電路知識,即可設(shè)計制作簡單的離線語音識別的智能家具。所需要的工具也只有相應(yīng)的開發(fā)版,串口工具。離線語音識別除了可以應(yīng)用在燈控方面,按摩椅,風(fēng)扇,空調(diào)等家具都可以使用此技術(shù)。除此之外一些玩具也使用了離線語音技術(shù),比如復(fù)讀鴨等。這些家具,家電,玩具的設(shè)計難點都不在離線語音識別技術(shù)的實現(xiàn),而在于其本身電路的構(gòu)成。這些物品的離線語音識別都是基于已經(jīng)設(shè)計好的芯片。
2.2.1 基于Windows平臺的離線語音識別
首先需要設(shè)置相關(guān)的語言識別引擎。在指定了需要識別的國家,語言后,設(shè)置相關(guān)參數(shù),如麥克風(fēng)采樣率等。接著加載語音識別語法。由于使用者會使用不同的語法及其組合,因此需要建立相應(yīng)的語法樹與詞典,確保能夠識別含義相近的輸入信號。識別完成后即輸出結(jié)果,并卸載語法。
基于Windows平臺的離線語音識別允許相同命令詞的不同表達方式,相對靈活。但是其語法樹的建立十分繁瑣,需要考慮謂語與賓語的變化。
2.2.2 基于深度學(xué)習(xí)的離線語音識別
首先需要考慮的是建模單元大小。聲學(xué)建??梢苑譃椋阂羲?,韻母,音節(jié)和詞。建模單元小,模型更復(fù)雜,精度低。建模單元大,精度高,但是搜索會耗費更長時間,導(dǎo)致效率低??紤]到漢語中詞的復(fù)雜性和計算機性能,一般采用音節(jié)作為建模單元。
接著是聲學(xué)模型的搭建與訓(xùn)練。一般采用卷積神經(jīng)網(wǎng)絡(luò)來搭建聲學(xué)模型。卷積神經(jīng)網(wǎng)絡(luò)中的卷積層和池化層的平移不變特性對于分析語譜圖有很大幫助。同時利用卷積網(wǎng)絡(luò)可以大大降低訓(xùn)練的時間。
最后是語言模型的搭建。一般采用統(tǒng)計語言模型,即通過每個詞在句子中出現(xiàn)的概率判斷句子是否合理,再與解碼器相結(jié)合來完成拼音到詞語句子的轉(zhuǎn)換。但是統(tǒng)計語言模型存在空間參數(shù)大,數(shù)據(jù)分散等問題[5]。因此通常會借鑒序列到序列模型,結(jié)合自注意力機制模塊來搭建語言模型。
相比于傳統(tǒng)的聲學(xué)模型,結(jié)合卷積神經(jīng)網(wǎng)絡(luò)和相關(guān)算法的的聲學(xué)模型參數(shù)少,處理速度更快,準確率也更高[6]?;谏疃葘W(xué)習(xí)的離線語音識別系統(tǒng)分析的準確性特別是長語音分析的準確性較其他離線語音識別模式高出很多。
離線語音識別不同于在線語音識別,前者通過離線語音庫進行識別,后者通過云端進行識別,也被稱為“語音云識別”,因此在線語音識別對長語音的識別更加準確。而傳統(tǒng)的離線語音識別基本只能識別短句,且準確率較低[7]。每次添加新的命令詞也很麻煩。所以現(xiàn)階段的離線語音識別基本都應(yīng)用在一些簡單的家具家電上。
基于深度學(xué)習(xí)或許能夠在一定程度上解決這個問題。深度學(xué)習(xí)允許離線語音識別可以識別相近含義的詞語,和較長的語音。但是應(yīng)用的算法和模型仍然需要大量的時間來訓(xùn)練。而且受制于硬件處理速度,離線語音識別在處理速度,識別準確性和長語音的識別方面仍大幅落后在線語音識別。
離線語音識別還存在其他的問題比如環(huán)境音對識別結(jié)果的影響。支持語音識別的家具,家電很難保證其使用時環(huán)境時安靜的,環(huán)境的噪聲和干擾目前很難通過優(yōu)化模型來消除,只能盡可能的優(yōu)化拾音設(shè)備。者同樣也是在線語音識別存在的一個很大的問題。
離線語音識別技術(shù)經(jīng)過多年的發(fā)展,已經(jīng)是較為成熟的技術(shù),有很多廠商生產(chǎn)離線語音識別的芯片,這大大降低了離線語音識別技術(shù)的使用門檻,促使離線語音技術(shù)與日常用品相結(jié)合。但是離線語音識別仍有很大發(fā)展空間。相比于在線語音識別技術(shù),雖然離線語音識別不需要網(wǎng)絡(luò),更方便,但是仍存在準確率低等問題。如果能夠提高硬件的處理能力,優(yōu)化算法憑借離線語音識別較為低廉的成本,離線語音識別技術(shù)一定會被應(yīng)用在更多的領(lǐng)域。