程 振,蔣 作,潘文林,馬孟星
(1.云南民族大學(xué) 電氣信息工程學(xué)院,云南 昆明 650500;2.云南民族大學(xué) 數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院,云南 昆明 650500)
口吃是一種交流障礙,世界衛(wèi)生組織將其定義為:“一種言語(yǔ)節(jié)奏的紊亂,即口吃者因?yàn)椴蛔灾鞯穆曇糁貜?fù)、延長(zhǎng)或中斷,無(wú)法準(zhǔn)確表達(dá)自己所想表達(dá)的內(nèi)容”.口吃主要表現(xiàn)在說(shuō)話過(guò)程中句子開(kāi)頭的發(fā)音困難,患者說(shuō)話節(jié)律異常,表達(dá)不暢,整個(gè)過(guò)程中反復(fù)停頓.世界上約有1%的人受口吃困擾,給患者在工作和社交造成極大不便.口吃在2.5~6歲之間的兒童發(fā)病率高達(dá)5%,其中20%的兒童口吃患者,因沒(méi)有被正確對(duì)待和治療,會(huì)逐步發(fā)展為成年階段的口吃,最終成為終生口吃.因此,在兒童早期發(fā)現(xiàn)并解決語(yǔ)言障礙問(wèn)題則至關(guān)重要.目前臨床醫(yī)學(xué)和心理學(xué)對(duì)兒童口吃做了大量的研究,其工作集中在兒童患者口吃的病因、病理機(jī)制、心理疏導(dǎo)、口吃矯正方法等方面.
然而在自然語(yǔ)言處理領(lǐng)域,針對(duì)兒童口吃語(yǔ)音識(shí)別研究及相應(yīng)語(yǔ)料資源的構(gòu)建較少.為解決稀缺口吃語(yǔ)料庫(kù)的問(wèn)題,文中對(duì)21名5~8歲的兒童進(jìn)行了語(yǔ)音采集,再使用語(yǔ)音合成技術(shù)將該數(shù)據(jù)集合成兒童口吃語(yǔ)料庫(kù),并對(duì)該語(yǔ)料庫(kù)進(jìn)行標(biāo)注.然后基于語(yǔ)料庫(kù),使用ResNet模型識(shí)別口吃語(yǔ)段,并對(duì)識(shí)別結(jié)果進(jìn)行分析.
醫(yī)學(xué)領(lǐng)域?qū)τ趦和诔缘睦碚撗芯渴稚钊耄瑸樽匀徽Z(yǔ)言處理的領(lǐng)域奠定了基礎(chǔ),但是兒童口吃語(yǔ)料資源的匱乏限制了兒童口吃類型識(shí)別的研究.因此,國(guó)內(nèi)外研究者對(duì)口吃語(yǔ)音語(yǔ)料庫(kù)的構(gòu)建和口吃語(yǔ)音識(shí)別展開(kāi)了相應(yīng)的研究.
1995年,Howell等[1]創(chuàng)新地開(kāi)啟口吃自動(dòng)識(shí)別研究,并于2009年創(chuàng)建了倫敦大學(xué)學(xué)院口吃演講檔案—UCLASS.UCLASS包含139名參與者的音頻樣本,參與者是患有不同嚴(yán)重程度的口吃患者,年齡在8到18歲之間.目前大多數(shù)的口吃研究都圍繞該語(yǔ)料庫(kù)展開(kāi)[2],但因其標(biāo)注只包含采集時(shí)的地點(diǎn)、性別等信息,未對(duì)語(yǔ)音內(nèi)口吃發(fā)生的時(shí)間和類型進(jìn)行標(biāo)注,對(duì)口吃類型的檢測(cè)效果甚微.最近, Kourkounakis Tedd等[3]在2020年創(chuàng)建了LibriStutter語(yǔ)料庫(kù),該語(yǔ)料庫(kù)是由加拿大女王大學(xué)的AIIM實(shí)驗(yàn)室創(chuàng)建,并對(duì)該語(yǔ)料庫(kù)進(jìn)行了口吃類型的標(biāo)注和相應(yīng)的識(shí)別研究.
針對(duì)漢語(yǔ)口吃語(yǔ)料庫(kù)的工作較少,F(xiàn)ang[4]使用了由天津醫(yī)科大學(xué)提供的50個(gè)口吃患者的400段口吃語(yǔ)音作為研究數(shù)據(jù).Zhang等[5]采集了由北京林教授言語(yǔ)訓(xùn)練中心的59名口吃患者的錄音作為研究數(shù)據(jù).由于以上的口吃研究語(yǔ)料不針對(duì)兒童口吃研究,不能直接用于兒童口吃識(shí)別工作,因此文中將構(gòu)建一個(gè)基于兒童語(yǔ)音的口吃語(yǔ)料庫(kù).
早期的研究中,研究者們集中在區(qū)分口吃的可行性上,對(duì)一組特定的口吃詞進(jìn)行訓(xùn)練和測(cè)試.Howell等[6]第一次嘗試使用一組預(yù)定的單詞訓(xùn)練人工神經(jīng)網(wǎng)絡(luò)定位口吃,從這些數(shù)據(jù)中提取音頻的自相關(guān)特征、光譜信息和包絡(luò)參數(shù),每一個(gè)都被用作一個(gè)完全連接的人工神經(jīng)網(wǎng)絡(luò)(ANN)的輸入.結(jié)果表明該模型在嚴(yán)重口吃下的分類效果最好,最大檢測(cè)率為82%.Ravikuma等[7]使用了多種音節(jié)重復(fù)分類器,包括隱馬爾可夫模型(HMM)和使用梅爾頻率倒序系數(shù)(MFCC)特征的支持向量機(jī)(SVM)[8].在使用支持向量機(jī)對(duì)15名參與者進(jìn)行口吃類型分類時(shí)獲得了最佳結(jié)果,準(zhǔn)確率達(dá)到94.35%.在中國(guó)口吃檢測(cè)研究中,Zhang等[9]通過(guò)建立HMM的發(fā)音質(zhì)量評(píng)估框架,并基于改進(jìn)的算法使重復(fù)性口吃的檢測(cè)錯(cuò)誤率降低18%.在Chee[10]發(fā)表的口吃識(shí)別研究綜述中表明,限于當(dāng)時(shí)技術(shù)條件和算力的匱乏,HMM在口吃識(shí)別研究領(lǐng)域表現(xiàn)最佳.
近年,隨著計(jì)算機(jī)算力的提升,自動(dòng)語(yǔ)音識(shí)別(ASR)和自然語(yǔ)言處理(NLP)等深度學(xué)習(xí)技術(shù)的發(fā)展,深度學(xué)習(xí)在口吃分類和識(shí)別方面效果顯著,逐漸成為口吃研究者采用的主流手段.其中Heeman[11]將語(yǔ)言病理學(xué)家的注釋與對(duì)應(yīng)詞合并,將基線提升了7.5%.Kourkounakis等[3]在2020年使用的FluentNet對(duì)LibriStutter語(yǔ)料庫(kù)的檢測(cè)準(zhǔn)確率達(dá)到了86.7%,在多類型口吃檢測(cè)中達(dá)到最優(yōu).
傳統(tǒng)的語(yǔ)音識(shí)別需要提取MFCC等特征信息訓(xùn)練聲學(xué)模型,然后根據(jù)語(yǔ)言中詞與詞的關(guān)系訓(xùn)練語(yǔ)言模型,保證得出正確語(yǔ)法的句子.但由于口吃語(yǔ)音的特殊性和受計(jì)算機(jī)視覺(jué)圖像識(shí)別的啟發(fā),本文將只關(guān)注聲學(xué)模型上的特征,將語(yǔ)音轉(zhuǎn)換成語(yǔ)譜圖,使用ResNet模型對(duì)語(yǔ)譜特征提取并識(shí)別.
本文首先對(duì)兒童語(yǔ)音進(jìn)行實(shí)地采集,然后采用語(yǔ)音合成技術(shù)生成口吃類型語(yǔ)音,再將其隨機(jī)填充到采集的兒童語(yǔ)音中,模擬真實(shí)口吃語(yǔ)音,最后對(duì)構(gòu)建口吃語(yǔ)音及真實(shí)口吃語(yǔ)音的語(yǔ)譜圖進(jìn)行相似度分析.
本文研究所用語(yǔ)料是與書丸子教育有限公司合作,對(duì)21名幼兒園兒童進(jìn)行語(yǔ)音采集所得.每名兒童被要求朗讀一段幼兒園教材的文章,語(yǔ)音以 16 kHz 采樣率、16 bit 量化的wav格式保存.
本文構(gòu)建的兒童口吃語(yǔ)料庫(kù)是在正常兒童語(yǔ)音的基礎(chǔ)上進(jìn)行合成口吃語(yǔ)音類型的填充,填充類型包括重復(fù)音、延長(zhǎng)音和感嘆詞.其中語(yǔ)音的重復(fù)不僅是狹義上的語(yǔ)音重復(fù)即快速重復(fù)某一部分,而是廣義上的語(yǔ)音重復(fù),即可以將語(yǔ)音進(jìn)行重復(fù)再細(xì)分[12],具體的細(xì)分規(guī)則為[13]:音節(jié)重復(fù)(part-word repetition,PW)、字的重復(fù)(word repetition,WR)、短語(yǔ)重復(fù)(phrase repetition,PH).表1總結(jié)了語(yǔ)料庫(kù)的數(shù)據(jù)類型,并給出每個(gè)類型的例子.
表1 數(shù)據(jù)類型
本文通過(guò)對(duì)所有說(shuō)話者的音頻進(jìn)行上述口吃類型的生成,對(duì)于給定的音頻文件,在每4秒的語(yǔ)音窗口中隨機(jī)插入一種口吃類型,并進(jìn)行相應(yīng)的標(biāo)注.兒童口吃語(yǔ)料庫(kù)具體構(gòu)建方法如下:
1)音節(jié)重復(fù)的構(gòu)建:實(shí)驗(yàn)將樣本中隨機(jī)挑選出的一個(gè)字的前一小部分重復(fù)1~3次.據(jù)VAN BORSEL J[14]研究表明音節(jié)的重復(fù)很少出現(xiàn)在詞的結(jié)尾,為保持聽(tīng)起來(lái)自然,每個(gè)重復(fù)聲音之間會(huì)隨機(jī)添加100~300 ms 的空隙.
2)聲音拖長(zhǎng)的構(gòu)建:將被隨機(jī)選中的字的后20%拉長(zhǎng)5倍.由于將時(shí)間拉伸應(yīng)用于音頻會(huì)導(dǎo)致音高下降,因此需移動(dòng)音高來(lái)重新調(diào)整,使其與原始音頻保持一致.
3)感嘆詞的構(gòu)建:其與上述情況不同,它需要添加原始音頻中沒(méi)有的填充詞(例如:“嗯”,“啊”),因此不能從現(xiàn)有的語(yǔ)音中產(chǎn)生.本文將從收集的多個(gè)常用填充詞樣本中分離出單個(gè)感嘆詞并進(jìn)行保存,從而形成一個(gè)感嘆詞庫(kù).為模擬感嘆詞類型的口吃,實(shí)驗(yàn)從此庫(kù)中隨機(jī)選取感嘆詞插入語(yǔ)音中.同時(shí)為使語(yǔ)音聽(tīng)起來(lái)更加自然,在感嘆詞后再加入一個(gè)短暫的間隙;最后使用與拖長(zhǎng)音相同的調(diào)整音高方法匹配感嘆詞和原始音頻的音高.
為實(shí)現(xiàn)模擬自然口吃的最優(yōu)效果,本文通過(guò)上述步驟確保每種口吃類型被安插于語(yǔ)音中,并對(duì)每個(gè)生成的語(yǔ)音進(jìn)行標(biāo)注,使每個(gè)音頻文件都有一個(gè)相應(yīng)的CSV文件記錄該音頻的標(biāo)注信息,最終獲得具有125段語(yǔ)音的兒童口吃語(yǔ)料庫(kù).圖1并排顯示了LibriStutter語(yǔ)料庫(kù)和構(gòu)建的兒童口吃語(yǔ)料庫(kù)相同口吃類型的語(yǔ)譜圖,為體現(xiàn)兩者類型相似度,本文隨機(jī)各抽取100個(gè)生成的樣本并計(jì)算對(duì)應(yīng)語(yǔ)譜圖的感知哈希相似度及漢明距離[15]的平均值,如表2所示.
圖1 語(yǔ)譜圖的對(duì)比
表2 LibriStutter和兒童口吃語(yǔ)料庫(kù)的感知哈希相似度及漢明距離的平均值
基于LibriStutter語(yǔ)料庫(kù)和構(gòu)建的兒童口吃語(yǔ)料庫(kù),本文將對(duì)口吃的3種類型:重復(fù)(R)、拖長(zhǎng)(P)、感嘆詞(I)和正常語(yǔ)音(N)進(jìn)行識(shí)別.為完成對(duì)口吃的分類,首先將音頻轉(zhuǎn)換生成語(yǔ)譜圖,然后將其輸入ResNet模型中,最后實(shí)現(xiàn)口吃識(shí)別.流程如圖2所示.
圖2 口吃識(shí)別流程圖
本文將兒童口吃的識(shí)別任務(wù)建模為識(shí)別各類口吃的任務(wù).輸入語(yǔ)譜圖數(shù)據(jù)M={m1,m2,…,mn},則模型需預(yù)測(cè)對(duì)應(yīng)的標(biāo)簽N={n1,n2,…,nn},其中ni∈{RPIN}.R代表對(duì)應(yīng)口吃的重復(fù)段,P代表口吃的延長(zhǎng)段,I代表口吃的感嘆詞,N代表正常語(yǔ)音.
因?yàn)槁曇羰菚r(shí)變的短時(shí)平穩(wěn)信號(hào),所以可以對(duì)語(yǔ)音信號(hào)進(jìn)行連續(xù)的短時(shí)傅里葉變換,將語(yǔ)音波形信號(hào)轉(zhuǎn)換成語(yǔ)譜圖,如圖3所示.標(biāo)注F-5-003_R含義為第5個(gè)女生(female)的第3段音頻中的重復(fù)類(R)口吃,其中橫軸表示時(shí)間,縱軸表示頻率,顏色的深淺代表能量的大小.
圖3 F-5-003_R語(yǔ)譜圖示例
為訓(xùn)練此次實(shí)驗(yàn)的模型,需對(duì)語(yǔ)音進(jìn)行分段處理,如若將整段語(yǔ)音直接進(jìn)行語(yǔ)譜圖變化,將整段語(yǔ)音映射到固定大小語(yǔ)譜圖后,每個(gè)詞對(duì)應(yīng)的特征分辨率將非常小,又因口吃持續(xù)時(shí)間不定,據(jù)統(tǒng)計(jì)一個(gè)詞的發(fā)聲時(shí)長(zhǎng)約為 400 ms,對(duì)語(yǔ)音段經(jīng)過(guò) 0.7 s、1 s、1.5 s和 2 s 等不同時(shí)長(zhǎng)的切割嘗試,最終確定2秒的段長(zhǎng)最為適合,這樣的時(shí)間間隔中既會(huì)包括口吃也會(huì)有正常語(yǔ)音,又不會(huì)因?yàn)闀r(shí)間過(guò)長(zhǎng)而導(dǎo)致特征失真.將語(yǔ)音按時(shí)間剪切成相應(yīng)的語(yǔ)音段,最終剪切出LibriStutter語(yǔ)料庫(kù)中的口吃語(yǔ)音段 8 838 個(gè),兒童口吃語(yǔ)料庫(kù)中的語(yǔ)音段879個(gè),共計(jì) 9 717 個(gè)2秒的語(yǔ)音段.最終將裁剪后的LibriStutter語(yǔ)料庫(kù)和兒童口吃語(yǔ)料庫(kù)的語(yǔ)音段分別進(jìn)行標(biāo)注并導(dǎo)出,各選取其中的60%作為訓(xùn)練集,20%作為開(kāi)發(fā)集,20%作為測(cè)試集.口吃語(yǔ)音及標(biāo)簽的對(duì)應(yīng)關(guān)系如圖4所示.
注:聲音重復(fù)(黃色),延長(zhǎng)音(綠色),感嘆詞(紫色)
本實(shí)驗(yàn)采用ResNet模型[16]對(duì)語(yǔ)譜圖進(jìn)行特征提取,其模型由一系列殘差塊組成,如圖5(a)所示,每個(gè)殘差塊可由(式1)表示為:
xl+1=h(xl)+F(xl,Wl).
(1)
表3 網(wǎng)絡(luò)模型參數(shù)表
圖5 殘差塊結(jié)構(gòu)及殘差網(wǎng)絡(luò)結(jié)構(gòu)圖
(2)
當(dāng)數(shù)據(jù)進(jìn)行反向傳播時(shí),使用優(yōu)化函數(shù)為隨機(jī)梯度下降法(SGD),其中梯度更新步驟如(式3)所示:
(3)
其中,J(w)是代價(jià)函數(shù),N是樣本個(gè)數(shù),x(i)是第i個(gè)樣本,y(i)是x(i)相對(duì)應(yīng)的目標(biāo),α是學(xué)習(xí)率.
本文實(shí)驗(yàn)均基于TensorFlow1.14框架用Python語(yǔ)言實(shí)現(xiàn),實(shí)驗(yàn)環(huán)境:16 GB 內(nèi)存的Windows10操作系統(tǒng);CPU 為Intel(R)Core(TM)i3-4160 CPU @ 3.60 GHz;GPU為 8 GB 顯存的NVIDIA GeForce GTX 1070 Ti.
訓(xùn)練前,使用PIL庫(kù)的Image.open函數(shù)將圖片讀取并resize成100×100×3的尺寸大小,再將圖片轉(zhuǎn)換成計(jì)算機(jī)便于讀取的二進(jìn)制npy文件.訓(xùn)練過(guò)程中,設(shè)置模型的參數(shù)為:批次數(shù)32,輪次100;選擇SGD作為參數(shù)更新方法,其中學(xué)習(xí)率 為2×10-3,衰減率為5×10-3,動(dòng)量為0.9.經(jīng)過(guò)100次網(wǎng)絡(luò)迭代后模型趨于收斂.
由于使用神經(jīng)網(wǎng)絡(luò)模型識(shí)別口吃的研究工作相對(duì)較少,本文對(duì)神經(jīng)網(wǎng)絡(luò)模型的構(gòu)建進(jìn)行探索,本次實(shí)驗(yàn)分別使用AlexNet、VGG-16 以及ResNet模型,為體現(xiàn)實(shí)驗(yàn)準(zhǔn)確性和對(duì)比的目的實(shí)驗(yàn)?zāi)P投际褂蒙鲜鱿嗤某瑓?shù),對(duì)兒童口吃語(yǔ)料庫(kù)和LibriStutter兩個(gè)語(yǔ)料庫(kù)分別進(jìn)行實(shí)驗(yàn),其結(jié)果如表4所示.根據(jù)表中的實(shí)驗(yàn)結(jié)果可得,ResNet最終測(cè)試準(zhǔn)確率穩(wěn)定在93.07%和91.19%,表現(xiàn)均優(yōu)于其他2種模型,檢測(cè)準(zhǔn)確率比FluentNet提升4.49%.
表4 口吃分類平均準(zhǔn)確率
圖6為ResNet在兒童口吃語(yǔ)料庫(kù)和LibriStutter兩個(gè)語(yǔ)料庫(kù)上的訓(xùn)練情況,圖中兒童口吃語(yǔ)料庫(kù)用橙色實(shí)線表示,LibriStutter語(yǔ)料庫(kù)用藍(lán)色實(shí)線表示.從圖6(a)中可發(fā)現(xiàn),在訓(xùn)練初期,交叉熵驗(yàn)證損失值較高,且存在明顯的震蕩,但隨著迭代次數(shù)的增加,2個(gè)語(yǔ)料庫(kù)的損失值均逐漸收斂.從圖6(b)中可得,在初期的迭代過(guò)程中仍存在震蕩,但分別在第25次迭代和第10次迭代之后,兒童口吃語(yǔ)料庫(kù)和LibriStutter庫(kù)兩個(gè)語(yǔ)料上的交叉熵驗(yàn)證準(zhǔn)確率趨于穩(wěn)定.從圖中訓(xùn)練情況可知,ResNet網(wǎng)絡(luò)在兒童口吃類型識(shí)別中能夠較好地提取語(yǔ)譜圖特征.
圖6 基于ResNet模型的口吃語(yǔ)譜圖交叉驗(yàn)證準(zhǔn)確率及損失變化折線圖
本文為解決國(guó)內(nèi)可用口吃語(yǔ)料庫(kù)稀缺和輔助口吃類型識(shí)別問(wèn)題,構(gòu)建了兒童口吃語(yǔ)料庫(kù).使用該語(yǔ)料庫(kù)和LibriStutter庫(kù)的語(yǔ)音作為實(shí)驗(yàn)數(shù)據(jù),以 2 s 為間隔切割語(yǔ)音并轉(zhuǎn)為語(yǔ)譜圖,對(duì)卷積神經(jīng)網(wǎng)絡(luò)識(shí)別口吃類型進(jìn)行探究.實(shí)驗(yàn)結(jié)果表明,隨著卷積神經(jīng)網(wǎng)絡(luò)深度的增加,模型能夠有效的獲取語(yǔ)譜圖中的特征信息,在增加網(wǎng)絡(luò)深度時(shí)使用ResNet模型殘差結(jié)構(gòu)的捷徑反饋方式不僅能有效防止梯度消失和梯度爆炸的問(wèn)題,還能夠提高網(wǎng)絡(luò)識(shí)別精度,在中文口吃數(shù)據(jù)集上的檢測(cè)準(zhǔn)確率達(dá)到了93.07%,在LibriStutter數(shù)據(jù)集上檢測(cè)準(zhǔn)確率比FluentNet提升了4.49%.在接下來(lái)的工作中,將對(duì)數(shù)據(jù)資源做進(jìn)一步的擴(kuò)充,以保證模型的穩(wěn)健性和可靠性,并基于該資源對(duì)兒童口吃識(shí)別進(jìn)行深入研究.