音頻編解碼器的用途是高效壓縮音頻以減少存儲(chǔ)或網(wǎng)絡(luò)帶寬需求。理想情況下,音頻編解碼器應(yīng)該對最終用戶是透明的,讓解碼后的音頻與原始音頻無法從聽覺層面區(qū)分開來,并避免編碼 / 解碼過程引入可感知的延遲。
在過去幾年中,業(yè)界已經(jīng)成功開發(fā)了多種音頻編解碼器來滿足這些需求,包括 Opus) 和增強(qiáng)語音服務(wù)(EVS)。
Opus 是一種多功能語音和音頻編解碼器,支持從 6kbps(千比特每秒)到 510kbps 的比特率,已廣泛部署在從視頻會(huì)議平臺(tái)(如 Google Meet)到流媒體服務(wù)(如 YouTube)的多種類型的應(yīng)用程序中。
EVS 是 3GPP 標(biāo)準(zhǔn)化組織 針對移動(dòng) 電話 開發(fā)的最新一代編解碼器。與 Opus 一樣,它是一種支持多種比特率(5.9kbps 至 128kbps)的編解碼器。使用這兩種編解碼器重建的音頻質(zhì)量在中低比特率(12–20kbps)下表現(xiàn)很出色,但在以極低比特率(?3kbps)輸出時(shí)質(zhì)量會(huì)急劇下降。
雖然這些編解碼器利用了人類感知領(lǐng)域的專業(yè)知識(shí)以及精心設(shè)計(jì)的信號(hào)處理管道來最大限度地提高壓縮算法的效率,但最近人們開始將興趣轉(zhuǎn)向了用機(jī)器學(xué)習(xí)方法替換這些手工制作的管道。這些機(jī)器學(xué)習(xí)方法會(huì)使用一種數(shù)據(jù)驅(qū)動(dòng)的方式來學(xué)習(xí)音頻編碼技能。
今年早些時(shí)候,我們發(fā)布了 Lyra,一種用于低比特率語音的神經(jīng)音頻編解碼器。在“SoundStream:一款端到端的神經(jīng)音頻編解碼器”論文 中,我們介紹了一種新穎的神經(jīng)音頻編解碼器。
這種編解碼器是上述成果的進(jìn)一步發(fā)展,提供了更高質(zhì)量的音頻并能編碼更多聲音類型,包括干凈的語音、嘈雜和混響的語音、音樂和環(huán)境聲音。
SoundStream 是第一個(gè)既能處理語音也能處理音樂的神經(jīng)網(wǎng)絡(luò)編解碼器,同時(shí)能夠在智能手機(jī) CPU 上實(shí)時(shí)運(yùn)行。它能使用單個(gè)訓(xùn)練好的模型在很大的比特率范圍內(nèi)提供最一流的質(zhì)量,這標(biāo)志著可學(xué)習(xí)編解碼器的一項(xiàng)重大進(jìn)步。
SoundStream 的主要技術(shù)組成部分是一個(gè)神經(jīng)網(wǎng)絡(luò),由編碼器、解碼器和量化器組成,它們都經(jīng)過了端到端的訓(xùn)練。編碼器將輸入的音頻流轉(zhuǎn)換為編碼信號(hào),量化器壓縮編碼信號(hào),然后解碼器將其轉(zhuǎn)換回音頻。
SoundStream 利用了神經(jīng)音頻合成領(lǐng)域最先進(jìn)的解決方案,通過訓(xùn)練一個(gè)鑒別器來計(jì)算對抗性和重建損失函數(shù)的組合,使重建的音頻聽起來接近未壓縮的原始音頻,從而提供高感知質(zhì)量的音頻輸出。經(jīng)過訓(xùn)練后,編碼器和解碼器可以分別運(yùn)行在獨(dú)立的客戶端上,以通過網(wǎng)絡(luò)高效傳輸高質(zhì)量的音頻。
SoundStream 的訓(xùn)練和推理過程。在訓(xùn)練期間,編碼器、量化器和解碼器參數(shù)使用重建和對抗性損失的組合進(jìn)行優(yōu)化,并由鑒別器計(jì)算;后者經(jīng)過訓(xùn)練以區(qū)分原始輸入音頻和重建音頻。
在推理期間,發(fā)送器客戶端上的編碼器和量化器將壓縮過的比特流發(fā)送到接收器客戶端,然后接收器客戶端負(fù)責(zé)解碼音頻信號(hào)。
SoundStream 的編碼器生成的向量可以采用無限的數(shù)量值。為了使用有限數(shù)量的比特將它們傳輸?shù)浇邮掌鳎仨氂脕碜杂邢藜ǚQ為碼本,codebook)的近似向量替換它們,這一過程稱為 向量量化。
這種方法適用于大約 1kbps 或更低的比特率,但在改用更高的比特率時(shí)很快就會(huì)達(dá)到其極限。例如,即使比特率低至 3kbps,假設(shè)編碼器每秒產(chǎn)生 100 個(gè)向量,也需要存儲(chǔ)超過 10 億個(gè)向量的碼本,這在實(shí)踐中是不可行的。
在 SoundStream 中,我們提出了一種新的殘差向量量化器(RVQ)來解決這個(gè)問題。該量化器由多個(gè)層組成(在我們的實(shí)驗(yàn)中多達(dá) 80 個(gè))。第一層以中等分辨率量化碼向量(code vector),接下來的每一層都處理前一層的殘差。
將量化過程分成幾層可以大大減少碼本大小。例如,3kbps 時(shí)每秒 100 個(gè)向量,使用 5 個(gè)量化層,碼本大小從 10 億減少到了 320。此外,我們可以添加或移除量化層來輕松增加或減少比特率。
由于傳輸音頻時(shí)網(wǎng)絡(luò)條件可能會(huì)發(fā)生變化,理想情況下,編解碼器應(yīng)該是“可伸縮的”,這樣它可以根據(jù)網(wǎng)絡(luò)狀態(tài)改變其比特率。雖然大多數(shù)傳統(tǒng)編解碼器都是可伸縮的,但以前的可學(xué)習(xí)編解碼器需要專門針對每種目標(biāo)比特率進(jìn)行訓(xùn)練和部署。
為了規(guī)避這個(gè)限制,我們利用了 SoundStream 中量化層數(shù)控制比特率的機(jī)制,提出了一種稱為“量化器丟棄”的新方法。
在訓(xùn)練期間,我們隨機(jī)刪除一些量化層來模擬不同的比特率。這會(huì)讓解碼器針對任何比特率的傳入音頻流都學(xué)到良好的表現(xiàn),從而幫助 SoundStream 變得“可伸縮”,讓單個(gè)訓(xùn)練模型可以運(yùn)行在任何比特率下,表現(xiàn)還能與專門針對這些比特率訓(xùn)練的模型一樣好。
SoundStream 模型的對比(越高越好):在 18kbps 下訓(xùn)練,有量化器丟棄(Bitrate scalable);沒有量化器丟棄(No bitrate scalable)并使用可變數(shù)量的量化器評(píng)估;或以固定比特率進(jìn)行訓(xùn)練和評(píng)估(Bitrate specific)。加入量化器丟棄后,與針對特定比特率的模型(每個(gè)比特率專門訓(xùn)練一個(gè)模型)相比,比特率可伸縮模型(所有比特率使用一個(gè)模型)不會(huì)損失任何質(zhì)量。
SoundStream 在 3kbps 下的質(zhì)量就優(yōu)于 12kbps 的 Opus,接近 9.6kbps 的 EVS 質(zhì)量,同時(shí)使用的數(shù)據(jù)量減少到了 3.2 到 4 分之一。這意味著使用 SoundStream 編碼音頻可以使用低得多的帶寬提供類似的質(zhì)量。
此外,在相同的比特率下,SoundStream 的性能優(yōu)于基于自回歸網(wǎng)絡(luò)的 Lyra 當(dāng)前版本。與已經(jīng)針對生產(chǎn)用途進(jìn)行部署和優(yōu)化的 Lyra 不同,SoundStream 仍處于試驗(yàn)階段。未來,Lyra 將整合 SoundStream 的組件,以提供更高的音頻質(zhì)量并降低復(fù)雜性。
3kbps 的 SoundStream 與最先進(jìn)的編解碼器的質(zhì)量對比。MUSHRA分?jǐn)?shù) 是主觀質(zhì)量的指標(biāo)(越高越好)。
這些音頻示例 (https://google-research.github.io/seanet/soundstream/examples/)展示了 SoundStream 與 Opus、EVS 和原始 Lyra 編解碼器的性能對比。
在傳統(tǒng)的音頻處理管道中,壓縮和增強(qiáng)(去除背景噪聲)通常由不同的模塊執(zhí)行。例如,音頻增強(qiáng)算法可以應(yīng)用在發(fā)送端(在壓縮音頻之前),或接收端(在音頻解碼之后)。在這樣的設(shè)置中,每個(gè)處理步驟都會(huì)帶來端到端的延遲。
相反,SoundStream 的設(shè)計(jì)是壓縮和增強(qiáng)可以由同一模型聯(lián)合執(zhí)行,而不會(huì)增加整體延遲。在以下示例中,我們展示了通過動(dòng)態(tài)激活和停用去噪(5 秒不去噪、5 秒去噪、5 秒不去噪,以此類推)來融合壓縮與背景噪聲抑制過程。(示例見原文)
在需要傳輸音頻的場景,無論是在流式傳輸視頻時(shí)還是在電話會(huì)議期間,都需要高效的壓縮過程。SoundStream 是改進(jìn)機(jī)器學(xué)習(xí)驅(qū)動(dòng)的音頻編解碼器的重要一步。
它的表現(xiàn)優(yōu)于之前最先進(jìn)的編解碼器,如 Opus 和 EVS;它可以按需增強(qiáng)音頻,并且只需部署一個(gè)(而非多個(gè))可伸縮的模型即可處理多種比特率。
SoundStream 將作為 Lyra 下一個(gè)改進(jìn)版本的組件發(fā)布。將 SoundStream 與 Lyra 集成后,開發(fā)人員可以在他們的工作中利用現(xiàn)有的 Lyra API 和工具鏈,從而兼顧靈活性和更好的音質(zhì)。我們還將發(fā)布一個(gè)單獨(dú)的 TensorFlow 模型用于實(shí)驗(yàn)?zāi)康摹?/span>
本文介紹的工作由 Neil Zeghidour、Alejandro Luebs、Ahmed Omran、Jan Skoglund 和 Marco Tagliasacchi 完成。我們非常感謝谷歌的同事提供的關(guān)于這項(xiàng)工作的所有討論和反饋。
原文鏈接:
聯(lián)系客服