何 珊,袁家斌,陸要要
1.南京航空航天大學 計算機科學與技術學院,南京211106
2.南京航空航天大學 信息化處,南京211106
人類語音互動本質(zhì)上是多模式的,與他人交流時可以通過“聽”和“看”來獲取信息。在干凈的聲學條件下,聽覺方式會攜帶大多數(shù)有用的信息,并且最新的技術水平已經(jīng)能夠自動準確地記錄語音內(nèi)容,準確率高達98%。而當音頻通道被噪聲破壞甚至沒有聲音時,視覺模態(tài)變得最有效,因為從中可以獲得一定的語言特征。
唇語識別是融合了計算機視覺、語音識別和自然語言識別等多種技術的一個課題,目的是解碼說話者嘴唇運動生成的文本。唇語識別具有廣闊的應用空間,例如嘈雜環(huán)境中的語音識別、公共場所的靜默聽寫、無聲影視資料處理等。由于計算機視覺任務的進步,這種自動化應用是極具前景的。近年來,至少在數(shù)據(jù)集定義的詞匯量有限的情況下,利用深度學習架構(gòu)訓練得到的唇讀模型在很大程度上已經(jīng)超過了專業(yè)讀唇者。
幾十年來,僅根據(jù)視覺特征來識別說話者所說的內(nèi)容一直是一項挑戰(zhàn),難點之一就是如何提取嘴唇的視覺特征,以使模型具有更好的性能。
早在1984年,Petajan等人就提出了唇語識別模型[1]。1988年,在原工作的基礎上,他們引入了矢量量化和動態(tài)時間規(guī)整等算法[2],并提出了新的相似度測量算法,極大地提高了唇語識別準確率。之后隨著機器學習的崛起,隱馬爾科夫模型(hidden Markov model,HMM)在語音識別領域取得了巨大成功,根據(jù)唇語識別和語音識別的相似性,出現(xiàn)了大量將HMM應用在唇語識別領域的研究[3-6],都取得了較好的結(jié)果。
近年來,由于深度學習的發(fā)展,使用卷積神經(jīng)網(wǎng)絡(convolutional neural networks,CNN)或長短期記憶網(wǎng)絡(long short-term memory,LSTM)提取嘴唇特征已成為一種趨勢,并且能顯著提高唇讀準確率[7-10]。在模型的構(gòu)建上,通常采用以下兩種方案:一個是連接時序分類法(connectionist temporal classification,CTC),另一個是帶有注意機制的序列到序列結(jié)構(gòu)(Seq2Seq),二者均可解決輸入輸出長度不一致的情況。從單詞分類任務[9,11-13]到在字符級別轉(zhuǎn)錄大量單詞[14],再到從靜態(tài)圖像預測音素[7]或視素[15],已經(jīng)涌現(xiàn)出許多出色的工作。LipNet 使用CNN、LSTM 和CTC 損失構(gòu)建句子級的端到端唇語識別網(wǎng)絡[16]。Chung 等提出的WLAS(watch,listen,attend and spell)模型具有雙重注意機制[14],可以僅輸入視頻、僅輸入音頻或二者均輸入,實現(xiàn)在字符級別將開放域視頻轉(zhuǎn)錄成大量英文詞匯。劉大運等提出了一種雙向LSTM 和注意力機制相結(jié)合的深度學習模型[17],解決了唇語識別中唇部特征提取和時序關系識別存在的問題。
馬金林等人總結(jié)了較有影響力的唇語識別方法及語料庫[18],可以看出,相比英文,中文數(shù)據(jù)集較少,識別工作較少且性能較弱。Yang等提出了一種用于開放域中文唇語識別的大規(guī)模數(shù)據(jù)集,名為LRW-1000,并相應提出了一個模型DenseNet-3D[19],但是他們僅對中文進行了單詞分類,而不能在完整的句子級別上執(zhí)行。針對句子級別的唇讀,張曉冰等構(gòu)建的CHLipNet 是一個兩步式的端到端體系結(jié)構(gòu)[20],其中使用了兩個神經(jīng)網(wǎng)絡模型分別進行圖像到拼音的識別以及拼音到漢字的識別。Zhao等則搭建了一個三級結(jié)構(gòu)的網(wǎng)絡[21],分別用于圖像到拼音的識別、拼音到聲調(diào)的識別以及拼音加聲調(diào)到漢字的識別,且發(fā)布了第一個也是唯一公開的句子級中文視聽數(shù)據(jù)集CMLR。
英文和中文有很多差異,最大的不同點在于:英文的最小單元為單詞,而中文的最小單元是漢字,一個英文單詞是具有語義的,漢字則要組合起來才具有語義;另外,中文發(fā)音在視覺上極具混淆性,體現(xiàn)在不同的詞語因為有著相同的拼音序列,所以共享完全相同的唇形(例如“聯(lián)系”和“練習”),甚至有著兩個不同拼音序列的詞語,因為發(fā)音相近,亦難在唇形上進行區(qū)分(例如“聯(lián)系”和“電擊”)。因此,在建立模型時要充分考慮到中文自身的特點,為了最大程度上減少視覺混淆對模型性能的影響,本文先研究說話者講話時的唇型變化與實際發(fā)音的對應關系,對其進行歸類,將最終得到的結(jié)果稱為“視覺拼音”。基于此,提出一個中文句子級唇語識別模型CHSLR-VP,該模型是一個端到端的二級結(jié)構(gòu),整個識別過程分為視頻幀到視覺拼音序列的識別和視覺拼音序列到漢字語句的識別。鑒于視覺拼音是基于中文拼音得出的,將更換CHSLR-VP前半段的建模單元為拼音,比較二者在中文唇語識別任務上的效果?;贑MLR數(shù)據(jù)集上的實驗表明,該模型在視覺拼音上表現(xiàn)更好,且與其他唇語識別方法相比,基于視覺拼音的模型性能更優(yōu)。
綜上所述,本文的貢獻如下:(1)根據(jù)中文發(fā)音的視覺特點得出“視覺拼音”,并首次將其應用于中文唇語識別領域;(2)構(gòu)建了基于視覺拼音的中文句子級唇語識別模型CHSLR-VP,通過實驗證明了視覺拼音可有效提升漢字識別準確率。
漢字的發(fā)音可用拼音標記,而拼音由音節(jié)和聲調(diào)組成,聲調(diào)代表整個音節(jié)的音高,由于本文是對無聲視頻進行識別,故不考慮聲調(diào)。通過對中文的研究可知,漢字發(fā)音可以用1 300 多個音節(jié)進行表示,一個音節(jié)又由聲母和韻母組成。其中,聲母是整個音節(jié)的開頭,其余部分是韻母,聲母有23個,可分為雙唇音、唇齒音、齒齦音、齦顎音、卷舌音和軟腭音,其具體發(fā)音分類如表1所示;韻母有39個,可分為單元音韻母、復韻母和鼻韻母,如表2所示。全部聲母加上一個“ng”組成輔音,單元音韻母組成元音,二者統(tǒng)稱為音素,音素是最小的語音單位,依據(jù)音節(jié)里的發(fā)音動作分析,一個動作構(gòu)成一個音素。舉例來說,“中國”一詞由兩個音節(jié)組成,可以分解為“zh,o,ng,g,u,o”6 個音素。中文音素共32 個,詳見表3。
表1 聲母發(fā)音分類表Table 1 Initials’pronunciation classification table
表2 韻母發(fā)音分類表Table 2 Finals’pronunciation classification table
表3 中文音素表Table 3 Chinese phoneme table
不同的發(fā)音部位和發(fā)音方法決定了聲音的不同,但在沒有聲音僅依據(jù)視覺判定發(fā)音時,某些音素是很難進行區(qū)分的。為了減少這種歧義,提出一個新的概念——視覺拼音,它是將視覺上相似度較高的音素進行分組歸類得到的,采取了如下技術手段:先將2.1節(jié)提到的視覺拼音預測模型修改成一個拼音預測模型,就是將拼音作為建模單元,把輸入的視頻幀序列預測成拼音序列;然后按照Neti等人的方法計算音素的混淆矩陣[22]。圖1顯示了6個混淆度最高的音素矩陣,橫坐標代表預測得到的音素,縱坐標代表實際音素,顏色越淺代表混淆度越高。
圖1 音素混淆矩陣Fig.1 Phoneme confusion matrix
僅根據(jù)混淆矩陣不足以最終確定視覺拼音,仍有以下三種情況需要考慮:(1)通過圖1可知,最不易區(qū)分的是輔音,也即是聲母部分。綜合表1,“f”作為唇齒音和“b,p,m”具有一定的視覺相似性,為了進一步確定“f”的分類,觀察了以“f”或“b,p,m”作為聲母,韻母相同的漢字對應的嘴唇視頻幀序列,截取了部分例子,如圖2 所示。經(jīng)過比較發(fā)現(xiàn),“f”在發(fā)音時具有“咬下唇”的特點,而“b,p,m”則是爆破音,故“f”將單獨劃分為一類。(2)在音節(jié)中存在“y”和“w”,它們并不是實際意義上的聲母,因為聲母是一個音節(jié)開頭的輔音,以“y”“w”為首的音節(jié),雖然也處于開頭的地位,但其實是元音“i”“u”的大寫形式。按照中文拼音的拼寫規(guī)則,當“i”“u”獨立成音節(jié)時,必須在它們的面前分別加上“y”“w”,所以視覺拼音會納入二者。(3)考慮到某些整體認讀音節(jié)的發(fā)音與單個音素的視覺效果一樣,將這樣的音節(jié)也進行歸類。綜上所述,得到了如表4所示的視覺拼音字母表。
圖2 “f”與“b,p,m”發(fā)音的視覺區(qū)別舉例Fig.2 Examples of visual difference between pronunciation of“f”and“b,p,m”
表4 視覺拼音字母表Table 4 Visual pinyin alphabet
CHSLR-VP模型是一個端到端的二級結(jié)構(gòu),其中以第1章提出的視覺拼音作為中間結(jié)果,最終得到無聲視頻中嘴唇運動序列對應的漢字文本。如第1章所述,視覺拼音是在嘴唇運動的基礎上得到的,可以在一定程度上減輕視覺歧義。下面將詳細分析模型的兩個預測過程及其最終的整體架構(gòu)。
視覺拼音預測模型將輸入的視頻幀序列轉(zhuǎn)為視覺拼音序列,其結(jié)構(gòu)如圖3所示。它基于帶有注意機制的Seq2Seq體系結(jié)構(gòu),主要由兩部分組成:視頻編碼器和視覺拼音解碼器。
圖3 視覺拼音預測模型Fig.3 Visual pinyin prediction model
視頻編碼器首先將視頻序列xv輸入到CNN 中以提取視覺特征,然后將特征向量輸入到GRU。編碼過程可以表示為:
視覺拼音解碼器基于GRU 生成解碼器狀態(tài)和輸出狀態(tài)向量。在預測視覺拼音序列p時,在每個時間步長i使用視頻編碼器的輸出來計算上下文向量。輸出字符的概率分布是由MLP 在輸出上使用softmax生成的。整個解碼過程可以通過以下等式表示:
漢字預測模型可以將視覺拼音序列轉(zhuǎn)為漢字序列。該結(jié)構(gòu)如圖4 所示,同樣是基于具有注意機制的Seq2Seq結(jié)構(gòu)。這里將編碼器和解碼器分別命名為視覺拼音編碼器和漢字解碼器。
圖4 漢字預測模型Fig.4 Chinese character prediction model
視覺拼音編碼器的操作類似于上述視頻編碼器。當漢字預測模型獨立工作時,暫時先忽略編碼器中的注意機制。另外,由于音節(jié)的總數(shù)只有1 300 左右,而中文漢字的數(shù)量超過了90 000,甚至常用漢字也超過了3 000。為了使模型更具魯棒性,在訓練過程中再額外引入大量的中文句子,增加的樣本取自CCTV官網(wǎng)的新聞稿。
從圖4 可以看出,視覺拼音編碼器使用了注意機制,但在漢字預測模型中并未起到作用,因為它需要視覺拼音預測模型中視頻編碼器的輸出向量,目的是引入唇部特征來矯正視覺拼音序列,提升模型整體性能。因此,在CHSLR-VP 的訓練過程中,將視覺拼音預測模型中視覺拼音解碼器的輸出和視頻編碼器的輸出均輸入到漢字預測模型中。至此,整個CHSLR-VP模型構(gòu)建完成,當然,將對CHSLR-VP 進行重新訓練以實現(xiàn)端到端模型。所提出的CHSLR-VP的體系結(jié)構(gòu)如圖5所示。
圖5 CHSLR-VP的結(jié)構(gòu)Fig.5 Structure of CHSLR-VP
所有的實驗均是在CMLR數(shù)據(jù)集上進行的,該數(shù)據(jù)集由浙江大學視覺智能與模式分析小組收集,是第一個開放式中文句子級視聽數(shù)據(jù)集。數(shù)據(jù)內(nèi)容來自中國電視網(wǎng)站,囊括了2009 年6 月至2018 年6 月錄制的《新聞聯(lián)播》,其中包含102 072個句子,25 633個短語和3 517個漢字。每個句子最多不超過29 個漢字,并且不含有英文字母、阿拉伯數(shù)字或標點符號。整個數(shù)據(jù)集按照7∶1∶2的比例隨機分為訓練集,驗證集和測試集。
視覺輸入由一系列視頻幀組成,這些視頻幀是嘴唇區(qū)域的一組三通道BMP圖像,大小為64×80像素。10層的CNN網(wǎng)絡用于從圖像中提取嘴唇特征,所獲得的512維空間特征向量構(gòu)成視頻編碼器的輸入。所有卷積內(nèi)核均為1×3×3,所有最大池化stride 均為1×2×2,最大池化僅沿圖像的寬度和長度方向執(zhí)行。
對于視覺拼音,在預處理時需要改動三個地方:“you”對應的視覺拼音由“Iou”改為“Iu”;“wei”對應的視覺拼音由“UeI”改為“UI”;“wen”對應的視覺拼音由“Uen”改為“Un”。韻母中的“iou”“uei”“uen”分別對應“you”“wei”“wen”,預處理的目的是將嘴型一致的“iu”與“iou”、“uei”與“ui”、“un”與“uen”統(tǒng)一到一個標準,減少歧義。
對于文字,將對每個句子進行分詞處理,如果該分詞出現(xiàn)20 次以上,則將它作為一個固定整體。這樣做的目的是將單個的字連接成一個有意義的整體,這在語言學上有一個專門的定義——語素,即指語言中最小的音義結(jié)合體。對于每個語素,都有其對應的視覺拼音組合和拼音組合,例如“中文”對應的視覺拼音組合為“RoNUn”,拼音組合為“zhongwen”。如此,便可減少低維度視覺拼音(16 個)及拼音(26 個)與高維度漢字(3 517 個)之間的混淆度,視覺拼音組合及拼音組合映射成漢字詞的匹配度也就更高。最終,視覺拼音詞匯的數(shù)量為3 287,拼音詞匯的數(shù)量為3 537,漢字詞的數(shù)量為3 584。它們都包括
為了驗證CHSLR-VP的效果,選取了4種不同的模型與之進行比較,分別是CHSLR-PY、WAS、CHLipNet、CSSMCM,它們均為端到端唇語識別方法。CHSLR-PY是將CHSLR-VP的視覺拼音預測階段改成拼音預測,以證明視覺拼音是否更適用于唇語的解讀;WAS[14]是句子級唇語識別領域經(jīng)典的方法,它將用于直接識別漢字;CHLipNet[20]和CSSMCM[21]均為和本文所提模型結(jié)構(gòu)類似的中文句子級唇語識別模型,前者是二級結(jié)構(gòu)(拼音預測和漢字預測),后者是三級結(jié)構(gòu)(拼音預測、聲調(diào)預測和漢字預測)。以上模型均在CMLR數(shù)據(jù)集上進行性能比較。
在訓練時,將會通過Adam優(yōu)化器優(yōu)化真實字符轉(zhuǎn)錄與預測字符序列之間的交叉熵損失,課程學習和時間表采樣策略用來提高性能,初始學習率設置為0.000 1,如果訓練結(jié)果在4個epochs內(nèi)仍未改善,則將初始學習率降低50%。
在評估中,測量了真實字符轉(zhuǎn)錄與預測字符序列之間的編輯距離,并通過真實長度進行歸一化。對于所有實驗,視覺拼音準確率/拼音準確率(PAR)和漢字準確率(CAR)被用作評估指標。PAR由1-(S+D+I)/N計算,其中S是從預測視覺拼音/拼音序列到目標視覺拼音/拼音序列所需的替代數(shù),D是刪除數(shù),I是插入數(shù),N是目標序列中的視覺拼音/拼音字符數(shù)量。CAR的計算方法同PAR,只是預測序列和目標序列均為漢字語句。
表5確認了視覺拼音相比于拼音更適合解析唇語,且以視覺拼音作為媒介的CHSLR-VP 模型的預測結(jié)果(67.38%)明顯好于以拼音作為媒介的CHSLR-PY 模型(61.77%)。出現(xiàn)這種現(xiàn)象的原因是:將拼音映射成視覺拼音降低了預測維度,將視覺上易混淆的元素合并到一起,使得唇形序列與預測單元匹配度更高。因此從表6中可以看見,單獨訓練的視覺拼音預測模型V2VP準確率(76.48%)明顯高于單獨訓練的拼音預測模型V2PY(70.81%)。雖然在漢字預測階段前者VP2H(89.13%)略遜色于后者PY2H(90.96%),但當兩個子模型合并成一個整體時,CHSLR-VP在視覺拼音預測階段取得的優(yōu)勢足以彌補甚至使得最終結(jié)果超過了以拼音作為媒介的CHSLR-PY模型。
表5 不同唇語識別模型在數(shù)據(jù)集CMLR上的性能比較Table 5 Performance comparison of different lip reading models on CMLR dataset
表6 CHSLR-PY和CHSLR-VP的性能比較Table 6 Performance comparison between CHSLR-PY and CHSLR-VP
表5 中還顯示了CHSLR-VP 模型與其他唇語識別工作的對比結(jié)果。在同一數(shù)據(jù)集下,CHSLR-VP性能要優(yōu)于其他模型,可以得出視覺拼音相較于拼音和漢字,能更準確地傳達視頻中蘊含的語言信息,也證明了本文所構(gòu)建的這個二級結(jié)構(gòu)模型的可行性。
建立的CHSLR-VP 模型目前存在以下兩個問題:(1)使用視覺拼音歸并了拼音,在大大提高視頻解析精度的同時也會不可避免地降低漢字預測準確率。舉例來說,表7 顯示了一個用CHSLR-VP 預測得到的句子,其中錯誤地將“理性”預測成了“提醒”,因為它們的拼音“l(fā)ixing”和“tixing”歸納成視覺拼音均表示為“DIJIN”,而“提醒”出現(xiàn)的頻次遠遠高于“理性”,故得到錯誤的結(jié)果。(2)視頻幀解析階段,長句的預測效果遠好于短句,這是由Seq2Seq模型本身的特性造成的,該結(jié)構(gòu)本身就更適合解析長序列。
表7 CHSLR-VP預測的句子舉例Table 7 Examples of sentences predicted by CHSLR-VP
本文基于中文發(fā)音的視覺特點對音素進行相似性歸類得到視覺拼音;然后據(jù)此提出了一個中文句子級唇語識別模型CHSLR-VP。通過實驗得出結(jié)論,提出的視覺拼音運用到唇語識別模型中能達到較好的效果,并證實了使用視覺拼音作為過渡過程的二級結(jié)構(gòu)的有效性。在未來,希望對這項工作進行一些擴展:(1)收集更多的視聽數(shù)據(jù)語料,通過更多的數(shù)據(jù)提高模型魯棒性;(2)優(yōu)化模型結(jié)構(gòu),探索更適合唇部特征提取或語句解析的方法以解決模型現(xiàn)存的問題;(3)參考語音識別或輸入法,使其具有自動聯(lián)想功能,提高預測語句的邏輯性,進而提高模型整體的識別率。