訂閱
糾錯(cuò)
加入自媒體

伯克利提出超輕量級(jí)聲碼器SqueezeWave: Mini身材, Maxi速率

自動(dòng)語音合成對(duì)于眾多智能應(yīng)用十分重要,其中聲學(xué)特征轉(zhuǎn)換為音頻輸出的聲碼器在語音合成過程中具有十分重要的作用。雖然WaveGlow可以實(shí)現(xiàn)并行化的語音合成,但其龐大的計(jì)算量使得本地和邊緣設(shè)備無法承受,基于云計(jì)算的語音合成使得網(wǎng)絡(luò)延時(shí)和用戶隱私問題無法有效解決。

為了解決語音合成中計(jì)算效率的問題,來自加州大學(xué)伯克利分校的研究人員提出了一種超輕量級(jí)的聲碼器模型SqueezeWave,通過對(duì)WaveGlow的結(jié)構(gòu)和計(jì)算方法進(jìn)行優(yōu)化大幅提升了模型計(jì)算效率,相較于WaveGlow減小了61-214倍的計(jì)算量,在眾多邊緣設(shè)備上——甚至是樹莓派上——都能有效部署實(shí)現(xiàn)高效的實(shí)時(shí)語音合成。

一、TTS從云端向邊緣

從車載地圖應(yīng)用到語音助手,眾多設(shè)備都開始采用了豐富的語音交互技術(shù)來處理各種任務(wù)。但想要得到高質(zhì)量的文本到語音轉(zhuǎn)換,需要復(fù)雜的機(jī)器學(xué)習(xí)模型和龐大的云計(jì)算資源支撐。但隨著硬件的發(fā)展,邊緣設(shè)備的計(jì)算能力大幅提升使得語音合成模型在本地運(yùn)行成為可能。其次消費(fèi)者對(duì)于隱私的擔(dān)憂與日俱增,在移動(dòng)端運(yùn)行機(jī)器學(xué)習(xí)模型消除用戶數(shù)據(jù)向云端泄漏的威脅。此外隨著消費(fèi)者對(duì)于語音助手的依賴逐漸加深,對(duì)于用戶體驗(yàn)的關(guān)注也逐漸增加。為了提供低延時(shí)的語音服務(wù),降低網(wǎng)絡(luò)連接質(zhì)量帶來的影響,本地運(yùn)行的語音合成模型比云端模型更有優(yōu)勢(shì)。

典型的現(xiàn)代語音合成模型主要包含兩個(gè)部分:合成器和聲碼器。其中合成器用于從文字輸入生成聲學(xué)特征,而后利用聲碼器從聲學(xué)特征生成波形輸出。現(xiàn)存的高質(zhì)量語音合成器都需要消耗十分可觀的計(jì)算資源,SqueezeWave的主要目的在于提升合成器的效率。例如WaveNet及其變體基于自回歸的方法,意味著每一個(gè)生成的樣本都依賴于先前的樣本,這種串行的處理方式阻礙了硬件的并行加速;而基于流的WaveGlow可以在每一次前傳中生成許多樣本,雖然這一方法具有并行優(yōu)勢(shì)但卻需要消耗十分巨大的計(jì)算量。例如生成1s22kHz的語音需要消耗229G MACs的計(jì)算量,遠(yuǎn)遠(yuǎn)超過了移動(dòng)端處理器所能承受的范圍。盡管WaveFlow可以在最新的V100顯卡上達(dá)到超過實(shí)時(shí)的性能,但卻不適合在邊緣設(shè)備部署。

在這篇論文中研究人員提出了一種輕量級(jí)的基于流的聲碼器SqueezeWave用于邊緣設(shè)備的語音合成。研究人員重新設(shè)計(jì)了WaveGlow的架構(gòu),通過重整音頻張量、采用深度可分離卷積以及相關(guān)優(yōu)化使其比WaveGlow少消耗61-214倍的計(jì)算量,可在筆記本端實(shí)現(xiàn)每秒123-303K樣本的生成,在樹莓派上3B+上也能實(shí)現(xiàn)15.6K的實(shí)時(shí)水平。

二、重新審視WaveGlow的計(jì)算復(fù)雜度

與直接進(jìn)行卷積操作不同,WaveGlow首先將鄰近的樣本聚類構(gòu)建多通道的輸入,其中L為時(shí)域維度的長(zhǎng)度,Cg為每個(gè)時(shí)間步上的聚類組合的樣本數(shù)量。波形中的樣本總數(shù)量為.波形隨后被一系列雙邊映射進(jìn)行轉(zhuǎn)換,其中每一個(gè)都會(huì)利用的輸入得到輸出。在每個(gè)雙邊映射中,輸入信號(hào)首先被可逆的逐點(diǎn)卷積處理,而后將結(jié)果沿通道拆分為和。其中被用于計(jì)算仿射耦合系數(shù)。其中將被應(yīng)用于的后續(xù)計(jì)算。而則為類似wavenet的函數(shù),為編碼音頻的梅爾譜Lm為梅爾譜的時(shí)間長(zhǎng)度,Cm為頻率分量的數(shù)目。隨后仿射變換層將通過下式計(jì)算:其中代表逐元素相乘。最終將在通道方向上組合得到最后的輸出。

WaveGlow最主要的計(jì)算量來自于WN函數(shù),其計(jì)算流程如上圖所示。輸入首先通過逐點(diǎn)卷積進(jìn)行處理(圖中start),卷積使得的通道數(shù)從增加到非常大的數(shù)目,在WaveGlow中start的輸出維度為256維。隨后核為3的一維膨脹卷積將繼續(xù)對(duì)上述結(jié)果進(jìn)行處理(圖中in_layer所示)同時(shí)梅爾譜也被饋入到網(wǎng)絡(luò)中。由于梅爾譜的時(shí)域長(zhǎng)度遠(yuǎn)小于波形長(zhǎng)度,所以需要對(duì)其進(jìn)行上采樣來進(jìn)行維度匹配。

而后in_layer和cond_layer輸出按照WaveNet的方式通過門函數(shù)進(jìn)行合并,隨后傳輸?shù)絩es_skip_layer。其輸出長(zhǎng)度為L(zhǎng)=2000,通道數(shù)為512.隨后將按照通道拆分為兩部分。這一結(jié)構(gòu)將重復(fù)八次,并在最后的res_skip_layer輸出與end進(jìn)行逐點(diǎn)卷積,計(jì)算出轉(zhuǎn)換因子

并將通道從512壓縮到8。在WaveGlow的源碼中,每秒的計(jì)算量為229G MACs,其中in_layer占據(jù)了47%,cond_layer占據(jù)了39%, res_skip_layer則為14%。這對(duì)這樣的情況,研究人員將對(duì)原始的網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行改進(jìn)以減少計(jì)算量提高計(jì)算效率。

1  2  下一頁>  
聲明: 本文由入駐維科號(hào)的作者撰寫,觀點(diǎn)僅代表作者本人,不代表OFweek立場(chǎng)。如有侵權(quán)或其他問題,請(qǐng)聯(lián)系舉報(bào)。

發(fā)表評(píng)論

0條評(píng)論,0人參與

請(qǐng)輸入評(píng)論內(nèi)容...

請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字

您提交的評(píng)論過于頻繁,請(qǐng)輸入驗(yàn)證碼繼續(xù)

  • 看不清,點(diǎn)擊換一張  刷新

暫無評(píng)論

暫無評(píng)論

人工智能 獵頭職位 更多
掃碼關(guān)注公眾號(hào)
OFweek人工智能網(wǎng)
獲取更多精彩內(nèi)容
文章糾錯(cuò)
x
*文字標(biāo)題:
*糾錯(cuò)內(nèi)容:
聯(lián)系郵箱:
*驗(yàn) 證 碼:

粵公網(wǎng)安備 44030502002758號(hào)