前言
「語音處理」是實時互動領域中非常重要的一個場景,在聲網發起的「RTC Dev Meetup丨語音處理在實時互動領域的技術實踐和應用」 活動中,來自百度、寰宇科技和依圖的技術專家,圍繞該話題進行了相關分享。
本文基於依圖 AI SaaS 技術負責人周元劍在活動中分享內容整理。關注公眾號「聲網開發者」,回覆關鍵詞「DM0428」 即可下載活動相關 PPT 資料。
依圖是一家做 AI 基礎設施和 AI 解決方案的提供商,擁有的 AI 技術能力相對比較廣泛,包括圖片、視訊、語音、自然語言處理等,除具備 AI 演算法能力外,也能提供 AI 算力。
大家瞭解依圖的背景後,我來說下依圖在直播場景下遇到的與音訊內容稽核相關的挑戰。
01 直播內容稽核的業務流程
■圖 1
圖 1 展示了直播場景下內容稽核的業務流程。
基本過程是:主播先上麥直播,然後流就會被推送到平臺,平臺將稽核請求發給供應商,稽核的供應商(比如依圖)通過地址獲取流,並對其進行解碼,實時分析找出違規的內容,再通過回撥形式把資料返回給客戶。客戶收到資料後,一般需要進行二次的人工複核,如果確認是違規內容,那麼就會進行後臺處理,比如停止直播或者刪除賬號等。
02 直播音訊稽核演算法模組
將系統內部的演算法模組展開,如圖 2 所示可以分為這三類,一類是基礎的語音識別( ASR );第二類是文字分類,主要用於根據識別出的文字判斷其中包含哪些違規內容。第三類是非語言識別,如果違規內容不是通過文字來表達的,就可以通過這部分進行識別。
■圖 2
2.1 語音識別( ASR )技術難點
首先介紹在 ASR 中遇到過的挑戰。
總體來說,主要遇到的挑戰有兩點:第一點是強背景音的干擾,在網際網路的語音場景下,通常伴有背景音樂或者遊戲音效,環境一般比較嘈雜,甚至還會存在多人說話的情況,相比普通場景,這些特點疊加起來的語音識別難度會大大增加。
第二點是特定專有詞的識別。某些違規詞彙在生活中不經常出現,所以在語音識別的時候,如果沒有進行專門的優化,會傾向於把音節識別成更常見的詞,從而導致違規詞的漏報。
2.1.1 強背景音效能優化
那麼,如何應對這樣的問題呢?針對強背景干擾問題,我們經過各種嘗試,總結下來最有效的方法是從資料方面進行解決。
資料方面主要有兩個優化:第一個是根據業務場景來建立一個比較精細的環境音模擬器,通過模擬器進行資料增強,這種方法在其他領域已經得到過驗證,比如特斯拉的自動駕駛模型在訓練過程中也是採用類似的技術來提升效能。
依圖從發聲模擬、房間模擬、收聲模擬、通道模擬等多個維度構建了一個模擬器。在每個維度下可以進行引數調整,比如說話人的數量、語速語調或者背景音、聲源的位置方向、失聲效果、混響等。總體來說,大概有上百種引數可以進行調整。通過模擬器可以改善原來相對比較簡單的訓練資料的豐富度,使訓練資料更貼近特定的場景,從而取得不錯的效能提升效果。
另一個提升手段就是通過難例挖掘來進行訓練 。在正常模型的訓練過程中有正例資料也有負例資料,在包含大量資料的情況下,總是會存在一些正例資料與負例資料相似的情況,這樣的資料通常稱為難例,就是比較難的資料。線上難例挖掘就是在模型的訓練過程中,反覆把難例資料新增到訓練中。類似錯題本,通過錯題本記錄不太會的題目可以提升成績。
這種方式應用到難例訓練,可以讓模型學到更多不容易區分的細節,進而獲得不錯的效能提升。通過以上技術,在有強背景音的資料分佈下,模型也能取得不錯的表現。
2.1.2 特定專有詞識別
前面提到另外的一個挑戰是專有詞的識別。這裡舉一個例子,如圖 3 所示,這裡是對一段音訊中文字的翻譯,可以看到,如果之前沒有聽過“磕泡泡”這個詞的話,則大概率無法識別出來這段話的含義。有可能是會把“磕泡”聽成“可怕”。
■圖 3
針對這個問題,我們經過嘗試,發現有兩個方法改進比較有效:第一個方法是在模型訓練的時候,對專有詞的 loss 強度進行權重的提升,也就是說,專有詞如果做錯,將給予更高的懲罰。比如上面的這個例子,正常情況下,說錯一個字就扣 1 分,如果“磕泡泡”說錯,就設定為扣 2 分。通過這種模式,模型就會更加努力地避免專有詞識別錯誤。
第二個方法是在解碼的時候調整搜尋詞庫的候選詞範圍。如圖 4 所示,語音識別演算法工作的時候,首先是通過語音訊譜的訊號識別每個音素,然後把音素轉換轉成可能的文字。
■圖 4
針對專有詞的優化,在把一連串的音素翻譯成文字的時候,可以選擇更多的候選詞。比如在之前的例子當中,如果“磕泡”這兩個字不在候選詞的列表當中。那麼無論如何都不可能正確識別出“磕泡炮”這個詞。
這樣的想法相對來說比較直觀,但是實現之後會引入一個新的問題,那就是計算量會大幅度增加,基本上計算量的增加是呈平方級的複雜度。如果是在非實時的業務場景下,計算量的增加影響可能不是特別大。但是如果是在直播場景下,計算量的增加就有可能導致延遲變長。
這在直播對延遲比較敏感的情況下影響較大,所以要解決速度速度問題,一般來說比較好的直播是按照秒級進行稽核,最差的要求也是分鐘級。依圖的加速方案是動態決定候選詞的搜尋範圍,回到業務場景來看。內容稽核並不是要求所有語句都必須識別得非常準確,最關鍵的問題是準確識別違規詞,那麼可以利用這一點來進行優化。
具體來說,當發現前面一個音素中可能存在違規詞的時候,就對後續候選詞的解碼搜尋範圍進行擴充。這樣既不會漏掉低頻的違規詞,同時也是可以避免對最終業務結果沒有影響的計算,從而整體上大大減少計算量,保證業務的實時性。
2.2 非語言識別
在直播場景中,非語言識別的需求主要集中在重要人物的聲紋識別、敏感音訊檢測、語種分類和結果融合等。
2.2.1 敏感音訊檢測
首先介紹敏感音訊檢測,敏感音訊檢測就是識別一段音訊是否包含 ASMR 等違規語音。在敏感音檢測方面遇到的技術難點主要有兩個:第一個是敏感內容很短且長度不定,在直播當中,釋出者為了規避審查,可能會將敏感音混雜在正常的說話中,這就導致敏感音時長一般比較短,從而具有隱蔽性。第二個是資料的違規濃度低,違規濃度低意味著是必須要有較低的誤報才能減少人工稽核的成本。在低誤報的情況下,同時還要保持高召回,這對演算法的魯棒性有較高的要求。
針對敏感音訊檢測敏感內容比較短的問題,如圖 5 所示,主要是從演算法網路層面進行優化。
■圖 5
通常演算法在進行檢測的時候,會把一條資料作為一個整體來處理。當違規內容比較短的時候,則其他正常內容的聲音訊號就會將異常違規的訊號掩蓋住,recall 就會降低。
避免這種情況的方法,一般是把整條資料切分成更小的片段,這的確可以避免正常聲音的干擾,但同時也失去了音訊原本具有的上下文資訊,從而導致誤報。依圖通過多次嘗試和調研,使用了 Attention 機制來解決這樣的問題。
Attention 在這幾年的發展當中,不僅是在機器翻譯,在文字、影像、語音等各個方面都取得了不錯的效果。簡單來說,就是給定一條序列資料,先算出這個序列當中哪些位置的資料是比較重要的,然後針對這些比較重要的位置的資料投入更多的關注度。
對應到場景來說,在接收到一條音訊資料的時候,通過 Attention 機制既可以保留完整的資訊,同時又能夠判斷出哪些地方更有可能是敏感音,從而分配更多的識別關注度,在整體上提升演算法效能。
另一個挑戰是針對低濃度下要求低誤報高召回的挑戰。我們採取的方案是用遷移學習預訓練的方法來進行效能提升,如圖 6 所示。遷移學習在各個領域也得到了大量的應用。我們是在其他已經訓練得比較好的模型的基礎上,對自己想要的模型進行額外的訓練,最後得到一個比較好的模型,相當於我們是站在巨人的肩膀上做了後續的工作。
■圖 6
此前,依圖在國內外的聲紋比賽中取得過不錯的成績,因為敏感音訊其實與聲紋相關,而聲紋本身也是同樣型別的一個演算法任務,所以我們很自然地考慮把這個優勢遷移到敏感音訊檢測這個任務上。
如圖 7 所示,依圖聲紋模型的特點是可以學習通道、環境等的不變性,從而對多種通道環境具有演算法的阻斷性。我們選擇用自己的聲紋模型作為敏感音檢測模型的初始化模型,這樣敏感音檢測模型就繼承了聲紋模型的特性,使其在多種通道環境下的演算法效能具有很好的魯棒性。
■圖 7
2.2.2 語種分類
語種分類的任務是判斷輸入音訊中包含的語言種類。一般來說,在直播場景當中,主播說非中文語言的內容對平臺來說是比較危險的事情。比如抖音上專門進行英語教學的主播是不敢一直使用英文進行教學,如果一直使用,比如持續一到兩分鐘,則很快就會收到平臺發出的違規提醒。
如果有了語種分類的功能,對平臺來說這種風險就會大幅度降低。平臺就可以快速地找出有風險的直播間。如果平臺的稽核團隊可以聽懂主播的語言就能夠細緻地觀察是否有違規的內容;如果稽核團隊聽不懂。那麼最簡單的方法就是關掉直播間,平臺就能避免這種風險。
在語種分類中主要遇到三個挑戰:
第一個是訊雜比低的資料容易出現誤報或漏報。原因可能是環境噪音、混響回聲、遠場收音失真、通道失真等,如果再加上背景音樂或者直播特效的干擾,更是增加了語種分類的難度。
第二個挑戰是語種數量較多導致難以訓練。世界上可能涵蓋了數千種語種,導致資料的收集或標註的難度都非常高,我們很難獲取到大量的高質量能力的訓練資料。
第三個挑戰是傳統演算法思路一般具有侷限性。如果一個人會說多種語言,則僅通過聲紋資訊可能無法判斷;而在進行唱歌等場景下的分類時,模型容易過擬合到背景音樂上,導致泛化性較差;當語言的片段比較短的時候,可能難以抽取到比較準確的發音特徵。
這些問題與之前介紹的挑戰比較類似,這裡不展開分析,如圖 8 所示,通過資料增強,以及演算法網路改進,預訓練等多種手段就可以解決。目前依圖線上的客戶也一直在使用語種分類功能,從實戰場景中觀測,整體的準召還是不錯的。
■圖 8
關於聲網雲市場
聲網雲市場是聲網推出的實時互動一站式解決方案,通過整合技術合作夥伴的能力,為開發者提供一站式開發體驗,解決實時互動模組的選型、比價、整合、賬號打通和購買,幫助開發者快速新增各類 RTE 功能,快速將應用推向市場,節約 95% 整合 RTE 功能時間。
依圖實時語音轉寫(中文)目前已經上架聲網雲市場。依圖實時語音轉寫提供流式語音識別能力,支援中文普通話,並且相容多種口音。一邊接收音訊資料,一邊提供轉寫結果,讓您能夠實時獲取和利用文字資訊。