專利名稱:一種自適應的語音端點檢測方法
技術領域:
本發(fā)明涉及自動字幕生成系統(tǒng)中的語音檢測技術,具體涉及一種自適應的語音端點監(jiān)測方法。
背景技術:
語音端點檢測技術是語音技術研究的一個新的領域,其應用于自動字幕生成系統(tǒng)中。當前的字幕制作方法首先需要準備好字幕文稿,這種字幕文稿是指在制作電視節(jié)目之前,事先寫好的一個文本文件,記錄著節(jié)目的標題、主持人要說的話,以及被采訪人所講的話等內(nèi)容。在制作電視節(jié)目時,編輯人員把音、視頻素材添加到非線性編輯軟件的故事板上,然后按照節(jié)目的主旨,對其進行編輯。編輯操作一般包括對素材位置的修改,添加一些特技,添加字幕等等。添加字幕時,一般是先在字幕文稿中選擇多段文字(每一段就是一句話),然后以這些文字生成一個新的字幕文件,將這個文件拖上非線性編輯軟件的軌道,此時字幕中的每一句話就會按順序播出,但是往往會出現(xiàn)“聲畫不同步”的現(xiàn)象,即字幕出現(xiàn)的時刻和音頻文件中播出的聲音對不上。這時就需要編輯人員一邊聽聲音,一邊一句句地修改字幕的入點和出點的值。這就非常耗費人力和時間,影響唱詞文件生成的質(zhì)量和效率。
從復雜背景噪聲中找出語音的起始點和結束點,即語音端點檢測技術,一直是語音信號處理中的基本問題。由于語音端點檢測的重要性,人們已經(jīng)提出了很多種語音端點檢測方法。這些方法大致可以分為基于模型的方法和基于門限的方法兩類。
基于模型的方法可以使用多維的特征如Mel倒普等,但是這種方法非常依賴于建立模型并進行數(shù)據(jù)訓練,計算量非常大;因為采用的特征維數(shù)較多,對環(huán)境進行自適應就需要大量的數(shù)據(jù),因此實現(xiàn)起來有相當?shù)碾y度。
基于門限的語音端點檢測方法則是根據(jù)語音的特點,選擇合適的特征參數(shù),然后將該特征參數(shù)與預先設定的門限值進行比較,或者是先對特征參數(shù)進行一系列的后期處理然后再與門限進行比較。在傳統(tǒng)的基于門限方法中,基本上都使用了短時能量、短時過零率和短時信息熵等語音參數(shù),分別判斷它們是否超過一個閥值,然后再通過“與”或者“或”運算來做出是否為語音起點或終點的判斷。
現(xiàn)有的基于門限的端點檢測方法中,一般會首先選取音頻最初的10-20ms作為背景噪聲進行分析,并通過分析來設定兩個門限值一個用于確定語音起點,另一個用于確定語音的終點。當發(fā)現(xiàn)所觀察的參數(shù)值大于起點門限,則將該點標識為語音的起點。語音起點確定后,當所觀察的參數(shù)值小于終點門限時,將該點標識語音終點。這種方法具有一定的限制首先,這種方法要求在整個語音端點檢測的過程中,背景噪聲不發(fā)生大的變化;其次,由于不同的說話人所對應的特征門限不同,這種檢測算法的門限值很難確定。
對于基于門限的語音端點檢測方法,影響檢測結果的因素主要有兩個1.特征參數(shù)的提??;2.門限值的確定以及調(diào)整。
現(xiàn)有的基于門限的端點檢測參數(shù)主要有 1)能量以聲音的強度作為判斷參數(shù)。這種方法在高信噪比的情況下會有很好的效果。但是,在信噪比低的情況下,如在汽車引擎聲、關門聲等噪聲的干擾下,這種方法的準確率很低。
2)頻率采用頻率域的特征作為判斷依據(jù)。這種方法可以準確的區(qū)分語音和汽車引擎、關門聲等噪聲,但是,對于語音和樂音的區(qū)別效果較差。
傳統(tǒng)的基于門限的語音端點檢測方法主要存在以下幾點不足 首先,無論采用哪種音頻參數(shù),傳統(tǒng)的語音端點檢測方法在特定的噪聲環(huán)境下都存在很大的不足。比如,基于能量的方法在低SNR的環(huán)境中表現(xiàn)不好;基于信息熵的算法在音樂背景下則會失效。
另外,傳統(tǒng)的語音端點檢測方法主要應用在語音識別、語音撥號、指令控制以及嵌入式系統(tǒng)中。在這些應用環(huán)境中,語音只會持續(xù)很短一段時間,一般是幾秒鐘。而且背景噪聲在端點檢測過程中基本上不發(fā)生大的變化,因此這些方法一般取音頻的前5幀來分析噪音。但是如果語音持續(xù)較長的一段時間,并且背景噪聲在檢測過程中頻繁變化,那么上述方法并不能很好的工作。
最后,傳統(tǒng)的語音端點檢測方法著重于從背景噪聲中精確地提取出單個的字(詞)的語音端點。與之相比,自動唱詞生成系統(tǒng)對精度的要求相對較低,而側(cè)重于在連續(xù)的語音中,進行連續(xù)的語音端點檢測,并且最終檢測出語句的端點。
因此,有必要引入一種音頻參數(shù),能夠在多種噪聲條件下保證語音端點檢測的準確性。并提出一種新的語音端點檢測方法,能夠應對突然變化的背景噪聲,并能夠在復雜的背景噪聲環(huán)境下,對連續(xù)語音進行端點檢測,并最終檢測出語句的端點。
發(fā)明內(nèi)容
本發(fā)明的目的在于針對自動字幕生成系統(tǒng)的特點以及現(xiàn)有語音端點檢測方法的缺陷,提供一種自適應的語音端點檢測方法,可以在背景噪聲經(jīng)常發(fā)生變化的情況下,對連續(xù)語音進行語音端點檢測,從而提高在復雜噪聲背景下的語音端點檢測效率。
本發(fā)明的技術方案如下一種自適應的語音端點檢測方法,包括如下步驟 (1)音頻數(shù)據(jù)輸入后,解析音頻文件并提取數(shù)字采樣值,對獲取到的音頻采樣序列進行帶通濾波; (2)將音頻采樣序列分成固定長度的幀,并形成一個幀序列,針對每一幀數(shù)據(jù)提取短時能量、短時過零率和短時信息熵三個音頻特征參數(shù); (3)根據(jù)上述音頻特征參數(shù)計算每一幀數(shù)據(jù)的短時能頻值,并形成一個短時能頻值序列; (4)從第一幀數(shù)據(jù)開始,分析短時能頻值序列,并找出一對語音起點和終點; (5)分析背景噪聲,如果發(fā)現(xiàn)背景噪聲發(fā)生改變,則重新計算背景噪聲的音頻特征參數(shù),并更新短時能頻值序列; (6)返回步驟(4),繼續(xù)尋找下一對語音起點和終點,重復此過程直到檢測結束,并輸出語音端點檢測結果。
進一步,在上述自適應的語音端點檢測方法中,當步驟(6)輸出語音端點檢測結果后,遍歷這個語音端點序列,依次尋找一個語音終點Fe,以及下一個語音起點Fe,如果Fe和Fb相距超過規(guī)定的時間間隔,則確定Fe和Fb之間為語句的間隔,將Fe和Fb標記為語句端點,重復此過程確定所有的語句端點。上述判斷語句端點所規(guī)定的時間間隔為100ms。
進一步,如上所述的自適應的語音端點檢測方法,在步驟(1)中,所述的帶通濾波的帶寬為400Hz~3500Hz。
進一步,如上所述的自適應的語音端點檢測方法,在步驟(2)中,將音頻采樣序列分成10ms長度的幀。
進一步,如上所述的自適應的語音端點檢測方法,在步驟(2)中,所提取的第i幀的短時能量為 其中,N表示第i幀中所包含的音頻采樣數(shù)量;Sn表示第n個采樣的取樣值。
進一步,如上所述的自適應的語音端點檢測方法,在步驟(2)中,所提取的第i幀的短時過零率為 其中,N表示第i幀中所包含的音頻采樣數(shù)量;Sn表示第n個采樣的取樣值;sgn()為符號函數(shù),定義為 進一步,如上所述的自適應的語音端點檢測方法,在步驟(2)中,提取短時信息熵的步驟如下 (a)利用短時傅里葉變換(FFT)對每一幀的信號進行由時域向頻域的轉(zhuǎn)換 其中,Sn表示第n個音頻采樣,N為總采樣數(shù); (b)計算每一頻率的出現(xiàn)概率 其中,s(fi)表示頻率f的頻譜能量,pi表示相應頻率的出現(xiàn)概率,M表示傅里葉變換計算得出的頻率的總數(shù),即窗口寬度, 所規(guī)定的約束條件為 s(fi)=0 if fi≤250HZ or fi≥3750HZ pi=0 if pi≥0.9 (c)計算語音信息熵 其中,M表示傅里葉變換計算得出的頻率的總數(shù),即窗口寬度,pi表示相應頻率的出現(xiàn)概率,Hi表示第i幀的短時信息熵。
進一步,如上所述的自適應的語音端點檢測方法,在步驟(3)中,第i幀的短時能頻值為 EZE-featurei=(Ei-Eb)·(Zi-Zb)·(Hi-Hb) 其中,EZE-featurei表示第i幀的短時能頻值;Ei、Zi和Hi分別表示第i幀的短時能量、短時過零率和短時信息熵;Eb、Zb和Hb分別表示當前背景噪聲的短時能量、短時過零率和短時信息熵。
更進一步,在步驟(3)中,對每一幀的短時能頻值進行平滑處理,處理中對短時能量、短時過零率和短時信息熵三個音頻特征參數(shù)分別進行平滑,通常采用5幀平滑的方式,對于某一幀F(xiàn)n,設它的某個音頻特征參數(shù)是Xn,找到它左右相鄰的4幀F(xiàn)n-2、Fn-1、Fn+1、Fn+2,并找出它們相應的音頻特征參數(shù)Xn-2、Xn-1、Xn+1、Xn+2,則平滑后得到的音頻特征參數(shù)Xn-smoothed為 對于第一幀和最后一幀采用3幀平滑的方式,平滑后得到的音頻特征參數(shù)分別為 對于第二幀和倒數(shù)第二幀采用4幀平滑的方式,平滑后得到的音頻特征參數(shù)分別為 進一步,如上所述的自適應的語音端點檢測方法,在步驟(4)中,尋找語音起點的步驟如下 (a)從第t幀開始尋找,檢測第t幀之后每一幀的短時能頻值,直至找到一幀j,使得 Xt≤Xt+1≤Xt+2≤......≤Xj且Xj+1≥Xj+2 即尋找從第t幀開始的短時能頻值序列的上升區(qū)間,記為At; (b)計算所找到的上升區(qū)間At的短時能頻值序列波形的平均斜率Rt 其中,Xt為第t幀的短時能頻值,Xj為第j幀的短時能頻值; (c)設定一個門限值Rm來確定語音起始點,如果Rt≥Rm,且第t幀之前的區(qū)間沒有被認為是語音區(qū)間,則將第t幀記為語音的起點,然后令t=j+1,去尋找與之相匹配的語音終點;如果Rt<Rm,則令t=j+1,重復步驟(a)的操作。
更進一步,如上所述的自適應的語音端點檢測方法,在步驟(4)中,尋找語音終點的步驟如下 (I)從第t幀開始尋找,檢測第t幀之后每一幀的短時能頻值,直至找到一幀j,使得 Xt≥Xt+1≥Xt+2≥......≥Xj且Xj+1≤Xj+2 即尋找從第t幀開始的短時能頻值序列的下降區(qū)間,記為Dt; (II)計算所找到的下降區(qū)間Dt的短時能頻值序列波形的平均斜率Rt 其中,Xt為第t幀的短時能頻值,Xj為第j幀的短時能頻值; (III)通過設定的門限值Rm來判斷語音信號的終點,如果Rt≥Rm,在已經(jīng)找到一個語音起點的情況下,將第t幀記為與前一個語音起點相對應的語音終點;如果Rt<Rm,則令t=j+1,重復步驟(I)的操作。
更進一步,在上述尋找語音終點的過程中,步驟(III)中如果Rt≥Rm,且第t幀之前還沒有找到一個單獨的語音起點,即找到了一個不對應任何語音起點的下降區(qū)間Dt,則該下降區(qū)間Dt為一段單獨的語音區(qū)間,此時將第t幀記為語音起點,將第j幀記為語音終點。
更進一步,如上所述的自適應的語音端點檢測方法,在步驟(4)中,尋找語音起點和終點的過程中,如果一個不屬于語音部分的下降區(qū)間D1位于兩個屬于語音部分的上升區(qū)間A1、A2之間,或者一個不屬于語音部分的上升區(qū)間A3位于兩個屬于語音部分的下降區(qū)間D2、D3之間,則將下降區(qū)間D1和上升區(qū)間A3均視為屬于語音部分。
進一步,如上所述的自適應的語音端點檢測方法,在步驟(4)中,尋找一對語音起點和終點時,確定門限值Rm的步驟如下 (i)分析當前的短時能頻值序列,找出其最小值,記為EZE-featuremin;找出其最大值,記為EZE-featuremax,然后計算EZE-featuremax/100; (ii)比較EZE-featuremin和EZE-featuremax/100,取其中較大者,記為EZE-featureslope; (iii)確定門限值Rm=EZE-featureslope×2。
進一步,如上所述的自適應的語音端點檢測方法,在步驟(5)中,重新計算背景噪聲的音頻特征參數(shù),并更新短時能頻值序列的步驟如下 (a)針對當前找到的語音起點,記為第Fh幀,判斷Fh幀與上一個語音終點所在的Ft幀相距的時間間隔,當在300ms以上時,進行環(huán)境噪聲的提取; (b)從第Ft幀開始,取接下來的10幀當作背景噪聲,重新計算背景噪聲的短時能量Eb,短時過零率Zb和短時信息熵Hb的值,計算方法采用取10幀中的算術平均值; (c)從第Ft+1幀開始,使用更新后的背景噪聲的短時能量Eb,短時過零率Zb和短時信息熵Hb,重新計算每一幀的短時能頻值,得到新的短時能頻值序列。
本發(fā)明的有益效果如下本發(fā)明所提供的自適應的語音端點檢測方法可以根據(jù)發(fā)音人語音的停頓,準確的找出每一句字幕所對應的入點和出點的時間,節(jié)目制作人員只需要將文件拖上非線性編輯軟件的軌道即可,大大節(jié)省了唱詞文件生成過程中的人力和物力資源。另外,本發(fā)明綜合考慮了語音的時域和頻域特征,能夠通過對背景噪聲的實時分析來應對突然變化的背景噪聲,并能夠在復雜的背景噪聲環(huán)境下,對連續(xù)語音進行端點檢測,并最終檢測出語句的端點。與傳統(tǒng)方法相比,本發(fā)明的語音端點檢測效率更高、質(zhì)量更好。
圖1為本發(fā)明語音端點檢測的總體流程圖。
圖2為自動字幕生成系統(tǒng)的示意圖。
圖3為短時能頻值的提取流程圖。
圖4為短時能頻值的波形圖。
圖5為短時能頻值的平滑處理流程圖。
圖6為短時能頻值平滑處理前后的波形對比圖。
圖7為檢測語音起點和終點的流程圖。
圖8為語音、音樂和噪聲波形對比圖。
圖9為短時能頻值波形特殊情況示意圖。
圖10為尋找語句端點的流程圖。
圖11為噪聲反饋的對比圖。
圖12短時能頻值波形的標示圖。
具體實施例方式 下面結合附圖和具體實施例對本發(fā)明進行詳細的描述。
本發(fā)明所提供的自適應的語音端點檢測方法應用于自動字幕生成系統(tǒng)中,自動字幕生成系統(tǒng)接受用戶輸入一個采用PCM音頻壓縮格式、采樣頻率48k、采樣位數(shù)16位、聲道數(shù)目2(立體聲)、文件格式為wav的音頻文件,以及相應的字幕文稿;輸出為一個srt格式的字幕文件,內(nèi)容是字幕文稿中的每一句話及其所對應的開始時間點和結束時間點。整個系統(tǒng)結構如圖2所示。
本發(fā)明所提供的語音端點檢測流程如圖1所示,可以根據(jù)背景噪聲的變化對語音參數(shù)進行及時的調(diào)整,從而提高在復雜噪聲背景下的語音端點檢測效率。其具體步驟如下 (1)音頻數(shù)據(jù)輸入后,采用常規(guī)方法解析音頻文件并提取數(shù)字采樣值,模擬到數(shù)字的轉(zhuǎn)換過程分為采樣和量化,采樣是把連續(xù)的時間離散化,量化是把采樣幅度的連續(xù)取值離散化,采樣波形能夠表示為 s(n)=sa(nT),-∞<n<∞ 式中Sa是模擬波形,n是整數(shù),T是采樣周期或者說是兩個相鄰樣品之間的時間差,它是由輸入信號的帶寬或它的最大頻率確定; 對獲取到的音頻采樣序列進行帶通濾波,帶寬為400hz~3500hz,其主要目的是讓信號在規(guī)定頻率范圍內(nèi)通過,把人發(fā)音的頻段以外的噪聲或者音樂濾除,此步驟可以大大降低背景音樂對語音端點檢測的影響; (2)對音頻采樣序列進行窗口處理,將其分成10ms長度的幀,并形成一個幀序列,針對每一幀數(shù)據(jù)提取短時能量、短時過零率和短時信息熵三個音頻特征參數(shù); (3)根據(jù)上述音頻特征參數(shù)計算每一幀數(shù)據(jù)的短時能頻值,并形成一個短時能頻值序列; (4)從第一幀數(shù)據(jù)開始,分析短時能頻值序列,并找出一對語音起點和終點; (5)分析背景噪聲(包括背景音樂),如果發(fā)現(xiàn)背景噪聲發(fā)生改變,則重新計算背景噪聲的音頻特征參數(shù),并更新短時能頻值序列; (6)返回步驟(4),繼續(xù)尋找下一對語音起點和終點,重復此過程直到檢測結束,并輸出語音端點檢測結果; (7)遍歷這個語音端點序列,依次尋找一個語音終點Fe,以及下一個語音起點Fb,如果Fe和Fb相距超過規(guī)定的時間間隔100ms,則確定Fe和Fb之間為語句的間隔,將Fe和Fb標記為語句端點,重復此過程確定所有的語句端點。
下面對上述各步驟中所涉及到的技術解決方案進行詳細的描述。
(一)短時能量、短時過零率和短時信息熵三個音頻特征參數(shù)的提取 1.短時能量 能量是最經(jīng)常使用的音頻特征參數(shù)之一,是對語音信號最直觀的表示。語音信號的能量分析基于語音信號幅度隨時間有相當?shù)淖兓@一現(xiàn)象。能量可以用于區(qū)別發(fā)音的清音段和濁音段,能量值較大的對應于清音段,能量值較小的對應于濁音段。對于高信噪比的信號,可以用能量來判斷有無語音。無語音信號的噪聲能量較小,而有語音信號時能量會顯著增大,由此可以粗略區(qū)分語音信號的起始點和中止點。另外,能量還可以用來區(qū)分聲母和韻母的分界、以及連字的分界等。
在本發(fā)明中,采用“短時能量”作為主要的特征參數(shù)之一。所謂短時能量,就是先對音頻信號進行分幀處理,然后對每一幀求其能量,它被定義為一幀中所有采樣值平方的和。第i幀的短時能量定義為 其中,N表示第i幀中所包含的音頻采樣數(shù)量;Sn表示第n個采樣的取樣值。
2.短時過零率 過零率是聲音信號處理過程中一個常用的音頻特征參數(shù)。當離散語音信號的時域波形通過時間橫軸時,相鄰時刻的采樣值如果具有不同的符號,稱為“過零”。單位時間的過零次數(shù)稱為“過零率”,即單位時間內(nèi)音頻采樣值符號變換的次數(shù)。同上,在本發(fā)明中將單位時間限定為一幀,每一幀的過零率就是“短時過零率”。第i幀的短時過零率定義如下 其中,Sn表示第n個采樣的取樣值;sgn()為符號函數(shù),定義為 過零分析是語音的時域分析中最簡單的一種分析。它可以區(qū)別語音的發(fā)音是清音還是濁音。由于清音語音的多數(shù)能量出現(xiàn)在較高的頻率上,因此清音的過零率較高;而濁音語音具有高頻跌落的頻譜,因此濁音的過零率低。利用短時過零率還可以從背景噪聲中找出語音信號。在孤立詞的語音識別中,必須要在一串連續(xù)的語音信號中進行適當分割,用以確定每個單詞語音的信號,也即找出每個單詞的開始和終止位置。用平均過零率來確定單詞的起始點時,判斷依據(jù)是語音開始點以前的過零率低,而開始點以后的過零率有明顯的數(shù)值。在有背景噪聲的情況下,一般背景噪聲的平均過零率較低,而單詞起始段的平均過零率急劇增大,由此可判定此單詞的起始點。
3.短時信息熵 語音的感知過程與人類聽覺系統(tǒng)具有頻譜分析功能是緊密相關的。因此,對語音信號進行頻譜分析,是認識語音信號和處理語音信號的重要方法。語音信號是一種典型的非平穩(wěn)信號,但是其非平穩(wěn)性是由發(fā)音器官的物理運動過程而產(chǎn)生的,由此可以假定其頻域也是短時平穩(wěn)的。
信息熵是頻域的重要音頻參數(shù),它反應了語音信號所傳達的信息量的大小。信息熵在語音編解碼中經(jīng)常被使用,J.L.Shen首次將它應用在語音端點檢測技術中。本發(fā)明同樣對每一幀都計算其信息熵,稱為短時信息熵,計算方法如下 (a)利用短時傅里葉變換(FFT)對每一幀的信號進行由時域向頻域的轉(zhuǎn)換 其中,Sn表示第n個音頻采樣,N為總采樣數(shù); 由于此處的傅立葉變換都是對某一幀進行的,因此相當于對傅立葉變換加上了一個窗口函數(shù)w(n-k)。k的取值取決于要對哪一幀進行短時傅立葉變換。
(b)計算每一頻率的出現(xiàn)概率 其中,s(fi)表示頻率f的頻譜能量,pi表示相應頻率的出現(xiàn)概率,M表示傅里葉變換計算得出的頻率的總數(shù),即窗口寬度,此處取480。
所規(guī)定的約束條件為 s(fi)=0 if fi≤250HZ or fi≥3750HZ pi=0 if pi≥0.9 第一個約束公式用來保證語音信號的頻率范圍。因為人的發(fā)音頻率基本集中在250Hz到3750Hz之間,所以我們把頻率限定在這個范圍之內(nèi)。第二個約束公式用來濾除在某些頻率上持續(xù)發(fā)生的噪聲。
(c)計算語音信息熵 其中,M表示傅里葉變換計算得出的頻率的總數(shù),即窗口寬度,pi表示相應頻率的出現(xiàn)概率,Hi表示第i幀的短時信息熵。
試驗證明,語音信號的信息熵和非語音信號的信息熵之間存在很大的差別,由此可以用來尋找語音端點的位置。在很多情況下,尤其是當背景噪聲主要是機械噪聲時,使用信息熵作為特征參數(shù)比單純使用能量更加可靠。
但是,在連續(xù)不斷的背景噪聲或者音樂背景下,使用信息熵來進行語音端點檢測會非常不可靠。因為同語音一樣,連續(xù)的背景噪聲或者背景音樂也含有很多信息。相對而言,在這種情況下使用能量作為特征參數(shù)反而會取得較好的效果,因為語音與背景噪聲的疊加總會大過單純的背景噪聲。
(二)短時能頻值的確定 在上述三個音頻特征參數(shù)的基礎上,本發(fā)明提出了一個結合時域和頻域的語音特征參數(shù),稱作短時能頻值,記做EZE-feature。
1.短時能頻值的定義 第i幀的短時能頻值EZE-featurei的定義如下 EZE-featurei=(Ei-Eb)·(Zi-Zb)·(Hi-Hb) 其中,EZE-featurei表示第i幀的短時能頻值;Ei、Zi和Hi分別表示第i幀的短時能量、短時過零率和短時信息熵;而Eb、Zb和Hb則分別表示了當前背景噪聲的短時能量、短時過零率和短時信息熵。典型的短時能頻值波形如圖4所示,截取自一段新聞的短時能頻值波形。
短時能頻值同時結合了時域和頻域的語音特征。短時能量和短時過零率屬于時域的音頻特征參數(shù),短時信息熵則屬于頻域的音頻特征參數(shù)。將時域和頻域的音頻特征參數(shù)結合在一起,能夠發(fā)揮它們各自的長處,同時又可以在一定程度上規(guī)避它們各自的缺點,從而能夠有效的應對各種不同類型的背景噪聲。
2.短時能頻值的提取過程 在語音端點檢測過程中,我們需要求得每一幀的短時能頻值。求第i幀的短時能頻值,就要用到第i幀的短時能量、短時過零率和短時信息熵。其提取過程如圖3所示。
步驟1首先對音頻信號序列進行分幀處理,得到一個音頻幀序列。在本發(fā)明中將10ms規(guī)定為一幀。例如,如果音頻文件的采樣率是48k/s,那么每幀就應該包含480個采樣。
步驟2從步驟1中得到的幀序列里的第一幀開始直到最后,計算每一幀的三個音頻特征參數(shù),得到短時能量序列、短時過零率序列和短時信息熵序列。
步驟3從幀序列里的第一幀開始直到最后,應用步驟2里求得的三個音頻特征參數(shù)序列,并應用每一幀所對應的背景噪聲的相應音頻特征參數(shù),按照短時能頻值的定義公式進行計算。重復此過程直到所有幀的短時能頻值都計算完成。最后得到一個與幀序列相對應的短時能頻值序列。
3.短時能頻值的平滑處理 人的語音在字(詞)之間具有一定的相關性,字(詞)之間不會產(chǎn)生非常突兀的變化。因此,可以對上述三個語音特征參數(shù)進行平滑處理。一方面,由于噪聲的影響,音頻信號中可能出現(xiàn)突兀的毛刺現(xiàn)象,主要表現(xiàn)為在一系列平緩的音頻波形中突然出現(xiàn)劇烈震動的單個波(正常情況為一系列的震動波)。使用平滑處理可以有效地去除一些由噪聲引起的毛刺現(xiàn)象。另一方面,也對語音參數(shù)的有效性做出一定的優(yōu)化。語音信號是連續(xù)的,語音前后之間具有一定的相關性,將語音信號分割成一系列間斷幀的處理方式破壞了這種相關性,而平滑處理則可以在一定程度上彌補由于分幀處理帶來的影響。
平滑處理可在時域上進行,也可以在頻域上進行。本發(fā)明對音頻信號主要采取時域平滑的處理方式。
因為本發(fā)明中需要用到3個音頻特征參數(shù)短時能量、短時過零率和短時信息熵都是直接使用音頻信號的取樣值求得的,因此在進行平滑處理時也要對3個特征參數(shù)分別進行平滑。
對于某一幀F(xiàn)n進行平滑處理,設它的某個音頻特征參數(shù)是Xn。采用5幀平滑的方式,找到它左右相鄰的4幀F(xiàn)n-2、Fn-1、Fn+1、Fn+2,并找出它們相應的音頻特征參數(shù)Xn-2、Xn-1、Xn+1、Xn+2。則平滑后得到的音頻特征參數(shù)Xn-smoothed為 整個平滑處理的過程如圖5所示。在進行語音端點檢測之前,我們需要對音頻信號中的每一幀都按照上述方法進行平滑處理。
對于音頻信號中的開始兩幀以及最后兩幀,無法進行5幀平滑。在音頻文件中,一般在開始的兩幀和最后的兩幀中很少有語音出現(xiàn),因此對這些邊界幀進行異常處理并不會對語音端點檢測的準確度產(chǎn)生大的影響。從而可以相應的采取4幀或3幀進行平滑處理。
對第一幀,我們可以同時使用第1、2、3幀來進行3幀平滑;而對于第二幀,我們可以使用第1、2、3和4幀來進行4幀平滑。類似的,對于最后兩幀,我們可以使用相同的方法進行3幀或4幀平滑處理。
對于第一幀和最后一幀采用3幀平滑的方式,平滑后得到的音頻特征參數(shù)分別為 對于第二幀和倒數(shù)第二幀采用4幀平滑的方式,平滑后得到的音頻特征參數(shù)分別為 圖6顯示了一段新聞的短時能頻值波形片斷,可以看出在平滑處理后,毛刺現(xiàn)象明顯減少,但是波形的大體輪廓保持不變。其中a圖為未平滑的波形,b圖為平滑后的波形。
(三)基于短時能頻值的語音端點檢測 短時能頻值充分考慮了背景噪聲對語音端點檢測造成的影響,應用這個參數(shù),本發(fā)明文提出了自適應的語音端點檢測算法??梢酝ㄟ^不斷調(diào)整Eb和Zb的值來有效應對背景噪聲突發(fā)性改變所帶來的不確定性。
通過仿真工具軟件matlab對很多音頻文件的短時能頻值波形研究后發(fā)現(xiàn)在語音和音樂疊加的時間段中,或者在只有語音的時間段中,短時能頻值波形的變化非常劇烈,變化頻率很高,而且變化的幅度非常大。而在既沒有語音又沒有音樂,只有背景噪聲的時間段中,短時能頻值基本保持很小的變化幅度,而且變化的頻率比較小。另外,在只有音樂沒有語音的時間段中,不管有沒有背景噪聲出現(xiàn),由于經(jīng)過了濾波器濾波后,音樂的高頻部分已經(jīng)被濾掉,所以雖然短時能頻值變化的幅度仍然非常大,但是,其變化的頻率卻比有語音時要緩和的多。語音、音樂和噪聲波形對比如圖8所示。
圖8為一段新聞聯(lián)播節(jié)目的短時能頻值波形片斷,從第3400幀到第3540幀左右屬于背景音樂的短時能頻值波形,從第3820幀到第4030幀左右屬于語音的短時能頻值波形,而從4230幀到4280幀則屬于一段背景噪聲的短時能頻值波形。
因此,通過計算一個音頻文件的短時能頻值序列,并研究其波形,找出其中變化劇烈而且變化幅度較大的部分,就能夠找到此音頻文件中的語音部分,從而可以找到其語音端點。所以,尋找語音端點的重點就是找出短時能頻值序列波形中斜率比較大的那些部分,并判斷出它們是否是語音的端點。
1.語音起點和終點的檢測流程 本方法從音頻的第一幀開始檢測,對短時能頻值序列的波形進行分析,依次尋找每一對相匹配的語音起點和語音終點,直到檢測完最后一幀。如圖7所示,該方法主要包括以下4個步驟 步驟1計算音頻文件中每一幀的短時能頻值,形成一個短時能頻值序列 X1X2X3X4.......Xn 在算法開始時首先要計算所有音頻幀的短時能頻值,作為初始值。但是并不是所有初始值序列中的值都會被使用到。隨著分析的進行,在分析到后面的幀的時候可能會發(fā)現(xiàn)背景噪聲發(fā)生了變化,此時背景噪聲的音頻特征參數(shù)Eb、Zb等的值就需要進行調(diào)整。從而短時能頻值序列也就相應的需要進行調(diào)整。從發(fā)現(xiàn)背景噪聲改變的那一幀開始,之前的短時能頻值不用調(diào)整,之后的都需要重新計算。重新計算得到的短時能頻值序列也仍然只是暫時的,直到分析完最后一幀之前,短時能頻值序列有可能不斷被修改。
步驟2尋找語音的起點 1)假設從第t幀(對應短時能頻值Xt)開始尋找,檢測第t幀之后每一幀的短時能頻值,直到找到一幀j(對應短時能頻值Xj),使得 Xt≤Xt+1≤Xt+2≤......≤Xj且Xj+1≥Xj+2 即尋找從第t幀開始的短時能頻值序列的上升區(qū)間,記為At。
2)計算剛找到的上升區(qū)間At的短時能頻值序列波形的平均斜率 在上升區(qū)間At中,由于人語音的特點,其短時能頻值序列波形不可能平穩(wěn)上升,其斜率可能會不斷變化,時大時小。因此雖然在區(qū)間At中短時能頻值波形一直保持上升的趨勢,卻只能計算其平均斜率。
3)設定一個門限值Rm,如果有Rt≥Rm,即斜率Rt非常的陡峭,則認為上升區(qū)間At屬于語音部分。此時有兩種情況,一種是如果第t幀之前的區(qū)間已經(jīng)被認為是語音區(qū)間了,那就說明已經(jīng)找到了一個語音起點,現(xiàn)在需要尋找與之相對應的語音終點,因此令t=j+1,進入步驟3。另一種情況是第t幀之前的區(qū)間沒有被認為是語音區(qū)間,則將第t幀記為語音的起點,然后令t=j+1,進入步驟3去尋找與之相匹配的語音終點。
反之,如果Rt<Rm,即斜率Rt比較平緩。此時也有兩種可能,一種是Rt遠遠小于Rm,主要是因為Xt、Xj等短時能頻值都比較小,說明上升區(qū)間At屬于背景噪聲。另一種情況是Rt的值比較大,僅略小于Rm,這說明上升區(qū)間At很有可能屬于背景音樂。上述兩種情況之間沒有嚴格的界限,就是說無法確定非語音區(qū)間到底屬于噪聲還是背景音樂,不過在這兩種情況下,都認為區(qū)間At不是語音,因此令t=j+1,循環(huán)執(zhí)行步驟2。
需要特別指出的是,斜率門限值Rm也是人工設定的值,因此在實際判斷過程語音、背景音樂和背景噪聲的短時能頻值波形之間都沒有明確的界限,設定不同的門限值會得到不同的語音端點檢測結果。由此可見,門限值設定得是否合適將直接影響語音端點檢測的準確性。下文會提供一種分析整個短時能頻值序列以設定斜率門限值的算法。但是如果根據(jù)情況進行人工設定的話,會使檢測的結果更加準確。
步驟3尋找語音終點 1)假設從第t幀(對應短時能頻值Xt)開始尋找,檢測第t幀之后每一幀的短時能頻值,直到找到一幀j(對應短時能頻值Xj),使得 Xt≥Xt+1≥Xt+2≥......≥Xj且Xj+1≤Xj+2 即尋找從第t幀開始的短時能頻值序列的下降區(qū)間,記為Dt。
2)計算剛找到的下降區(qū)間Dt的短時能頻值序列波形的平均斜率 與步驟2的情況類似,在下降區(qū)間Dt中,由于人語音的特點,其短時能頻值序列波形也不可能平穩(wěn)下降。因此雖然在下降區(qū)間Dt中短時能頻值波形一直保持下降的趨勢,也只能計算其平均斜率。對下降區(qū)間Dt而言,其平均斜率Rt應該是負值,但為了方便起見,使用Xt-Xj來使Rt變成正值。
3)與步驟2類似,通過設定的門限值Rm進行判斷,如果有Rt≥Rm,即斜率Rt非常的陡峭,則認為下降區(qū)間Dt屬于語音部分。此時有兩種情況,一種是如果第t幀之前已經(jīng)找到了一個語音起點,則現(xiàn)在找到了與之相對應的語音終點,因此將第t幀記為語音的終點,然后令t=j+1,進入步驟2,再去尋找下一個語音起點。另一種情況是第t幀之前還沒有找到一個單獨的語音起點,即找到了一個不對應任何語音起點的下降區(qū)間,則下降區(qū)間Dt為一段單獨的語音區(qū)間。此時將第t幀記為語音起點,將第j幀記為語音終點。然后令t=t+1,回到步驟2,繼續(xù)尋找下一個語音起點。
反之,如果Rt<Rm,即斜率Rt比較平緩。同步驟2中所論述的一樣,認為區(qū)間Dt屬于背景噪聲或者背景音樂,此時令t=j+1,循環(huán)執(zhí)行步驟2。
關于斜率門限值Rm對于檢測結果的影響,步驟2中已經(jīng)詳細論述,在此不再重復。
步驟4按照步驟2和步驟3所述循環(huán)檢測,直到檢測到最后一幀 如果最后檢測到了一個語音起點,而沒有與之相對應的語音終點,則認為在音頻文件的最后,語音突然中斷。這可能是由于音頻文件在壓制過程中丟失了某些內(nèi)容或者其它原因造成的。
2.檢測過程中的特殊情況分析 在分析短時能頻值序列時,可能遇到各種各樣的波形。
比如找到一個上升區(qū)間A1屬于語音部分,緊接著的下降區(qū)間D1卻不屬于語音部分,然后又緊接著上升區(qū)間A2屬于語音部分。也可能是找到一個下降區(qū)間D2屬于語音部分,緊接著的上升區(qū)間A3卻不屬于語音部分,然后又緊接著下降區(qū)間D3屬于語音部分。上面兩種情況中的D1和A3區(qū)間,雖然其短時能頻值波形的斜率較小,但是因為它們都處在2段語音區(qū)間之間,而且一般只持續(xù)極短的一段時間,經(jīng)過分析發(fā)現(xiàn)它們屬于人的發(fā)音中元音和復音結合部分的微小停頓,因此不應被視作是非語音部分。如圖9a所示。
另外一種情況是,在找到一對語音起點和終點(對應上升區(qū)間A1和下降區(qū)間D1)之后,緊接著是一個不屬于語音的上升區(qū)間A2,然后是一個屬于語音的下降區(qū)間D2。此時下降區(qū)間D2就沒有與只配對的上升區(qū)間,即由D2尋找到的語音終點沒有與之配對的語音起點。此時應將下降區(qū)間D2的起始點視為語音起點,與D2的終點(作為語音終點)配對。如圖9b所示。
3.語句端點的檢測 檢測語句的端點是本發(fā)明的主要目的之一,因此本發(fā)明并不是非常注重單個字詞的端點檢測的精確性,而是注重找準語句的起止點。
在進行完上述的語音端點檢測過程后,能夠找出字或者詞的語音端點。在此我們提出了尋找語句端點的算法。
對于一般人正常的語速而言,語句間的時間間隔大概在100ms左右,而詞語間的時間間隔一般較小,只有幾十毫秒。因此有理由認為相隔大于100ms的語音終點和起點之間,就是語句間的間隔。
因為找到的語音起點和終點都是成對出現(xiàn)的,所以要遍歷這個語音端點序列,首先尋找一個語音終點Fe,然后找到下一個語音起點Fb,如果Fe和Fb相距超過100ms,則認為Fe和Fb之間為語句的間隔;如果Fe和Fb之間相距不到100ms,則認為Fe和Fb不是語句間的間隔,此時將Fe和Fb標記為非語音端點。整個檢測過程結束后,就找到了所有的語句端點。檢測流程如圖10所示。
4.門限值選取 通過使用matlab進行了大量仿真試驗,觀察短時能頻值序列的波形后發(fā)現(xiàn)在一般的新聞訪談類等背景音樂較少的音頻節(jié)目中,短時能頻值的極大值和極小值相比一般相差80倍左右,如圖12所示。
圖12是一段訪談類節(jié)目的短時能頻值波形片段。從中可以看到,短時能頻值的極大值EZE-featurea出現(xiàn)在第1650ms、第1850ms、2100ms以及2260ms左右的時間段。而極小值EZE-featurei則出現(xiàn)在第1750ms、第1910ms、第1990ms以及第2210ms左右的時間段。對比EZE-featurea和EZE-featurei可以發(fā)現(xiàn),兩者相差大概80倍左右。
經(jīng)過分析,本發(fā)明提出以下算法來計算短時能頻值波形斜率的門限 步驟1分析短時能頻值序列,找出其最小值,記為EZE-featuremin;找出其最大值,記為EZE-featuremax,然后計算EZE-featuremax/100。
縱觀整個短時能頻值波形可以發(fā)現(xiàn),其最大值EZE-featuremax比那些極大值EZE-featurea(即波形中每個波的峰值)要稍微大一些。而短時能頻值的最小值EZE-featuremin和極小值EZE-featurei(即波形中比較平緩的部分)則相差不大,因為兩者都是非常小的值,因此其差別可以忽略不計。因此采用最大值EZE-featuremax的1/100與最小值EZE-featuremin進行比較。
步驟2比較EZE-featuremin和EZE-featuremax/100,取其中較大者,記為EZE-featureslope。
步驟3短時能頻值斜率的門限定為Rm=EZE-featureslope×2。
使用上述方法找到的短時能頻值斜率門限對于整個短時能頻值序列都有效,因此在語音端點檢測過程中不需要再次進行修改。在沒有或者較少出現(xiàn)背景音樂的情況下,使用該方法基本可以滿足尋找語句端點的需要,在尋找詞語端點時的精確性稍差。但是當背景音樂在音頻中持續(xù)出現(xiàn)時,短時能頻值序列的波形將變得非常復雜,此時使用該方法就得不到滿足要求的斜率門限值,因此需要人工設定。不論在哪種情況下,由人手工設定和調(diào)整短時能頻值斜率的門限,都將大大提高語音端點檢測的準確性。
(四)自適應機制及人工交互式反饋機制 1.主動自適應機制 接受端點檢測的語音中可能混雜有各種各樣的背景噪聲。背景噪聲可能是熱噪聲、機械噪聲、嘈雜的人聲或者音樂(對于語音端點檢測來說,由于音樂會嚴重干擾端點檢測的準確性,因此也被看作是一種噪聲)。不管是哪種背景噪聲,都會對語音端點檢測產(chǎn)生干擾,因此必須對它們進行處理。
在低信噪比的情況下,短時能頻值能夠較精確的區(qū)分噪聲部分和語音部分,因此本發(fā)明提出的語音端點檢測方法可以很好的識別噪聲和語音。
但是在高信噪比的情況下,也就是當噪聲信號的能量較高時,可能會出現(xiàn)它的短時能頻值也較大,且變化較劇烈的情況。在人語音的開始和結束部分,有時發(fā)音非常輕,導致語音的短時能頻值較小,此時噪聲與語音的短時能頻值可能出現(xiàn)無法區(qū)分的情況。反映在短時能頻值的波形上,就是噪聲部分波形的斜率較大,而語音部分波形的斜率并沒有足夠大到與噪聲有明顯的差別,這會大大影響語音端點檢測的準確性。這就需要相應的方法能夠?qū)υ肼曔M行必要的處理,以降低它們對語音端點檢測的影響。
在傳統(tǒng)的語音端點檢測方法中,一般是取音頻信號的前幾幀進行分析,并將其作為背景噪聲,并在后續(xù)的分析過程中一直使用。
但是,一個語音文件的長度可能從數(shù)分鐘到數(shù)小時不等,在這么長的時間中,背景噪聲不可能維持不變,可能會出現(xiàn)一些意想不到的突發(fā)性噪聲,或者是噪聲突然產(chǎn)生變化。而背景音樂在語音持續(xù)過程中一般都會發(fā)生巨大的變化,比如在一段時間內(nèi)有而在另一段時間內(nèi)沒有,或者在一段時間內(nèi)是小提琴演奏而另一段時間內(nèi)是鼓點等。
鑒于背景噪聲和背景音樂的這種不確定性,我們不可能一直使用音頻信號的前幾幀作為背景噪聲。而是應該在端點檢測過程中,根據(jù)檢測出的語音情況,自動選取新的音頻幀作為背景噪聲進行處理。
首先,默認音頻文件最初的10ms為環(huán)境音,將這10ms的音頻信號的短時能量平均值、短時過零率平均值和短時信息熵平均值作為最初的背景噪聲的短時能量Eb、短時過零率Zb和短時信息熵Hb。自適應的語音端點檢測算法對于噪聲采取了一種反饋機制當發(fā)現(xiàn)背景噪聲可能已經(jīng)發(fā)生變化時,算法要回退到噪聲發(fā)生變化之前的語音幀,重新進行檢測。其過程如下所述 1)找到了某個語音起點,記為第Fh幀,當Fh與上一個語音終點Ft幀相距300ms以上時,則進行環(huán)境噪聲的提取。
2)從第Ft幀開始,取接下來的10幀當作背景噪聲,重新計算Eb、Zb和Hb的值。計算方法為取算術平均,以Eb為例 3)從第Ft+1幀開始,使用更新后的Eb、Zb和Hb,重新計算每一幀的短時能頻值,得到新的短時能頻值序列。
4)從第Ft+1幀開始,使用新的短時能頻值序列重新執(zhí)行端點檢測過程。
圖11為一段新聞的短時能頻值波形片斷,a為未經(jīng)過噪聲反饋過程,b為則經(jīng)過了噪聲反饋過程,對比可以發(fā)現(xiàn)噪聲反饋處理過程起了很大的效果。
需要指出的是,上述的噪聲反饋算法需要不斷進行回溯,導致本語音端點檢測算法不能進行實時端點檢測,因此對算法的應用造成了一定的局限性。
2.人工交互式反饋機制 本發(fā)明除了進行噪聲反饋之外,還可以由人工進行主動干預。如果發(fā)現(xiàn)語音端點檢測的結果有較大的誤差,無法滿足需求,則可以通過修改短時能頻值斜率的門限來調(diào)整檢測的結果。
如果發(fā)現(xiàn)檢測得到的語音端點中,語音起點普遍提前,而語音終點普遍延遲出現(xiàn),則說明有可能是斜率門限的值選取的過小,導致一部分背景噪聲也被認為是語音。此時只需將斜率門限的值適當調(diào)大,即可得到令人滿意的結果。
相反,如果發(fā)現(xiàn)語音起點普遍延遲,而語音終點普遍提前出現(xiàn),則說明有可能是斜率門限的值選取的過大,導致一部分語音也被認為是背景噪聲。此時則需要將斜率門限的值適當調(diào)小。
必須注意,由于背景噪聲或者背景音樂的存在,通過本發(fā)明所述語音端點檢測方法得到的語音端點不可能完全精確。但是,由于人對于微小時間誤差的感知是有極限的,因此在50ms之內(nèi)的語音端點檢測誤差可以接受。通過選取適當?shù)亩虝r能頻值斜率門限,可以將語音端點檢測的誤差控制在50ms以內(nèi)。
另外,語句端點的時間間隔門限值也可以由人工進行調(diào)整。不同的人說話有不同的語速,因此語句間也有不同的時間間隔,人工對語句端點時間間隔進行調(diào)整,可以提高語句端點檢測的精度。
本發(fā)明所述的方法并不限于具體實施方式
中所述的實施例,本領域技術人員根據(jù)本發(fā)明的技術方案得出其他的實施方式,同樣屬于本發(fā)明的技術創(chuàng)新范圍。
權利要求
1.一種自適應的語音端點檢測方法,包括如下步驟
(1)音頻數(shù)據(jù)輸入后,解析音頻文件并提取數(shù)字采樣值,對獲取到的音頻采樣序列進行帶通濾波;
(2)將音頻采樣序列分成固定長度的幀,并形成一個幀序列,針對每一幀數(shù)據(jù)提取短時能量、短時過零率和短時信息熵三個音頻特征參數(shù);
(3)根據(jù)上述音頻特征參數(shù)計算每一幀數(shù)據(jù)的短時能頻值,并形成一個短時能頻值序列;
(4)從第一幀數(shù)據(jù)開始,分析短時能頻值序列,并找出一對語音起點和終點;
(5)分析背景噪聲,如果發(fā)現(xiàn)背景噪聲發(fā)生改變,則重新計算背景噪聲的音頻特征參數(shù),并更新短時能頻值序列;
(6)返回步驟(4),繼續(xù)尋找下一對語音起點和終點,重復此過程直到檢測結束,并輸出語音端點檢測結果。
2.如權利要求1所述的自適應的語音端點檢測方法,其特征在于當步驟(6)輸出語音端點檢測結果后,遍歷這個語音端點序列,依次尋找一個語音終點Fe,以及下一個語音起點Fb,如果Fe和Fb相距超過規(guī)定的時間間隔,則確定Fe和Fb之間為語句的間隔,將Fe和Fb標記為語句端點,重復此過程確定所有的語句端點。
3.如權利要求2所述的自適應的語音端點檢測方法,其特征在于所述判斷語句端點所規(guī)定的時間間隔為100ms。
4.如權利要求1或2所述的自適應的語音端點檢測方法,其特征在于在步驟(1)中,所述的帶通濾波的帶寬為400Hz~3500Hz。
5.如權利要求1或2所述的自適應的語音端點檢測方法,其特征在于在步驟(2)中,將音頻采樣序列分成10ms長度的幀。
6.如權利要求1或2所述的自適應的語音端點檢測方法,其特征在于在步驟(2)中,所提取的第i幀的短時能量為
其中,N表示第i幀中所包含的音頻采樣數(shù)量;Sn表示第n個采樣的取樣值。
7.如權利要求1或2所述的自適應的語音端點檢測方法,其特征在于在步驟(2)中,所提取的第i幀的短時過零率為
其中,N表示第i幀中所包含的音頻采樣數(shù)量;Sn表示第n個采樣的取樣值;sgn()為符號函數(shù),定義為
8.如權利要求1或2所述的自適應的語音端點檢測方法,其特征在于在步驟(2)中,提取短時信息熵的步驟如下
(a)利用短時傅里葉變換對每一幀的信號進行由時域向頻域的轉(zhuǎn)換
其中,Sn表示第n個音頻采樣,N為總采樣數(shù);
(b)計算每一頻率的出現(xiàn)概率
其中,s(fi)表示頻率f的頻譜能量,pi表示相應頻率的出現(xiàn)概率,M表示傅里葉變換計算得出的頻率的總數(shù),即窗口寬度,
所規(guī)定的約束條件為
s(fi)=0 if fi≤250HZ or fi≥3750HZ
pi=0 if pi≥0.9
(c)計算語音信息熵
其中,M表示傅里葉變換計算得出的頻率的總數(shù),即窗口寬度,pi表示相應頻率的出現(xiàn)概率,Hi表示第i幀的短時信息熵。
9.如權利要求1或2所述的自適應的語音端點檢測方法,其特征在于在步驟(3)中,第i幀的短時能頻值為
EZE-featurei=(Ei-Eb)·(Zi-Zb)·(Hi-Hb)
其中,EZE-featurei表示第i幀的短時能頻值;Ei、Zi和Hi分別表示第i幀的短時能量、短時過零率和短時信息熵;Eb、Zb和Hb分別表示當前背景噪聲的短時能量、短時過零率和短時信息熵。
10.如權利要求9所述的自適應的語音端點檢測方法,其特征在于在步驟(3)中,對每一幀的短時能頻值進行平滑處理,處理中對短時能量、短時過零率和短時信息熵三個音頻特征參數(shù)分別進行平滑,通常采用5幀平滑的方式,對于某一幀F(xiàn)n,設它的某個音頻特征參數(shù)是Xn,找到它左右相鄰的4幀F(xiàn)n-2、Fn-1、Fn+1、Fn+2,并找出它們相應的音頻特征參數(shù)Xn-2、Xn-1、Xn+1、Xn+2,則平滑后得到的音頻特征參數(shù)Xn-smoothed為
對于第一幀和最后一幀采用3幀平滑的方式,平滑后得到的音頻特征參數(shù)分別為
對于第二幀和倒數(shù)第二幀采用4幀平滑的方式,平滑后得到的音頻特征參數(shù)分別為
11.如權利要求1所述的自適應的語音端點檢測方法,其特征在于在步驟(4)中,尋找語音起點的步驟如下
(a)從第t幀開始尋找,檢測第t幀之后每一幀的短時能頻值,直至找到一幀j,使得
Xt≤Xt+1≤Xt+2≤......≤Xj且Xj+1≥Xj+2
即尋找從第t幀開始的短時能頻值序列的上升區(qū)間,記為At;
(b)計算所找到的上升區(qū)間At的短時能頻值序列波形的平均斜率Rt
其中,Xt為第t幀的短時能頻值,Xj為第j幀的短時能頻值;
(c)設定一個門限值Rm來確定語音起始點,如果Rt≥Rm,且第t幀之前的區(qū)間沒有被認為是語音區(qū)間,則將第t幀記為語音的起點,然后令t=j+1,去尋找與之相匹配的語音終點;如果Rt<Rm,則令t=j+1,重復步驟(a)的操作。
12.如權利要求11所述的自適應的語音端點檢測方法,其特征在于在步驟(4)中,尋找語音終點的步驟如下
(I)從第t幀開始尋找,檢測第t幀之后每一幀的短時能頻值,直至找到一幀j,使得
Xt≥Xt+1≥Xt+2≥......≥Xj且Xj+1≤Xj+2
即尋找從第t幀開始的短時能頻值序列的下降區(qū)間,記為Dt;
(II)計算所找到的下降區(qū)間Dt的短時能頻值序列波形的平均斜率Rt
其中,Xt為第t幀的短時能頻值,Xj為第j幀的短時能頻值;
(III)通過設定的門限值Rm來判斷語音信號的終點,如果Rt≥Rm,在已經(jīng)找到一個語音起點的情況下,將第t幀記為與前一個語音起點相對應的語音終點;如果Rt<Rm,則令t=j+1,重復步驟(I)的操作。
13.如權利要求12所述的自適應的語音端點檢測方法,其特征在于在尋找語音終點的過程中,步驟(III)中如果Rt≥Rm,且第t幀之前還沒有找到一個單獨的語音起點,即找到了一個不對應任何語音起點的下降區(qū)間Dt,則該下降區(qū)間Dt為一段單獨的語音區(qū)間,此時將第t幀記為語音起點,將第j幀記為語音終點。
14.如權利要求11或12所述的自適應的語音端點檢測方法,其特征在于在步驟(4)中,尋找語音起點和終點的過程中,如果一個不屬于語音部分的下降區(qū)間D1位于兩個屬于語音部分的上升區(qū)間A1、A2之間,或者一個不屬于語音部分的上升區(qū)間A3位于兩個屬于語音部分的下降區(qū)間D2、D3之間,則將下降區(qū)間D1和上升區(qū)間A3均視為屬于語音部分。
15.如權利要求11或12所述的自適應的語音端點檢測方法,其特征在于在步驟(4)中,尋找一對語音起點和終點時,確定門限值Rm的步驟如下
(i)分析當前的短時能頻值序列,找出其最小值,記為EZE-featuremin;找出其最大值,記為EZE-featuremax,然后計算EZE-featuremax/100;
(ii)比較EZE-featuremin和EZE-featuremax/100,取其中較大者,記為EZE-featureslope;
(iii)確定門限值Rm=EZE-featureslope×2。
16.如權利要求1或2所述的自適應的語音端點檢測方法,其特征在于在步驟(5)中,重新計算背景噪聲的音頻特征參數(shù),并更新短時能頻值序列的步驟如下
(a)針對當前找到的語音起點,記為第Fh幀,判斷Fh幀與上一個語音終點所在的Ft幀相距的時間間隔,當在300ms以上時,進行環(huán)境噪聲的提??;
(b)從第Ft幀開始,取接下來的10幀當作背景噪聲,重新計算背景噪聲的短時能量Eb,短時過零率Zb和短時信息熵Hb的值,計算方法采用取10幀中的算術平均值;
(c)從第Ft+1幀開始,使用更新后的背景噪聲的短時能量Eb,短時過零率Zb和短時信息熵Hb,重新計算每一幀的短時能頻值,得到新的短時能頻值序列。
全文摘要
本發(fā)明涉及自動字幕生成系統(tǒng)中的語音檢測技術,具體涉及一種自適應的語音端點監(jiān)測方法。該方法將音頻采樣序列分成固定長度的幀,并形成一個幀序列,針對每一幀數(shù)據(jù)提取短時能量、短時過零率和短時信息熵三個音頻特征參數(shù);根據(jù)音頻特征參數(shù)計算每一幀數(shù)據(jù)的短時能頻值,并形成一個短時能頻值序列;從第一幀數(shù)據(jù)開始,分析短時能頻值序列,并找出一對語音起點和終點;分析背景噪聲,如果發(fā)現(xiàn)背景噪聲發(fā)生改變,則重新計算背景噪聲的音頻特征參數(shù),并更新短時能頻值序列;重復此過程直到檢測結束。本發(fā)明可以在背景噪聲經(jīng)常發(fā)生變化的情況下,對連續(xù)語音進行語音端點檢測,從而提高在復雜噪聲背景下的語音端點檢測效率。
文檔編號G10L11/00GK101625857SQ200810116450
公開日2010年1月13日 申請日期2008年7月10日 優(yōu)先權日2008年7月10日
發(fā)明者祺 李, 馬華東, 鄭侃彥, 韓忠濤, 婷 張 申請人:新奧特(北京)視頻技術有限公司