口音與方言語音識別研究進展

本文總結於2021年10月30日湯志遠博士在深藍學院關於**[口音與方言語音識別研究進展]**的公開課,更多詳細內容可以參見公開課。見文末~

湯博士和大家一起分享了關於口音與方言語音識別的研究進展,並介紹了口音或方言語音識別相關的數據、基準和競賽,以及一些可行的研究方向。


口音和方言問題回顧

image.png

所謂的語音識別就是實現從語音到文本的轉換,建模方式從過去常用的DNN-HMM結構轉變到最近流行的端對端結構。這些模型的區別體現在建模單元的顆粒度,針對端對端的框架,目前比較流行的結構包括RNN-T、編碼器-解碼器、注意力機制等;而損失函數通常採用CTC或者CE。傳統的DNN-HMM如今依舊保持著一定的活力,比如TDNN模型,常採用損失函數 LF-MMI。

image.png image.png

針對語音識別,所包含的研究課題很多:

1.在數據層面,包括在深度學習興起之前的數據特徵提取,以及調整速度、音量、雜訊等方面的數據增廣,對於無標籤數據的預訓練和半監督學習方法,以及針對無數據、少數據時的Few-shot、one-shot、zero-shot等方法

2.在訓練層面,我們可以選擇多種結構或模型,以及損失函數

3.在部署時,我們要對模型進行壓縮、量化、流處理等,來加快計算。除此之外,我們還可以考慮是否可以通過多模態、多語種、多場景、多領域等來進行系統訓練,以及對於一些特定類型的語音進行識別,比如咳嗽聲、老人或者小孩的聲音等

4.此外還有一些和深度學習息息相關的通用課題,比如遷移學習、對比學習、聯邦學習等。

關於口音和方言,口音通常表現在音素層面的變動,而方言則通常有更大的偏移,比如粵語、閩南話這些。本次的分享主要關注和口音相近的方言。

image.png

口音在發音層面的不同,舉例來說,英文表現在音標和重音上,而中文則體現在聲母、韻母和音調上;而在語義層面,節奏和語氣都可能不一樣。針對口音和方言的語音識別,我們要解決的問題包括魯棒性問題,即對不同條件環境下的方言都能識別;另一個是泛化能力,即模型在一些方言上訓練之後,對於其他未見類別的方言也可以識別;此外,我們也要考慮實際應用時的部署和性能問題。

image.png image.png image.png

接下來介紹口音語音識別的相關技術。

第一種是針對特定方言和口音的語音識別。對於每一種方言,我們會部署一種模型,然後針對每種方言的識別,選擇特定的模型。此外,也可以嘗試讓機器去自動選擇對應的模型,這就是所謂的集成學習;另一種方法是用一個模型來進行所有方言的識別,通過添加不同方言的發音詞典或調整建模顆粒度的方式來提升效果;為了實現單個模型,也可以採用低層網路共享,高層網路獨立的方式。

第二種是具有一定泛化能力的口音語音識別。一種方式是採用一種發音詞典,用最常規的模型對於所有方言進行訓練;另一種方式是採用普通話訓練出的模型,針對新的方言我們會採用調參的方式提升它針對特定方言的識別效果,但這會降低其對於其他方言或者普通話的識別效果。為了保證系統在引入其他方言時系統的原有性能,我們需要採用連續學習(continual learning)的思路來保證效果。除此之外,通過在訓練時指明是哪種方言,我們可以在識別的時候提供一些額外資訊。提供資訊的一種基本方式是分析不同方言的區別,這種方法的問題在於不易量化不同方言的區別。

另一種方式是人工定義one-hot vector去區分不同的口音。比如將one-hot vector和原始特徵拼一起加在神經網路的某一層;此外還可以利用accent embedding來實現更柔性的特徵提取以及對抗學習和對比學習等方式。

還有其他一些方法,比如模型的預訓練,還有利用數據增廣等方式來實現數據擴充。

最新研究進展

接下來介紹最近發表的一些比較有潛力的方向的相關論文。

第一篇是關於集成學習的論文Multi-Dialect Speech Recognition in English using Attention on Ensemble of Export。第一步針對幾種方言預先訓練好幾種基本模型,然後,通過計算不同的權重將基本模型合成到一起,此外,這篇論文運用了多任務的方式來進行方言分類。

另一篇論文Layer-wise Fast Adaptation for End-to-End Multi-Accent Speech Recognition介紹的思路是關於Accent embedding。首先作者進行模型的預訓練,在訓練結束後進行自適應。作者通過引入了一個scale+shift的模組進行參數調整。這篇論文主要討論了scale和shift的求法,實現了對於輸入語音,通過適應器(Adapter)對原始特徵進行調整並傳入到之前的網路中。其中,適應器、scale和shift的位置都相對靈活。

另一個工作 Best of Both Worlds: Robust Accented Speech Recognition with Adversarial Transfer Learning的思路是和對抗學習有關。首先,我們需要預訓練兩個模型,分別是一個語音識別模型和一個語音口音的分類器,然後進行對抗學習。這篇論文的創新點在於針對沒有標籤的數據也可以進行訓練,不過只能更新一部分參數。

Aispeech-sjtu ASR system for the accented English speech recognition challenge 這篇論文展示了數據增廣對口音語音識別訓練的影響。除了常規的增加雜訊、擾動、速度調整,作者還增加了TTS的方式用於數據增廣。

口音語音識別相關數據、比賽

現在介紹一下語音識別相關的數據和比賽。

關於數據,很多公司的數據沒有對外開放或者需要購買,總之就是開源的資料庫不夠大,大的資料庫不開源。此外,很多的數據集是英文的,中文的相對較少。

關於相關比賽,有Oriental language recognition(OLR) challenge, 這裡面包含了四川話、上海話等識別難度較大的口音。在2020年還由中國公司舉辦了關於英文口音識別的比賽The Accented English Speech Recognition Challenge 2020。

貝殼和清華最新的合作成果KeSpeech,主要涉及到中國的官話和8種次方言。為了採集數據,針對每種方言,我們選擇了特定的城市進行採集。比如針對江淮話,我們選擇了合肥、南京、揚州幾個城市。這個數據集包含了來自34個城市27237個人的時長1542小時的數據。數據還包含了對應文本,說話人ID和口音類型等資訊。基於這些數據,我們進行了很多實驗,包括語音識別、說話人識別、方言種類識別、語音轉換等。

關於語音識別的實驗,針對各種次方言,可以分別進行建模,也可以把所有語音放到一起進行建模。實驗結果顯示,不同次方言的訓練可以相互促進。此外可以觀察到,雖然利用一種方言訓練出來的模型可以用於識別另一種方言,但是顯然沒有使用對應方言模型的效果好。

同時,我們還把模型在AIShell-1數據集上進行測試,結果顯示,我們用KeSpeech訓練後的識別效果較為合理,這說明了我們的數據提供了足夠多樣化的場景,能夠支撐一個完善的語音識別系統。

針對說話人識別,我們設計了不同條件的評測集,比如說話的時間不一樣、口音不一樣。實驗結果說明了說話人的時間、口音種類等因素會較大影響系統性能。

另一個實驗是關於次方言的分類,利用包含方言的數據集,我們可以利用說話人的語音判斷他是哪裡的人。實驗結果說明,想要完全分開還是很難的。而不同的方言之間的相近程度也不一樣。

最後一個實驗是關於跨方言的語音轉換,也就是將一種方言語音的說話人音色轉化為另一種方言說話人的音色,而實驗結果顯示這種轉換很值得進一步探究。

image.png

口音語音識別的挑戰

image.png image.png image.png

最後介紹一下口音語音識別方向的一些挑戰。目前,針對特定方言單獨建立的語音識別系統往往有更高的精度,不過當我們不確定說話人的語音類型時,accent-invariant的模型則更適合對應的場景。針對特定方言模型的方向,潛在的提升主要是針對工程方向,比如怎樣加速以及單個環節的優化。而關於accent-invariant的模型,目前關於Accent embedding的方向和對抗學習、 對比學習的方向是值得關注的。除此之外,關於預訓練的研究也很值得關注,以及解決模型自身及使用環境的不確定問題,比如面對口音輕重不同的說話人如果保證識別品質,還有就是基於上下文語義理解的語音識別也是值得關注的。

  • 感謝深藍學員何常鑫同學的整理,非常感謝湯志遠博士對本文章的審核與修改。