專利名稱::安多藏語語音音節(jié)切分的方法
技術(shù)領(lǐng)域:
:安多截語語音音節(jié)切分的方法是屬于戴語語音庫的制作和藏語語音識(shí)別領(lǐng)域,是第一關(guān)鍵技術(shù)。
背景技術(shù):
:眾所周知,語言是人類進(jìn)行相互通信和交流的最方便最快捷的手段,它自然方便、快捷髙效。隨著電子計(jì)算機(jī)和人工智能的廣泛應(yīng)用,人和機(jī)器之間最好的通信方式是語言通信,而語音是語言的聲學(xué)表現(xiàn)形式。要使機(jī)器聽懂人講話,并能說出話來,需要做許多工作,這就是語音合成和語音識(shí)別技術(shù)。在高度發(fā)達(dá)的信息杜會(huì)中用數(shù)字化的方法進(jìn)行語音的傳送、儲(chǔ)存、OR識(shí)別、合成、增強(qiáng)是整個(gè)數(shù)字化通信網(wǎng)中最重要、最基本的組成部分之一。計(jì)算機(jī)的高速發(fā)展為我們更好地駕馭語言提供了可能。語音識(shí)別近年來得到了迅猛發(fā)展。人們不需要學(xué)習(xí)許多種計(jì)算機(jī)語言,只需要把要做的事情告訴給計(jì)算機(jī),而計(jì)算機(jī)就可根據(jù)你的指令完成各種任務(wù),工作也會(huì)變得更加有成效。如果你要播放影碟,那么你可以告訴計(jì)箅機(jī)"播放影碟"而不用找到播放軟件,在"打開"處單擊一下,最后還需要在所要打開的文件再單擊一下。語音識(shí)別使得語音輸入代替了鍵盤輸入,實(shí)現(xiàn)了人與計(jì)算機(jī)的直接對話,同時(shí)加速了信息的處理過程。而藏語語音的信息處理,還基本上是一片空白,隨著藏族人們生活的提髙,藏族同胞急切的需要髙科技給他們帶來便利,以便更好的促進(jìn)藏族地區(qū)的發(fā)展。藏族有統(tǒng)一的書面語,但其口語因地而異.至今尚未形成全民族公認(rèn)的口頭標(biāo)準(zhǔn)語或普通話,藏語分為三大方言,本文數(shù)據(jù)源采用的安多藏語。藏語連續(xù)語音的自動(dòng)分割是效語語音識(shí)別和制作蔵語音節(jié)庫所遇到的第一關(guān)鍵技術(shù)。首先就要將藏語音節(jié)字從語音信號流的背景噪聲中分割出來,找出語音的開始和終止。這在許多語音處理領(lǐng)域中是很基本的問題。特別是在孤立單字的自動(dòng)識(shí)別時(shí),找出每個(gè)單字的語音信號范圍,將聲母、韻母分割開是很重要的。確定語音信號的開始和終止的方案可用來減少非實(shí)時(shí)系統(tǒng)的大量計(jì)算,使該系統(tǒng)僅處理語音輸入。只有將各音節(jié)中的聲韻母區(qū)分開,才能進(jìn)行藏語聲學(xué)參數(shù)的分析和識(shí)別,才能進(jìn)行藏語音庫的制作。當(dāng)然,如果不考慮分割的實(shí)時(shí)性,可以采用人工分割的方法:先將語言信號流的波形打印出來,然后用標(biāo)尺在波形閣上測量,就可以準(zhǔn)確得到分割的結(jié)果。由于這種人工分割的準(zhǔn)確性髙,所以各種用計(jì)算機(jī)自動(dòng)分割的準(zhǔn)確度都是與人工分割結(jié)果比較而言的。
發(fā)明內(nèi)容欲語連續(xù)語音音節(jié)的自動(dòng)分割是藏語語音識(shí)別和制作齄語音節(jié)庫所遇到的第一關(guān)鍵技術(shù)。這在許多語音處理領(lǐng)域中是很基本的問題。通過藏語語音時(shí)域參數(shù)短時(shí)能量和短時(shí)過零率,來判斷語音的音節(jié),實(shí)現(xiàn)語音的音節(jié)切分。本發(fā)明由以下幾個(gè)部分組成安多覼語語音時(shí)域參數(shù)的提取、藏語語音端點(diǎn)檢測、音節(jié)切分算法的設(shè)計(jì)、切分結(jié)果的實(shí)現(xiàn)和顯示.1.安多藏語時(shí)域參數(shù)的提取1.1短時(shí)能量設(shè)語音信號為S(W),短時(shí)能量的定義-<formula>formulaseeoriginaldocumentpage5</formula>其中窗函數(shù)為哈明窗,為:<formula>formulaseeoriginaldocumentpage6</formula>巻積的一個(gè)重要用途就是濾波,所謂濾波,就是通過一定的運(yùn)算去掉信號中某些不需要的部分,比如高頻部分或者低頻部分。濾波的過程就是原始信號和濾波器的單位沖激響應(yīng)的巻積過程。高通濾波器和低通濾波器有著各自自身的單位沖激響應(yīng)的巻積運(yùn)算,達(dá)到了去掉信號中低頻部分或者髙頻部分的目的。上式表示,窗口加權(quán)的短時(shí)能量相當(dāng)于將"語音平方"信號通過一個(gè)線性濾波器的輸出,該濾波器的單位取樣響應(yīng)為A(w)。因此,沖激響應(yīng)A(")的選擇或者說窗函數(shù)的選擇直接影響著短時(shí)能量的計(jì)算。若A(")幅度恒定且序列長度N(即窗長)很長,這樣的窗等效為很窄的低通濾波器,此時(shí)A(")對?(加)的平滑作用非常顯著,使得短時(shí)能量幾乎沒有多大變化,無法反映語音的時(shí)變特性。反之,若A(/i)序列長度N過小,那么等效窗又不能提供足夠的平滑,以至于語音振幅瞬時(shí)變化的許多細(xì)節(jié)仍然被保留了下來,從而看不出振幅包絡(luò)的變化規(guī)律。通常N的選擇與語音的基音周期相聯(lián)系,一般要求窗長為幾個(gè)基音周期的數(shù)量級。因此我們選擇的幀長為1030邁s。1.2短時(shí)過零率短時(shí)平均過零率是語音信號時(shí)域分析中最簡單的一種特征。顧名思義,它是指每幀內(nèi)信號通過零值的次數(shù)。對于離散信號,短時(shí)平均過零率實(shí)質(zhì)上就是信號采樣點(diǎn)符號變化的次數(shù)。短時(shí)平均過零率仍然可以在一定程度上反映其頻譜性質(zhì),可以通過短時(shí)平均過零率獲得譜特性的一種粗略估計(jì)。短時(shí)平均過零率的公式為Z"=^£Isgn[x(/w)]—sgn[x(加-l)]lw(w-祝)其中,sgn[]函數(shù)的定義如下,即sgn|x(n)|-窗函數(shù)w(/i)為矩形窗,即1一l,jc(/i)<00《n<N其它N為窗長。根據(jù)語音的產(chǎn)生模型可知,發(fā)濁音時(shí),聲帶振動(dòng),盡管聲道有多個(gè)共振峰,但由于聲門波弓l起了頻譜的髙頻衰落,因此濁音能量集中于3kHZ以下。但是對于清音而言,由于聲帶不振動(dòng),由聲道的某些部位阻塞氣流產(chǎn)生類白噪聲,多數(shù)能量集中在較髙的頻率上。髙頻率對應(yīng)著髙過零率,低頻率對應(yīng)著低過零率,那么過零率與語音的清濁音特性就存在著對應(yīng)關(guān)系。一般的經(jīng)驗(yàn)結(jié)論是,清音和濁音的過零率分布大致為高斯分布,單純依賴于短時(shí)過零率來準(zhǔn)確判斷清濁音是不可能的,在實(shí)際應(yīng)用中往往是采用語音的多個(gè)特征參數(shù)來進(jìn)行綜合判決。可以通過短時(shí)平均過零率和短時(shí)能量結(jié)合起來判斷語音起止點(diǎn)的位置,即端點(diǎn)檢測。在背景噪聲較小的情況下,短時(shí)能量比較準(zhǔn)確,但當(dāng)背景噪聲較大BiJ",短時(shí)平均過零率可以獲得較好的檢測結(jié)果。2.藏語語音的端點(diǎn)檢測輸入為歸一化的語音段x和采樣率Fs6(1)求原始信號從每點(diǎn)開始的長度為Len內(nèi)的短時(shí)過零率,得到crslt為每點(diǎn)對應(yīng)的短時(shí)過零率(2)然后進(jìn)行過零率波形的平滑,其方法是對crslt做份,去掉過零率波形中的高頻,即份譜中間置零;用i迅恢復(fù)平滑后的過零率波形為C2(3)根據(jù)設(shè)置的過零率門限zerojhreshold,將平滑后的過零率C2中不超過門限的置1(4)計(jì)算原始信號中每點(diǎn)開始的FrameLength短時(shí)幀能量,得到E(5)平滑短時(shí)能量譜得到E3,且進(jìn)行歸一化E3=E3./max(E3);(6)根據(jù)歸一化能量門限energyjhreshold,平滑后的過零率中超過門限的置1得到E4(7)將過零率和歸一化能量相與v=E4&C3;對這個(gè)v進(jìn)行每點(diǎn)過零判斷,cross2記錄v總共的過零次數(shù),pt(cross2)^;用來記錄每次過零時(shí)對應(yīng)第幾個(gè)樣點(diǎn)(8)通過v(l)是否為1以及cro幼2是偶數(shù)還是奇數(shù)確定端點(diǎn)矩陣T;3.音節(jié)切分算法的設(shè)計(jì)音節(jié)切分算法作為語音音節(jié)的分割,必須找到語音信號的起始點(diǎn)和終止點(diǎn)即語音信號的頭和尾,同時(shí)去掉語音信號間隔.為此給出語音音節(jié)自動(dòng)劃分的方法如下l)確定短時(shí)過零區(qū)間在時(shí)間軸t上找出區(qū)間使得滿足①A(x^,A(x2H);②對任意A,f2e(jq,jc2)的有乂(O乂(G)>0其中A(t)表示在時(shí)刻t的振幅值2)確定短時(shí)過零區(qū)間上的能量-短時(shí)能量前面已經(jīng)說過,能量反映在振幅上,于是短時(shí)過零區(qū)間[a,b]上的能量一短時(shí)能量為"13)語音信號的判定假設(shè)存在連續(xù)的短時(shí)過零區(qū)間序列{[^,]},1'=1,2,....,加,由于短時(shí)過零區(qū)間[a,b]通常比較短,因此S的值也不會(huì)很大。對于非語音信號,短時(shí)過零區(qū)間不會(huì)連續(xù)出現(xiàn)許多,m不會(huì)很大,因此當(dāng)短時(shí)過零區(qū)間序列滿足給定的條件時(shí),可以認(rèn)定為語音信號.這個(gè)條件可以從兩方面給出①給定較大的長度L有w丄即連續(xù)的短時(shí)過零區(qū)間序列可以達(dá)到一定的寬度,一般取L=2000;②給定一個(gè)限制值P有加f=l這是限定單個(gè)短時(shí)過零區(qū)間的平均振幅,當(dāng)時(shí)可以認(rèn)為振幅過小,聲音無法聽到,p的值視錄音效果和方式?jīng)Q定.4)基于能量分布的音節(jié)自動(dòng)劃分方法①打開錄制的WAV文件,指針指向數(shù)據(jù)段的開始,給人限制值L和P;②開始搜索短時(shí)過零區(qū)間[a,b],直到指針指向數(shù)據(jù)段結(jié)束時(shí)轉(zhuǎn)到⑤,如果找到短時(shí)過零區(qū)間[a,.,6,],計(jì)箅短時(shí)能量S,否則結(jié)束;③判斷下一短時(shí)過零區(qū)間與[a,.,6,.]是否連續(xù),如果連續(xù),計(jì)算新的短時(shí)過零能量并做S/(b-a)2P判斷,若成立則繼續(xù),否則轉(zhuǎn)到②,如果不連續(xù),轉(zhuǎn)到④;④計(jì)算連續(xù)的短時(shí)過零區(qū)間序列長度L,若則記錄為一個(gè)語音音節(jié),否則到②;⑤輸出語音音節(jié)個(gè)數(shù)及起始點(diǎn)ai,終止點(diǎn)bm,結(jié)束。圖1藏語"^'^,,S了^^'彎3^^.5^1,,(漢語為"春夏秋冬為四季"的Wave文件顯示的部分波形圖。圖2藏語"^'q,,'^2^^3^3^^8^"(漢語為"春夏秋冬為四季"的部分短時(shí)平均幅度圖。圖3藏語"(漢語為"春夏秋冬為四季")的部分短時(shí)平均過零率圖。圖4藏語(漢語為"春夏秋冬為四季")的顯示的部分圖的音節(jié)切分結(jié)果,其中紅色線為切分標(biāo)記。圖5語音切分的模塊圖。主要功能函數(shù)定義如下1)voidMainProcessO,作用讀取藏語語音數(shù)據(jù),當(dāng)打開文件時(shí),調(diào)用MainProcessO函數(shù),便可將wave文件中需要的數(shù)據(jù)讀入內(nèi)存,便于我們對語音數(shù)據(jù)進(jìn)行處理。2)doubleHammingWinFunc(lpLinkLink),作用給語音加窗并求的語音的短時(shí)平均幅度,參數(shù)Link為輸入的語音數(shù)據(jù)的頭指針。3)VoidGetZero(unsignedintnWinSize,lpLinkplnLink,unsignedintnLiLen,unsignedint本dataoutzero)作用計(jì)算藏語語音的短時(shí)平均過零率,參數(shù)nWinSize為加窗的窗長,plnLink輸入語音信號的頭指針,nInLen為輸入語音信號的長度,*data0Utzero輸出過零率序列。4)VoidSyllablesSegmentationO,作用通過前面的函數(shù)計(jì)算語音信號的短時(shí)平均過零率與短時(shí)平均幅度,通過算法實(shí)現(xiàn)藏語語音的音節(jié)切分。5)voidDrawzbl(CDC,pDC),作用顯示切分后的藏語語音。參數(shù)卞DC是用來畫圖的。具體實(shí)施例方式采用軟件乂0++6.0,讀取wave文件,通過wave文件中的數(shù)據(jù)區(qū)的數(shù)據(jù),計(jì)算短時(shí)能量和短時(shí)過零率,再通過上述描述的語音音節(jié)切分的算法,實(shí)現(xiàn)語音的音節(jié)切分。實(shí)施例安多藏語語音的音節(jié)切分。通過對錄制的安多藏語連續(xù)語音共30例進(jìn)行切分,切分的準(zhǔn)確率達(dá)到30.6%。權(quán)利要求藏語語音的音節(jié)切分是藏語語音信息處理的重要組成部分和必要的環(huán)節(jié),現(xiàn)在還沒有藏語的語音音節(jié)切分的軟件。藏語語音的音節(jié)切分是實(shí)現(xiàn)藏語語音識(shí)別的基礎(chǔ)和前提。1.音節(jié)切分需要的參數(shù)1.1短時(shí)能量設(shè)語音信號為S(m),短時(shí)能量的定義<mathsid="math0001"num="0001"><math><![CDATA[<mrow><msub><mi>E</mi><mi>n</mi></msub><mo>=</mo><munderover><mi>Σ</mi><mrow><mi>m</mi><mo>=</mo><mi>n</mi></mrow><mrow><mi>n</mi><mo>+</mo><mi>N</mi><mo>-</mo><mn>1</mn></mrow></munderover><msup><mrow><mo>[</mo><mi>S</mi><mrow><mo>(</mo><mi>m</mi><mo>)</mo></mrow><mi>w</mi><mrow><mo>(</mo><mi>n</mi><mo>-</mo><mi>m</mi><mo>)</mo></mrow><mo>]</mo></mrow><mn>2</mn></msup></mrow>]]></math></maths>其中窗函數(shù)為哈明窗,為窗長為N短時(shí)平均能量特征主要用途如下1)可以作為區(qū)分清音段和濁音段的特征參數(shù)。實(shí)驗(yàn)結(jié)果表明濁音段的能量En明顯高于清音段。2)在信噪比較高的情況下,短時(shí)能量還可以作為區(qū)分有聲和無聲的依據(jù)。3)可以作為輔助的特征參數(shù)用于語音識(shí)別中。1.2短時(shí)平均過零率短時(shí)平均過零率是語音信號時(shí)域分析中最簡單的一種特征。顧名思義,它是指每幀內(nèi)信號通過零值的次數(shù)。對于離散信號,短時(shí)平均過零率實(shí)質(zhì)上就是信號采樣點(diǎn)符號變化的次數(shù)。短時(shí)平均過零率仍然可以在一定程度上反映其頻譜性質(zhì),可以通過短時(shí)平均過零率獲得譜特性的一種粗略估計(jì)。短時(shí)平均過零率的公式為<mathsid="math0002"num="0002"><math><![CDATA[<mrow><msub><mi>Z</mi><mi>n</mi></msub><mo>=</mo><mfrac><mn>1</mn><mrow><mn>2</mn><mi>N</mi></mrow></mfrac><munderover><mi>Σ</mi><mrow><mi>m</mi><mo>=</mo><mi>n</mi><mo>-</mo><mi>N</mi><mo>+</mo><mn>1</mn></mrow><mi>n</mi></munderover><mo>|</mo><mi>sgn</mi><mo>[</mo><mi>x</mi><mrow><mo>(</mo><mi>m</mi><mo>)</mo></mrow><mo>]</mo><mo>-</mo><mi>sgn</mi><mo>[</mo><mi>x</mi><mrow><mo>(</mo><mi>m</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>]</mo><mo>|</mo><mi>w</mi><mrow><mo>(</mo><mi>n</mi><mo>-</mo><mi>m</mi><mo>)</mo></mrow></mrow>]]></math></maths>其中,sgn[]為符號函數(shù),即<mathsid="math0003"num="0003"><math><![CDATA[<mrow><mi>sgn</mi><mo>|</mo><mi>x</mi><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow><mo>|</mo><mo>=</mo><mfencedopen='{'close=''><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mi>x</mi><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow><mo>≥</mo><mn>0</mn></mtd></mtr><mtr><mtd><mo>-</mo><mn>1</mn><mo>,</mo></mtd><mtd><mi>x</mi><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow><mo><</mo><mn>0</mn></mtd></mtr></mtable></mfenced></mrow>]]></math></maths>窗函數(shù)w(n)為矩形窗,即N為窗長??梢酝ㄟ^短時(shí)平均過零率和短時(shí)能量結(jié)合起來判斷語音起止點(diǎn)的位置,即端點(diǎn)檢測。在背景噪聲較小的情況下,短時(shí)能量比較準(zhǔn)確,但當(dāng)背景噪聲較大時(shí),短時(shí)平均過零率可以獲得較好的檢測結(jié)果。2.端點(diǎn)檢測輸入為歸一化的語音段x和采樣率Fs(1)求原始信號從每點(diǎn)開始的長度為Len內(nèi)的短時(shí)過零率,得到crslt為每點(diǎn)對應(yīng)的短時(shí)過零率(2)然后進(jìn)行過零率波形的平滑,其方法是對crslt做fft,去掉過零率波形中的高頻,即fft譜中間置零;用ifft恢復(fù)平滑后的過零率波形為C2(3)根據(jù)設(shè)置的過零率門限zero_threshold,將平滑后的過零率C2中不超過門限的置1(4)計(jì)算原始信號中每點(diǎn)開始的FrameLength短時(shí)幀能量,得到E(5)平滑短時(shí)能量譜得到E3,且進(jìn)行歸一化E3=E3./max(E3);(6)根據(jù)歸一化能量門限energy_threshold,平滑后的過零率中超過門限的置1得到E4(7)將過零率和歸一化能量相與v=F4&C3;對這個(gè)v進(jìn)行每點(diǎn)過零判斷,cross2記錄v總共的過零次數(shù),pt(cross2)=n;用來記錄每次過零時(shí)對應(yīng)第幾個(gè)樣點(diǎn)(8)通過v(1)是否為1以及cross2是偶數(shù)還是奇數(shù)確定端點(diǎn)矩陣T;v(1)=1則認(rèn)為起始點(diǎn)為濁音點(diǎn),v(1)=0則認(rèn)為清音或者靜默;v(1)是否為1決定了起點(diǎn)b的設(shè)置;cross2的奇偶決定了起點(diǎn)和終點(diǎn)的配對;所以分四種情況考慮例如if(v(1)=0&(mod(cross2,2)=0))%%Low,even則b=pt(n);e=pt(n+1);依次判斷每一對起點(diǎn)終點(diǎn)間距是否大于20ms幀長,如果大于則認(rèn)為是該起始點(diǎn)成立,間距為一段濁音;最后可以得到矩陣T,每一列代表一段濁音,第一行代表起點(diǎn),第二行代表終點(diǎn)3.音節(jié)切分音節(jié)切分算法作為語音音節(jié)的分割,必須找到語音信號的起始點(diǎn)和終止點(diǎn)即語音信號的頭和尾,同時(shí)去掉語音信號間隔.為此給出語音音節(jié)自動(dòng)劃分的方法如下1)確定短時(shí)過零區(qū)間在時(shí)間軸t上找出區(qū)間使得滿足①A(x1)=0,A(x2)=0;②對任意t1,t2∈(x1,x2)的有A(t1)A(t2)>0其中A(t)表示在時(shí)刻t的振幅值2)確定短時(shí)過零區(qū)間上的能量——短時(shí)能量前面已經(jīng)說過,能量反映在振幅上,于是短時(shí)過零區(qū)間[a,b]上的能量——短時(shí)能量為<mathsid="math0004"num="0004"><math><![CDATA[<mrow><mi>S</mi><mo>=</mo><munderover><mi>Σ</mi><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><msup><mrow><mo>{</mo><mi>A</mi><mrow><mo>(</mo><msub><mi>t</mi><mi>k</mi></msub><mo>)</mo></mrow><mo>}</mo></mrow><mn>2</mn></msup><mo>,</mo><mi>k</mi><mo>=</mo><mn>1,2</mn><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mi>n</mi></mrow>]]></math></maths>3)語音信號的判定假設(shè)存在連續(xù)的短時(shí)過零區(qū)間序列{[ai,bi]},i=1,2,....,m,由于短時(shí)過零區(qū)間[a,b]通常比較短,因此S的值也不會(huì)很大。對于非語音信號,短時(shí)過零區(qū)間不會(huì)連續(xù)出現(xiàn)許多,m不會(huì)很大,因此當(dāng)短時(shí)過零區(qū)間序列滿足給定的條件時(shí),可以認(rèn)定為語音信號.這個(gè)條件可以從兩方面給出①給定較大的長度L有bm-a1≥L即連續(xù)的短時(shí)過零區(qū)間序列可以達(dá)到一定的寬度,一般取L=2000;②給定一個(gè)限制值P有<mathsid="math0005"num="0005"><math><![CDATA[<mrow><mfrac><mn>1</mn><mi>m</mi></mfrac><munderover><mi>Σ</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>m</mi></munderover><msub><mi>S</mi><mi>i</mi></msub><mo>/</mo><mrow><mo>(</mo><msub><mi>b</mi><mi>i</mi></msub><mo>-</mo><msub><mi>a</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>≥</mo><mi>P</mi></mrow>]]></math></maths>這是限定單個(gè)短時(shí)過零區(qū)間的平均振幅,當(dāng)時(shí)可以認(rèn)為振幅過小,聲音無法聽到,P的值視錄音效果和方式?jīng)Q定.4)基于能量分布的音節(jié)自動(dòng)劃分方法①打開錄制的WAV文件,指針指向數(shù)據(jù)段的開始,給人限制值L和P;②開始搜索短時(shí)過零區(qū)間[a,b],直到指針指向數(shù)據(jù)段結(jié)束時(shí)轉(zhuǎn)到⑤,如果找到短時(shí)過零區(qū)間[ai,bi],計(jì)算短時(shí)能量S,否則結(jié)束;③判斷下一短時(shí)過零區(qū)間與[ai,bi]是否連續(xù),如果連續(xù),計(jì)算新的短時(shí)過零能量并做S/(b-a)≥P判斷,若成立則繼續(xù),否則轉(zhuǎn)到②,如果不連續(xù),轉(zhuǎn)到④;④計(jì)算連續(xù)的短時(shí)過零區(qū)間序列長度L,若bm-a1≥L則記錄為一個(gè)語音音節(jié),否則到②;⑤輸出語音音節(jié)個(gè)數(shù)及起始點(diǎn)ai,終止點(diǎn)bm,結(jié)束。主要功能函數(shù)定義如下1)voidMainProcess(),作用讀取藏語語音數(shù)據(jù)。當(dāng)打開文件時(shí),調(diào)用MainProcess()函數(shù),便可將wave文件中需要的數(shù)據(jù)讀入內(nèi)存,便于我們對語音數(shù)據(jù)進(jìn)行處理。2)doubleHammingWinFunc(lpLinkLink),作用給語音加窗并求的語音的短時(shí)平均幅度,參數(shù)Link為輸入的語音數(shù)據(jù)的頭指針。3)VoidGetZero(unsignedintnWinSize,lpLinkpInLink,unsignedintnInLen,unsignedint*dataoutzero)作用計(jì)算藏語語音的短時(shí)平均過零率,參數(shù)nWinSize為加窗的窗長,pInLink輸入語音信號的頭指針,nInLen為輸入語音信號的長度,*dataoutzero輸出過零率序列。4)VoidSyllablesSegmentation(),作用通過前面的函數(shù)計(jì)算語音信號的短時(shí)平均過零率與短時(shí)平均幅度,通過算法實(shí)現(xiàn)藏語語音的音節(jié)切分。5)voidDrawzb1(CDC*pDC),作用顯示切分后的藏語語音。參數(shù)*pDC是用來畫圖的。l.音節(jié)切分需要的參數(shù)1.1短時(shí)能量設(shè)語音信號為,短時(shí)能量的定義<formula>formulaseeoriginaldocumentpage2</formula>其中窗函數(shù)為哈明窗,為、'1。.54-0.46cos窗長為N短時(shí)平均能量特征主要用途如下1)可以作為區(qū)分清音段和濁音段的特征參數(shù)。實(shí)驗(yàn)結(jié)果表明濁音段的能量E"明顯髙于清音段。2)在信噪比較高的情況下,短時(shí)能量還可以作為區(qū)分有聲和無聲的依據(jù)。3)可以作為輔助的特征參數(shù)用于語音識(shí)別中。'1.2短時(shí)平均過零率短時(shí)平均過零率是語音信號時(shí)域分析中最簡單的一種特征。顧名思義,它是指每幀內(nèi)信號通過零值的次數(shù)。對于離散信號,短時(shí)平均過零率實(shí)質(zhì)上就是信號采樣點(diǎn)符號變化的次數(shù)。短時(shí)平均過零率仍然可以在一定程度上反映其頻譜性質(zhì),可以通過短時(shí)平均過零率獲得譜特性的一種粗略估計(jì)。短時(shí)平均過零率的公式為1w其中,s^[]為符號函數(shù),即sgn|x(n)|=1jc(w)20一l,;c(小0窗函數(shù)w00為矩形窗,即,、fl0Sn〈N、,1_0其它N為窗長??梢酝ㄟ^短時(shí)平均過零率和短時(shí)能量結(jié)合起來判斷語音起止點(diǎn)的位置,即端點(diǎn)檢測。在背景噪聲較小的情況下,短時(shí)能量比較準(zhǔn)確,但當(dāng)背景噪聲較大時(shí),短時(shí)平均過零率可以獲得較好的檢測結(jié)果。2.端點(diǎn)檢測輸入為歸一化的語音段X和采樣率Fs(1)求原始信號從每點(diǎn)開始的長度為Len內(nèi)的短時(shí)過零率,得到crslt為每點(diǎn)對應(yīng)的短時(shí)過零率(2)然后進(jìn)行過零率波形的平滑,其方法是對crslt做ffi,去掉過零率波形中的高頻,即ffi譜中間置零用iffl恢復(fù)平滑后的過零率波形為C2(3)根據(jù)設(shè)置的過零率門限zerojhreshold,將平滑后的過零率C2中不超過門限的置1(4)計(jì)算原始信號中每點(diǎn)開始的FrameLength短時(shí)幀能量,得到E(5)平滑短時(shí)能量譜得到E3,且進(jìn)行歸一化E3=E3,/max(E3);(6)根據(jù)歸一化能量門限energyJhreshold,平滑后的過零率中超過門限的置1得到E4(7)將過零率和歸一化能量相與v=E4&C3;對這個(gè)v進(jìn)行每點(diǎn)過零判斷,cross2記錄v總共的過零次數(shù),pt(cross2"n;用來記錄每次過零時(shí)對應(yīng)第兒個(gè)樣點(diǎn)(8)通過v(l)是否為1以及c咖s2是偶數(shù)還是奇數(shù)確定端點(diǎn)矩陣T;v(l一l則認(rèn)為起始點(diǎn)為濁音點(diǎn),v(l)《則認(rèn)為清音或者靜默;v(l)是否為1決定了起點(diǎn)b的設(shè)置;cross2的奇偶決定了起點(diǎn)和終點(diǎn)的配對;所以分四種情況考慮例如if(v(l)=0&(mod(cioss2,2)==0))Low,even則b=pt(n);e=pt(n+l);依次判斷每一對起點(diǎn)終點(diǎn)間距是否大于20ms幀長,如果大于則認(rèn)為是該起始點(diǎn)成立,間距為一段濁音;最后可以得到矩陣T,每一列代表一段濁音,第一行代表起點(diǎn),第二行代表終點(diǎn)3.音節(jié)切分音節(jié)切分箅法作為語音音節(jié)的分割,必須找到語音信號的起始點(diǎn)和終止點(diǎn)即語音信號的頭和尾,同時(shí)去掉語音信號間隔.為此給出語音音節(jié)自動(dòng)劃分的方法如下l)確定短時(shí)過零區(qū)間在時(shí)間軸t上找出區(qū)間使得滿足①A(x,風(fēng)A(x2H);②對任意^,/2e(aa)的有乂")i4(0>0其中A(t)表示在時(shí)刻t的振幅值2)確定短時(shí)過零區(qū)間上的能量-短時(shí)能量前面己經(jīng)說過,能量反映在振幅上,于是短時(shí)過零區(qū)間[a,b]上的能量一短時(shí)能量為s=£w"}2,"i,2,…,"*=i3)語音信號的判定假設(shè)存在連續(xù)的短時(shí)過零區(qū)間序列{[6{]},1'=1,2,....,附,由于短時(shí)過零區(qū)間[a,b]通常比較短,因此S的值也不會(huì)很大。對于非語音信號,短時(shí)過零區(qū)間不會(huì)連續(xù)出現(xiàn)許多,m不會(huì)很大,因此當(dāng)短時(shí)過零區(qū)間序列滿足給定的條件時(shí),可以認(rèn)定為語音信號.這個(gè)條件可以從兩方面給出①給定較大的長度L有即連續(xù)的短時(shí)過零區(qū)間序列可以達(dá)到一定的寬度,一般取1>2000;②給定一個(gè)限制值P有這是限定單個(gè)短時(shí)過零區(qū)間的平均振幅,當(dāng)時(shí)可以認(rèn)為振幅過小,聲音無法聽到,P的值視錄音效果和方式?jīng)Q定.4)基于能量分布的音節(jié)自動(dòng)劃分方法①打開錄制的WAV文件,指針指向數(shù)據(jù)段的開始,給人限制值L和P;②開始搜索短時(shí)過零區(qū)間[a,b],直到指針指向數(shù)據(jù)段結(jié)束時(shí)轉(zhuǎn)到⑤,如果找到短時(shí)過零區(qū)間[fl,.A],計(jì)算短時(shí)能量S,否則結(jié)束;③判斷下一短時(shí)過零區(qū)間與[fl,.々]是否連續(xù),如果連續(xù),計(jì)算新的短時(shí)過零能量并做S/(b-a)2P判斷,若成立則繼續(xù),否則轉(zhuǎn)到②,如果不連續(xù),轉(zhuǎn)到④;④計(jì)算連續(xù)的短時(shí)過零區(qū)間序列長度L,若w丄則記錄為一個(gè)語音音節(jié),否則到②;⑤輸出語音音節(jié)個(gè)數(shù)及起始點(diǎn)ai,終止點(diǎn)bm,結(jié)束。主要功能函數(shù)定義如下1)voidMainProcessO,作用讀取藏語語音數(shù)據(jù)。當(dāng)打開文件時(shí),調(diào)用MainProcessO函數(shù),便可將wave文件中需要的數(shù)據(jù)讀入內(nèi)存,便于我們對語音數(shù)據(jù)2)doiibleHammingWinF皿c(lpLinkLink),作用絲音加窗并求的語音的短時(shí)平均幅度,參數(shù)Link為輸入的語音數(shù)據(jù)的頭指針。作用計(jì)算藏語語音的短時(shí)平均過零率,參數(shù)nWinSize為加窗的窗長,pMLiiik輸入語音信號的頭指針,nlnLea為輸入語音信號的長度,*dataout2ero輸出過零率序列。4)VoidSyllablesSegmentationO,作用通過前面的函數(shù)計(jì)算語音信號的短時(shí)平均過零率與短時(shí)平均幅度,通過算法實(shí)現(xiàn)藏語語音的音節(jié)切分。5)voidDrawzbl(CDC*pDC),作用顯示切分后的藏語語音。參數(shù),DC是用來畫圖的。進(jìn)行處理。3)VoidGetZero(unsignedintnWinSize,lpLiiikpIoLink,unsignedintnlnLeiijUnsignedint'dataoutzero)全文摘要藏語語音的音節(jié)切分是藏語語音信息處理的重要組成部分和必要的環(huán)節(jié),為藏語語音識(shí)別和語音庫的制作奠定了基礎(chǔ),現(xiàn)在還沒有藏語的語音音節(jié)切分的軟件。通過提取安多藏語語音的時(shí)域參數(shù)短時(shí)能量和短時(shí)過零率,利用特定的算法,實(shí)現(xiàn)藏語的音節(jié)切分。通過對30例連續(xù)的安多藏語語音進(jìn)行音節(jié)切分,切分的準(zhǔn)確率達(dá)到30.6%。文檔編號G10L15/00GK101290766SQ20071009784公開日2008年10月22日申請日期2007年4月20日優(yōu)先權(quán)日2007年4月20日發(fā)明者于洪志,單廣榮,戴玉剛,暉曹,李應(yīng)興,武光利,滿正行申請人:西北民族大學(xué)