陳立鵬 陳小龍 宋詩凡 陳楨衍
(天津工業(yè)大學(xué) 軟件學(xué)院,天津 300387)
人類的感知過程是多模態(tài)的[1],樣本可以通過不同通道的信息加以描述,每一通道的信息定義為一種特定的模態(tài)[2]。相比于單一模態(tài),多模態(tài)能更準(zhǔn)確地描述出樣本的特征。
早在公元前4 世紀(jì),多模態(tài)的相關(guān)概念和理論即被用以定義融合不同內(nèi)容的表達(dá)形式與修辭方法[3-4]。多模態(tài)學(xué)習(xí)從1970 年起步,經(jīng)歷了幾個(gè)發(fā)展階段后,在2010 年之后全面步入深度學(xué)習(xí)階段。多模態(tài)學(xué)習(xí)可以劃分為以下五個(gè)研究方向:多模態(tài)表示學(xué)習(xí)、模態(tài)轉(zhuǎn)化、對齊、多模態(tài)融合、協(xié)同學(xué)習(xí)[5]。
多模態(tài)技術(shù)常被應(yīng)用到語義識別中,通常結(jié)合圖片、文本、語音等,判斷說話人的語義,語音識別技術(shù)最早可以追溯到1952 年,當(dāng)時(shí)Davis[6]等人研究出了可以識別10 個(gè)英文數(shù)字發(fā)音的實(shí)驗(yàn)系統(tǒng)。從那時(shí)起到現(xiàn)在,語音識別給我們帶來了很多方便[7]?,F(xiàn)階段家教平臺眾多,大學(xué)生家教由于價(jià)格便宜,性價(jià)比高受到了一些家長的青睞,但是大學(xué)生家教還未形成規(guī)范的體系,在上課期間可能發(fā)生意外情況卻無法報(bào)警或及時(shí)告知能幫助他們的人,針對這一現(xiàn)象,本文提出一種基于多模態(tài)語義分析的語音識別報(bào)警系統(tǒng)。
本系統(tǒng)基于Python Tensorflow環(huán)境實(shí)現(xiàn)了語音識別報(bào)警功能,部署本系統(tǒng)的應(yīng)用在工作場景進(jìn)行實(shí)時(shí)錄音,當(dāng)檢測到一方對另一方發(fā)出具有威脅性或者求救性的語音時(shí)實(shí)施報(bào)警,為避免當(dāng)事人因無意識地觸發(fā)詞庫關(guān)鍵詞而導(dǎo)致系統(tǒng)錯(cuò)誤地報(bào)警,因此需要實(shí)時(shí)監(jiān)測被監(jiān)聽者的語音情緒,當(dāng)被監(jiān)聽者用恐懼或是傷心的語氣觸發(fā)求救關(guān)鍵詞立刻觸發(fā)報(bào)警系統(tǒng),所以實(shí)現(xiàn)本系統(tǒng)的關(guān)鍵在于兩大模塊,分別是:情感分析模塊以及語音關(guān)鍵詞喚醒模塊。
情感描述方式主要有兩種類型:一種是維度描述方法例如Schlosberg[9]等提出的三維情感,該種描述可以從三個(gè)維度描述情感,同時(shí)可以體會出情感的微妙變化;而另外一種則是對情感實(shí)施離散分類,就像Chen[8]等提出的MFCCG-PCA 情感識別模型,該模型實(shí)現(xiàn)了害怕、高興、驚訝、中性、悲傷、生氣這六種情感的離散化分類,該種描述無法體會到情感的微妙變化。
作者在構(gòu)建該語音識別警報(bào)系統(tǒng)時(shí)選擇離散式的情感描述方式,因?yàn)樵撓到y(tǒng)只需要檢測被監(jiān)聽者發(fā)出求救信號時(shí)的情感狀態(tài),不需要體會被監(jiān)聽者的情感變化。
在早期Wang[10]等利用支持向量機(jī)來預(yù)測語音情感,Zhao[11]等分析了不同情感的時(shí)間構(gòu)造、振幅構(gòu)造、基頻構(gòu)造和共振峰構(gòu)造等語音特征。
近年來由于深度學(xué)習(xí)的發(fā)展人民普遍應(yīng)用深度學(xué)習(xí)的方法來對語音情感進(jìn)行預(yù)測,Geng[15]等提出了卷積神經(jīng)網(wǎng)絡(luò)CNN 來預(yù)測語音情感,Li[12]等提出了改進(jìn)MFCC 融合特征的憤怒情緒判斷方法,Zhu[13]等利用了AlexNet 預(yù)訓(xùn)練的網(wǎng)絡(luò)結(jié)合FNC 全卷積神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)了對不同情緒的預(yù)測,Xue[14]等結(jié)合了卷積神經(jīng)網(wǎng)絡(luò)CNN 以及雙向循環(huán)神經(jīng)網(wǎng)絡(luò)BiGRU 提出了TSTNet 語音情感識別模型。
由于作者需要實(shí)現(xiàn)實(shí)時(shí)分析語音情感的系統(tǒng),并且訓(xùn)練好的模型為了保證運(yùn)算速度會部署在性能足夠強(qiáng)大的服務(wù)器上,考慮到數(shù)據(jù)在網(wǎng)絡(luò)上的傳播時(shí)延會顯著的影響模型的響應(yīng)速度,因此訓(xùn)練模型時(shí)必須選取計(jì)算時(shí)間足夠短的網(wǎng)絡(luò)結(jié)構(gòu)。在保證至少85%的正確率的前提下,作者選擇了Geng[15]等提出的CNN 卷積網(wǎng)絡(luò)結(jié)構(gòu)作為用來實(shí)現(xiàn)本系統(tǒng)的語音情感分類器,盡管有比該類模型更加優(yōu)秀的選擇,但考慮到計(jì)算時(shí)間的要求CNN 卷積網(wǎng)絡(luò)結(jié)構(gòu)是最好的選則,因?yàn)槠渌W(wǎng)絡(luò)的網(wǎng)絡(luò)結(jié)構(gòu)過于復(fù)雜,計(jì)算量要比CNN 模型大得多,經(jīng)作者測試在同一硬件條件下CNN 網(wǎng)絡(luò)的計(jì)算速度要比TSTNet 快2s。因此作者最終選擇了CNN 卷積神經(jīng)網(wǎng)絡(luò)作為語音情感分類器。
由于本系統(tǒng)被研發(fā)出來是希望應(yīng)用于中文環(huán)境中的,因此作者進(jìn)行模型訓(xùn)練時(shí)只選取了CASⅠA 中文語音情感數(shù)據(jù)庫,該數(shù)據(jù)庫中共收錄了總共1200 條分別由四位播音員錄制的害怕、高興、驚訝、中性、悲傷、生氣這六種情感的語音數(shù)據(jù),每條語音數(shù)據(jù)長度在[1s, 2s]這個(gè)區(qū)間。
每一條數(shù)據(jù)首先被統(tǒng)一成音長2s,采樣率16000Hz 的數(shù)據(jù),之后作者對原始數(shù)據(jù)進(jìn)行了隨機(jī)語音增強(qiáng)以及混入自然噪音,并將數(shù)據(jù)增強(qiáng)后的語音數(shù)據(jù)集喂入Pascual[16]等提出的語音增強(qiáng)對抗神經(jīng)網(wǎng)絡(luò)中再做進(jìn)一步的數(shù)據(jù)增強(qiáng)。作者最終通過隨機(jī)語音增強(qiáng)以及混入自然噪音加上對抗神經(jīng)網(wǎng)絡(luò)數(shù)據(jù)增強(qiáng)的方式得到了12000 余條語音數(shù)據(jù)。之后將所有數(shù)據(jù)樣本進(jìn)行預(yù)加重、數(shù)據(jù)分割、加漢明窗、提取MFCC 后就可以將數(shù)據(jù)送入神經(jīng)網(wǎng)絡(luò)中進(jìn)行模型訓(xùn)練。
作者建立該模型使用了五個(gè)卷積模塊(如圖1 所示),第一個(gè)卷積模塊只有一個(gè)卷積層和一個(gè)Relu 層,第二個(gè)卷積模塊擁有一個(gè)卷積層、一個(gè)正則化層、一個(gè)Relu 層、一個(gè)Dropout 和一個(gè)最大池化層,第三個(gè)和第五個(gè)卷積模塊和第一個(gè)相同,第四個(gè)卷積模塊和第二個(gè)一樣,作者試驗(yàn)過多種卷積網(wǎng)絡(luò)結(jié)構(gòu)經(jīng)過驗(yàn)證發(fā)現(xiàn)該種結(jié)構(gòu)的效果最好。
圖1 CNN 網(wǎng)絡(luò)結(jié)構(gòu)圖
在神經(jīng)網(wǎng)絡(luò)中第一個(gè)卷積模塊被用來提取音頻數(shù)據(jù)的二維特征頻域×?xí)r序,再將該二維特征作為輸入數(shù)據(jù)喂入其余四個(gè)卷積模塊中,在本系統(tǒng)中作者輸入大小設(shè)置為63×1,內(nèi)核設(shè)置為2×2,卷積核的跨度為1×2,其余所有卷積核均為1×1。同時(shí)為了提高深度網(wǎng)絡(luò)的運(yùn)算速度并且保證訓(xùn)練時(shí)數(shù)據(jù)分布一致,作者還在網(wǎng)絡(luò)中使用了批歸一化[17]。
氣象站位于甘肅酒泉市金塔縣境內(nèi),地處東經(jīng)98°30'00",北緯 40°19'58.8",北靠黑山,地處戈壁,地勢平坦,場地開闊。金塔縣位于甘肅省河西走廊中段北部邊緣,東、北與內(nèi)蒙古額濟(jì)納旗毗連,西面與甘肅嘉峪關(guān)、玉門、肅北接壤,南與酒泉市和張掖地區(qū)的高臺縣為鄰。
經(jīng)過批歸一化處理過后神經(jīng)網(wǎng)絡(luò)最終輸出結(jié)果為:
經(jīng)過作者驗(yàn)證,該模型可在1s 左右的時(shí)間計(jì)算結(jié)果準(zhǔn)確率可以達(dá)到87.43%。
語音關(guān)鍵詞檢測是指從連續(xù)語音流中識別或檢測出一個(gè)特定關(guān)鍵詞[18]。在檢測到詞庫關(guān)鍵詞后喚醒后續(xù)的程序,這就是本模塊的基本工作內(nèi)容。
語音關(guān)鍵詞識別的方法:
作者在構(gòu)建語音關(guān)鍵詞喚醒模塊時(shí)分為以下兩個(gè)步驟:
a.基于模板匹配的關(guān)鍵詞識別[21]
基本算法框架包括語音信號預(yù)處理,端點(diǎn)檢測,特征參數(shù)提取,模板庫參考模板建立,模板匹配識別等基本單元[19-20]。
首先將一段用人聲說出的詞匯錄音下來,通過算法制作成可識別的詞匯模板。設(shè)計(jì)出算法對語音進(jìn)行預(yù)濾波、ADC、分幀、端點(diǎn)檢測、預(yù)加重、加窗、特征提取、特征匹配。算法模塊加載了詞匯模板后,檢測出有效語音,根據(jù)人耳聽覺感知特性,計(jì)算每幀語音的MFCC。然后采用DTW 算法與特征模板相匹配,最終輸出識別結(jié)果。
本文將“模板”替換為RNN 循環(huán)神經(jīng)網(wǎng)絡(luò),這樣做可以提高2%的識別精度。
人工神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu)與訓(xùn)練方法:在人工神經(jīng)網(wǎng)絡(luò)中,神經(jīng)元結(jié)點(diǎn)的輸入首先經(jīng)過加權(quán)線性組合,然后通過激活函數(shù)(Activation function)激活[24]。
Sigmoid 函數(shù):
激活函數(shù)有很多種本文作者使用Sigmoid 函數(shù),因?yàn)樵撃K可以看作二分類系統(tǒng)模塊,即符合關(guān)鍵詞與不符合關(guān)鍵詞。
由于語音是與時(shí)序有關(guān)的信號,語音中過去和將來的狀態(tài)信息都會影響到此時(shí)的狀態(tài),為了解決這種時(shí)序問題Grave在文獻(xiàn)[25]中設(shè)計(jì)了如圖2 所示的雙向循環(huán)神經(jīng)網(wǎng)絡(luò)。
圖2 雙向循環(huán)神經(jīng)網(wǎng)絡(luò)[26]
當(dāng)前層通過t=1 到T 的迭代,根據(jù)式(4)計(jì)算隱藏層的后向序列,
建立好網(wǎng)絡(luò)之后就可以進(jìn)行迭代訓(xùn)練了,最后語音識別喚醒模塊的準(zhǔn)確率為91%。
作者使用兩種模型后端融合的方式來實(shí)現(xiàn)該語音識別報(bào)警系統(tǒng)的模態(tài)融合,具體操作(如圖3 所示)為將語音關(guān)鍵詞喚醒模塊作為語音情感分析的啟動模塊,語音關(guān)鍵詞喚醒模塊(以下簡稱S)將被安裝到客戶端上,一旦被監(jiān)聽者觸發(fā)關(guān)鍵詞庫中的關(guān)鍵詞,S 就會通過網(wǎng)絡(luò)將監(jiān)聽到的關(guān)鍵詞語音片數(shù)據(jù)段送到位于服務(wù)端的情感分析模塊上(以下簡稱E),之后E 會針對這一段語音進(jìn)行情感分析,一旦S 傳遞的語音片段屬于悲傷、恐懼這一類的負(fù)面情感,E 會通過網(wǎng)絡(luò)向位于客戶端的S 發(fā)出報(bào)警信號,同時(shí)E 也會向后臺管理人員發(fā)出報(bào)警,S 在接到E 的報(bào)警信號后會大聲地發(fā)出警報(bào)聲音恫嚇施暴者,并且還會通過網(wǎng)絡(luò)向E 發(fā)送被監(jiān)聽者所處的位置,以便于在確認(rèn)被監(jiān)聽者真正遭受人身威脅時(shí)向警方提供關(guān)鍵信息。
圖3 雙模態(tài)融合圖
結(jié)果分析:
情感識別模塊的準(zhǔn)確率為87.43%,關(guān)鍵詞識別模塊的準(zhǔn)確率為91%,在建立好圖4 的系統(tǒng)結(jié)構(gòu)之后,通過在分別為安靜無聲的環(huán)境中進(jìn)行播放帶有恐懼情感的“救命”錄音的方式進(jìn)行測試以及在有不規(guī)則背景噪音的環(huán)境中進(jìn)行播放帶有恐懼情感的“救命”錄音的方式進(jìn)行測試,兩個(gè)場景分別執(zhí)行50次測試,最終測得安靜無聲的環(huán)境中該系統(tǒng)識別的正確率為88%,而在有不規(guī)則噪音的環(huán)境中測試的成功率為80%。
本文從系統(tǒng)功能出發(fā),首先介紹了該語音識別報(bào)警系統(tǒng)的系統(tǒng)結(jié)構(gòu),包括語音情感分析模塊和語音關(guān)鍵詞喚醒模塊,隨后又分別針對兩大模塊介紹了其實(shí)現(xiàn)原理,包括基于對抗神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)增強(qiáng),基于CNN 模型、RNN 模型的Tensorflow預(yù)測模型的搭建與訓(xùn)練,同時(shí)還簡要介紹了加速訓(xùn)練的批歸一化算法。
經(jīng)過實(shí)景測試表明該系統(tǒng)可快速判斷求救語義并做出及時(shí)的反應(yīng),經(jīng)過多次人工實(shí)驗(yàn)表明,在安靜無聲的環(huán)境中該系統(tǒng)識別的正確率為88%,而在有不規(guī)則噪音的環(huán)境中識別的成功率為80%,因此對實(shí)際應(yīng)用具有一定的指導(dǎo)意義。