語音評測技術在古文背誦中的應用

語言: CN / TW / HK

文 | 王洲,王強強

1. 背景

口語環節正在語言類教育課程中獲得更多重視,一對一的師生交流和指導是提高口語水平最有效的方式,但該方式很難滿足數量眾多的口語學習者需求。得益於計算機技術和語音評測技術的突飛猛進,計算機輔助語言學習(Computer Assisted Language Learning)技術應運而生,各種基於人工智慧技術的口語評測方案相繼落地。包括朗讀,背誦,複述,自由表達等多種方式,它為學生提供了額外的學習機會和充足的學習材料,能夠輔助或者替代教師指導學生進行更有針對性的發音練習,指出學生的發音錯誤,提供有效的診斷反饋資訊,並評估學生的整體發音水平,從而切實提高學生的口語學習效率和口語水平。

2. 語音評測技術簡介

2.1 評價指標

發音評測維度包括髮音的準確率,流暢度,完整度,韻律,語調等

準確度:體現使用者的發音水平。

流利度:體現使用者朗讀流暢程度,和語速、停頓次數相關。

完整度:體現使用者發音正確的單詞佔比。

單詞得分:句子中每個單詞的得分。

句子得分:段落中每個句子的得分。

總分:評測整體得分,綜合上面分數獲得,準確度對總分影響最大。

口語好壞的評價是主觀的,人工專家根據自身的專業知識及經驗,在各個維度按照優、良、中、差、劣等級進行打分,不同的專家會得出不同的結果。評價機器口語評測系統是否靠譜,一般採用相關係數(Pearson correlation coefficient),一致性(kappa coefficient)等指標來衡量打分系統的效能。與專家打分越接近,系統越靠譜。但有多靠譜,需要有參照物,通常會用平均的人與人之間的相關性來作為參照,目前的人機相關性、一致性已經超過了人與人之間的平均相關性,一致性。語音評測技術已被普遍使用在中英文的口語評測和定級中。

2.2 技術框架

語音評測目前的主流方案是基於隱馬爾科夫-深度神經網路(Hidden Markov Model,HMM,Deep Neural Networks, DNN)模型獲得語音後驗概率,與評測文字強制對齊(force alignment)後,使用 GOP(Goodness of Pronunciation)方法進行打分,流程如下圖所示。

1) 聲學特徵提取:語音訊號在一幀(frame)觀察視窗內平穩,將切分後的時域片段訊號轉換到頻域,獲得 MFCC(13 維或 40 維),Fbank(80 維)等特徵,一幀是語音序列的最小單元。在 GMM(Gaussian Mixture Model)模型中,使用 MFCC 特徵,是因為 GMM 的協方差估計使用了對角矩陣,輸入特徵需要保證每一幀的元素之間相互獨立。DNN 模型中,特徵可以是 MFCC 或 Fbank 特徵;

2) HMM-GMM 無監督聚類:該過程用來獲取幀標籤(Frame-wise label)進行後面的 DNN 訓練。HMM 對語音的時序約束、依賴進行建模,GMM 屬於生成模型,對 HMM 的觀察概率(屬於各個音素的概率)進行建模。語音的標註通常是單詞序列,每一幀對應哪個音素提前是不知道的。GMM 通過相似度聚類,同一個音素的相鄰各幀歸為同一類,獲得音素的 duration、邊界資訊。目前語音訊號中對齊演算法主流依舊是 HMM-GMM,其它演算法 ctc,attention 對齊都有各自的問題,ctc 的尖峰,attention 的時序無約束問題。

3) DNN 判別學習: GMM 聚類效果尚可,但 GMM 對音素建模能力有限,無法準確的表徵語音內部複雜的結構。通過 DNN 取代了 GMM 來進行 HMM 觀察概率的輸出,可以大大提高準確率。DNN 模型的最後一層使用 softmax 進行軟分類,交叉熵 loss 進行訓練,DNN 的輸出稱為後驗概率 (phonetic posteriorgrams,PPG)。

用一個例子來說明 DNN 的輸出,假設有 5 幀語音特徵, 發音內容為“er_3 d uo_0”, 取[sil,er_3,d,uo_0,uo_3]PPG 如下:

t=0 t=1 t=2 t=3 T=4
silence 0.000642592 0.000140824 0.00159322 0.000408508 0.000139842
er_3 0.921272 0.951229 0.00433515 0.000102055 2.64567e-05
d 9.54412e-05 3.59278e-05 0.99104 0.00361378 0.000125777
uo_0 4.05391e-08 9.72481e-08 1.68864e-05 0.657704 0.805735
uo_3 2.57155e-06 1.67952e-06 2.26939e-06 0.00039882 0.000163778

在 t=0 第一幀,er_3 的概率 0.921272 最大。

4) 評測文字構建 hmm 解碼圖,約束文字時序關係:

對於上面的評測文字“er_3 d uo_0”, 我們要評價每個音素的發音正確性,也要保證時序性,如果使用者讀的是“d uo_0 er_3”每個音都對,但時序是錯誤的,為了約束這種時序關係,我們定義瞭如上的 HMM 結構。狀態 0 到 1,1 到 2,2 到 3, er_3,d,uo_0 每個音至少發生一次,狀態 1,2,3 上面每個都有自旋,表示該音素可以重複發生。

5) Viterbi 解碼獲得強制對齊結果

首先我們將 PPG,表示成狀態轉移圖,如下圖所示,有六個狀態,狀態之間的弧表示各個音素及音素的後驗概率,0 粗線圓圈代表開始狀態,5 雙圓圈代表結束狀態。如果音素個數為 C,幀數為 T,則弧路徑個數為

DNN 的後驗概率轉移圖,通過評測文字 HMM 解碼圖的約束,在條路徑中,只剩下構成“er_3 d uo_0”的路徑及相應的 score。使用 Viterbi 演算法我們可以高效獲得 score 最大路徑。上圖中 Viterbi 最優路徑[er_3, er3, d, uo_0, uo_0] ,也就是強制對齊結果。

6) GOP 準確度打分,Averaged Frame-level Posteriors[1]:

是 DNN 模型 softmax 的輸出,是 t 時刻語音幀,是 force alignment 後 t 時刻的對齊音素。是音素的開始和結尾。

GOP(er_3)=(0.92+0.95)/2

GOP(d) = 0.99

GOP(duo_0)=(0.65+0.80)/2

7) 整體打分

獲得音素的準確度打分,離最終的單詞,句子,整體打分還有距離。評測任務最後都會接一個打分模型,使用音素的 GOP 分數,流利度等特徵擬合到專家分數。2021 年騰訊提出一種將聲學模型中的深層特徵[2],而不是 GOP 特徵傳遞到打分模組中,該模組基於注意力(attention)機制,考慮句子中不同粒度之間的關係,獲得了更優的整體評分。

作業幫目前基於特徵提取工程,收集了包括 GOP 分數,元子音,詞性,聲調,發音時長,流利度等多維度資訊,通過神經網路模型強擬合能力,預測單詞,句子的分數結果,整體打分效果跟人工打分取得了較高的一致性。

3. DNN 聲學模型的改進

3.1 conformer 模型

Conformer 是 Google 在 2020 年提出的語音識別模型,基於 Transformer 改進而來,主要的改進點在於 Transformer 在提取長序列依賴的時候更有效,而卷積則擅長提取區域性特徵,因此將卷積應用於 Transformer 的 Encoder 層。Conformer 的 Encoder 模型由多個 encoder_layer 疊加而成,每個 encoder_layer 由 feed-forward ,multi-head self-attention,convolution,feed-forward 組成。

在流式評測任務中,隨著使用者的朗讀,需要實時快速的返回評測結果,直接使用 conformer 模型進行流式評測,會遇到以下問題:

1) 由於 attention 機制,每一幀資料需要看到全部資料做 weight 計算,隨著語音時長的增加,計算複雜度和記憶體儲存開銷會越來越大;

2) 為了提高幀的識別準確率,每幀會向前看幾幀資料,隨著 encoder_layer 的增加,向前看資料量就會累加,這會造成很大的延遲;

3.2 基於塊(chunk)的 mask 流式解決方案[3]

如上圖所示,相鄰三幀為一個 chunk,通過 mask 掉一些資料,attention 作用在當前 chunk 和前一個 chunk 中,當前 chunk 中的每一幀對右邊的視野依賴最多兩幀,平均時延為一幀時長,在每個 encoder_layer 層,對歷史資料的依賴最多五幀。通過 mask 機制犧牲掉一些 attention 帶來的收益,換取流式低延遲作為妥協。

conformer 中的卷積模組也使用了因果卷積,避免右邊視野的累積。通過以上的改進,conformer 勝任了流式評測任務,時延在 300ms 左右。

4. 古文背誦應用中的特殊處理

如上圖所示,學生在手機應用中選擇古文進行背誦,螢幕上就會實時顯示背誦情況,正確染成黑色,有發音錯誤,染成紅色。背誦後給出整體的評分報告,以此幫助學生檢查和進行背誦練習。

多分支評測:古文背誦中,評測文字一般為一首詩,或古文的一段,包含了多句話。評測文字的解碼圖需要以句子為單位,支援句子的重複讀(家長領讀,小孩跟讀),跳讀(可以往前跳,也可以往後跳讀)

為了關注句子級別的構圖關係,上圖做了簡化,將音素改為字,去掉字的跳讀,重複讀等弧。0 為開始狀態,1 是結束狀態,到達結束狀態可以繼續回到開始狀態,開始下一句的背誦,每句背誦前面會有一個句子標識“ 1”等,通過該標識,我們可以知道當前使用者讀到了那一句,方便染色。

上面的構圖方式在一些詩句背誦中遇到問題,當詩句中存在重複詩句,或開頭相似的句子。當回到開始狀態 0 時,由於每條路徑都是等概率的。會出現如下的現象:

t $0江南可採蓮,$1蓮葉何田田,$2魚戲蓮葉間
t+1 $0江南可採蓮,$1蓮葉何田田,$2魚戲蓮葉間,$2魚
t+2 $0江南可採蓮,$1蓮葉何田田,$2魚戲蓮葉間, $2魚戲
t+3 $0江南可採蓮,$1蓮葉何田田,$2魚戲蓮葉間, $2魚戲蓮
t+4 $0江南可採蓮,$1蓮葉何田田,$2魚戲蓮葉間, $2魚戲蓮葉
t+5 $0江南可採蓮,$1蓮葉何田田,$2魚戲蓮葉間, $3魚戲蓮葉東
t+6 $0江南可採蓮,$1蓮葉何田田,$2魚戲蓮葉間, $3魚戲蓮葉東,$2魚

在 t+1 時刻讀完了第二句,應該開始第三句“$3 魚”的染色,但由於等概率,及順序問題,仍然會走 $2 路徑,當 t+5 時刻讀到“東”,路徑會突然跳轉到“$3 魚戲蓮葉東”。使用者的體驗就是,讀完第二句一直不染色,讀到“東”,立馬第三句整句染色,影響體驗。

解決方案:如下圖所示,每一句讀完新增到下一句的弧,例如狀態 7 到 8 新增空邊,第一句讀完可以走第二句路徑,或者回到起始狀態,但新增懲罰(比如 0.5)。這樣就可以保證古文多句的順序讀,但又保留了足夠的自由度,允許重複讀,跳讀。

5. 評測引擎本地化

評測服務在部署階段遇到了如下問題:

1) 課堂場景應用評測技術會帶來超高併發,直播課場景,老師下發題目後學生幾乎是同一時刻做答,併發量瞬間達到幾萬,要保證使用者在短時間內儘快拿到打分結果,不能通過訊息佇列非同步處理,只能提前為每個連線準備資源,需要大量的伺服器資源支撐。

2) 網路傳輸有一定的時延,對於需要做實時染色的評測服務,會感覺到染色時延,體驗較差。

3) 語音評測需要建立長連結,使用者的網路有波動,但是語音評測服務要實時返回結果,無法快取,會造成一定程度的評測失敗。

為了解決這些問題,我們考慮開發本地評測方案,相比雲端,本地評測具備以下優勢:低延遲:節省了網路請求的延遲,優化了使用者體驗。安全性:更好的保護使用者隱私資料。更穩定:消除了網路波動對服務的影響。節約雲端資源:根據不同的本地算力,與雲端推理結合,從而降低對雲端算力的壓力。

作業幫語音評測技術經過數輪迭代,在保證效果的前提下,conformer 模型通過裁剪以及量化等處理,壓縮到 10M 以內,極大降低了端的算力要求。

作業幫使用者體量比較大,部分使用者使用的手機配置較低,難以進行端上計算,為了給所有使用者帶來好的體驗,我們採用了端雲一體解決方案,如下圖所示。為了結合“端”和“雲”的優勢,在評測時,服務判斷端上算力,對於較高算力的裝置,評測是在“端”上完成;對於較低算力的裝置,評測是在“雲”上完成。在“端”的解決方案中,能提供 PC、手機、平板電腦、學習筆等多型別的硬體裝置;跨平臺支援 iOS,安卓、Windows、鴻蒙、Linux 等作業系統。

使用端雲一體方案後,延時從原來的 200ms 降低到 50ms 以內,使用者體驗明顯提升。同時釋放了大量服務端資源,服務端資源佔用降低為原有的 20%。

6.技術總結展望

語音評測技術和語音識別任務非常類似,近些年都獲得了快速發展,語音識別中各種端到端演算法不僅簡化了訓練流程,同時降低了整體錯誤率。評測技術也從原來的 HMM-GMM 升級到 HMM-DNN,準確率大幅提升。

但在語音評測中 GMM 依舊是非常核心,必不可少的演算法模組,通過 GMM 良好的聚類能力,音素的邊界資訊被提取出來。但能否通過神經網路直接獲得對齊資訊,大家有在各種嘗試,interspeech2021 會議論中 Teytaut 通過 ctc 與 Auto-Encoder 的結合獲得了優於 GMM 的對齊效果[4],ICASSP2022 會議論文中位元組跳動提出了基於雙向注意力神經網路強制對齊(Forced Alignment)模型 NeuFA[5]。生成模型 Auto-Encoder,Variational Auto-Encoder,以及 attention 機制都有不錯的對齊潛力,語音評測技術如果能借鑑這些方法實現完全的端到端訓練,準確度有機會進一步提高。

Reference:

[1] A New DNN-based High Quality Pronunciation Evaluation for

Computer-Aided Language Learning (CALL)

[2] Deep feature transfer learning for automatic pronunciation assessment

[3] Developing Real-time Streaming Transformer Transducer for Speech Recognition on Large-scale Dataset

[4] Phoneme-to-audio alignment with recurrent neural networks for speaking and singing voice

[5] NeuFA: Neural Network Based End-to-End Forced Alignment with Bidirectional Attention Mechanism

作者介紹

作業幫語音技術團隊成立於 2018 年,積累了語音識別、語音評測、語音合成、聲音克隆、聲紋識別、語音降噪等技術。提供整套語音技術解決方案,支撐整個公司的語音技術需求。

王強強 作業幫語音技術團隊負責人。 負責語音相關演算法研究和落地,主導了語音識別、評測、合成等演算法在作業幫的落地實踐, 為公司提供整套語音技術解決方案。

王洲 作業幫語音演算法工程師, 在語音識別、語音評測、話者分離領域有豐富的落地經驗,開發的演算法模組支撐了智慧質檢、趣味古詩等多項業務。