DiffusionVideoEditing:基于音頻條件擴(kuò)散模型的語(yǔ)音驅(qū)動(dòng)視頻編輯
code:GitHub - DanBigioi/DiffusionVideoEditing: Official project repo for paper "Speech Driven Video Editing via an Audio-Conditioned Diffusion Model"
paper:[2301.04474] Speech Driven Video Editing via an Audio-Conditioned Diffusion Model (arxiv.org)
目錄
1 介紹
2 背景
3 方法
3.2 模型架構(gòu)
3.3 數(shù)據(jù)處理
4 實(shí)驗(yàn)
5 結(jié)論?
1 介紹
本文提出一種使用去噪擴(kuò)散模型進(jìn)行端到端語(yǔ)音驅(qū)動(dòng)視頻編輯的方法。給定一個(gè)說(shuō)話人視頻和一個(gè)語(yǔ)音,嘴唇和下巴運(yùn)動(dòng)被重新同步,而不依賴于中間結(jié)構(gòu)表示,如面部特征點(diǎn)或3D人臉模型。
在CREMA-D視聽數(shù)據(jù)集上提供了基線模型。這是第一項(xiàng) 將端到端去噪擴(kuò)散模型應(yīng)用于音頻驅(qū)動(dòng)視頻編輯任務(wù) 的工作。
貢獻(xiàn):
-
一種新穎的非結(jié)構(gòu)化端到端方法,用去噪擴(kuò)散模型進(jìn)行音頻驅(qū)動(dòng)視頻編輯。網(wǎng)絡(luò)中以語(yǔ)音為條件,并訓(xùn)練它逐幀修改面部,使唇部和下頜運(yùn)動(dòng)與條件音頻信號(hào)同步。
-
分別使用GRID [14]和CREMA-D [6]數(shù)據(jù)集訓(xùn)練了單個(gè)說(shuō)話人和多個(gè)說(shuō)話人的概念驗(yàn)證模型,在未見過(guò)的說(shuō)話人上進(jìn)行測(cè)試時(shí)取得了強(qiáng)有力的驗(yàn)證結(jié)果。
? 展示了我們方法在視頻編輯任務(wù)上的適用性,并通過(guò)條件修復(fù)策略實(shí)現(xiàn)了競(jìng)爭(zhēng)性的結(jié)果,該策略從先前的幀和音頻譜嵌入中收集信息,生成當(dāng)前幀。
2 背景
2.1. 音頻驅(qū)動(dòng)的視頻生成
音頻驅(qū)動(dòng)的視頻生成方法,根據(jù)是否使用基于音頻驅(qū)動(dòng)的面部結(jié)構(gòu)表示來(lái)進(jìn)行分類。
與前者相關(guān)的方法,共同之處在于:將中間的結(jié)構(gòu)表示作為輸入,傳遞給單獨(dú)的神經(jīng)渲染模型,通常將其作為圖像到圖像轉(zhuǎn)換任務(wù)進(jìn)行訓(xùn)練,生成逼真圖像幀。
另一方面,非結(jié)構(gòu)化/端到端方法利用潛在特征學(xué)習(xí)和圖像重建技術(shù)以端到端的方式從輸入的語(yǔ)音信號(hào)和參考圖像/視頻生成逼真的視頻序列。盡管當(dāng)前的端到端方法在輸出分辨率質(zhì)量上不及結(jié)構(gòu)化方法,但有很大的改進(jìn)空間。
2.2 擴(kuò)散模型
擴(kuò)散模型也被應(yīng)用于相關(guān)的說(shuō)話人生成任務(wù),其中[Diffused heads: Diffusion models beat gans on talking-face generation.]是與我們工作同時(shí)進(jìn)行的一種方法。
擴(kuò)散模型是一類生成概率模型,包括兩個(gè)步驟:1)前向擴(kuò)散過(guò)程,在一系列時(shí)間步中穩(wěn)定添加隨機(jī)高斯噪聲,直到數(shù)據(jù)成為標(biāo)準(zhǔn)高斯分布樣本。2)反向擴(kuò)散過(guò)程,訓(xùn)練一個(gè)去噪模型,在一系列時(shí)間步中逐漸去除噪聲,來(lái)恢復(fù)數(shù)據(jù)的結(jié)構(gòu)。經(jīng)過(guò)訓(xùn)練的模型可以從隨機(jī)高斯噪聲中采樣信息,并在一系列時(shí)間步驟中逐漸去噪以獲得所需的輸出。
由于擴(kuò)散模型是在單一損失下進(jìn)行訓(xùn)練,且不依賴于鑒別器,它們?cè)谟?xùn)練過(guò)程中更加穩(wěn)定,不會(huì)遭受GAN訓(xùn)練中常見的模式崩潰和梯度消失等問(wèn)題。與GAN相比,擴(kuò)散模型產(chǎn)生高質(zhì)量的輸出樣本并展現(xiàn)了更好的模式覆蓋。但是,由于需要在相同樣本上多次運(yùn)行反向擴(kuò)散過(guò)程以完全去噪,擴(kuò)散模型的采樣速度較慢。
3 方法
3.1?擴(kuò)散過(guò)程
擴(kuò)散模型有兩個(gè)步驟,一個(gè)是數(shù)據(jù)逐漸被破壞的正向擴(kuò)散過(guò)程,另一個(gè)是學(xué)習(xí)到的重建數(shù)據(jù)的逆擴(kuò)散過(guò)程,用于訓(xùn)練和推理。對(duì)圖像和語(yǔ)音特征進(jìn)行降噪U(xiǎn)-Net,將目標(biāo)幀的被屏蔽部分降噪到所需的輸出中。
?
?
3.2 模型架構(gòu)
圖1. pipeline。虛線左側(cè)表示訓(xùn)練過(guò)程,右側(cè)表示推理過(guò)程。表示連接運(yùn)算符。
訓(xùn)練:當(dāng)前幀通過(guò)前向擴(kuò)散過(guò)程,計(jì)算噪聲并添加到面部的遮擋區(qū)域,得到噪聲幀Yt(方程3)。然后,將前一幀和身份幀按通道連接,形成一個(gè)大小為128x128x9的特征,傳遞給U-Net。音頻特征和噪聲水平信息通過(guò)條件殘差塊輸入到U-Net中,如方程7所述。
推理:從噪聲圖像Yt中移除預(yù)測(cè)的噪聲,得到去噪圖像Yt?1。然后,將前一幀和身份幀連接到Y(jié)t?1上,重復(fù)此過(guò)程,直到圖像完全去噪(方程6)。
?
將音頻驅(qū)動(dòng)的視頻編輯問(wèn)題構(gòu)建為有幾個(gè)關(guān)鍵變化的條件修復(fù)任務(wù)。視頻編輯必須為網(wǎng)絡(luò)提供上下文信息來(lái)指導(dǎo)生成過(guò)程。為此,我們將條件步驟分為兩個(gè)類別:基于幀和基于音頻的條件。
基于幀的條件:對(duì)于給定幀yi,我們的模型輸入三個(gè)圖像:
- 要修復(fù)的當(dāng)前遮擋噪聲幀
,
- 視頻序列中的前一幀y(i?1),
- 一個(gè)恒定的身份幀y0。
方法是自回歸的,逐幀操作。前一幀的作用是確保連續(xù)幀之間時(shí)間穩(wěn)定。身份幀的作用是在生成過(guò)程中不偏離目標(biāo)身份,這在自回歸模型中經(jīng)常發(fā)生。在訓(xùn)練多個(gè)身份的情況下,它對(duì)于模型泛化性至關(guān)重要。這三個(gè)幀按通道連接起來(lái),以[128x128x9]的形式傳入U(xiǎn)-Net中,如圖1左側(cè)所示。
基于音頻的條件:對(duì)于視頻序列(y0,...,yn),存在一個(gè)對(duì)應(yīng)的、從原始語(yǔ)音信號(hào)提取出的音頻頻譜特征序列(spec0,...,spec2n)。為了將音頻信息提供給網(wǎng)絡(luò),從(spec2i?2到spec2i+2)中提取一個(gè)音頻窗口,跨越120毫秒,表示為zi,并圍繞當(dāng)前視頻幀yi居中。這樣做是為了在窗口內(nèi)捕獲前后幀的音頻信息,以確保對(duì)爆炸音("p、t、k、b、d、g")的唇部運(yùn)動(dòng)的準(zhǔn)確生成,考慮到這些唇部運(yùn)動(dòng)在聲音產(chǎn)生之前發(fā)生。我們使用條件殘差塊將這些信息引入U(xiǎn)-Net,該塊根據(jù)音頻和噪聲水平嵌入,調(diào)整U-Net的隱藏狀態(tài),遵循[Diffused heads: Diffusion models beat gans on talking-face generation]的方法進(jìn)行縮放和偏移:
其中hs和hs+1表示U-Net的連續(xù)隱藏狀態(tài),
,MLP表示具有一些線性層,由SiLu()激活函數(shù)分隔的淺層神經(jīng)網(wǎng)絡(luò),GN是組歸一化層。如圖1所示。
U-Net的設(shè)置:本文使用[Diffusion models beat gans on image synthesis.]描述的256x256 U-Net架構(gòu)的輕量級(jí)128x128版本,省略了類別條件機(jī)制。
與[Palette: Image-to-image diffusion models.]類似,通過(guò)將前一幀和身份幀連接到遮擋幀上,來(lái)訓(xùn)練模型生成所需的幀。通過(guò)在U-Net內(nèi)的條件殘差塊中發(fā)送音頻特征,來(lái)驅(qū)動(dòng)面部動(dòng)畫,詳細(xì)描述見[Diffused heads: Diffusion models beat gans on talking-face generation. ]。表1中列出了與U-Net配置相關(guān)的所有細(xì)節(jié)。
我們訓(xùn)練了兩個(gè)模型,一個(gè)是在GRID數(shù)據(jù)集的身份S1上訓(xùn)練的單說(shuō)話人模型,另一個(gè)是在CREMA-D數(shù)據(jù)集的訓(xùn)練集上訓(xùn)練的多說(shuō)話人模型。區(qū)別是是否使用注意力機(jī)制。
在實(shí)驗(yàn)過(guò)程中發(fā)現(xiàn)在多說(shuō)話人模型中使用注意力機(jī)制,對(duì)其泛化性至關(guān)重要。訓(xùn)練使用了4個(gè)32GB V100 GPU,每個(gè)GPU的批處理大小為40。
3.3 數(shù)據(jù)處理
3.3.1 數(shù)據(jù)集
使用了GRID [14]和CREMA-D [6]音頻-視覺(jué)語(yǔ)音數(shù)據(jù)集。
3.3.2 音頻預(yù)處理
從GRID和CREMA-D數(shù)據(jù)集中的每個(gè)視頻中提取音頻文件,并將其重采樣為16KHz。從音頻中計(jì)算重疊的梅爾頻譜特征,使用n-fft 2048、窗長(zhǎng)640、跳長(zhǎng)320和256個(gè)梅爾頻帶。根據(jù)這些值,1秒鐘的音頻特征具有[50,256]的形狀,與視頻幀序列對(duì)齊。
3.3.3 視頻預(yù)處理
首先,對(duì)每個(gè)視頻幀進(jìn)行以面部為中心的128x128像素裁剪。將視頻中的面部與規(guī)范化的面部對(duì)準(zhǔn),并使用7幀的平滑窗口來(lái)完成,根據(jù)[End-to-end speech-driven facial animation with temporal gans]的方法。原因:去除任何無(wú)關(guān)的背景,減小圖像大小以便于更快的訓(xùn)練和收斂速度。
最初的實(shí)驗(yàn)使用了256x256的圖像尺寸,但是模型的訓(xùn)練成本太高??梢栽谖覀兊慕鉀Q方案之上應(yīng)用諸如[Learning trajectory-aware transformer for video superresolution]的視頻超分辨率技術(shù),以獲得高分辨率的樣本。
接下來(lái),對(duì)面部的矩形區(qū)域遮罩。使用現(xiàn)成的面部特征點(diǎn)提取器[Mediapipe: A framework for building perception pipelines.]提取面部特征點(diǎn)坐標(biāo),以確定下頜的位置。根據(jù)這些信息,遮罩了面部的矩形區(qū)域,覆蓋了鼻子下方的區(qū)域,如圖1所示。這個(gè)面部遮罩在訓(xùn)練時(shí),用到數(shù)據(jù)加載器中的幀上計(jì)算。
訓(xùn)練過(guò)程中,使用矩形面部遮罩來(lái)隱藏說(shuō)話人的下頜線是至關(guān)重要的。這是因?yàn)榫W(wǎng)絡(luò)很容易捕捉到唇部和下頜運(yùn)動(dòng)之間的強(qiáng)相關(guān)性,從而完全忽略語(yǔ)音輸入。通過(guò)隱藏下頜線,迫使模型僅基于伴隨的語(yǔ)音學(xué)習(xí)生成唇部運(yùn)動(dòng)。由于擴(kuò)散過(guò)程依賴于單一損失函數(shù),應(yīng)用矩形面部遮罩是防止 基于幀的輸入 主導(dǎo) 語(yǔ)音輸入 的最簡(jiǎn)單方法。
3.3.4 音頻-視頻對(duì)齊
如前文第3.2節(jié)所述,給定一個(gè)幀序列(y0,...,yn),存在一個(gè)對(duì)應(yīng)的從原始語(yǔ)音信號(hào)提取出的音頻頻譜特征序列(spec0,...,spec2n)。每個(gè)音頻特征跨越40毫秒窗口,每20毫秒重疊。對(duì)于任何給定的幀Yi,它與(spec2i?2到spec2i+2)所覆蓋的音頻特征對(duì)齊。為了對(duì)齊第一個(gè)和最后一個(gè)視頻幀,只需在它們各自的音頻特征的開頭和結(jié)尾附加靜音。
選擇音頻窗口時(shí),太大會(huì)導(dǎo)致網(wǎng)絡(luò)無(wú)法使用最有意義的信息,太小可能無(wú)法為網(wǎng)絡(luò)生成由爆炸音引起的更復(fù)雜的唇部運(yùn)動(dòng)提供足夠的上下文。
4 實(shí)驗(yàn)
4.1 評(píng)估指標(biāo)
計(jì)算SSIM(結(jié)構(gòu)相似性指數(shù))[74]、PSNR(峰值信噪比)和FID(Frechet Inception Distance)[23]分?jǐn)?shù),以衡量生成幀的整體質(zhì)量。還計(jì)算CPBD(累積概率模糊檢測(cè))[46]分?jǐn)?shù)以及SyncNet [13, 50]的置信度(LSE-C)和距離(LSE-D)分?jǐn)?shù)。在計(jì)算圖像質(zhì)量指標(biāo)時(shí),為了保持公平性,盡可能只計(jì)算生成圖像的部分。
4.2 單說(shuō)話人模型
使用GRID音頻-視覺(jué)語(yǔ)料庫(kù)的身份S1上的數(shù)據(jù)來(lái)訓(xùn)練單說(shuō)話人模型??偣灿?000個(gè)視頻,每個(gè)視頻大約3秒鐘,總共約50分鐘的音頻-視覺(jué)內(nèi)容用于訓(xùn)練。我們使用950個(gè)視頻對(duì)模型進(jìn)行訓(xùn)練,并保留了其中的50個(gè)用于測(cè)試。訓(xùn)練895個(gè)Epochs。
在該模型的上/下采樣塊中沒(méi)有使用注意力層,只在U-Net的中間塊中使用了注意力層。節(jié)省訓(xùn)練時(shí)間。但是為了獲得更好的結(jié)果,建議在多說(shuō)話人模型中使用注意力層。
4.3 多說(shuō)話人模型
在CREMA-D數(shù)據(jù)集的所有身份上訓(xùn)練了多說(shuō)話人模型。訓(xùn)練735個(gè)Epochs。我們對(duì)訓(xùn)練多說(shuō)話人模型進(jìn)行了一些關(guān)鍵變化。首先,在32x32分辨率以及中間塊中使用了自注意力層。其次,切換到余弦噪聲,并減少了模型在訓(xùn)練過(guò)程中采用的擴(kuò)散步驟數(shù)目至1000。最后,將通道倍增數(shù)減少為[1,2,3]。
還嘗試了在上/下采樣塊中沒(méi)有注意力的模型訓(xùn)練。該模型甚至無(wú)法收斂到訓(xùn)練集身份。推測(cè)將U-Net中使用的內(nèi)部通道數(shù)量從64增加到128或256將顯著改善結(jié)果,并且可以通過(guò)更長(zhǎng)時(shí)間的訓(xùn)練來(lái)提高性能。
4.4 結(jié)果討論
表2顯示了我們的模型在未見測(cè)試集上與文獻(xiàn)中其他方法進(jìn)行比較時(shí)的得分結(jié)果。
多說(shuō)話人模型對(duì)未見說(shuō)話人的泛化效果很好,在圖像質(zhì)量指標(biāo)上得分很高,在SSIM和CPBD方面除Wav2Lip外,超過(guò)了所有其他方法。我們認(rèn)為這是因?yàn)閿U(kuò)散模型具有對(duì)復(fù)雜、高維數(shù)據(jù)分布建模的能力,使其能夠?qū)W習(xí)數(shù)據(jù)集的統(tǒng)計(jì)特性,并生成與訓(xùn)練集中相似的圖像。此外,由于擴(kuò)散模型在訓(xùn)練過(guò)程中逐漸去除目標(biāo)圖像中的噪聲,有助于它生成更平滑的結(jié)果,而不像基于GAN的模型一樣一次性生成幀。
在SyncNet [13]置信度(LSE-C)和距離(LSE-D)得分方面的評(píng)估中,我們的多說(shuō)話人結(jié)果與文獻(xiàn)中的其他流行方法相媲美,略優(yōu)于MakeItTalk,但低于EAMM。 PC-AVS和Wav2Lip得分最高。值得注意的是,它們的方法明顯優(yōu)于真實(shí)數(shù)據(jù)。我們認(rèn)為這是因?yàn)樗衅渌椒ǘ冀?jīng)過(guò)特別訓(xùn)練,以優(yōu)化懲罰模型對(duì)不良唇部同步情況的損失函數(shù)。在PC-AVS和Wav2Lip的情況下,它們都依賴于強(qiáng)大的唇部同步判別器,鼓勵(lì)模型根據(jù)語(yǔ)音生成清晰、明確的唇部運(yùn)動(dòng)。
我們的方法沒(méi)有使用這樣的損失函數(shù)或判別器,在訓(xùn)練過(guò)程中固有地學(xué)習(xí)了語(yǔ)音與唇部運(yùn)動(dòng)之間的關(guān)系。因此,雖然我們?cè)谖匆娬f(shuō)話人上的唇部同步得分較低,但我們提供了一種新穎的方法來(lái)完成任務(wù),因?yàn)槲覀儾](méi)有明確訓(xùn)練模型改善唇部同步。
值得注意的是,我們的單說(shuō)話人模型在上述同步指標(biāo)上表現(xiàn)非常好,這使我們推測(cè),通過(guò)花更多的時(shí)間學(xué)習(xí)數(shù)據(jù)分布,多說(shuō)話人模型在理論上也可以達(dá)到類似的結(jié)果。
在推斷過(guò)程中,多說(shuō)話人模型有時(shí)難以在整個(gè)生成過(guò)程中保持一致的身份,尤其是如果原始視頻中存在頭部姿勢(shì)的極端變化。這是由于小錯(cuò)誤的累積,因?yàn)槲覀兊姆椒ㄔ谕茢鄷r(shí)完全是自回歸的,完全依賴于先前生成的幀和身份幀來(lái)修改當(dāng)前幀。圖2,失敗的實(shí)例。
推測(cè)可以通過(guò)以下三種方式緩解這個(gè)問(wèn)題:1)在訓(xùn)練期間,在前一幀上引入小量的面部扭曲,以模擬在生成過(guò)程中自然發(fā)生的扭曲。這將促使模型查看身份幀以進(jìn)行修正。2)簡(jiǎn)單地延長(zhǎng)模型的訓(xùn)練時(shí)間。3)在像VoxCeleb或LRS這樣的具有不受限制條件的訓(xùn)練集中,訓(xùn)練更多樣化的說(shuō)話人數(shù)據(jù)。
多說(shuō)話人模型對(duì)說(shuō)話者音量和語(yǔ)調(diào)非常敏感,特別是當(dāng)面對(duì)來(lái)自未見說(shuō)話者的語(yǔ)音時(shí)。當(dāng)說(shuō)話者大聲喊叫或清晰地對(duì)著麥克風(fēng)說(shuō)話時(shí),唇部運(yùn)動(dòng)非常準(zhǔn)確,看起來(lái)同步良好。當(dāng)音量較低時(shí),說(shuō)話者似乎在咕噥,完整的唇部運(yùn)動(dòng)范圍沒(méi)有正確生成。懷疑這是因?yàn)槲覀冊(cè)跅l件網(wǎng)絡(luò)中使用了譜特征嵌入,而使用預(yù)訓(xùn)練的語(yǔ)音識(shí)別音頻編碼器可以降低這種影響。這是因?yàn)檫@些模型通常經(jīng)過(guò)訓(xùn)練,從語(yǔ)音中提取內(nèi)容,忽略被認(rèn)為是無(wú)關(guān)的音調(diào)和語(yǔ)氣等信息。
5 結(jié)論?
未來(lái)工作
模型速度和野外訓(xùn)練:擴(kuò)散模型的訓(xùn)練和采樣速度都很慢。單說(shuō)話人模型每個(gè)Epoch的訓(xùn)練時(shí)間約為6分鐘,而多說(shuō)話人模型為40分鐘。曾嘗試在潛空間中進(jìn)行訓(xùn)練以加快訓(xùn)練速度,但是樣本質(zhì)量下降,因此在像素空間中操作。改進(jìn)模型的訓(xùn)練速度對(duì)我們來(lái)說(shuō)是首要任務(wù),這將使我們能夠在更大、更多樣化的“野外”數(shù)據(jù)集上進(jìn)行訓(xùn)練,如VoxCeleb [45]或LRS [12]。
外觀一致性:正如之前討論的,我們的多說(shuō)話人模型在未見身份上生成的外觀有時(shí)會(huì)與原始外觀有所偏差。我們將探索這種效果是由于訓(xùn)練不充分還是訓(xùn)練數(shù)據(jù)集的多樣性不足。
語(yǔ)音條件:計(jì)劃探索使用更廣泛的語(yǔ)音特征作為模型條件的潛力,例如嘗試不同大小的窗口在計(jì)算譜特征時(shí),或者使用預(yù)訓(xùn)練的音頻編碼器,如Wav2Vec2 [3]、Whisper [52]或DeepSpeech2 [1]。相信結(jié)合這些特征可能會(huì)提高我們模型的唇部同步性能,并生成更逼真、表現(xiàn)力更強(qiáng)的唇部運(yùn)動(dòng)。
結(jié)論
結(jié)果展示了去噪擴(kuò)散模型在捕捉音頻和視頻信號(hào)之間復(fù)雜關(guān)系、以及為語(yǔ)音驅(qū)動(dòng)的視頻編輯任務(wù),生成具有準(zhǔn)確唇部運(yùn)動(dòng)的連貫視頻序列方面的多功能性。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-797909.html
限制:CREMA-D數(shù)據(jù)集相對(duì)較小,這限制了我們方法在其他領(lǐng)域的推廣能力。此外,需要大量的計(jì)算資源和時(shí)間來(lái)進(jìn)行訓(xùn)練。這對(duì)于實(shí)時(shí)應(yīng)用程序或大規(guī)模數(shù)據(jù)集的訓(xùn)練是一個(gè)挑戰(zhàn)。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-797909.html
到了這里,關(guān)于【論文閱讀】Speech Driven Video Editing via an Audio-Conditioned Diffusion Model的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!