韋向峰,袁毅,張全,吐爾遜·卡得
1. 中國科學(xué)院聲學(xué)研究所,北京 100190
2. 新疆財經(jīng)大學(xué),烏魯木齊 830012
數(shù)據(jù)庫(集)基本信息簡介
隨著人工智能技術(shù)的蓬勃發(fā)展,數(shù)據(jù)特別是已標(biāo)注數(shù)據(jù)在其中起到了關(guān)鍵的基礎(chǔ)作用,許多人工智能系統(tǒng)的啟動和模型訓(xùn)練已經(jīng)離不開數(shù)據(jù)或已標(biāo)注數(shù)據(jù)。在人機語音交互的語音識別、語音合成等領(lǐng)域,語音片段語料具有重要的價值和實際應(yīng)用。例如在語音識別系統(tǒng)中,經(jīng)過端點檢測的語音片段可以節(jié)省存儲空間,提高識別的速度,去除非語音內(nèi)容和部分噪音,改善后續(xù)處理的性能和效率。
我國是一個多民族的國家,少數(shù)民族的語音數(shù)據(jù)和語音處理技術(shù)與漢語相比還有很大的差距,少數(shù)民族的語言資源處理由于各種原因存在研究力量少、可供交流共享的數(shù)據(jù)少、研究力量和數(shù)據(jù)資源分散,以及規(guī)范標(biāo)準(zhǔn)不統(tǒng)一等問題。在漢語或英語的語音信號端點檢測中,常用的方法有基于短時能量、短時過零率、倒譜特征和信息熵的方法[1-4]。針對蒙古語的語音信號處理,有研究者提出了基于支持向量機(Support Vector Machine,SVM)的蒙古語語音端點檢測方法,在參考借鑒漢語、藏語等語種的語音端點檢測技術(shù)基礎(chǔ)上,實現(xiàn)了對蒙古語的語音段和非語音段的分類檢測,取得了良好效果[5]。近年來由于人工神經(jīng)網(wǎng)絡(luò)技術(shù)的興起,有研究者利用深度神經(jīng)網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)作為分類模型,結(jié)合多通道的語音信號對不同噪聲環(huán)境類型進(jìn)行分類處理,結(jié)果表明多通道的語音信號可以有效提升分類效果,且對不同類型噪聲環(huán)境具有一定的魯棒性[6]。此外,還有針對彝語孤立詞的端點檢測,通過引入經(jīng)驗?zāi)B(tài)分解與改進(jìn)的過零率法相結(jié)合,對于較低信噪比環(huán)境下的帶噪彝語孤立詞,可以得到比經(jīng)典方法相對更加準(zhǔn)確的端點檢測結(jié)果[7];針對佤語語音語料的端點檢測,利用多窗譜估計譜減法去除語音的背景噪音以提高信噪比,然后再使用能熵比算法進(jìn)行端點檢測,仿真結(jié)果表明,與常規(guī)的能熵比算法相比,該種端點檢測方法的準(zhǔn)確率提高了34%[8]。由于基于SVM和人工神經(jīng)網(wǎng)絡(luò)的方法需要標(biāo)注好的大量訓(xùn)練語料,而基于短時能量和短時過零率的方法不需要訓(xùn)練語料、在信噪比高的條件下就可獲得較好的結(jié)果,所以本文在缺乏少數(shù)民族語言端點檢測訓(xùn)練語料且所處理語音語料具有高信噪比的條件下,選用了基于短時能量加短時過零率的方法。
本文數(shù)據(jù)集的語音片段數(shù)據(jù)主要是使用端點檢測中的雙門限(短時能量)加短時過零率檢測方法,對《2015年中國少數(shù)民族地區(qū)蒙藏維言語錄音數(shù)據(jù)集》[9]蒙古語、藏語和維吾爾語的語音數(shù)據(jù)進(jìn)行了端點檢測,把句子級的語音信號切分成多個純語音片段,再通過人工審核和校對處理得到符合要求的人類語音片段,不含人類語音的語音片段被舍棄。這些語音片段可作為蒙藏維語音識別系統(tǒng)中端點檢測的標(biāo)準(zhǔn)語料,測試端點檢測的準(zhǔn)確率;進(jìn)一步加工后也可以作為蒙藏維語音識別系統(tǒng)的評測語料,評測語音識別系統(tǒng)的錯誤率;還可以用于蒙藏維語音合成系統(tǒng)中的停頓、節(jié)奏、語氣等韻律研究。本文希望通過數(shù)據(jù)集的開放共享,為少數(shù)民族特別是蒙藏維等民族的語音數(shù)據(jù)資源提供不同層次、不同角度的研究數(shù)據(jù),促進(jìn)蒙藏維言語數(shù)據(jù)、語音分析和語音處理系統(tǒng)的開發(fā)研究,同時為民族地區(qū)科技研究、社會發(fā)展和語言信息化做出貢獻(xiàn)。
本數(shù)據(jù)集是對《2015年中國少數(shù)民族地區(qū)蒙藏維言語錄音數(shù)據(jù)集》[10]中語音文件的加工, 該數(shù)據(jù)集中的每一個語音文件(mp3格式)對應(yīng)一個句子。因此,一個句子的語音文件經(jīng)過端點檢測技術(shù)加工后,得到多個語音片段結(jié)果文件(也是 mp3格式),語音片段結(jié)果文件是句子語音的一部分,不包含靜音段或噪聲段。
為了得到句子中的人類語音信號,去除句子中的靜音段或噪聲段,需要進(jìn)行以下步驟的處理:(1)數(shù)據(jù)預(yù)處理;(2)計算短時能量和過零率;(3)獲取語音段。數(shù)據(jù)預(yù)處理是把句子的語音信號轉(zhuǎn)化為標(biāo)準(zhǔn)的語音信號,以便后續(xù)步驟的處理和數(shù)據(jù)的規(guī)范。計算短時能量和過零率是對語音信號進(jìn)行分幀和加窗處理,然后根據(jù)公式計算每一幀的短時能量和短時過零率。獲取語音段是根據(jù)一定的算法,判斷語音信號中人類發(fā)聲語音段的起始位置和終止位置,并把這些語音片段信號切分出來。以下是對這三個步驟的更具體的描述。
加工前的語音信號數(shù)據(jù)[10],在本文中既有單通道的,也有多通道的;采樣率包括8 KHz、16 KHz、44.1 KHz等。為了保證數(shù)據(jù)的統(tǒng)一規(guī)范和后續(xù)數(shù)據(jù)處理的便利,本文使用FFmpeg軟件對語音信號文件進(jìn)行了數(shù)據(jù)轉(zhuǎn)化,統(tǒng)一轉(zhuǎn)化為16 KHz、單聲道的音頻數(shù)據(jù)文件。FFmpeg軟件可以對音視頻數(shù)據(jù)(如wav、mp3、mp4格式的文件)進(jìn)行轉(zhuǎn)化和處理,得到不同格式不同參數(shù)標(biāo)準(zhǔn)的數(shù)據(jù)文件。以下命令是把一個mp3文件轉(zhuǎn)換為規(guī)范的單聲道、采樣率為16 KHz的mp3文件:
經(jīng)過數(shù)據(jù)預(yù)處理后的語音數(shù)據(jù)文件可以用于語音信號的分幀、能量計算、時頻轉(zhuǎn)換、參數(shù)提取等,為后續(xù)步驟提供標(biāo)準(zhǔn)規(guī)范的數(shù)據(jù)。
語音信號雖然是典型的非平穩(wěn)信號,但在一個很短的時間內(nèi)(20–30 ms)可以看作一個短時平穩(wěn)過程,在一個短時間內(nèi)可以假設(shè)信號的頻譜參數(shù)和物理特征不變。在處理語音信號時通常取20 ms為一個“幀”,從而可以計算幀的短時物理特征。在對語音信號進(jìn)行分幀處理時,為了使幀與幀之間的過渡能夠平穩(wěn),前一幀與后一幀之間可以有重疊的部分,稱為幀移(幀移可以取 0–1/2的幀長)。在對時域信號進(jìn)行處理時,每次只能對有限長度的信號進(jìn)行快速傅里葉變換(Fast Fourier Transform,F(xiàn)FT),如果分幀處理時截斷的時間不是周期的整數(shù)倍,那么就會產(chǎn)生信號截斷或者信號泄露。為了避免這種信號截斷效應(yīng),需要對一幀語音進(jìn)行加窗處理,即用一個窗函數(shù)W(n)乘以一幀語音信號x(n),得到加窗后的語音信號xw(n)=W(n)*x(n)。
常用的窗函數(shù)有矩形窗和漢明窗,它們的數(shù)學(xué)函數(shù)表示分別如下:
(1)矩形窗函數(shù):
(2)漢明窗函數(shù):
其中,L為時域中窗的長度。一般而言,在處理語音的時域信號時選擇使用矩形窗,在處理語音的頻域信號時選擇使用漢明窗。
語音信號中第n幀的短時能量(使用矩形窗)定義如下:
其中,N為一幀中采樣點的個數(shù)(即幀長)。在不同的幀中,靜音片段的語音信號與人類語音片段的短時能量顯然是不同,因此可以通過短時能量的計算區(qū)分出靜音信號和人類語音信號。但是,人類的語音信號中又分為清音和濁音,清音的能量較小,濁音的能量大。所以用短時能量的方法很容易把清音歸入到靜音片段中,造成端點檢測的準(zhǔn)確率下降。而短時過零率則可以區(qū)分出清音和濁音,因為清音的能量多集中在較高的頻率上,清音的短時過零率要高于濁音。對語音的時域信號而言,短時過零率就是一幀語音波形穿過橫軸(過零)的次數(shù)。對離散信號而言,可以通過相鄰采樣點的取值是否發(fā)生變化來判斷是否穿過橫軸(過零)。因此,短時過零率的計算公式為:
其中,sign為符號函數(shù),即:
這樣,通過對語音信號的分幀、加窗處理,計算出每一幀的短時能量和短時過零率,然后通過設(shè)置人類語音與噪音、靜音之間的短時能量門限,可以判斷該幀語音信號是否為人類語音;通過設(shè)置短時過零率的門限,可以把清音、濁音、噪音區(qū)分開來,避免把清音作為靜音處理,從而提高對語音信號端點檢測的準(zhǔn)確率。
在計算出每一幀的短時能量和短時過零率之后,可以用雙門限加短時過零率的門限來判斷人類語音信號片段的起始幀位置和結(jié)束幀位置。因為人類發(fā)聲是一個從無聲到逐漸增強,在逐漸減弱到無聲的過程,所以利用這一發(fā)聲的能量特性可以得到語音信號中的人類發(fā)聲語音片段。首先,設(shè)定一個較高的門限T1,當(dāng)某一幀語音信號的短時能量大于門限T1時,可以認(rèn)為是語音片段的一個開始位置B1;當(dāng)另一幀語音信號的短時能量小于門限T1時,可以認(rèn)為是語音片段的一個結(jié)束位置E1。這里獲得的開始位置和結(jié)束位置有一定的誤差,還需要進(jìn)一步精細(xì)化邊界。其次,設(shè)定一個較低的門限T2,從前面獲得的起始位置B1往前面的幀尋找低于門限T2的幀,找到的第一個幀就是新的起始位置B2;同理,從前面獲得的結(jié)束位置E1往后尋找低于門限T2的幀,找到的第一個幀就是新的結(jié)束位置E2。起始位置B2到結(jié)束位置E2之間的語音信號段即為基于短時能量雙門限判斷得到的人類發(fā)聲語音片段。由于使用這種方法仍然有可能漏掉一些清音,所以還需要使用短時過零率的門限進(jìn)一步進(jìn)行邊界的精細(xì)化。第三,設(shè)定一個過零率的門限T3,從起始位置B2往前面的幀尋找低于門限T3的幀,找到的第一個幀就是新的起始位置B3;同理,從起始位置E2往后尋找低于門限T3的幀,找到的第一個幀就是新的結(jié)束位置E3。此時,獲得的起始位置B3和結(jié)束位置E3就是人類發(fā)聲語音片段的最終起止位置(需要說明的是,在第二步中可能找不到低于門限T2的幀,則起始位置仍為B1或者結(jié)束位置仍為E1;在第三步中,若找不到低于門限T3的幀,則仍以前面步驟獲得的起止位置為最終起止位置)。
具體的實現(xiàn)步驟如下[11]:
(1)對語音信號進(jìn)行分幀、加窗處理;
(2)以幀為單位,計算每一幀的短時能量En和短時過零率Zn;
(3)算出前m幀(如6–10幀)語音信號的短時能量和過零率的門限值,計算公式如下:
(4)使用短時能量和過零率的門限值T1、T2和T3,搜尋得到語音片段的最終起止位置,方法如下:
從第m+1幀開始,找到第一個短時能量大于t0的幀(假設(shè)幀號為b),從b往后檢查每一幀的短時能量,如果在超過T1之前都比t0小的話,幀號b作為起始位置的資格作廢,按步驟(3)繼續(xù)尋找下一個幀號b。直到找到第一個短時能量大于T1的幀,這就是語音段的起始位置B1。然后從b往前到b?25幀,依次比較過零率,如果有3幀以上的過零率大于或者等于T3,則滿足此條件的最前面的幀作為起始位置B3,否則起始位置仍為B1。
從起始位置開始,往后面尋找第一個短時能量小于T2的幀(假設(shè)幀號為e),得到結(jié)束位置E2。從e往后到e+25幀,依次比較過零率,如果有3幀以上的過零率等于或者大于T3,則滿足此條件的最后面的幀作為結(jié)束位置E3,否則結(jié)束位置仍為E2。
從結(jié)束位置的后一幀繼續(xù)尋找獲得新的語音片段的起始位置和結(jié)束位置,直到整個語音信號的末尾。
這樣,就可以獲得語音信號中的多個語音片段的各自起始位置和結(jié)束位置,而靜音段和噪聲段的語音信號被舍棄。根據(jù)語音片段的起始位置和結(jié)束位置可以從語音信號中截取出新的語音片段文件。在本文中語音片段的保存格式是mp3格式。
本數(shù)據(jù)集包含蒙古語、藏語和維吾爾語3個語種的語音片段數(shù)據(jù)文件,分別保存于不同的3個文件目錄:meng、zang、wei。藏語和維吾爾語的語音片段文件命名方式與蒙古語的類似。其中,蒙古語的語音片段數(shù)據(jù)文件有1657個,藏語的語音片段數(shù)據(jù)文件有666個,維吾爾語的語音片段數(shù)據(jù)文件有756個;對應(yīng)的蒙古語、藏語和維吾爾語的原始語音文件個數(shù)分別為:498個、83個和200個。
本數(shù)據(jù)集的樣本為多個語音文件,文件格式為mp3格式,每個語音文件存儲一個語音片段。文件名稱第一部分的數(shù)字編號相同的語音文件,其中的某些語音片段可能來自于同一個原始語音信號文件[10]。
蒙古語的語音片段文件共1657個,部分蒙古語語音片段文件如圖1所示。
圖1中文件名稱的第一部分?jǐn)?shù)字(如“302”)表示原始的語音文件編號(即在《2015年中國少數(shù)民族地區(qū)蒙藏維言語錄音數(shù)據(jù)集》[10]中的編號),見圖 2。文件名稱的第二部分?jǐn)?shù)字(如“600”)表示該語音片段在原始語音文件中的起始時間位置,文件名稱的第三部分?jǐn)?shù)字(如“4400”)表示該語音片段在原始語音文件中的結(jié)束時間位置,時間位置的單位為ms(毫秒)。
蒙古語的語音片段切分之前的原始語音文件為一個完整句子的錄音,蒙古語的原始語音文件共498個,部分蒙古語原始語音文件和編號如圖2所示。
圖1 蒙古語的語音片段文件示例
圖2 蒙古語原始語音文件的名稱和編號示例
藏語的語音片段文件共666個,部分藏語語音片段文件如圖3所示。
圖3 藏語的語音片段文件示例
圖3中文件名稱的第一部分?jǐn)?shù)字(如“4134”)表示原始的語音文件編號(即在《2015年中國少數(shù)民族地區(qū)蒙藏維言語錄音數(shù)據(jù)集》[10]中的編號),見圖4。文件名稱的第二部分?jǐn)?shù)字(如“2300”)表示該語音片段在原始語音文件中的起始時間位置,文件名稱的第三部分?jǐn)?shù)字(如“3700”)表示該語音片段在原始語音文件中的結(jié)束時間位置,時間位置的單位為ms(毫秒)。
藏語的語音片段切分之前的原始語音文件為一個完整句子的錄音,藏語的原始語音文件共83個,部分藏語原始語音文件和編號如圖4所示。
圖4 藏語原始語音文件的名稱和編號示例
維吾爾語的語音片段文件共756個,部分維吾爾語語音片段文件如圖5所示。
圖5 維吾爾語的語音片段文件示例
圖5中文件名稱的第一部分?jǐn)?shù)字(如“3001”)表示原始的語音文件編號(即在《2015年中國少數(shù)民族地區(qū)蒙藏維言語錄音數(shù)據(jù)集》[10]中的編號),見圖 6。文件名稱的第二部分?jǐn)?shù)字(如“600”)表示該語音片段在原始語音文件中的起始時間位置,文件名稱的第三部分?jǐn)?shù)字(如“5400”)表示該語音片段在原始語音文件中的結(jié)束時間位置,時間位置的單位為ms(毫秒)。
維吾爾語的語音片段切分之前的原始語音文件為一個完整句子的錄音,維吾爾語的原始語音文件共200個,部分維吾爾語原始語音文件和編號如圖6所示。
圖6 維吾爾語原始語音文件的名稱和編號示例
本數(shù)據(jù)集的基礎(chǔ)是《2015年中國少數(shù)民族地區(qū)蒙藏維言語錄音數(shù)據(jù)集》[10],該數(shù)據(jù)集的語音數(shù)據(jù)文件質(zhì)量高、信噪比高,因此在該數(shù)據(jù)集的基礎(chǔ)上加工得到的語音片段文件具有很高的準(zhǔn)確率。為了進(jìn)一步確保數(shù)據(jù)的質(zhì)量和準(zhǔn)確性,對于蒙古語、藏語和維吾爾語三個語種的語音片段文件,每個語種請兩位語言專家對照原始語音文件進(jìn)行審核校對,對于錯誤的語音片段文件,定位其在原始語音文件中的位置,利用語音標(biāo)注軟件Praat等軟件工具進(jìn)行重新標(biāo)注和修正,并對相鄰的語音片段文件也進(jìn)行了重新校對。通過軟件和算法(參見本文第1章的數(shù)據(jù)處理方法),可以自動得到一個原始語音文件的多個語音片段,再通過專家之間的相互審核校對,就得到了最終的準(zhǔn)確度高、保證質(zhì)量的蒙古語、藏語和維吾爾語的語音片段數(shù)據(jù)集。
本數(shù)據(jù)集中的蒙古語、藏語和維吾爾語的語音片段數(shù)據(jù),可以直接作為相應(yīng)少數(shù)民族語種語音識別系統(tǒng)端點檢測模塊的測試基準(zhǔn),測試端點檢測結(jié)果的準(zhǔn)確程度;也可以分析研究其中的語音特征參數(shù)、各語種語音特征的特點和難點,改進(jìn)端點檢測算法,進(jìn)一步提高端點檢測的準(zhǔn)確率,增強端點檢測算法在低信噪比和噪聲背景下的自適應(yīng)能力和魯棒性。通過語音文件對應(yīng)的文本、語音片段對應(yīng)的文本,本數(shù)據(jù)集也可以作為測試少數(shù)民族相應(yīng)語種語音識別系統(tǒng)的測試數(shù)據(jù),測試語音識別系統(tǒng)的性能,進(jìn)一步提取語音片段的參數(shù)特性,分析改進(jìn)語音識別系統(tǒng)的方法。本數(shù)據(jù)集還可以作為少數(shù)民族相應(yīng)語種的語音合成系統(tǒng)的數(shù)據(jù)基礎(chǔ),用于分析相應(yīng)語種的發(fā)音特點、停頓特點、韻律節(jié)奏特點;經(jīng)過進(jìn)一步的加工可以從中提取詞匯級、短語級的對應(yīng)語音和文本,直接作為相應(yīng)語種語音合成系統(tǒng)的數(shù)據(jù)基礎(chǔ)??傊?,本數(shù)據(jù)集的語音片段數(shù)據(jù),包含了人類發(fā)音的基本信號和信息,從中可以分析語音信號特征和測試語音信號處理系統(tǒng),從而應(yīng)用到相應(yīng)的語音識別、語音增強、語音合成和語音教學(xué)等多個領(lǐng)域。