虞秋辰,周若華*,袁慶升
(1.北京建筑大學電氣與信息工程學院,北京 102616;2.國家計算機網絡應急技術處理協調中心,北京 100029)
喚醒詞檢測(WWD)系統是語音助手的重要組成部分。隨著“Hey Google”、“小藝小藝”和“Siri”等語音助手的出現,該系統的應用越來越廣泛,攜帶它們的設備也越來越多樣化。作為一個始終處于監聽狀態的系統,WWD 系統在接收到喚醒詞后立即被觸發,從而啟用后續操作。為了降低能耗并提供流暢的用戶體驗,WWD 系統需具有高精度、低延遲和低內存占用率3 個特點。
WWD 可以借鑒關鍵詞檢測(KWS)的方法。早期的解決方案是基于大詞匯量連續語音識別(LVCSR)[1-3],先從音頻信號中檢測出文本內容,再找到喚醒詞進行喚醒。LVCSR 方法雖然可以靈活替換喚醒詞內容,但如果在移動設備上使用,LVCSR方法占用資源大,無法滿足要求。
一個輕量的替代方案是關鍵詞/填充隱馬爾可夫模型(HMM)[4-6]。目前深 度神經網絡(DNN)-HMM(DNN-HMM)系統使用DNN 代替高斯混合模型(GMM)進行聲學特征建模[6-8]。
對于低資源的WWD,很多基于純粹神經網絡的WWD 系統,即基于DNN 的系統不使用任何序列模型。由于不需要復雜的序列搜索算法,這些WWD 系統具有更高的計算效率。該方法最早由Google 公司在2014 年提出[9]。它直接使用全連接前饋神經網絡(FFNN)來估計單詞后驗概率的序列,然后使用后處理方法來檢測關鍵詞。在這種范式下,許多DNN 架構被提出來替代FFNN[10-12]。DNN 的優點是可以通過改變DNN 中的參數數量來靈活地改變模型的大小,并且可以部署在硬件有限的設備上,這擴展了WWD 系統的使用場景。如果希望在WWD 系統中使用序列級訓練準則,如CTC[13-14]和LF-MMI[15],則建模單元將是音素或HMM 狀態。然而,與自動語音識別(ASR)相比,WWD 系統不一定需要序列對序列模型,因為它不太依賴于長范圍的時間依賴。
WWD 系統面臨的一個問題就是難以選擇合適大小的檢測窗口。例如,對于一個有3 個音節的中文喚醒詞,其持續時間范圍可能為300 ms~2 000 ms。如果使用長度為1 000 ms 的窗口檢測喚醒詞,就會導致在檢測短于1 000 ms 的喚醒詞的同時,受到窗口內非喚醒詞音頻的干擾;當檢測長于1 000 ms 的喚醒詞時,無法對喚醒詞的全局信息進行檢測。面對這個問題,一些研究采取兩階段方法[7-8],利用第一階段的DNN-HMM 系統確定喚醒詞在語音流中的候選片段,提取候選片段的段級或音素級的有區分性的特征,傳遞給第二階段的分類器進行檢測。
本文提出一種基于純粹神經網絡的多模型融合的WWD 方法,分別使用2 個窗口長度不同的CNN模型檢測喚醒詞。運用Ghost-SE-Res2Net 結構模塊作為WWD 的小窗口檢測模型和大窗口檢測模型。由于在流式檢測時,使用單一長度窗口檢測會降低檢測效果,因此使用小窗口檢測部分的喚醒詞,大窗口檢測完整的喚醒詞,融合2 個模型的后驗概率,確定喚醒詞是否被觸發。由于設計WWD 系統時希望盡可能減少內存占用和計算消耗,因此提出模型都是基于擠壓與激勵殘差網絡(SE-Res2Net)架構的二元分類器[16]。SE-Res2Net 的多重縮放機制能夠提高WWD 的檢測能力,并且相比ResNet,參數量更少。在此基礎上,使用Ghost 卷積[17]替代SE-Res2Net 中的普通卷積,以縮減模型參數量。
本文提出的多模型融合WWD 系統如圖 1 所示。系統主要有兩部分組成:小窗口喚醒詞檢測器Q1和大窗口喚醒詞檢測器Q2。Q1通過檢測由小滑動窗處理得到的子頻譜圖,而Q2則檢測較大的子頻譜圖。由于WWD 中使用的深度神經網絡無法同時很好地利用短期和長期的時間依賴,本文結合小窗口和大窗口模型的后驗概率來決定喚醒詞是否觸發。

圖1 多模型融合喚醒詞檢測系統Fig.1 Multi-model fusion wake-up word detection system
本文使用的Res2Net 模塊如圖2(b)所示,Res2Net 模塊由文獻[18]提 出。Res2Net 模塊是ResNet 模塊的擴展。在Res2Net 模塊中,輸入特征圖被分成多個分支,每個分支使用不同的擴張率進行卷積。這些分支的輸出被連接并通過一個瓶頸層,該層降低了特征圖的維度。Res2Net 模塊的主要思想是通過增加分支數和每個分支內卷積核的擴張率,可以更有效地捕獲多尺度特征。

圖2 瓶頸模塊,Res2Net 模塊和SE-Res2Net 模塊Fig.2 Bottleneck module,Res2Net module,and SERes2Net module
Res2Net 的輸入是一個特征圖,其通道數為C,尺寸為H×W。如圖2(b)所示,在經過一個1×1 卷積后,按照通道維度,輸入特征圖被均勻地分成s個子集,表示為xi,其中i?{1,2,…,s}。除x1外,每一個xi都經過一個3×3 的卷積核Ki()。從i=3 開始,在輸入Ki()之前,xi先與Ki-1()的輸出相加。過程如式(1)所示:
擠壓與激勵模塊(SE block)通過顯式地建模通道間的相互依賴關系,可以為通道分配不同的權重,從而提高模型檢測喚醒詞的能力[19]。如圖2(c)所示,將Res2Net 模塊和SE 模塊堆疊在一起,構成SERes2Net 模塊。
SE-Res2Net 模塊通過對多個分支進行卷積操作提取多尺度特征,但該過程帶來了大量的計算成本。為了減少計算量,文獻[17]使用Ghost 模塊生成幻影特征圖(GFM),利用一部分特征即可生成更大的特征圖。
Ghost 模塊的計算過程如圖3 所示。首先采用一般卷積生成通道數較少的特征圖Y',由于通道數較少,這一步消耗的計算資源也較少,然后通過線性變換,即?i()操作,得到幻影特征圖,最后將本體特征圖和幻影特征圖拼接得到Y。?i()操作雖然也是常規的內核卷積,但僅在一個通道上進行卷積,減少了計算消耗。

圖3 Ghost 模塊Fig.3 Ghost module
假設輸入特征圖X?Rh×w×c、Y'=X?f、f?Rc×k×k×m為卷積核,則Y'?Rm×h/×w'。
Y'生成幻影特征圖如式(2)所示:
其中:m表示Y'的通道數為第i個通道;j表示進行的第j次線性變換。
設每次使用的內核大小為d×d,Ghost 模塊的理論計算加速比rs和參數壓縮比rc如式(3)、式(4)所示:
從式(3)、式(4)可以看出,相比一般的卷積,Ghost 卷積在計算速度和參數量縮小上都有s倍提高。
本文使用的Ghost-SE-Res2Net 模塊如圖4 所示,通過將3×3 的卷積核Ki()替換成Ghost 模塊,可有效縮減模型的參數量。

圖4 Ghost-SE-Res2Net 模塊Fig.4 Ghost-SE-Res2Net module
當檢測喚醒詞時,在一個檢測窗內不是每一幀都提供平等的喚醒詞信息,比如喚醒詞兩端的非喚醒詞音頻和伴隨著喚醒詞的背景噪聲,這些幀的信息就應該被忽略。當使用全局平均池化層(GAP)時,分配給每一幀的權重是相同的,這意味著神經網絡不能像人耳一樣關注喚醒詞部分,忽略不相關的部分。因此,本文使用如圖5 所示的注意力池化層(ATP)[20]代替Res2Net 網絡中的GAP,利用注意力機制獲得更便于檢測的嵌入特征e(i)。GAP 生成嵌入特征的原理如式(5)所示:
其中:T是頻譜圖H(i)的長度。
對頻譜圖H(i)中的每一幀ht,GAP 分配的權重是固定的αt=1/T,而注意力池化為每一幀ht分配一個權重αt,該權重是通過注意力機制學習得到的。首先通過學習得到標量分數st,如式(6)所示:
其中:v、W、b是所有ht共享的可訓練參數。
然后使用標量分數計算歸一化權重αt,如式(7)所示:
最后計算得到嵌入特征e(i),如式(8)所示:
Q1和Q2都是二元分類器。在本文中,Q1和Q2為分別訓練得到,從驗證集中選擇表現最好的模型來搭建WWD 系統。為了簡化設計,WWD 系統中使用了相同的Ghost-SE-Res2Net 模塊結構來構建兩個模型。
本文使用的Ghost-SE-Res2Net架構的原始版本由文獻[16]提供,它具有5個卷積階段(Conv 1~Conv 5)、全局平均池化層和全連接層。
為了減少模型參數,通過修改網絡架構,替換全局平均池化層為注意力池化層,由于使用的是二維卷積,為使用一維的注意力池化層,增加一個1×1 卷積層。將輸出通道從[16,32,64,128]減少到[4,8,16,32],刪除Conv 5 階段,并調整了Conv 1 階段的最后一個核的步長為2,得到Ghost-SE-Res2Net。作為對比,本文使用文獻[16]中的SE-Res2Net 和ResNet50 作為基線。SE-Res2Net 是將Ghost-SERes2Net 中的Ghost-SE-Res2Net 模塊替換為SERes2Net 模塊實現的。同時,也對ResNet50 進行相同的修改,降低模型參數量。多模型融合WWD 系統中的參數量是Q1和Q2中參數量的總和。本文使用的網絡具體結構如表1 所示。

表1 ResNet50、SE-Res2Net 和Ghost-SE-Res2Net 模塊結構Table 1 ResNet50,SE-Res2Net,and Ghost-SE-Res2Net module structures
由于Q1和Q2均以子頻譜圖作為輸入,在訓練時,使用在線困難樣本挖掘(OHEM)算法[21]自動選擇難以識別的子頻譜圖進行訓練。
以數據集中的喚醒詞Nihao Wenwen 為正樣本,在訓練時經過滑動窗的切片,子頻譜圖中可能包含Nihao、Nihao Wen 或者Haowen 等,某些子頻譜圖可能更難與負樣本區分開,因此,訓練時使用OHEM 交叉熵損失函數,如式(9)、式(10)所示,選擇一個批中損失值較大的樣本進行訓練。
其中:loga(p)是經過網絡的輸出值;t是樣本標簽;Knum是保留訓練的樣本數。
將WWD 任務視作一個端到端二元分類任務,當檢測一個預定義的喚醒詞時,其他喚醒詞作為負樣本。
對每個檢測窗的音頻信號的頻譜圖特征H(i)=,喚醒詞檢測器Q1或Q2會為其分配一個分數由于Q1和Q2的檢測窗口長度不同,在流式推理時中的最大值和(i)的平均值yf(i)>γ,表明喚醒詞被觸發,閾值γ?(0,1)。
本文在Mobvo(iSLR87)公開數據集上驗證所提方法的有效性。該數據集包含大約225 h 的數據,共255 297 條音頻。數據采集自商用智能音箱,共有年齡3 歲到65 歲的788 名受試者。在1、3、5 m 的距離上采集每個受試者的關鍵詞和非關鍵詞數據,并伴隨著不同信噪比(SNR)的背景噪聲(典型的家庭環境噪聲,如音樂和電視)。非關鍵詞數據共有大約187 h。其余每個音頻中都包含一個Hi Xiaowen 關鍵詞或一個Nihao Wenwen 關鍵詞。數據集的詳細信息如表2 所示。

表2 數據集統計信息(音頻數)Table 2 Dataset statistics(number of audio files)單位:條
所有實驗均使用Librosa庫[22]提取音頻的256 維Mel 頻譜圖特征。Mel 頻譜圖特征通過25 ms 幀長和10 ms 幀移計算得到。
通過對訓練集進行抽樣統計,發現99%的喚醒詞樣本的長度在200 幀以下。因此,對于Q1,對不同的喚醒詞使用不同參數的滑動窗。Hi Xiaowen 使用窗長75 幀、窗移30%的滑動窗,Nihao Wenwen 則使用窗長100 幀、窗移30%的滑動窗。對于Q2,不管是Hi Xiaowen 還是Nihao Wenwen,都使用窗長200 幀、窗移30%的滑動窗。當頻譜圖長度不滿足時,使用0填充。
Ghost 模塊的壓縮比rc為4。此外,分類器的訓練目標為使用交叉熵損失的Softmax。Adam 優化器的初始學習率設置為0.000 2。在訓練的前5 代中,使用OHEM 交叉熵損失函數,選擇每個mini-batch中損失值最大的前75%的樣本參與訓練,之后使用一般的交叉熵損失函數。同時,在前5 代中使用SpecAugment 策略[23]對數據進行擴充。對于每個訓練音頻,隨機選擇0~30 個連續幀,將所有的Mel 濾波器設為0 進行時間遮掩。對于頻率遮掩,隨機選擇256 個Mel 濾波器中的0~20 個連續維度,在所有幀上將它們的值設置為0。每個模型至少訓練20 代,如果在驗證集上的損失沒有降低,則終止訓練。
在喚醒詞檢測時,人們關心的是“在非喚醒詞的負樣本中每小時發生的錯誤接受(FAH)少于特定次數的情況下,錯誤拒絕(FR)占實際喚醒詞出現次數的比例”。因此,實驗通常報告在預先指定的FAH 值下的錯誤拒絕率(FRR)以供評估[24]。FAH 的值在0.1~1.0 次之間。本文中采用的評價指標為FAH 為0.5 次時的FRR,即每小時錯誤接受0.5 次情況下的錯誤拒絕率。
本文所提的兩階段WWD 方法基于Python 編程語言實現,采用CUDA v11.0 和PyTorch v1.9 深度學習框架。硬件設備配置為1 塊Intel 2.3 GHz Xeon?CPU 和1 塊NVIDIA Tesla V100S GPU。
1)Ghost-SE-Res2Net 的有效性
為了驗證本文所提的Ghost-SE-Res2Net 模塊的有效性,將其與ResNet50 和SE-Res2Net 進行對比。
不同模型對多模型融合系統的影響結果如圖6所示,并且所有的檢測誤差權衡曲線都是通過掃描閾值γ得到的。

圖6 不同模型對多模型融合系統的影響Fig.6 The impact of different models on multi-model fusion system
使用Ghost-SE-Res2Net 模塊的多模型融合系統在2 個喚醒詞上的表現都是最好的,比使用SE-Res2Net 的系統在2 個喚醒詞上分別有相對37%和23%的FRR 下降,比使用ResNet50 的系統在兩個喚醒詞上有著相對52%和57%的FRR 下降。這表明Ghost-SE-Res2Net 模塊能夠有效提升WWD 的性能。
2)困難樣本挖掘的有效性
為了分析困難樣本挖掘對系統性能的影響,本文進行對比實驗,選擇在訓練時的前0、5、10、20 代使用OHEM 交叉熵損失函數。實驗結果如表3所示。

表3 使用OHEM 交叉熵損失函數的代數Table 3 Number of epochs using the OHEM crossentropy loss function
在兩個喚醒詞上,在前5 代使用OHEM 交叉熵損失函數比不使用OHEM 交叉熵損失函數分別有相對39%和37%的FRR 下降。而繼續增加使用OHEM交叉熵損失函數的代數則會降低WWD 性能,其中,前20 代使用OHEM 交叉熵損失函數比只在前5 代使用帶來了相對37%和42%的FRR 增加。這可能是因為過多使用OHEM 導致網絡更關注困難信息而產生了過擬合現象。總體來說,使用OHEM 至少使WWD 系統在兩個喚醒詞上有相對16%和10%的FRR 下降。
3)注意力池化的有效性
為了驗證注意力池化的有效性,本文進行消融實驗,將Ghost-SE-Res2Net 模塊中的注意力池化替換為全局平均池化。不同池化方法對多模型融合系統的影響如圖7 所示。

圖7 不同池化方法對多模型融合系統的影響Fig.7 The impact of different pooling methods on multi-model fusion system
使用注意力池化的Ghost-SE-Res2Net 模塊的系統性能明顯好于使用全局平均池化時的性能。在Hi Xiaowen 上有相 對16% 的FRR 下 降,在Nihao Wenwen 上有相對44%的FRR 下降。猜測系統性能的提升可能是由于使用注意力池化能夠減少檢測時喚醒詞兩端的非喚醒詞音頻和一些背景噪聲過大的幀的干擾。
4)多模型融合的有效性
為了驗證多模型融合系統的性能,將多模型系統與單模型系統進行比較。在使用單模型檢測時,只要yQ1(i)或yQ2(i)大于閾值即認為喚醒詞被觸發。結果如表4 所示,使用Ghost-SE-Res2Net的Q1性能要好于Q2,SE-Res2Net 情況相同,而使用ResNet50的Q1性能要差于Q2。

表4 多模型融合系統的有效性Table 4 Effectiveness of multi-model fusion system
多模型融合系統的性能是最好的,使用Ghost-SE-Res2Net 的多模型融合系統在兩個喚醒詞上分別至少有相對93% 和75% 的FRR 下降;使用SERes2Net 的多模型融合系統在兩個喚醒詞上分別至少有相對89%和67%的FRR 下降;使用ResNet50 的多模型融合系統則在兩個喚醒詞上分別至少有相對88%和29%的FRR 下降。結果表明,Q1和Q2有著很好的互補性,融合檢測喚醒詞的局部信息和全局信息能夠有效提高WWD 的檢測能力。
5)本文系統與其他系統的比較
本文提出的方法與在Mobvo(iSLR87)數據集上3 個最近 的基線 進行比較[15,25-26],如 表5 所 示。文獻[25]使用完整喚醒詞作為建模單元搭建WWD 系統,并通過選擇性負樣本挖掘來解決類不平衡問題。文獻[15]采用DNN-HMM 系統,基于無對齊訓練準則進行訓練。文獻[26]則使用流式Transformer 搭建WWD 系統。與文獻[26]相比,盡管系統參數量更多,但在2 個喚醒詞上分別實現了相對23%和28%的FRR 下降。

表5 不同WWD 系統的性能對比Table 5 Performance comparison of different WWD systems
與最先進的基線[15]相比,本文提出的多模型融合WWD 系統在Hi Xiaowen 上有相對13%的FRR 上升,在Nihao Wenwen 上有相對14%的FRR 下降。由于文獻[15]使用的是DNN-HMM 系統,建模單元為音素,導致喚醒詞的音節數對WWD 性能有一定影響,三音節的Hi Xiaowen 比四音節的Nihao Wenwen的發音變化更少,更易于檢測[27]。因此,DNN-HMM系統[15]在音節 數更少 的Hi Xiaowen 上 的FRR 比Nihao Wenwen 低0.1。而本文提出的基于Ghost-SERes2Net 的多模型融合WWD 系統的建模單元為完整的喚醒詞和部分的喚醒詞,通過兩個不同大小的檢測窗,使得本文提出的WWD 系統在面對不同長度的喚醒詞時魯棒性更好,在兩個喚醒詞上的表現只有0.03 的差距,并且由于Nihao Wenwen 的音節數更多,發音持續時間更長,使得多模型融合的效果略好于Hi Xiaowen。
值得注意的是,本文提出的系統在與最先進的基線[15]的性能相似的同時,系統的參數量相對減少了31%,實現了更低的內存占用。
針對WWD 時檢測窗長度選擇困難的問題,本文提出一種新的多模型融合WWD 系統。該系統包含兩個二元分類器,分別使用小檢測窗和大檢測窗檢測喚醒詞的局部信息和全局信息,2 個分類器均使用提出的Ghost-SE-Res2Net 模塊。通過Ghost 卷積替換一般的卷積減小模型參數量,利用Ghost-SERes2Net 模塊提取多尺度特征,并通過注意力池化替換全局平均池化,引入困難樣本挖掘算法提高網絡對復雜信息的學習能力,使用多模型融合方法融合大小檢測窗的檢測結果,確定喚醒詞是否被觸發。下一步將嘗試使用動態大小的檢測窗,以實現從音頻流中更準確地定位喚醒詞信息,同時改進網絡模型,減少系統參數量,進一步提高WWD 的性能。