通用模型、全新框架,WavLM語音預訓練模型全解

2022-01-02 智察
編者按:深度神經網絡模型近年來雖然在各項語音任務上都有所進展,但卻仍依賴於大量的標註數據。而自監督訓練方法的出現和發展則在一定意義上緩解了該問題。近日,微軟亞洲研究院與微軟 Azure 語音組的研究員們在判別式自監督預訓練方法的基礎上,沿用研究院自然語言計算組在自然語言預訓練的 Transformer 模型架構,提出了全新的 Denoising Masked Speech Modeling 框架。通過94,000小時的英語語音進行預訓練,通用語音預訓練模型 WavLM 在 SUPERB 所有13項語音任務測評中超過先前所有模型,排名第一,並在其它4個不同的語音經典測評數據集上都取得了很好效果。

近兩年來,預訓練模型在自然語言處理和計算機視覺領域引起了學術界和工業界的廣泛關注。利用大規模無監督數據進行訓練的預訓練模型有著非常好的泛化性,只需在小規模標註數據上進行微調,就可以在相應任務上有所提高。雖然之前預訓練模型在語音處理領域已經取得了一些進展,但其只在語音識別任務上進行了驗證。

為此,微軟亞洲研究院與微軟 Azure 語音組的研究員們提出了通用語音預訓練模型 WavLM。通過 Denoising Masked Speech Modeling 框架,研究員們將 WavLM 適配到了17個任務上,並且都取得了非常好的效果,這使得語音預訓練模型的有效性從語音識別任務延伸到了非內容識別的語音任務。基於在94,000小時無監督的英文數據上進行訓練,WavLM 還在多個語音相關的數據集上都取得了 SOTA 的成績。目前,該模型已經開源,併集成到了 Hugging Face 的 Transformer 框架中方便使用者調用。

論文連結:

https://arxiv.org/pdf/2110.13900.pdf

開源連結:

https://aka.ms/wavlm

Hugging Face集成連結:

https://huggingface.co/microsoft/wavlm-large

生成式&判別式自監督預訓練方法

在過去的幾年中,深度神經網絡模型雖然在語音的多種任務上都取得了突破性進展,但卻依舊受制於模型訓練時所需的大量標註數據。自監督預訓練方法的出現在一定程度上緩解了這一問題。該方法先使用大規模無監督數據進行預訓練,隨後將訓練好的模型在小規模標註數據上進行微調。已有研究表明,使用自監督預訓練可以提升多種語音任務的性能。

根據預訓練目標的不同,自監督預訓練方法可分為生成式和判別式。生成式包括通過連續或離散的隱變量還原原始的語音特徵,比如自編碼器可以預測未來時刻或被掩碼遮蓋的語音特徵。而判別式則通過對比學習或者預測離散化索引(id)的方式對模型進行預訓練,例如 wav2vec2.0 和 HuBERT。將 wav2vec2.0 和 HuBERT 兩種方法在6萬小時的數據上進行預訓練後,可以發現其在語音識別數據集 Librispeech 上取得了 SOTA 的性能。這兩種方法均使用了聲波作為模型輸入,並通過 CNN 模塊進行降採樣,降採樣後的特徵被隨機遮蓋(mask)並輸入進 Transformer 編碼器。wav2vec2 使用了對比學習進行模型訓練,通過引入一個向量量化器(vector quantizer)對未遮蓋的 CNN 輸出進行離散化,並在被遮蓋位置的 Transformer 的輸出表示上計算 InfoNCE 損失,其中正樣本來自該位置離散化後的向量,負樣本來自於該語音序列中其他位置的離散化向量。而 HuBERT 則借鑑了 BERT 當中的 mask language model 的損失函數,並使用 Transformer 預測被遮蓋位置的離散 id 來訓練模型。HuBERT 使用了迭代的方式生成訓練目標,即每一幀的離散 id。微軟亞洲研究院的研究員們首先對語音的 MFCC 特徵進行了 k-means 聚類來生成學習第一代 HuBERT 模型的離散 id,隨後對已訓練好的上一代模型的輸出表示進行聚類並生成新的id來進行下一輪次的學習。

即便 wav2vec2.0 和 HuBERT 取得了非常好的進展,但它們的性能只在語音識別任務上進行了驗證,並且只能夠處理單一說話人的任務,而在說話人分離等多說話人的任務上表現欠佳。此外,由於這兩個模型使用了有聲電子書 LibriLight 數據集作為預訓練集,所以使得模型在域外下遊任務上的表現並不理想。

全新的 Denoising Masked Speech Modeling 框架

沿用微軟亞洲研究院自然語言計算組在自然語言預訓練的 Transformer 模型架構,研究院的研究員們提出了Denoising Masked Speech Modeling 的預訓練方案。如下圖所示,WavLM 模型包含了一個卷積編碼器(CNN Encoder)和一個 Transformer 編碼器。其中,卷積編碼器共有7層,每層包含一個時域卷積層、一個層規範化層和一個 GELU 激活函數層。在 Transformer 編碼器中,研究員們使用了門控相對位置編碼(gated relative position bias),從而將相對位置引入到了注意力網絡的計算中,以便更好地對局部信息進行建模。在訓練中,WavLM 會隨機地對輸入 wav 進行變換,例如:將兩個 wav 進行混合,或者加入背景噪音。之後,再隨機遮蓋約50%的音頻信號,並在輸出端預測被遮蓋位置所對應的標籤。WavLM 沿用了 HuBERT 所提出的思想,通過 Kmeans 方法將連續信號轉換成離散標籤,並將離散標籤當作目標進行建模。形式化來講,給定輸入語音 X ,首先抽取其標籤 Y,之後對 X 進行加噪和掩碼,生成 X ̂ ,而 Transformer 模型需要通過輸入 X ̂  來預測被掩碼位置的標籤 Y。

圖1:WavLM 模型網絡結構

大規模訓練數據

WavLM 使用了94,000小時英語語音進行了預訓練,這是目前開源英文模型使用的最大規模訓練數據。來自於不同領域的大規模無監督語音數據有助於 WavLM 提高模型的魯棒性。以往的研究大多只使用 LibriSpeech 或 LibriLight 數據集進行預訓練,由於輸入數據都是從有聲讀物中提取的,所以限制了預訓練模型的泛化能力。而且電子書中的語音環境與真實場景中的有所不同,真實場景往往伴隨著更多的噪音。

因此,研究員們使用了額外兩個數據集擴展訓練數據:

(1) 10,000小時的 GigaSpeech 數據,收集自電子書、播客和 YouTube,其內容涵蓋藝術、科學、體育等多種主題。

(2) VoxPopuli 數據。這是一個大規模的多語言未標記音頻數據集,由23種語言,超過40萬小時的音頻組成,收集自2009-2020年歐洲議會(EP)錄音。研究員們只使用了 VoxPopuli 中24,000小時的英語數據進行預訓練。

再加上 LibriLight 的電子書數據,研究員們總共收集了94,000小時的數據(包括 LibriLight、VoxPopuli 和 GigaSpeech)。微軟亞洲研究院的研究員們相信,豐富的數據集可以提高模型的魯棒性,因為其包含不同的音頻背景、更多的揚聲器和不同的內容。研究員們將數據集稱為 Mix 94k hr 以簡化描述。

SUPERB(13項語音任務測評)

Speech processing Universal PERformance Benchmark (SUPERB)是由臺灣大學、麻省理工大學,卡耐基梅隆大學和 Meta 公司聯合提出的評測數據集,其中包含了13項語音理解任務,用於評測預訓練模型的性能好壞。13項任務包括了:Speaker Identification(說話人識別)、Automatic Speaker Verification(說話人驗證)、Speaker Diarization(說話人日誌)、Phoneme Recognition(音素識別)、Automatic Speech Recognition(語音識別)、Keyword Spotting(關鍵詞檢測)、Query by Example Spoken Term Detection(QbE)、Intent Classification(意圖分類)、Slot Filling(對話理解槽填充)、Emotion Recognition(情緒識別)、Speech Separation(語音分離)、Speech Enhancement(語音增強)和 Speech Translation(語音翻譯)。

在微調模型的過程中,不允許更新預訓練模型的參數,以此來衡量預訓練模型是否可以在預訓練中學習到對應信息。測評結果顯示,WavLM 超越了之前的預訓練模型,並且用更少參數的 base 模型超越了之前最好的 HuBERT large 模型。

圖2:WavLM 在 SUPERB Leaderboard 上的表現

說話人驗證(Speaker Verification)

Speaker Verification 任務主要是驗證兩段聲音是否為同一人所說,在語音領域有著重要的應用。研究員們使用 VoxCeleb 2 作為訓練集,並在 VoxCeleb 1 上進行測試,測試集分為三個 :Vox1-O、Vox1-E 和 Vox1-H。在該任務中,研究員們選用了經典的 ECAPA-TDNN 作為下遊模型,證明了預訓練模型可以極大程度地降低說話人驗證任務的錯誤率。

表1:WavLM 在說話人驗證任務 Vox1-O, Vox1-E 和 Vox1-H 上的表現

可以看到,在使用預訓練模型之後,ECAPA-TDNN 模型的等錯誤率(Equal Error Rate)相對下降了超過50%,極大提升了模型的準確率;並且,在這個任務中 WavLM 依舊比 HuBERT 模型有著更好的效果。

由於在 Speaker Verification 任務上極好的表現,Hugging Face 使用 WavLM 作為種子進行 finetuning,製作了一個在線 Demo,檢測兩段語音是否來自同一說話人。

Demo 連結:

https://huggingface.co/spaces/microsoft/wavlm-speaker-verification

說話人日誌(Speaker Diarization)

說話人日誌(Speaker Diarization)任務也被稱為聲紋分割聚類、說話人分割聚類,解決的主要問題是「什麼時候,誰在說什麼話」。即給定一個包含多人交替說話的語音,該任務需要判斷每個時間點分別是誰在說話。比如,對於一段客戶與客服的通話記錄,該任務需要知道哪些時間段的聲音是客戶說的,哪些時間段的聲音是客服說的。

表2:WavLM 在說話人日誌任務 CALLHOME 數據集上的性能

研究員們使用 CALLHOME 數據集對模型進行了測評,並選取了 EEND-vector clustering 作為 Diarization 的整體 pipeline,其分為說話人向量抽取以及聚類模塊。從實驗結果可以看出,WavLM 模型可以極大地降低說話人日誌的錯誤率(Diarization error rate)。

語音分離(Speech Separation)

語音分離(Speech Separation)任務的目標是將一段含有多人的語音進行分離,保證輸出每一個源只包含一段來自一個人的語音。研究員們利用 LibriCSS 數據集對語音分離任務進行了評測,該數據集會使用 ASR 模型測試語音分離模型分離出音頻的詞錯率(WER)。研究員們選取了 Conformer 模型當作 Downstream 模型,實驗結果如下圖所示:

表3:WavLM 在語音分離任務 LibriCSS 數據集上的性能

可以看到,WavLM 可以極大地提高分離模型輸出的音頻質量,在40% overlap 以及0 overlap 時候,都超過了基線的性能。

語音識別(Speech Recognition)

語音識別 (Speech Recognition)任務的目標是將一段語音轉化為文字。在該任務中,研究員們使用了 Librispeech 數據集來驗證 WavLM 的預訓練效果,該數據集共包含960小時的有聲電子書錄音。研究員們考慮了四個大小不同的有監督子集進行微調:train-1h, train-10h, train-clean-100h 和全部960h Librispeech,並在標準測試集 test-clean 和 test-other 上進行比較。下表展示了在1h、10h和100h上的結果,可以看到在沒有語言模型的情況下,WavLM 明顯超越了 wav2vec2.0 的結果。在加上不同語言模型聯合解碼的情況下,WavLM 的結果與 wav2vec2.0 和 HuBERT 的結果相當,甚至更好。

表4:WavLM 在語音識別任務 Librispeech 數據集1h、10h和100h上的結果

下表展示了在整個960h Librispeech 數據集上進行微調的結果。結果顯示,WavLM 超過了所有有監督訓練模型,並且取得了和 wav2vec2.0 與 HuBERT 相當的結果。該實驗結果表明,雖然 WavLM 在預訓練時引入了帶有人工噪聲和多說話人的輸入,提升了其在多說話人任務上的性能,但並沒有損害該模型在單說話人語音識別任務上的性能,反而在多個微調子集場景下超過基線,展示了 WavLM 預訓練的有效性。

表5:WavLM 在語音識別任務 Librispeech 數據集960h上的結果

未來,微軟亞洲研究院的研究員們會繼續探索如何訓練更大規模的模型以達到更好的性能,並探究模型的壓縮方法,使得模型可以在低資源設備上快速推斷。此外,研究員們還會就如何將大規模無監督語音數據和文本數據進行聯合訓練等問題進行更多的探討和研究。


相關焦點

  • 預訓練模型遷移學習
    在計算機視覺領域中,遷移學習通常是通過使用預訓練模型來表示的。預訓練模型是在大型基準數據集上訓練的模型,用於解決相似的問題。由於訓練這種模型的計算成本較高,因此,導入已發布的成果並使用相應的模型是比較常見的做法。2、卷積神經網絡(CNN)在遷移學習中,常用的幾個預訓練模型是基於大規模卷積神經網絡的(Voulodimos)。
  • NLP預訓練模型大集合!
    近日,Separius 在 GitHub 上列舉了一系列關於 NLP 預訓練模型的近期論文和文章,力求全面地概述 NLP 各個方面的最新研究成果,包括詞嵌入、池化方法、編碼器、OOV 處理等。GitHub 地址:https://github.com/Separius/awesome-sentence-embedding通用框架幾乎所有句子嵌入的工作原理都是這樣的:給出某種詞嵌入和可選編碼器(例如 LSTM),句子嵌入獲取語境詞嵌入(contextualized word embedding)並定義某種池化(比如簡單的
  • 深度 | 通過NMT訓練的通用語境詞向量:NLP中的預訓練模型?
    本文先描述了如何訓練一個帶注意力機制的神經機器翻譯,其次描述了如何抽取該模型的通用詞向量與將其應用於其它任務的性能。對於自然語言處理中的大多數問題而言,理解語境是很有必要的。為了生成一句英文的德語翻譯,翻譯模型需要理解英文句子中的單詞是如何組織在一起的。為了知道哪些單詞是最重要的,文本摘要模型也需要語境。執行語義情感分析的模型需要理解如何挑選出能夠改變一句話的情感的關鍵詞。
  • 天池NLP中文預訓練模型賽來了!
    自從2017年具有劃時代意義的Transformer模型問世以來,短短兩年多的時間內,如雨後春筍般的出現了大量的預訓練模型,比如:
  • 哈工大訊飛聯合實驗室發布中文ELECTRA預訓練模型
    由谷歌與史丹福大學共同研發的最新預訓練模型ELECTRA因其小巧的模型體積以及良好的模型性能受到了廣泛關注。
  • PTMs| 2020最新NLP預訓練模型綜述
    該綜述系統地介紹了nlp中的預訓練模型。主要的貢獻包括:1.深入盤點了目前主流的預訓練模型,如word2vec,ELMo,BERT等。2. 提出了一種預訓練模型的分類體系,通過四種分類維度來劃分目前已有的預訓練模型。
  • ICLR 2020 | NLP 預訓練模型的全新範式:對比學習
    這是因為,判別式模型通常不是直接擬合原有的分布流形,學習到的特徵較為單一。但是,最近一些工作的基於對比學習的自監督學習框架,表現十分出色。長期以來,預訓練語言模型(PTM)專注於基於最大似然估計(MLE)的目標任務,也就是採用的「生成式模型(Generative Model)」。例如 BERT 的目標任務就是一個典型的 MLE:生成式模型有著其天生的優勢,即學習到豐富的特徵。
  • 中文ELECTRA預訓練模型再升級
    在今年3月,哈工大訊飛聯合實驗室推出了中文ELECTRA預訓練模型,並將相關資源進行開源,目前在GitHub上已獲得580個star。本次更新中,我們將預訓練語料從原有的約20G提升至180G,利用接近9倍大小的數據集。
  • 預訓練永不止步,遊戲問答語言模型實操
    在這種背景下,預訓練應運而生,該技術可以從大量無標註數據中進行預訓使許多 NLP 任務獲得顯著的性能提升,大批的預訓練模型也相繼開源了。但是由於場景的偏差,通用的預訓練模型通常無法在垂直領域取得理想的效果,在我們的實際業務中同樣也遇到了這個問題, 為了能進一步提升業務下遊任務的性能,將大量無標籤領域數據價值發揮到最大,我們嘗試在遊戲問答場景下自研預訓練模型 [1],主要遇到的挑戰是如何在預訓時引入更多的知識。
  • 中文預訓練模型ERNIE超詳細使用指南
    2、ERNIE源碼淺嘗Okay,當我們了解了ERNIE模型的大體框架及原理之後,接下來就可以深入理解一下具體的實現啦。將處理完成的數據和前面下載好的預訓練模型參數放置到合適的位置,就可以開始寫我們跑模型的腳本文件了:
  • OpenCV+深度學習預訓練模型,簡單搞定圖像識別 | 教程
    而OpenCV最近一次版本更新,為我們帶來了更好的深度學習支持,在OpenCV中使用預訓練的深度學習模型變得非常容易。pyimagesearch網站今天發布了一份用OpenCV+深度學習預訓練模型做圖像識別的教程,量子位編譯整理如下:最近,OpenCV 3.3剛剛正式發布,對深度學習(dnn模塊)提供了更好的支持,dnn模塊目前支持Caffe、TensorFlow、Torch、PyTorch等深度學習框架。
  • 開源一年多的模型交換格式ONNX,已經一統框架江湖了?
    這相當於一種通用的計算圖,不同深度學習框架構建的計算圖都能轉化為它。如下所示,目前 ONNX 已經支持大多數框架,使用這些框架構建的模型可以轉換為通用的 ONNX 計算圖和 OP。現階段 ONNX 只支持推理,所以導入的模型都需要在原框架完成訓練。
  • 按照時間線幫你梳理10種預訓練模型
    用語言模型進行預訓練做下遊任務時,從預訓練網絡中提取對應單詞的網絡各層的Word Embedding作為新特徵補充到下遊任務中。 OpenAI在之後又提出了GPT-2模型,論文為《Language Models are Unsupervised Multitask Learners》,結構與GPT-1相似(依然採用transformer的encoder),但是採用多任務預訓練+超大數據集+超大規模模型,所以有更好的性能表現,但是參數也增加了更多。
  • NLP專欄|圖解 BERT 預訓練模型!
    BERT模型打破了基於語言處理的任務的幾個記錄。在 BERT 的論文發布後不久,這個團隊還公開了模型的代碼,並提供了模型的下載版本,這些模型已經在大規模數據集上進行了預訓練。這是一個重大的發展,因為它使得任何一個構建構建機器學習模型來處理語言的人,都可以將這個強大的功能作為一個現成的組件來使用,從而節省了從零開始訓練語言處理模型所需要的時間、精力、知識和資源。
  • 哈工大訊飛聯合實驗室發布法律領域ELECTRA預訓練模型
    哈工大訊飛聯合實驗室發布的中文ELECTRA系列預訓練模型再迎新成員。我們基於大規模法律文本訓練出中文法律領域ELECTRA系列模型,並且在法律領域自然語言處理任務中獲得了顯著性能提升。歡迎各位讀者下載試用相關模型。
  • albert-chinese-ner使用預訓練語言模型ALBERT做中文NER
    向AI轉型的程式設計師都關注了這個號👇👇👇機器學習AI算法工程   公眾號:datayx這次的albert某種程度上可能比bert本身更具有意義,恰逢中文預訓練模型出來AI項目體驗地址 https://loveai.techalbert_zh海量中文語料上預訓練ALBERT模型:參數更少,效果更好。
  • 26億參數,智源、清華開源中文大規模預訓練模型
    近日,北京智源人工智慧研究院和清華大學研究團隊聯合發布了以中文為核心的大規模預訓練語言模型 CPM-LM,參數規模達 26 億,預訓練中文數據規模 100 GB。自 2018 年穀歌發布 BERT 以來,預訓練模型在自然語言處理(NLP)領域逐漸成為主流。今年 5 月份,OpenAI 推出的史上最大 AI 模型 GPT-3 更是引起了大量討論。
  • Facebook發布開源Caffe2深度學習框架,順應跨平臺模型訓練的新趨勢
    Facebook AI平臺工程主管賈揚清(Yangqing Jia)對此發表評論,認為與之前適合進行研究和實驗的PyTorch框架不同,Caffe2更偏向於工業級的移動應用。一直以來,深度神經網絡和人工智慧模型的訓練,包括圖像、視頻、文本和語音等各種信息的處理通常要在數據中心或超級計算機的支持下才能完成。
  • 史上最強 NLP 預訓練模型 BERT 終於開源了!
    ,該預訓練模型能高效抽取文本信息並應用於各種 NLP 任務,該研究憑藉預訓練模型刷新了 11 項 NLP 任務的當前最優性能記錄。如果這種預訓練方式能經得起實踐的檢驗,那麼各種 NLP 任務只需要少量數據進行微調就能實現非常好的效果,BERT 也將成為一種名副其實的骨幹網絡。今日,谷歌終於放出官方代碼和預訓練模型,包括 BERT 模型的 TensorFlow 實現、BERT-Base 和 BERT-Large 預訓練模型和論文中重要實驗的 TensorFlow 代碼。
  • FinBERT: 金融領域的預訓練語言模型
    今天介紹一個使用金融領域語料訓練的BERT模型:FinBERT,出自IJCAI 2020的論文"FinBERT: A Pre-trained Financial Language Representation Model for Financial Text Mining[1]"如上圖所示,這篇論文,簡單來說就是用了BERT的模型和ERNIE2