Key Spotting 小總結【關鍵詞搜索】【大部分源於interspeech和ICASSP】

最近轉了方向,就看了一些NLP方面的文章,這裏做的小總結

目錄

A survey on structured discriminative spoken keyword spotting

SMALL-FOOTPRINT KEYWORD SPOTTING USING DEEP NEURAL NETWORKS

Convolutional Neural Networks for Small-footprint Keyword Spotting

Query-by-example keyword spotting using long short-term memory networks

Hello Edge: Keyword Spotting on Microcontrollers

FEDERATED LEARNING FOR KEYWORD SPOTTING

Compressed time delay neural network for small-footprint keyword spotting

Multi-task learning and Weighted Cross-entropy for DNN-based Keyword Spotting

Unrestricted Vocabulary Keyword Spotting using LSTM-CTC

END-TO-END STREAMING KEYWORD SPOTTING

Model compression applied to small-footprint keyword spotting

Stochastic Adaptive Neural Architecture Search for Keyword Spotting


A survey on structured discriminative spoken keyword spotting

這是2019年的一篇綜述,本身的文章類型等級不是很好,暫時還沒引用。只是因爲我對這個還不是很瞭解。所以提取出其中的幾個知識點說明一下:

首先說一下他的大致步驟:

基於LVCSR的KWS包含兩個階段。首先,大型詞彙語音識別器將大型音頻檔案轉換爲音素或單詞格。在第二階段,基於格的搜索將查找目標關鍵字集。(這種方法的文獻都很老)

Direct KWS:KWS完全獨立於語音識別任務。 搜索語音的最直觀的方法是直接查找聽起來像目標關鍵字的語音部分

 

常用數據集:Conversational Telephone Speech(CTS),Broadcast News(BN),Conference meeting(MTG),Read speech data。

評判標準: 一些非常少見的就沒補

Real time factor(RTF):RT F = P/I。時間I的輸入需要P時間。

True detection rate:判斷正確/所有的

False alarm rate:Total False Acceptance/Total non-keywords Num,把不應該匹配的當成匹配的。

False alarm per hour per keyword:FAR/Total Keywords Num × Testset duration(H)

True rejection rate:Total True Rejection/Total non-keywords Num,把不應該匹配的當成不應該匹配的

False rejection rate:Total False Rejection/Total Keywords Num,把應該相互匹配成功的當成不能匹配的。

Precision:Total False Rejection/Total Keywords Num

SMALL-FOOTPRINT KEYWORD SPOTTING USING DEEP NEURAL NETWORKS

這是2014年百度和谷歌聯合發表在IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP, CCF B)的一篇文章,引用量259。一作是百度的Guoguo Chen,其他的兩個作者是谷歌的。文章中提出了一種基於深度學習的、低能耗、低計算力、判別式的KWS方法——Deep KWS。這個方法大致包含三個部分,特徵提取,深度網絡和最後的Posterior Handling(後處理),特徵提取就是常用的轉換成向量的方法,深度網絡可能就是用了一個比較淺的網絡(實驗中包括3層和6層兩種類型),最後的後處理將基於幀預測概率做了一個轉換爲某個關鍵詞的置信度,當置信度超過某個閾值就認爲包含了這個keyword。實驗過程用到了兩個數據集,一個是general speech corpus(包含3000h的手工轉錄語音,稱爲VS),另一個是keyword specific data(這個貌似更大,對每個keyword有大約2.3k個訓練樣本,稱爲KW)。不僅如此,作者實驗時還驗證了抗干擾性(通過添加噪聲)。作者選擇的評判標準是FA(第一篇提到過)和FR(結果展示用的ROC曲線),沒噪聲的時候比HMM提升了大概45%,有噪聲的時候大概39%。

Convolutional Neural Networks for Small-footprint Keyword Spotting

這是谷歌在2015年Annual Conference of the International Speech Communication Association.(CCF C)上的文章,引用量230。一作是谷歌的Tara Sainath。這是第二篇文章的推進,將DNN換成了CNN,減少了中間參數,FR提升了27%-44%。(文章比較水,只是看他引用量比較高)

Query-by-example keyword spotting using long short-term memory networks

 

這篇文章和第二篇一樣,都是谷歌和百度於2015年在ICASSP聯合發佈的,一作也是百度的科學家Guoguo Chen。主要貢獻就是用了LSTM,當時2015年還沒人用這個,還有範例查詢,結構可以看上面的圖。對範例和我的詞都做一個LSTM提取特徵,這個過程將變長的音頻變成了等長的representation,另外在enrollment階段,作者將一個發聲(utterance)重複了三篇最後求了個平均,然後在runtime階段,通過比較Cosine distance(餘弦距離)判斷是否存在keyword。

Hello Edge: Keyword Spotting on Microcontrollers

這篇文章是斯坦福大學在2017年發表在arXiv上的文章。一作是斯坦福的學生Yundong Zhang,引用量80。這篇文章的注重點就是在微處理器上運行keyword spotting程序,內容偏綜述。比較了DNN、CNN、RNN、RCNN、DSCNN (Depthwise Separable Convolutional Neural Network)在計算量和精度上的表現,數據集爲Google speech commands dataset。結果如下:small, medium, large分別是對訓練資源的限制。

 

作者又使用了Quantization的方法,發現操作後的精度並不會有明顯的降低。最後,作者將KWS 應用部署在基於 Cortex-M7 的 STM32F746G-DISCO 開發板上,使用量化的DNN模型,KWS在運行時每次推理花費大約 12 毫秒。整個 KWS 應用佔用大約 70 KB 內存,包括大約 66 KB 用於權重、大約 1 KB 用於激活、大約 2 KB 用於音頻 I/O 和 MFCC 特徵。作者公開了源碼。

FEDERATED LEARNING FOR KEYWORD SPOTTING

這篇文章是David Leroy(搜諾思公司)在2019年的ICASSP,上發的文章,感覺創新也不是很多,但是聯邦學習最近很火,就把它放進來了。他的主要貢獻還是用了聯邦學習(FedAvg算法),數據集因爲沒有公開聯邦學習的數據集,是自己採的並且公開了,這也是一個工作量吧。模型用melfrequency cepstrum coefficients(MFCC)算法提取特徵,然後用CNN(網絡不大,就5個卷積層)。

Compressed time delay neural network for small-footprint keyword spotting

這是亞馬遜在2017年發表在InterSpeech上的文章。引用量爲38。作者在這裏將HMM和TDNN(Multi-task learning and weighted cross-entropy for DNN-based keyword spotting,)結合起來。TCNN的運算成本比CNN更小。而且用到了遷移學習,先訓練一個用於LVCSR的模型,然後用這個模型初始化KWS模型。同時還用到了多任務學習,在訓練的時候將KWS和LVCSR一起,這樣提升了效果。爲了降低運算量,用到了子採樣(sub-sampling)和SVD壓縮。

Multi-task learning and Weighted Cross-entropy for DNN-based Keyword Spotting

這篇文章同樣是亞馬遜在2016年發在InterSpeech上的文章,也是第七篇文章的前身,引用量58。就是少了TDNN和遷移學習,然後多了一個Weighted Cross-entropy(加權交叉熵損失函數),相當於損失函數多加了一項。

Unrestricted Vocabulary Keyword Spotting using LSTM-CTC

這篇是來自上海交通大學在2016年發表在InterSpeec上的文章,引用量13。他用LSTM-CTC模型(不是原創)來實現KWS。首先將提取特徵,輸入到LSTM-CTC。phone lattice generation(音素詞格生成)的方法將網絡的輸出轉換爲可搜索的phone lattice交給Hypothesis Search,從而找出和目標關鍵詞最匹配的phone序列。將這個序列的分數和閾值比較。作者另一個新穎之處在於閾值估計模塊用於根據一組訓練數據和詞典來估計不同關鍵字的不同閾值,而不是對所有關鍵字使用單個固定閾值。

Baseline用了GMM-HMM和HMM-DNN(6,7都屬於這一類,只不過本文用的基礎的)。

END-TO-END STREAMING KEYWORD SPOTTING

這篇是谷歌在2019年在ICASSP上發表的文章。他的主要貢獻是有兩點。第一,用了一個有效的記憶神經網絡拓撲SVDF(single value decomposition filter,非原創),目的是更好地利用參數和相關的計算,在DNN的深度上保存以前的激活分佈的記憶。第二個貢獻是對DNN進行端到端的訓練,生成關鍵字定位分數。Baseline就是第三篇。在精度和計算量上都有所提升。

Model compression applied to small-footprint keyword spotting

這篇文章谷歌在2016年發表在InterSpeech上的文章,引用量48。大致讀了一下,主要步驟還是特徵提取,分類器DNN,後期平滑等處理。創新點有兩點(其實都是應用),用到了低秩矩陣的乘積表示權重矩陣,第二個是用了模型蒸餾(2015年提出的)。作者其他小細節就是用到了一個變化的學習率,會不斷變小,還是就是用了分佈式訓練。

Stochastic Adaptive Neural Architecture Search for Keyword Spotting

這是Sorbonne University索邦大學,QS70左右)在2018年發表在ICASSP上的文章。選他是因爲是去年的文章,其他的文章好像都差不太多。作者的目的還是解決計算力的問題,提出用可變的網絡架構,這樣任務重的時候用較大的網絡,反則反之。細節上好像每幾層就會輸出層,可以自動選在哪一層輸出。最後實驗在性能和能耗上都有所提升

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章