DiffSpeaker: 使用擴(kuò)散Transformer進(jìn)行語(yǔ)音驅(qū)動(dòng)的3D面部動(dòng)畫
code:GitHub - theEricMa/DiffSpeaker: This is the official repository for DiffSpeaker: Speech-Driven 3D Facial Animation with Diffusion Transformer
paper:https://arxiv.org/pdf/2402.05712.pdf
出處:香港理工大學(xué),HKISI CAS,CASIA,2024.2
1. 介紹
語(yǔ)音驅(qū)動(dòng)的3D面部動(dòng)畫,可以用擴(kuò)散模型或Transformer架構(gòu)實(shí)現(xiàn)。然而它們的簡(jiǎn)單組合并沒(méi)有性能的提升。作者懷疑這是由于缺乏配對(duì)的音頻-4D數(shù)據(jù),這對(duì)于Transformer在擴(kuò)散框架中充當(dāng)去噪器非常重要。
為了解決這個(gè)問(wèn)題,作者提出DiffSpeaker,一個(gè)基于Transformer的網(wǎng)絡(luò),設(shè)計(jì)了有偏條件注意模塊,用作傳統(tǒng)Transformer中自注意力/交叉注意力的替代。融入偏置,引導(dǎo)注意機(jī)制集中在相關(guān)任務(wù)特定和與擴(kuò)散相關(guān)的條件上。還探討了在擴(kuò)散范式內(nèi)精確的嘴唇同步和非語(yǔ)言面部表情之間的權(quán)衡。
總結(jié):提出了一種將Transformer架構(gòu)與基于擴(kuò)散的框架集成的新方法,特點(diǎn)是一個(gè)帶偏置的條件自注意/交叉注意機(jī)制,解決了用有限音頻- 4d數(shù)據(jù)訓(xùn)練基于擴(kuò)散的transformer的困難。能夠并行生成面部動(dòng)作,推理速度很快。
2. 背景
條件概率模型:學(xué)習(xí)語(yǔ)音和面部運(yùn)動(dòng)之間的概率映射,為語(yǔ)音驅(qū)動(dòng)的3D面部動(dòng)畫提供了一種有效方法。目前的技術(shù)仍然傾向于在簡(jiǎn)短的片段中創(chuàng)建面部動(dòng)畫,嚴(yán)重依賴于GRU的順序處理能力[Cho等人,2014]或卷積網(wǎng)絡(luò),導(dǎo)致在處理上下文方面表現(xiàn)差,不如Transformer。
Transformer架構(gòu)整合到擴(kuò)散框架的困難:需要在整個(gè)長(zhǎng)度范圍內(nèi)對(duì)面部運(yùn)動(dòng)序列進(jìn)行降噪,這對(duì)于數(shù)據(jù)密集型注意力機(jī)制來(lái)說(shuō)要求很高。
語(yǔ)音驅(qū)動(dòng)的3D面部動(dòng)畫,從音頻語(yǔ)音輸入中生成逼真的面部動(dòng)作,需要同步捕捉語(yǔ)音的音調(diào)、節(jié)奏和動(dòng)態(tài)。之前的工作遵循確定性映射的范式,即一個(gè)音頻對(duì)應(yīng)一個(gè)面部動(dòng)作。比如:制定將語(yǔ)音(音素)與面部運(yùn)動(dòng)(視素)聯(lián)系起來(lái)的人工規(guī)則,并使用系統(tǒng)測(cè)量音素對(duì)視素的影響。最近的研究認(rèn)識(shí)到任務(wù)中固有的一對(duì)多關(guān)系,一個(gè)語(yǔ)音輸入可以對(duì)應(yīng)多個(gè)面部動(dòng)作。CodeTalker 使用量化碼本學(xué)習(xí)這種復(fù)雜的數(shù)據(jù)分布,顯著提高了性能。
擴(kuò)散模型的概率映射:FaceDiffuser 采用基于擴(kuò)散的生成框架和GRU來(lái)單獨(dú)處理音頻段。擴(kuò)散模型也被應(yīng)用于頭部姿勢(shì)的并發(fā)生成[Park等人,2023;Sun等人,2023],對(duì)個(gè)人用戶的定制[Thambiraja等人,2023],以及擴(kuò)散蒸餾[Chen等人,2023a]等方法來(lái)加速生成過(guò)程。一些并行研究[Park and Cho, 2023;Aneja等,2023;Zhao等人,2024]專注于自定義數(shù)據(jù)集的混合形狀級(jí)動(dòng)畫。
3. 方法
將語(yǔ)音驅(qū)動(dòng)的三維面部動(dòng)畫作為一個(gè)條件生成問(wèn)題,目標(biāo)是通過(guò)從后驗(yàn)分布中采樣,基于語(yǔ)音a1:T和第k個(gè)人的說(shuō)話風(fēng)格sk,生成面部運(yùn)動(dòng)x1:T,包含V個(gè)頂點(diǎn)的模板面網(wǎng)格上的一個(gè)頂點(diǎn)序列x i∈R T×V×3。ai∈RD是一個(gè)音頻片段,只產(chǎn)生一幀運(yùn)動(dòng)。說(shuō)話風(fēng)格sk∈RK是一個(gè)one-hot嵌入,表示K個(gè)人物。n越大表示xn中的高斯噪聲越多,xn為純高斯噪聲,x0為期望的面部運(yùn)動(dòng)。馬爾可夫鏈依次將高噪聲xn轉(zhuǎn)換為低噪聲版本,直到得到面部運(yùn)動(dòng)分布:
其中。目標(biāo)是得到
。為了在a和sk的指導(dǎo)下,從p(xn)推斷出低噪分布p (xn?1),取神經(jīng)元網(wǎng)絡(luò)G,表達(dá)式為:
G作為去噪器,根據(jù)音頻a、說(shuō)話風(fēng)格sk和擴(kuò)散步長(zhǎng)n,從xn中恢復(fù)面部運(yùn)動(dòng)x0。然后使用x0來(lái)構(gòu)造馬爾可夫鏈下一步的分布p(xn?1)。即DDIM過(guò)程,構(gòu)造了相對(duì)較短的馬爾可夫鏈,實(shí)現(xiàn)高效生成。
3.1 Diffusion-based Transformer Architecture
接下來(lái)介紹如何將語(yǔ)音a、風(fēng)格sk和擴(kuò)散步驟n的條件合并到Transformer體系結(jié)構(gòu)中:網(wǎng)絡(luò)g采用編碼器-解碼器架構(gòu),如圖2所示,條件分別由Ea、Es、En編碼,并提供給解碼器D,解碼器D對(duì)輸入進(jìn)行去噪:
音頻編碼器ea = ea (a 1:T)∈RT×C是預(yù)訓(xùn)練的音頻編碼器,樣式編碼器es = es (sk)∈R1×C是線性投影層,步進(jìn)編碼器en = en (n)∈R1×C首先將標(biāo)量n轉(zhuǎn)換為頻率編碼,然后將其傳遞給線性層。重要的是,網(wǎng)絡(luò)G并行處理所有幀步長(zhǎng)t ={1,···,t},但在擴(kuò)散步長(zhǎng)n中發(fā)生變化。
圖2:DiffSpeaker利用基于擴(kuò)散的迭代去噪技術(shù),從語(yǔ)音音頻a 1:T和說(shuō)話風(fēng)格sk合成面部運(yùn)動(dòng)x 1:T。核心特征是帶偏置的條件注意機(jī)制,該機(jī)制在自我/交叉注意中引入靜態(tài)偏置,并采用編碼和en來(lái)整合說(shuō)話風(fēng)格和擴(kuò)散步驟信息。
Attention with Condition Tokens
將說(shuō)話風(fēng)格條件和擴(kuò)散步驟融入自注意力和交叉注意力層中。傳統(tǒng)的自注意機(jī)制使面部動(dòng)作序列能夠自我反映,而交叉注意機(jī)制整合了條件輸入。假設(shè)面部運(yùn)動(dòng)輸入xn是噪聲輸入的,為了準(zhǔn)確處理運(yùn)動(dòng),自注意力必須是擴(kuò)散步長(zhǎng)感知的,用n表示。由于步驟編碼 en 和風(fēng)格編碼 es 都是一維嵌入,可以同時(shí)將它們引入作為條件標(biāo)記到自注意力和交叉注意力層中。采用標(biāo)準(zhǔn)的Transformer架構(gòu),自注意力層(As)和交叉注意力層(Ac)的輸出計(jì)算如下:
Qs、Ks、Vs∈R ?×C表示自注意,Qc、Kc、Vc∈R T ×C表示交叉注意。方括號(hào)表示沿著序列維度進(jìn)行連接。引入注意機(jī)制之前,風(fēng)格編碼e和步驟編碼en被附加在鍵特征之后。
Static Attention Bias
為自注意和交叉注意機(jī)制引入了固定偏差,這些機(jī)制是專門為使用條件令牌而設(shè)計(jì)的。將包含條件令牌和靜態(tài)偏差的注意操作稱為有偏差條件注意??紤]長(zhǎng)度為T的輸入序列,計(jì)算第i個(gè)查詢qi∈R1×C的注意分?jǐn)?shù),K對(duì)應(yīng)Ks或Kc,注意得分計(jì)算如下:
bi表示自注意或交叉注意機(jī)制的唯一偏差項(xiàng)。
Biased Conditional Cross-Attention.
交叉注意機(jī)制促進(jìn)了面部動(dòng)作序列與相關(guān)條件之間的交互,包括語(yǔ)音表征、風(fēng)格編碼和擴(kuò)散步長(zhǎng)編碼。對(duì)于大小為T × (T + 2)的特征圖,包括T個(gè)面部運(yùn)動(dòng)標(biāo)記和2個(gè)附加條件標(biāo)記,對(duì)于第i個(gè)查詢,將bi(j)表示為第j個(gè)值的注意偏差,j的范圍從1到T + 2。交叉注意偏差:
如圖2所示,該設(shè)計(jì)的設(shè)置使特定幀的面部運(yùn)動(dòng)僅限于與其相應(yīng)的語(yǔ)音表示以及es和en相關(guān)聯(lián)。這一約束確保了音頻信息的及時(shí)同步傳遞,同時(shí)還包含了有關(guān)擴(kuò)散步驟和說(shuō)話風(fēng)格的信息。
Biased Conditional Self-Attention.在形狀為T × (T + 2)的自注意映射中,偏差bi(j)表示為:
p表示與面部運(yùn)動(dòng)序列的幀速率相等的常數(shù)。如圖2所示,對(duì)于最接近對(duì)角線的2p元素,這種一致的偏差為零,并隨著與對(duì)角線的距離增加而減小。這種偏置通過(guò)將自我注意限制在一個(gè)集中的范圍內(nèi),減輕了面部運(yùn)動(dòng)序列中噪聲的破壞性影響。
3.2 Training Objective
訓(xùn)練如圖2,包括預(yù)訓(xùn)練的音頻編碼器,目標(biāo)是從任意擴(kuò)散步驟n∈{1,···,n}中恢復(fù)原始信號(hào)。對(duì)于從數(shù)據(jù)集中采樣的任意a, sk, x0,用以下?lián)p失來(lái)監(jiān)督恢復(fù)的x = G(xn, a, sk, n):
還使用速度損失來(lái)解決抖動(dòng),并平滑運(yùn)動(dòng):
總體損失為兩者和:
λ1 = λ2 = 1。
4. 實(shí)驗(yàn)
4.1 Datasets and Implementations
兩個(gè)開(kāi)源3D面部數(shù)據(jù)集BIWI和VOCASET進(jìn)行訓(xùn)練和測(cè)試。這兩個(gè)數(shù)據(jù)集都有4D面部掃描以及短句的錄音。
BIWI數(shù)據(jù)集包含14名受試者(8名女性和6名男性)所說(shuō)的40個(gè)句子的音頻。每個(gè)主題將每個(gè)句子說(shuō)兩次——一次充滿感情,一次中立。每句話記錄的平均時(shí)間為4.67秒。記錄以每秒25幀的速度捕獲,每個(gè)3D面部掃描幀有23370個(gè)頂點(diǎn)。
VOCASET數(shù)據(jù)集包含從12個(gè)受試者中捕獲的480對(duì)音頻和3D面部運(yùn)動(dòng)序列。面部運(yùn)動(dòng)序列以每秒60幀的速度記錄,長(zhǎng)度約為4秒。VOCASET中的3D人臉網(wǎng)格注冊(cè)到FLAME拓?fù)?,每個(gè)網(wǎng)格有5023個(gè)頂點(diǎn)。
4.2 Implementation Detail
網(wǎng)絡(luò)體系結(jié)構(gòu)
Transformer模型,包括512維的隱藏層,1024維的前饋網(wǎng)絡(luò),4個(gè)頭的多頭注意和一個(gè)Transformer塊。Transformer中的自注意/交叉注意用殘差連接。對(duì)于BIWI數(shù)據(jù)集的實(shí)驗(yàn)[Fanelli et al ., 2010],它提供了更復(fù)雜的數(shù)據(jù),通過(guò)將隱藏狀態(tài)維數(shù)增強(qiáng)到1024,前饋網(wǎng)絡(luò)維數(shù)增強(qiáng)到2048,模型進(jìn)行了縮放,其他配置與VOCASET中概述的配置保持一致。
訓(xùn)練
用PyTorch框架和Nvidia V100 gpu開(kāi)發(fā)。在VOCASET數(shù)據(jù)集上訓(xùn)練,批處理大小32,并在單個(gè)V100 GPU上運(yùn)行訓(xùn)練大約24小時(shí)。BIWI數(shù)據(jù)集訓(xùn)練分布在8個(gè)V100 GPU上,每個(gè)GPU處理32個(gè)批處理大小,總訓(xùn)練時(shí)間為12小時(shí)。采用AdamW優(yōu)化算法,學(xué)習(xí)率0.0001。
盡管人們普遍認(rèn)為基于擴(kuò)散的方法速度較慢,但我們的語(yǔ)音驅(qū)動(dòng)3D面部動(dòng)畫方法證明了比大多數(shù)現(xiàn)有替代方法更快的推理速度。在3090 GPU上測(cè)量了不同長(zhǎng)度的音頻的延遲,圖5中的結(jié)果顯示,我們的方法在10秒以上的音頻上優(yōu)于除VOCA之外的所有其他方法。
由于使用了固定的去噪迭代,無(wú)論音頻長(zhǎng)度如何,這種速度優(yōu)勢(shì)在較長(zhǎng)的音頻剪輯中更明顯。與并行處理所有音頻窗口的VOCA不同,其他方法依賴于順序地關(guān)注前面的片段以進(jìn)行后續(xù)預(yù)測(cè),從而導(dǎo)致擴(kuò)展音頻的迭代增加。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-843714.html
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-843714.html
到了這里,關(guān)于【論文閱讀】DiffSpeaker: Speech-Driven 3D Facial Animation with Diffusion Transformer的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!