賀曉光
(科大訊飛股份有限公司,安徽 合肥 230000)
通過調(diào)研,我們發(fā)現(xiàn)有不少國內(nèi)外學(xué)者對基于語音驅(qū)動的虛擬形象問題進(jìn)行了深入研究。來自華盛頓大學(xué)的團(tuán)隊[1]在SIGGRAPH 2017上發(fā)布了合成奧巴馬的論文,該方法采用RNN學(xué)習(xí)從原始音頻特征到嘴型的映射,給定每個時刻的口型,通過紋理貼圖的方法來合成高質(zhì)量的嘴部紋理,接著使用動態(tài)規(guī)劃算法將合成的嘴型和目標(biāo)視頻進(jìn)行匹配和重定向使頭部運(yùn)動看起來更自然,最終將合成的嘴部區(qū)域融合進(jìn)目標(biāo)視頻中。我們首先嘗試了該方案,唇形預(yù)測和紋理合成后的嘴部區(qū)域效果很好,但是將合成嘴型和目標(biāo)視頻進(jìn)行融合時,會出現(xiàn)明顯的不匹配現(xiàn)象,通過多次調(diào)整參數(shù),仍然很難得到論文中的效果。同時,我們認(rèn)為僅考慮嘴部區(qū)域的合成而沒有考慮下巴、法令紋附近肌肉的一致運(yùn)動會使得融合結(jié)果過于生硬,自然度難以保證。
Zhou等人[2]提出的音頻驅(qū)動虛擬動畫人物的研究中,不僅考慮了嘴部區(qū)域的特征點還考慮了下巴、鼻子區(qū)域的部分特征點,這種方式給了我們一定的啟發(fā),我們也嘗試采用該方式進(jìn)行實驗,效果雖然比僅用嘴部區(qū)域更好,但是合成出的視頻部分時間段仍然存在明顯地不自然。
以上的方法依賴于現(xiàn)有的3D模型,需要調(diào)節(jié)的參數(shù)也較多,經(jīng)過較長時間的嘗試,尚未得到較好的效果。因此,我們同時探索了直接使用2D圖像進(jìn)行視頻生成的思路[3-4]。我們采用的思路是將使用語音預(yù)測出的唇形、鼻子點、下巴點連線畫在對應(yīng)的位置上,而將周圍的RGB像素值置零,得到了輸入圖像,使用真實的RGB圖像作為監(jiān)督,讓網(wǎng)絡(luò)根據(jù)線框生成周圍的紋理。
先使用RNN將語音特征映射為特征點坐標(biāo),然后將特征點連成線框畫在目標(biāo)圖像上,最后使用語音特征和線框特征融合的生成式對抗網(wǎng)絡(luò)生成合成視頻,我們稱之為Two-stage方案。
首先我們對輸入的音頻進(jìn)行降噪處理,并根據(jù)停頓位置將視音頻切分為長度從2秒到20秒不等的視音頻段,共得到了N段視音頻。對每段音頻提取100HZ,28維的梅爾頻率倒譜系數(shù)(MFCC)。接著,我們使用DAN[5]檢測每幀視頻中的人臉特征點,并從中選取出如圖1所示的32個特征點。將特征點根據(jù)雙眼的一對特征點進(jìn)行旋轉(zhuǎn)歸一化和尺度歸一化,并以鼻尖點為中心位置進(jìn)行平移歸一化。對歸一化的64維特征點坐標(biāo)使用PCA降維到40維,為了和100HZ的音頻特征匹配,我們使用線性差值的方法將25HZ的PCA特征插值為100HZ。最后搭建一個輸入為28維,輸出為40維的一層單向LSTM網(wǎng)絡(luò),為了利用上下文信息,引入了20幀的時間延遲。在預(yù)測階段,需要根據(jù)目標(biāo)圖像特征點使用反向旋轉(zhuǎn)、平移、尺度和PCA歸一化得到32個嘴部附近的特征點在目標(biāo)圖像上的位置。
圖1 選取出和嘴部相關(guān)的32個特征點
使用成對構(gòu)造的N個音頻段以及插值后的PCA特征進(jìn)行訓(xùn)練,進(jìn)行40輪迭代后,L2損失下降到1e-3的水平,訓(xùn)練結(jié)束。預(yù)測出的唇形具有較好的連續(xù)性,抖動現(xiàn)象明顯降低,每個發(fā)音的唇形與音頻對應(yīng)的很好,如圖2所示。
圖2 使用LSTM預(yù)測出的連續(xù)唇形
直接使用帶有線框的殘缺RGB圖像作為輸入,生成的視頻會出現(xiàn)少量的唇形與語音對不齊的現(xiàn)象,這說明僅使用線框作為控制信號,對唇形生成的控制能力不足夠。因此,我們嘗試將和唇形直接相關(guān)的音素特征加入網(wǎng)絡(luò)中。具體做法為,使用訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)提取出每段語音的音素特征,得到100HZ,66維的音素序列,根據(jù)視頻幀序號采用最近鄰方式找到相應(yīng)的音素幀,并將前后兩種進(jìn)行拼接得到198維向量送入視頻合成的生成網(wǎng)絡(luò),使用一層全連接層將198維的特征映射為128維,再將該向量擴(kuò)展為128×128×128維的張量。將該張量與相同大小的圖像特征圖進(jìn)行相加,從而進(jìn)一步加強(qiáng)對生成視頻的控制。加入音素的網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
圖3 加入音素后的單層融合視頻合成網(wǎng)絡(luò)結(jié)構(gòu)
使用隨機(jī)梯度下降算法對網(wǎng)絡(luò)進(jìn)行訓(xùn)練,設(shè)置學(xué)習(xí)率為0.001,經(jīng)過大約24小時迭代,G_VGG損失從11.0左右下降到2.0左右,網(wǎng)絡(luò)達(dá)到收斂。在測試階段,僅需要加載訓(xùn)練好的生成網(wǎng)絡(luò)參數(shù),輸入測試音頻構(gòu)造出的帶有線框的殘缺RGB圖像,網(wǎng)絡(luò)即可預(yù)測出每幀視頻圖像,使用ffmpeg工具進(jìn)行合成,可以得到最終的視音頻。
為了簡化表達(dá),我們將使用音素、音頻MFCC特征、特征點坐標(biāo)作為輸入特征表示為phone,audio,landmark。將不同的特征和網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行組合,我們設(shè)計了如表1所示的實驗。我們展示了表1中最好的實驗結(jié)果(ID=3)與較差實驗結(jié)果(ID=4)的對比(如圖4)所示,可以看出生成的視頻牙齒、唇形均達(dá)到了人類視覺可接受的程度。
表1 不同特征、網(wǎng)絡(luò)結(jié)構(gòu)下的實驗效果
圖4 最好的實驗結(jié)果(第一行)與較差實驗結(jié)果(第二行)的實驗效果對比
從實驗效果來看,使用前后10幀音素特征來控制視頻的生成能夠達(dá)到最好的效果,可能是因為音素特征與唇形的對應(yīng)比較直接,該特征為one-hot向量,更易于網(wǎng)絡(luò)的學(xué)習(xí)。但是音素特征的提取需要依賴訓(xùn)練好的神經(jīng)網(wǎng)絡(luò),如果直接使用傳統(tǒng)的MFCC特征也能達(dá)到目前的合成效果,無疑可以進(jìn)一步降低系統(tǒng)的復(fù)雜度和提高運(yùn)算效率。
本文提出了一種基于生成式對抗網(wǎng)絡(luò)的語音驅(qū)動人臉視頻合成技術(shù)。對于生成式對抗網(wǎng)絡(luò)的方案,我們又分別探索了使用不同控制信號和網(wǎng)絡(luò)結(jié)構(gòu)下的生成效果,當(dāng)前使用音素作為控制信號端到端的生成視頻可以達(dá)到最好的效果,唇形的對齊能力很強(qiáng),比使用線框的方案有明顯的提升。該方案仍有不足之處,有待后續(xù)研究者繼續(xù)優(yōu)化。