國務院關于印發(fā)《2024—2025年節(jié)能降碳行動方案》的通知
網絡電話質量差,WaveNetEQ來幫忙
網絡電話質量差,WaveNetEQ來幫忙網絡電話對于人們日常的工作生活具有不可或缺的重要作用,從微信到釘釘再到國內外各種各樣具有語音功能的App都在便捷著我們的生活。為了通過網絡將
網絡電話對于人們日常的工作生活具有不可或缺的重要作用,從微信到釘釘再到國內外各種各樣具有語音功能的App都在便捷著我們的生活。為了通過網絡將電話傳輸到另一端,語音電話的數據會被分為一個個數據包來進行傳輸,而后在接收端重組為連續(xù)的音視頻數據流。
然而數據包在傳輸到接收端的時候會存在亂序和丟包的情況,從而造成通話的抖動。由于接收端嘗試對丟包的區(qū)域進行補償會造成通話質量的大幅下降。這一問題廣泛存在于各種音視頻傳輸過程中,據統(tǒng)計在谷歌Duo應用中大約有99%的通話需要處理丟包、過多的抖動和網絡延遲;而這些通話中,20%的部分由于網絡問題損失了超過相當于整體3%的時長、10%的部分則損失超過了8%。
下圖顯示了網絡問題造成的丟包,需要接收端對抗丟包亂序來實現可靠的實時通信。
有效解決丟包和亂序問題是可靠實時通信的保證。特別是當音頻不是連續(xù)時用戶就會聽到通話中的瑕疵和間隔,但為了可靠通信多次重復語音顯然不是理想的辦法,既降低了整體質量又產生明顯的人工痕跡。學術界將處理丟包的過程稱為包丟失修復(packet loss concealment ,PLC)。接收器的PLC模塊負責創(chuàng)建音視頻數據來填充由丟包、過分抖動或者網絡故障造成的空隙。
為了有效解決通話過程中的數據丟失問題,研究人員提出了一種新型的PLC系統(tǒng)WaveNetEQ。這是一種基于WaveRNN技術的生成模型,由大量真實的短語音片段構成的語音數據語料庫進行訓練,來完整地合成丟失數據的原始語音波形。由于Duo是端到端加密的通話系統(tǒng),所有的處理需要在設備端進行。研究人員優(yōu)化WaveNetEQ可以在手機上高效運行,同時提供了最為先進的通話質量和更為自然的PLC結果。
用于Duo的PLC新系統(tǒng)
Duo和許多基于Web的通信系統(tǒng)一樣都是基于WebRTC開源項目而構建的。為了消除丟包的影響,WebRTC的NetEQ模塊采用了信號處理的手段,通過分析語音來得到平滑連續(xù)的聲音結果。這種方法在20ms以內的丟包時表現較好,但卻無法有效處理超過60ms的丟包結果。丟包較多會造成語音變成機器人風格或者不斷重復,相信你在打網絡電話時一定遇到過這樣的情況。
為了更好的處理丟包現象,研究人員將NetEQ PLC部分替換為了經過改造的WaveRNN。這種用于語音合成的遞歸神經網絡包含兩個主要部分,自回歸網絡和條件網絡。自回歸網絡主要負責信號的連續(xù)性并生成中短期的語音結構,生成樣本基于網絡先前的輸出。而條件網絡則會影響自回歸網絡來生成包含更多輸入緩變特征的音頻結果。
然而WaveRNN和WaveNet等都是文本語音合成模型,任務為其提供了需要表達和如何表達語音的信息。條件網絡直接以音素的形式接收信息用于彌補詞語和額外的韻律特征(包括像語調和音高等所有非文本特征)。這樣的處理方式下,條件網絡可以預見未來的趨勢并協(xié)助自回歸網絡來生成正確的波形以匹配這些特征。但在PLC和實時通信系統(tǒng)中,缺乏這樣的上下文信息。
針對一個實用的PLC系統(tǒng)來說,既需要從當前和過去的語音中抽取上下文信息,同時需要生成有效的聲音來延續(xù)語音序列。在WaveNetEQ中這兩項任務同時進行,利用自回歸網絡在包丟失的情況下提供音頻連續(xù)性,條件網絡則為聲音特點等長程特征進行建模。先前音頻信號的聲譜作為條件網絡的輸入,并作為條件限制了韻律和文本內容的上下文信息。經過壓縮的信息隨后被送入自回歸網絡,并結合最近的音頻特征來預測下一個樣本的波形結果。
但在WaveNetEQ模型的訓練中有些許不同,自回歸器的接收實際上是從當前的訓練數據中采樣得到用于下一步驟的計算的,而不是利用其輸出的上一個樣本。這一過程稱為teacher forcing的強制約束,以保證模型學習到有效的信息,即使是在預測質量較低的訓練開始階段也是如此。一旦模型被充分訓練并應用于音視頻通話上,teacher forcing僅僅被用于在第一個樣本時為模型熱身,隨后其輸出被傳輸模型進行下一步預測。
WaveNetEQ的架構,在推理時利用teacher forcing來為自回歸編碼器熱身。隨后利用自身輸出作為模型下一步預測的輸入。長程音頻部分的梅爾譜則作為條件網絡的輸入。
這一模型被應用于Duo中的語音抖動緩存器中。當在丟包發(fā)生后生成了模型延續(xù)了音頻,研究人人員就將合成音頻流與真實音頻流進行融合。為了得到匹配更好的融合信號,模型生成了稍微多一點語音信號,隨后利用交叉漸變的方法進行相互融合,得到噪聲更少轉變更為平滑的結果。
上圖顯示了模擬的PLC情況。藍色線代表了真實的音頻信號,包括PLC事件過去和將來的部分。在每一個時間步長下如果灰線處音頻發(fā)生突變,WaveNetEQ將預測出橙色線代表的合成音頻。
魯棒性
PLC過程中一個重要的因素是模型具有適應變換輸入的能力,包括不同的說話人或者背景噪聲的變化。為了保證模型在不同用戶間的魯棒性,研究人員利用來自于超過100個用戶和48中不同語言的數據對WaveNetEQ進行了訓練。為了保證WaveNetEQ可以處理不同的噪聲環(huán)境,包括車站或者咖啡館等等,訓練數據還利用不同的背景噪聲混合進行了增強。
雖然這一模型可以有效地銜接語音,但它只在小尺度上表現良好。它可以有效處理音節(jié),但是還無法有效處理詞句。隨著時間的延長,在120ms后模型就無法預測出有效的結果。為了保證模型不生成錯誤的音節(jié),研究人員利用谷歌云語音轉文字API測評了從WaveNetEQ和NetEQ中采集的樣本,實驗沒有發(fā)現詞錯誤率明顯差別(語音轉文字的錯誤率相當,意味著這種方法沒有造成更多的錯誤音頻)。
目前WaveNetEQ已經被用于Pixels 4的Duo上,對于提升通話質量和用戶體驗都起到了積極的作用,研究人員和相關團隊也在繼續(xù)開發(fā)更好的模型。