齊 梅,劉則芬,樊 浩,李 升
(安徽開放大學信息與建筑工程學院,安徽合肥 230022)
隨著互聯網和通信技術的飛速發展,產生了海量的多媒體數據,如何快速便捷地檢索獲取有效信息是信息檢索領域的一個重要研究方向[1-2].而語音是人類最自然的交流方式,不僅是人與人之間溝通交流的橋梁,也是音頻、視頻信息傳輸的重要載體之一.作為實現和改善智能友好人機交互的重要技術,語音檢索技術在過去的幾十年里一直都是研究熱點[3].
語音關鍵詞檢索是實現基于內容的語音信息檢索的一個重要手段,具有廣泛的應用場景[4-5]:
(1)人機交互應用,基于語音的信息檢索,可以直接利用便捷的移動設備輸入檢索詞從而解放雙手,無需使用鍵盤、觸屏、按鈕等.例如車載導航通過語音指令實現目的地查詢,家居家電智能語音控制都會給人們的生活帶來極大便利.
(2)多媒體信息檢索,無論是傳統的廣播電視,還是從事教育、直播、短視頻制作,通過語音關鍵詞檢索出用戶感興趣的內容是重要需求.例如在遠程教育的課程資源中,可以快速檢索出感興趣的課題知識點.
在海量的多媒體數據中,語音和文本是信息檢索中最重要的兩個載體.大多數信息檢索系統都以基于文本的信息檢索為基礎,文本信息檢索技術已經應用發展得相對成熟,隨著大量無鍵盤應用的出現,基于語音的信息檢索也受到越來越多的關注.
目前,構建公共子空間已經成為跨模態語音-文本檢索的主流方法,其核心思想是對不同模態的數據進行建模,建立一個有效的映射機制將不同模態的數據映射到一個公共空間.映射機制不僅需要縮小多模態相關數據之間的語義距離,還要擴大語義不相關數據之間的距離,使得在該空間可以直接使用一組語義向量對不同模態的樣本特征進行比較.相關的檢索方法主要集中在多媒體數據特征學習、跨模態模型檢索設計等方面:
(1)數據特征學習方面,代表性的有跨模態因子分析(cross-modal factor analysis,CFA)[6]通過最小化不同模態成對樣本之間的弗羅貝尼烏斯范數學習線性映射,將不同模態數據映射到公共空間;典型相關分析(canonical correlation analysis,CCA)[7]通過最大化不同模態樣本之間的相關性來學習映射矩陣;多視角判別分析(muti-view discriminant analysis,Mv-DA)[8],聯合表示學習算法(jointrepresentation learning,JRL)[9]等.
(2)模型檢索方面,典型方法有文本圖像協同注意力機制網絡模型(Collaborative attention network,CoAN)[10],通過選擇性關注內容相似的關鍵信息部分,使用遞歸神經網絡和關注機制聯合哈希方法提高了檢索速度;如跨模態混合遷移網絡(cross-modal hybrid transfer network,CHTN)[11]將從單模態數據中學習到的知識在跨模態數據之間共享,以提升跨模態檢索的精度;全模態自編碼器和生成對抗機制的跨模態檢索方法[12],引入2個并行自編碼器并設計3個判別器提升了跨模態識別平均精度.
隨著深度學習方法在機器學習領域的廣泛應用,研究人員提出來一系列的基于深度神經網絡的信息檢索方法.例如Roy[13]提出了一個基于動態形狀編碼網絡的單詞發現框架,該方法適用于檢索自然場景中圖像和視頻幀中文本,并不能直接應用到基于語音關鍵詞的檢索中;Zhang[14]提出了一種采用交互式學習卷積的跨模態語音-文本檢索方法,但不能較好滿足實時性需求;Pal[15]利用神經網絡學習散列函數,獲得端到端深度語義保持序數散列框架,但該方法并未獲取跨模態語義的在公共空間上的映射表達;孿生卷積神網絡模型[16]與三分支孿生網絡[17]等通過構建模型將關鍵信息進向量表示并分類得到結果.
基于深度神經網絡的相關技術已經取得很大進展,但現有的方法有些是針對單模態檢索任務的,有些適用于特定的圖文檢索等場景,有些并不能滿足語音檢索任務的實時性需求.
針對現有方法的缺點,以及滿足現實語音檢索任務中的精度和實時性需求,同時受模式識別任務啟發,本文將語音關鍵詞檢索任務視為模式識別中的分類問題.在訓練階段,本文構建了語義一致性編碼網絡,提取語音特征和文本特征在公共空間上生成統一的語義特征表達,在測試階段,通過語義一致性編碼網絡訓編碼模型獲得檢索項統一語義向量,通過余弦距離直接度量向量相似度.經實驗驗證,該方法與多個基線方法對比,在檢索精確上更優,且時效性也能夠得到保證.
利用深度神經網絡提取語音和文本的特征,將兩者映射到一個公共的表示空間,以此來建立語音和文本之間統一的語義表達,從而完成語音關鍵詞檢索任務.
語音關鍵詞檢索模型整體框架如圖1所示.受模式識別領域中的分類任務啟發,將跨模態的語音關鍵詞檢索任務,分為線下訓練和線上預測(檢索)兩個階段.訓練階段,檢索模型設計了一個雙重損失函數(一致性損失和分類損失)來訓練網絡參數,進而優化調整語義一致性網絡模型.利用分類損失訓練好的語義一致性編碼網絡會將檢索庫中的數據集q1,q2,…qn,轉化為語義特征向量{s1,s2,…sn},預測階段有新的檢索項q0同樣通過編碼得到s0,通過語義特征向量之間的距離度量獲得最佳檢索結果.

圖1 采用語義一致性編碼網絡的語音關鍵詞檢索模型Fig.1 Speech keyword retrieval model using semantic consistency coding network
在編碼網絡設計上采用深度全卷積神經網絡聯合雙重損失函數方法,通過堆疊多個卷積層對表示語音和文本信號進行建模,更好地提取語義一致性特征,編碼網絡模型如圖2所示.借鑒圖像識別任務中效果較好的網絡配置,每個卷積層使用3×3的卷積核,在多個卷積層之后加上池化層,大大增強網絡模型的表達能力,首先需要提取輸入樣本的不同模態語音和文本信息特征.

圖2 編碼網絡模型圖Fig.2 Coding network model diagram
(1)語音特征提取
語音屬于連續的一維信號,為了對連續語音進行量化,需要對語音信號進行前段處理,包括預加重、分幀和加窗操作.
預加重的目的是提升高頻部分,使信號的頻譜變得平坦,保持在低頻到高頻的整個頻帶中,能用同樣的信噪比求頻譜.同時,也是為了消除發生過程中聲帶和嘴唇的效應,來補償語音信號受到發音系統所抑制的高頻部分,也為了突出高頻的共振峰.預加重處理就是將語音信號通過一個高通濾波器:

式(1)中預加重系數u的取值范圍在0.9~1.0之間,根據實際需要,本文取0.945.
語音信號在產生的過程中受到發聲器官狀態變化的影響,而狀態變化速度較聲音振動的速度要慢得多,因此可以認為是短時平穩的,進行分幀后對每一幀信號進行處理就相當于對特征固定的持續信號進行處理,可以減少非穩態時變的影響.為捕獲連續完整語音信號,相鄰幀之間會有重疊,相鄰幀之間的重疊部分被稱為幀移,一般幀移長度為幀長度的一半左右,每幀長度在15 ms~20 ms之間.
分幀后每一幀的起始段和末尾段會出現不連續的地方,從而導致與原始信號的誤差越來越大.而加窗則可以使分幀后的信號變得相對連續,本文選擇使用漢明窗.

其中N表示幀的大小,n=0,1,…N-1,按照一般設置a取0.46.
本文使用梅爾頻率倒譜系數提取語音特征,梅爾頻率與線性頻率之間的函數關系是非線性的,其函數關系如下:

提取梅爾倒頻譜系數的主要步驟如下:輸入的語音信號通過傅里葉變換轉化為傅里葉變換的頻域信號;進行濾波操作,根據梅爾音階從低到高設置帶通濾波器;根據不同的頻率,從低到高設置梅爾刻度;對帶通濾波器處理過的信號作進一步處理,如對數運算;進行離散余弦變換,這些經過處理的信號特征可以被視為語音信號的最終特征參數.基于MFCC提取的語音特征[18],在應用于語音檢索系統時,將獲得良好的識別檢索效果.
(2)文本特征提取
針對文本信息,本文采用維基百科中文數據集上預先訓練的(bidirectional encoder representation from transformers,BERT)[19],將模型輸出中[CLS]標志位對應的一個768維向量作為文本的特征表示.
(3)網絡架構
所提網絡模型具體結構如圖2所示.在網絡參數設置上,采用了10層卷積核5層池化,卷積核參照圖像識別領域常用的3×3的小卷積.
不同層的卷積核個數分別設置為為32、64、128、128、128,在兩次卷積之后采用最大池化操作,前三層池化的池化核為2,后兩層池化的池化核為1.
假設數據集包含N對語音-文本對,用D={(XVm,XTm,ym)}Nm=1表示,其中XVm表示第m類語音關鍵詞,XTm第m類本文信息,ym是第m個樣本的類別標簽.語義編碼的目標是學習兩個映射函數FV和FT提取高層次語音語義特征{sVi}Ni=1和文本語義特征{sTi}Ni=1.此后,在公共空間學習兩個映射函數RV和RT以獲得語義一致的語音表示{φVi}Ni=1和文本表示{φTi}Ni=1,獲得的一致性向量表達,最后參數矩陣為P的現行分類器分別連接至兩個子網絡末端,可以直接用于跨模態的語音關鍵詞檢索.
如網絡模型圖2所示,在語音和文本兩個子網絡后分別得到語音語義編碼:

其中,i=1,2,…N,sVi∈Rd1代表提取的第i個高層級語音語義特征,d1表示語音向量維數,θV表示可訓練的參數.
文本語義編碼:

其中,i=1,2,…N,sTi∈Rd2代表提取的第i個高層級本文語義特征,d2表示文本向量維數,θT表示可訓練的參數.
為獲得語義一致性表達,需要將sVi和sTi映射到公共子空間,形成公共空間的特征向量.第i個語音特征向量表示為:

其中,φVi∈Rd,表示第i個語音樣本在公共空間特征向量,RV表示語音語義特征在公共空間的映射函數.第i個文本語義特征在公共空間表示為:

其中,φTi∈Rd,RT表示文本語義特征在公共空間的映射函數,d表示公共空間特征向量的維數,ΘV和ΘT分別表示可訓練的參數.
本文提出的跨模語音關鍵詞檢索為來自不同模態的特征在公共空間映射得到統一的向量表達,使得語義類別相同的樣本特征向量相似,語義類別不同特征向量不相似.為此,本文設計了一種聯合雙重損失函數Lcc:由語義一致性損失Lconsis和分類損失Lclass組成.
在公共空間獲得語義一致性向量表達,可以直接度量向量之間的相似性,余弦距離常用于跨模態檢索,余弦距離為:

其中,x,y分別表示具有相同維度的向量,在此基礎上定義成對的語音文本樣本一致性損失為:

單模態一致性用來度量同一模態內的兩個不同向量之間的關系,因此定義單模態一致性損失為:

其中,h(x)=max(0,x),ξ是預定義的閾值,將檢索任務視為分類任務,lij為分類標簽預測,假如φVi,φVj或φTi,φTj表示相同的語義,lij=+1;否則lij=-1,且i≠j.模態內一致性定義,將會使同模態內的相同語義聚集,不同語義向量遠離.
對于跨模態語音檢索任務,定義跨模態語義向量之間一致性損失計算方法為:

式中ζ是預定義的閾值,假如φVi,φTj或φTi,φVj表示相同的語義,lij=+1;否則lij=-1,且i≠j.
以上定義的成對一致性損失、單模態一致性損失和跨模態一致性損失,聯合這三類一致性損失構成本文的語義一致性損失函數:

其中η1是控制單模態和跨模態損失的權重系數.
本文方法將檢索任務視為分類任務,在訓練過程中分別在語音和文本子網絡后增加一個分類過程,分別設置了softmax層:

其中,pVi是屬于第i個語音樣本的概率,pTi是屬于第i個文本樣本的概率,WI、WT和bI、bT是softmax層訓練參數.將分類損失Lclass表示為:

其中,yit表示第i個樣本,t表示第t個類別,pVit表示第i個語音的預測概率,pTit表示第i個文本的預測概率,ε表正則化常數,防止出現NaN值.通過最小化分類損失函數,在公共空間中統一表示的特征向量的語義辨別能力可以得到極大地提高.
綜合以上公式,得到本文設計的雙重損失函數Lcc:

其中η2是分類損失權重系數.
語義一致性編碼網絡訓練流程如算法1所示:


語音關鍵詞檢測本文采用Kaldi工具包,Kaldi是當前最流行的開源的語音識別工具包,它的開發團隊在github上進行維護.與其他開源語音識別工具相比,Kaldi支持任何長度的聲學建模語言.
本文實驗數據集采用清華大學的THCHS-30和北京希爾貝殼科技有限公司開源的AISHELL語音數據集,建立語音-文本對,每個樣本對共用一個類別標簽,相對文本檢索的成熟應用背景,本文主要關注語音->文本場景的跨模態檢索.THCHS-30是一個開源中文語音數據庫,總時長超過30個小時,訓練、測試及驗證集比例為7∶2∶1;AISHELL語音數據集由來自不同口音不同地區的400人參加錄音,共178小時,訓練、測試及驗證集比例為32∶2∶1.
本文通過計算語音特征和文本特征的余弦向量來度量兩者之間的相似性,采用語音關鍵詞檢索系統廣泛使用的評估標準:召回率(Recall@N)和平均精度均值(mean Average Precision,mAP)對檢索算法進行評價.Recall@N表示輸入語音關鍵詞得到的跨模態檢索結果中,前N個文本中出現與語音信息類別相同的概率,mAP綜合考慮所有的檢索結果,對每個測試樣本的平均精度進行了再平均,反映了檢索模型的整體性能.上述兩種評估標準的值越大,說明模型的檢索性能越強.
實驗在Windows 7(8 GB內存,64位,Intel CPU 3.60 GHz)系統上運行,主要采用Python編程語言,版本為Python 3.8.6.在語音特征提取階段,采用幀長16 ms、幀移5 ms及加窗(漢明窗),SCCN模型輸入特征為600×39維的二階差分MFCC特征參數;在提取階段采用BERT模型中的[CLS]標志位對應的d2=768位向量作為文本特征;在構建語義一致性編碼網絡時使用Tensorflow框架,選取適應性動量估計算法(Adaptive moment estimation,Adam)作為訓練優化器,該算法不僅能夠對不同參數計算適應性學習率,而且能夠加速網絡收斂速度,學習率為1×10-4,epoch=300,batch_size=100.
損失函數超參η1和η2分別設置為1和0.1.
(1)損失函數超參分析
超參數η1控制了單模態和跨模態之間一致性的貢獻,η2控制了對語義分類建模的貢獻,為了研究它們對編碼網絡性能的影響,在THCHS-30數據集上對這兩個參數進行了參數實驗.實驗參數調節參考了網格搜索方法[20],η1的范圍設置為{0,0.2,0.4,0.8,1.0,1.2,1.4,1.6,1.8,2.0},η2的 范 圍 設 置 為{0,0.0001,0.001,0.01,0.1,1,10}.
η1調參方法為:根據經驗將η2的值固定為1,η1從0到2,每步遞增0.2.關于參數η1的對應的mAP結果如圖3所示,可以看出η1=0時,所提出的方法的檢索性能會明顯降低,因為忽略了單模態和跨模態之間的一致性損失,導致兩個模態間的同一語義不能被正確匹配,η1=1時,mAP結果最佳.

圖3 η1參數調整結果Fig.3η1 parameter adjustment results
η2調參方法為:將η1的值固定為1,η2從0到10,每步遞增10倍.關于參數η2的對應的mAP結果如圖4所示,可以看出η2=0時,檢索性能不佳,這表明分類損失有助于提高語義鑒別能力,當η2=0.1時,獲得了最佳的性能.

圖4 η2參數調整結果Fig.4η2 parameter adjustment results
(2)與基線方法進行精度對比實驗
本文選取經典的的檢索算法BM25、向量空間模型(Vector Space Model,VSM)以及CNN-LSTM模型進行對比.比較的CNN-LSTM模型輸600×39維MFCC特征參數,模型結構由三層卷積、三層池化、一層全連接層組成,卷積核為3×3,池化層選擇1×3,只對頻率維度進行池化.第一層隱藏層節點256個,第二層512個,全連接層節點2 667個,batch_size=100,學習率設置為1×10-4.
在AISHELL數據集上不同方法的實驗結果如表1所示,表中第5-9行展示了本文語義編碼網絡基于不同類型損失函數的實驗結果,SCCN-Lcc即為本文所提聯合語義一致性損失和分類損失的雙重損失函數方法.

表1 AISHELL數據集實驗結果Table 1 Experimental results of AISHELL dataset
從實驗結果看出相對經典的基線方法,文本方法(SCNN-Lcc)在mAP和P@i指標上系性能都優于比較方法,相對于次優方法在P@1、P@5、P@10、mAP上性能分別提升4.4%、6.7%、7.5%和7.4%,證明本文方法在檢索性能上優于其他方法.同時對比傳統的檢索方法,可以看出基于深度學習的方法要優于傳統基于特征統計的方法.本文所提的SCNNLcc方法基于深度全卷積網絡,能夠提取語音和文本高層次語義特征,同時利用深度學習方法學習到的公共子空間語義特征表達具有更好的鑒別能力,可以為跨模態數據建立更強的語義關聯,實現更好的檢索性能.驗證階段分別聯合五種不同損失函數的SCCN方法實驗:SCCN-Lpair僅計算成對樣本語音-文本損失,SCCN-Lintra僅計算單模態內損失,SCCN-Linter計算跨模態數據間的損失,SCNN-Lclass僅計算跨模態檢索損失,SCNN-Lcc(本文提出的基于雙重損失函數)聯合了語義一致性損失和檢索損失.表1的第5-9行分別展示了不同類別損失函數的性能表現,使用SCCN-Lclass方法的mAP要高于其他的僅依賴單一損失的方法,這說明分類損失較好均衡了語音與文本之間跨模態檢索的語義差異,提高了模型檢索性能.但是通過比較單一損失函數與本文的SCNN-Lcc方法可以看出,單獨一種損失函數在數據集上的表現都低于共同訓練結果,證明只有同時考慮聯合多種損失函數的方法才能具有更好的跨模態檢索性能.
在THCHS-30數據集上不同方法的實驗結果如表2所示.從對比實驗看出本文方法同樣取得最優結果,證明了本文方法的有效性,對比表1和表2看出本文方法在THCHS-30數據集上的效果要優于AISHELL數據集,這是因為THCHS-30都是由標準普通話發音組成,而AISHELL數據集包含了不同口音的說話者.

表2 THCHS-30數據集實驗結果Table 2 Experimental results of THCHS-30 dataset
(3)與不同模型進行復雜度比較
本節對比SCCN方法的復雜度,檢索結果基于余弦距離是線性計算,主要計算在預測階段的語義特征學習,因此時效性分析基于模型復雜度分析.如表3所示,對于注意力機制、RNN、還有信息檢索領域前沿的BiMPM[21]模型進行對比.

表3 模型復雜度分析Table 3 Model complexity analysis
從模型復雜度對比可以看出,本文方法在測試使用前,可以使用訓練好的語義編碼網絡對數據進行預處理,將大量數據轉換成公共空間的語義向量存儲.在測試時,SCCN方法只要利用語義編碼模型對檢索語音關鍵詞進行語義向量轉化,再將其與事先存儲的語義向量進行常數項時間復雜度的向量距離計算與排序就能得到結果.整個過程時效性大大優于基于二元檢索項匹配的深度神經網絡方法,既利用了深度學習方法學習了一致性語義編碼特征,在檢索階段只要進行線性匹配即可得到結果,又能滿足時效性需求.
本文提出采用語義一致性編碼網絡(SCCN)的語音關鍵詞檢索方法,利用深度神經網絡學習跨模態的語音和文本信息表示為公共空間的向量表達,將檢索問題轉換為分類任務,通過聯合雙重損失函數訓練語義一致性網絡模型,在檢索(測試)階段只使用訓練好的語義編碼網絡對語音關鍵詞進行語義空間上的距離衡量即可得到檢索結果.實驗證明,本文方法既利用了深層語義信息,又兼顧了實際檢索應用中的時效問題,具有更好的精確和更高的時效性.
未來將結合相關前沿深度學習網絡模型,針對語義編碼網絡模型進一步研究分析,并且探究更優的損失函數,進而提升方法性能.