專利名稱::一種基于語音前向包絡(luò)預測的差錯隱藏方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種接收端的差錯隱藏方法,尤其適用于VoIP中波形編碼方式下傳輸語音丟包的情況。技術(shù)背景由于VoIP技術(shù)與傳統(tǒng)公共交換電話網(wǎng)絡(luò)(PSTN)相比,具有設(shè)備低廉、建網(wǎng)方便、投資降低并可提供新的服務項目從而擴大運營商盈利空間的諸多優(yōu)點,VoIP得到了高速發(fā)展,并對固定語音業(yè)務形成了挑戰(zhàn)。但是由于因特網(wǎng)協(xié)議(IP)是一種盡力而為的服務,而語音業(yè)務則要求為實時服務,服務質(zhì)量(QoS)成為VoIP應用的一個主要問題。網(wǎng)絡(luò)中的延時、抖動和丟包都會顯著降低語音的質(zhì)量,在無線網(wǎng)絡(luò)中這些影響更加嚴重。為了減小抖動和丟包對語音質(zhì)量的影響,不同的抖動緩存技術(shù)和丟包恢復技術(shù)被提出并應用。抖動緩存算法包括固定緩存和自適應緩存算法,自適應緩存算法又分為語音峰(talkspurt)內(nèi)和語音峰間自適應算法。而丟包恢復技術(shù)則分為發(fā)送端丟包恢復技術(shù)和接收端差錯隱藏技術(shù)。發(fā)送端的方法包括主動式方法(如重傳)和被動式方法(如交織和前向糾錯)。前向糾錯方法又進一步包括媒體相關(guān)和媒體無關(guān)方法?;诎l(fā)送端的丟包恢復技術(shù)的優(yōu)點是,它們幾乎可以恢復任何形式的錯誤和丟包;其缺點是,這些方法均會增加時延或占用更多的傳輸帶寬。對于語音這種實時業(yè)務,丟包恢復更多地采用基于接收端的差錯隱藏技術(shù)。基于接收端的差錯隱藏方法主要包括插入隱藏方法,如拼接,靜默替代和包重復;插值方法,如波形插值替代,基音波形復制及時長調(diào)整(time-scaling)方法;再生方法,如傳輸狀態(tài)插值與基于模型的恢復方法?;诮邮斩说牟铄e隱藏方法與基于發(fā)送端的方法相比,它們可以恢復的錯誤情況減少,但是它們更加簡單而且不要求額外的帶寬。因此,在各種語音編解碼技術(shù)中,基于接收端的差錯隱藏方法應用更為廣泛。例如,3GPPTS26.190第五版本規(guī)定的第三代移動通信中自適應多速率寬帶語音編碼中,差錯隱藏方法使用重復好幀的參數(shù)或?qū)η皫讕膮?shù)進行外推替換來恢復丟失語音幀。在多幀連續(xù)丟失的情況下,幀替換恢復的時候使輸出信號的能量逐漸減小,即加入衰減,使輸出信號逐漸減弱直至無聲。又如,在VoIP中廣泛采用的iLBC編碼器,其差錯(丟包)隱藏機制也是非常簡單有效的。GlobalIPSound公司提出的iLBC編碼器中的差錯隱藏方法為如果上一包正常收到而當前包丟失,則采用上一包的激勵信號的基音同步重復,并在產(chǎn)生的激勵上疊加一個隨機激勵來避免產(chǎn)生嗡嗡聲(buzzy-soimding)。具體做法是,采用相關(guān)分析來得到上一包激勵信號的基音周期和濁音度,從而產(chǎn)生當前替代包的激勵信號。利用新產(chǎn)生的激勵信號與線性預測濾波器的系數(shù)產(chǎn)生語音并替代當前丟失包;如果出現(xiàn)連續(xù)丟包的情況,則采用同樣的方法來恢復當前包,但這時替代的激勵信號的能量是逐漸衰減的,以體現(xiàn)前面各包對當前包影響逐漸減小的事實;如果當前包正常收到,而前一包數(shù)據(jù)丟失了,那么并不是直接采用當前包語音,因為上一包恢復的語音可能與本包產(chǎn)生不連續(xù)從而導致失真。這時可以采用相似度搜索來尋求語音的最佳連接點?,F(xiàn)有的差錯隱藏方法考慮了語音的相關(guān)性(如連續(xù)丟包情況下重復前幾包時加入衰減效應以體現(xiàn)后續(xù)包與前面包相關(guān)性的減小)、平滑連接性(如采用相似度搜索來尋求最佳連接點)、短時平穩(wěn)特性(如采用前幾包的參數(shù)加上一個隨機參數(shù)來恢復當前丟失包)等。本發(fā)明中的差錯隱藏方法的基本思想不同于這些現(xiàn)有方法,它的出發(fā)點是考慮語音的包絡(luò)特性,它不是上一包的簡單重復或基音同步重復,而是通過計算前兩個語音包的幅度變化趨勢,來預測當前包包絡(luò)變化的趨勢,從而利用前一包的不同處理后的形式來對當前丟失包進行恢復。本方法計算非常簡單,另外可以通過調(diào)整窗函數(shù)的形式、狀態(tài)判斷閾值、波形拼接點等參數(shù)來更好地符合語音特性,達到更好的差錯隱藏效果。
發(fā)明內(nèi)容本發(fā)明涉及一種基于語音前向包絡(luò)預測的差錯隱藏方法。該方法屬于在通信接收端的差錯隱藏方法,可應用于VoIP中傳輸語音包丟失的情況,并可結(jié)合任何形式的抖動緩存算法使用。本發(fā)明是基于對語音特性的合理假設(shè)的,這個假設(shè)是語音波形是連續(xù)的,且具有短時平穩(wěn)性,因此相鄰語音包之間的幅度變化趨勢也具有一定的連續(xù)性,語音幅度變化一般包括上升,保持和下降三個過程。為了簡便有效地恢復當前丟失包,達到更好的恢復語音質(zhì)量,本發(fā)明是通過以下方法實現(xiàn)的,其步驟為a)在給定的抖動緩存條件下,確定當前包是否遲于其預定播放時間,如果是,則認為當前包丟失;b)判斷前兩包語音是否都已收到;根據(jù)前兩包語音的收到和丟失情況,對當前語音包采用不同的恢復方法。若前兩包語音均正常收到,則執(zhí)行步驟C、d,否則執(zhí)行步驟e。c)計算前兩包語音的幅度變化趨勢,從而預測當前包語音的包絡(luò)變化趨勢。具體預測方法見下面基于語音包絡(luò)前向預測的方法的各個步驟;d)根據(jù)所預測的當前包語音包絡(luò)變化趨勢,采用對前一包語音不同的加窗處理來得到當前包語音的替代,并進行播放。窗函數(shù)包括上升窗,下降窗或者幾種窗函數(shù)的組合,甚至置零窗,即當前包用靜默替代;e)如果前兩包語音并未全部正常收到,即其中一包或兩包丟失,則不再預測幅度趨勢;根據(jù)包的接收情況,若前一包語音收到而更前一包語音丟失,則采用上一包的全部或部分重復來對當前包進行替代;若前一包語音丟失而更前一包語音收到,則重復前一個收到包的全部或部分來恢復當前包;若前兩包均丟失,則當前包用靜默替代;基于對語音包絡(luò)特性的合理假設(shè),本發(fā)明提出了一種基于語音包絡(luò)前向預測的方法,其步驟為a)分別計算前兩包語音的平均幅度,并對兩包語音的平均幅度進行比較,根據(jù)預設(shè)閾值,得出前兩包總體變化趨勢;b)分別計算前兩包語音內(nèi)部的幅度變化趨勢,比如將每包語音分為前后兩部分,對其前后兩部分的幅度進行計算,并根據(jù)預設(shè)閾值,得出每包語音的幅度變化趨勢;c)根據(jù)前兩包語音的總體和內(nèi)部趨勢,基于語音特性的合理假設(shè),判斷當前語音應處于上升、保持、下降狀態(tài)還是某幾種狀態(tài)的組合。根據(jù)本發(fā)明基于語音包絡(luò)前向預測的方法的思想,語音包絡(luò)變化情況一般可分為以下六種,不同的包絡(luò)趨勢情況對應不同的當前包恢復處理方法,結(jié)合附圖2進行說明a)對于圖2中第一種情況,前兩包語音幅度處于初步上升階段,則當前包包絡(luò)應呈上升趨勢,且上升速度逐漸變緩,當前包丟失時,應采用各種形式的上升窗對前一包語音進行處理以恢復當前包。窗函數(shù)的形式有多種選擇,如線性上升窗(1),sigmoid上升窗(2)的一部分,升余弦窗,或其它形式的窗函數(shù)及不同窗函數(shù)的組合等,<formula>formulaseeoriginaldocumentpage7</formula>(1)長度為N的線性上升窗;w2w(")=——in^7,"〉0,"^0,1,…2^-1(2)長度為2N的sigmoid上升窗。l+e。("b)對于圖2中第二種情況,前兩包語音幅度一直處于上升階段,則當前包包絡(luò)應先基本保持后下降,且下降速度逐漸變快,當前包丟失時,應采用相應形式的窗函數(shù)對前一包語音進行處理以恢復當前包,比如矩形窗與下降窗的組合,而符合條件的窗函數(shù)又可選擇多種形式。c)對于圖2中第三種情況,前兩包語音幅度經(jīng)過上升和保持兩個階段,則當前包包絡(luò)應呈下降趨勢,且下降速度逐漸變快,當前包丟失時,應采用相應形式的下降窗對前一包語音進行處理以恢復當前包,而符合條件的窗函數(shù)又可選擇多種形式。d)對于圖2中第四種情況,前兩包語音幅度經(jīng)過保持和下降兩個階段,則當前包包絡(luò)應呈下降趨勢,且下降速度逐漸變緩,當前包丟失時,應采用相應形式的下降窗對前一包語音進行處理以恢復當前包,而符合條件的窗函數(shù)又可選擇多種形式。e)對于圖2中第五種情況,前兩包語音幅度一直處于下降階段,則當前包包絡(luò)應逐漸下降直至靜默,當前包丟失時,應采用相應形式的窗函數(shù)對前一包語音進行處理以恢復當前包,比如下降窗與置零窗的組合,而符合條件的窗函數(shù)又可選擇多種形式。f)對于圖2中第六種情況,前兩包語音幅度經(jīng)過下降、保持和上升二個階段,則當前包包絡(luò)應呈上升趨勢,且上升速度逐漸變緩,當前包丟失時,應采用相應形式的上升窗對前一包語音進行處理以恢復當前包,而符合條件的窗函數(shù)又可選擇多種形式。應該注意的是,語音的包絡(luò)趨勢可能不只是這六種情況,若對各種情況細化并相應做更詳細的分析,則恢復語音質(zhì)量可達到更佳的效果。本發(fā)明有益的效果是這種基于語音包絡(luò)前向預測的差錯隱藏方法是基于接收端的,不占用額外的傳輸帶寬;該方法僅利用前面已接收語音包來恢復當前包,因此不引入額外延時;該方法基于語音包絡(luò)固有特性,對不同語言均適用,并可調(diào)整參數(shù)來適應不同語種達到更好效果;該方法計算簡單有效,極易實現(xiàn)。圖1為根據(jù)本發(fā)明一個實施例的基于語音前向包絡(luò)預測的差錯隱藏方法的流程圖;圖2示出了基于前面兩個語音包預測得到的當前包包絡(luò)的六種可能情況第一種情況,當前包包絡(luò)應呈上升趨勢;第二種情況,當前包包絡(luò)應先基本保持后下降;第三種情況,當前包包絡(luò)應呈下降趨勢;第四種情況,當前包包絡(luò)應呈下降趨勢;第五種情況,當前包包絡(luò)應逐漸下降直至靜默;第六種情況,當前包包絡(luò)應呈上升趨勢。六種不同情況的處理將在本發(fā)明實施例中具體介紹。具體實施方式下面結(jié)合附圖和實施例對本發(fā)明作進一步的介紹為了更好地說明該方法的實施過程,先定義一些數(shù)學表示如下N表示每包語音中語音樣點數(shù)。比如包長為40ms,采樣率為16kHz時,N二640。p(i),p(i-l),p(i-2)分別表示當前語音包,前一個語音包和更前一個語音包。它們的長度為N。PF(i),PF(i-l),PF(i-2),分別表示當前語音包,前一個語音包和更前一個語音包的前半部分。它們的長度為N/2。PE(i),PE(i-l),PE(i-2)分別表示當前語音包,前一個語音包和更前一個語音包的后半部分。它們的長度為N/2。M表示平均幅度算子。例如,^—2)的N個樣點表示為X(1),X(2),…,X(N),那么k2)|=IW力T7z是一個大于1的閾值。w,f^)是長度為2N的上升型sigmoid函數(shù),即=l+e—':(,">o,"=o,i,j—1同理,w/"J是長度為2N的下降型sigmoid函數(shù),艮卩w()=-V"^,"o,"-o,u-i本發(fā)明實施的具體步驟如下(以sigmoid窗函數(shù)為例)a)在給定的抖動緩存條件下,確定當前包是否遲于其預定播放時間,如果是,則認為當前包丟失;b)確定前兩個語音包是否均已正常收到。若前兩個語音包均已正常收到,則執(zhí)行步驟c,否則執(zhí)行步驟d。c)如果當前包丟失且前兩個語音包均已正常收到,則計算前兩個語音包內(nèi)的幅度變化趨勢及兩個語音包之間的幅度總體變化趨勢,從而預測當前包的包絡(luò)變化情況。根據(jù)語音特性,可能有六種不同的語音包絡(luò)變化情況〔附閣2):cl)對于圖2中第一種情況,當前包包絡(luò)應呈上升趨勢,且上升速度逐漸變緩,因此對前一包語音加窗時采用上升sigmoid函數(shù)的后半部分形式,數(shù)學表達為若M^M^,I尸邵-2)l<77;,l,-i)l>77;2)i1)1貝'JPF(i)=PE(i-l)*—+().5),"=TV,TV+1,..JV+TV/2-1PE(i)=PE(i-l)*—i(n)+0.5),w=iV+A/72,W+W/2+1,…2W-1c2)對于圖2中第二種情況,當前包包絡(luò)應先基本保持后下降,且下降速度逐漸變快,因此對前一包語音后半部分加窗時采用下降sigmoid函數(shù)的前半部分形式,數(shù)學表達為若<formula>formulaseeoriginaldocumentpage11</formula>c3)對于圖2中第三種情況,當前包包絡(luò)應呈下降趨勢,且下降速度逐漸變快,因此對前一包語音加窗時采用下降sigmoid函數(shù)的前半部分形式,數(shù)學表達為若<formula>formulaseeoriginaldocumentpage11</formula>c4)對于圖2中第四種情況,當前包包絡(luò)應呈下降趨勢,且下降速度逐漸變緩,因此對前一包語音加窗時采用下降sigmoid函數(shù)的后半部分形式,數(shù)學表達為若<formula>formulaseeoriginaldocumentpage11</formula>c5)對于圖2中第五種情況,當前包包絡(luò)應逐漸下降直至靜默,因此恢復當前包的前半部分時,對前一包語音后半部分加窗時采用下降sigmoid函數(shù)的后半部分形式,而令當前包的后半部分為靜默,數(shù)學表達為<formula>formulaseeoriginaldocumentpage11</formula>(靜默)c6)對于圖2中第六種情況,當前包包絡(luò)應呈上升趨勢,且上升速度逐漸變緩,因此對前一包語音加窗時采用上升sigmoid函數(shù)的后半部分形式,數(shù)學表達為若Dl〈,岡-2)l掘,—W-2)|I,-2)||,-1)|貝廿PF(i)=PE(i-l)*(Wl(n)+0.5),"=W,iV+l,..JV+iV/2-lPE(i)=PE(i-1)、(n)+0.5),"=+iV/2,W+iV/2+1,…2iV-1d)如果前兩包語音并未全部正常收到,即其中一包或兩包丟失,則不再預測幅度趨勢;根據(jù)包的接收情況,若前一包語音收到而更前一包語音丟失,則采用上一包的后半部分重復來對當前包進行替代;若前一包語音丟失而更前一包語音收到,則重復前一個收到包的后半部分來恢復當前包;若前兩包均丟失,則當前包用靜默替代。以上實施例僅用以說明本發(fā)明的技術(shù)方案而非對其限制;盡管參照較佳實施例對本發(fā)明進行了詳細的說明,所屬領(lǐng)域的普通技術(shù)人員應當理解,依然可以對本發(fā)明的具體實施方式進行修改或者對部分技術(shù)特征進行等同替換(如加窗不是采用sigmoid窗而是采用線性窗函數(shù)或者升余弦等);而不脫離本發(fā)明技術(shù)方案的精神,其均應涵蓋在本發(fā)明請求保護的技術(shù)方案范圍當中。具體實施例11.實驗設(shè)計搭建一個真實的無線局域網(wǎng),在有線終端和無線終端之間傳輸語音,并采集其網(wǎng)絡(luò)延時和丟包數(shù)據(jù)。語音16kHz采樣,16bit量化,包長40ms,采用PCM編碼方式。原始的語音材料來自NTT&AT語音數(shù)據(jù)庫,包括漢語,英語和日語,每條語音樣本8s長,包含兩個短句。在本實驗中,每種語言的語音樣本是在四男四女的語音中隨機選出的IO條樣本,每條語音樣本采用三種網(wǎng)絡(luò)傳輸條件來處理。為了與其它方法比較,本實驗采用了三種抖動緩存的大小(5ms,10ms禾口20ms)與各種差錯隱藏方法相結(jié)合的方法。差錯隱藏方法包括算法l,靜默替代;算法2,重復前一語音包;算法3,重復前一語音包的后半部分,并加入衰減特性;算法4,前后兩包平均插值;算法5,基于波形相似度搜索的前一包后半部分拼接替代;算法6,即本發(fā)明提出的基于語音前向包絡(luò)預測的差錯隱藏方法。2.系統(tǒng)性能評價指標各種差錯隱藏方法的性能采用寬帶PESQ分數(shù)來評價。PESQ是ITU-TP.862建議的估計主觀測聽實驗得分的一種客觀度量方法。它的輸入為原始語音和處理后的語音,采用感知模型與認知模型,通過復雜的非線性運算,預測出處理后語音的感知主觀得分。PESQ分數(shù)越高,則語音質(zhì)量越好。寬帶PESQ是PESQ的一種改進,適合寬帶語音的質(zhì)量度量。3.實驗結(jié)果實驗結(jié)果如表1所示表1采用不同差錯隱藏方法時的寬帶PESQ分數(shù)<table>tableseeoriginaldocumentpage13</column></row><table>其中,算法l,靜默替代;算法2,重復前一語音包;算法3,重復前一語音包的后半部分,并加入衰減特性;算法4,前后兩包平均插值;算法5,基于波形相似度搜索的前一包后半部分拼接替代;算法6,即本發(fā)明提出的基于語音前向包絡(luò)預測的差錯隱藏方法。由實驗結(jié)果可以看出,在本實驗條件下,本發(fā)明提出的方法不僅顯著優(yōu)于靜默替代、重復前一包等單邊差錯隱藏方法(即僅采用當前包之前各包來恢復),甚至還優(yōu)于某些雙邊插值差錯隱藏方法,但它具有比雙邊插值差錯隱藏方法具有更小的延時。本發(fā)明實現(xiàn)簡單,性能優(yōu)良,是一種簡單有效的差錯隱藏方法。權(quán)利要求1.一種基于語音前向包絡(luò)預測的差錯隱藏方法,包括以下步驟a)在給定的抖動緩存條件下,確定當前包是否遲于其預定播放時間,如果是,則認為當前包丟失;b)判斷前兩包語音是否都已收到;根據(jù)前兩包語音的收到和丟失情況,對當前語音包采用不同的恢復方法。若前兩包語音均正常收到,則執(zhí)行步驟c、d,否則執(zhí)行步驟e;c)計算前兩包語音的幅度變化趨勢,從而預測當前包語音的包絡(luò)變化趨勢;d)根據(jù)所預測的當前包語音包絡(luò)變化趨勢,采用對前一包語音不同的加窗處理來得到當前包語音的替代,并進行播放;e)如果前兩包語音并未全部正常收到,即其中一包或兩包丟失,則不再預測幅度趨勢;根據(jù)包的接收情況,若前一包語音收到而更前一包語音丟失,則采用上一包的全部或部分重復來對當前包進行替代;若前一包語音丟失而更前一包語音收到,則重復前一個收到包的全部或部分來恢復當前包;若前兩包均丟失,則當前包用靜默替代。2.如權(quán)利要求1所述的方法,其特征在于所述的預測方法包括以下步驟a)分別計算前兩包語音的平均幅度,并對兩包語音的平均幅度進行比較,根據(jù)預設(shè)閾值,得出前兩包總體變化趨勢;b)分別計算前兩包語音內(nèi)部的幅度變化趨勢,比如將每包語音分為前后兩部分,對其前后兩部分的幅度進行計算,并根據(jù)預設(shè)閾值,得出每包語音的幅度變化趨勢;C)根據(jù)前兩包語音的總體和內(nèi)部趨勢,基于語音特性的合理假設(shè),判斷當前語音應處于上升、保持、下降狀態(tài)還是某幾種狀態(tài)的組合。3.如權(quán)利要求2所述的方法,其特征在于所述窗函數(shù)包括上升窗,下降窗或者幾種窗函數(shù)的組合,甚至置零窗,即當前包用靜默替代。全文摘要本發(fā)明涉及一種可應用于VoIP的差錯隱藏方法。本發(fā)明所涉及的差錯隱藏的方法是基于語音前向包絡(luò)預測的,具體方法為如果當前語音包丟失,或晚于該包的預定播放時間,則通過計算前兩個語音包的幅度變化趨勢來預測當前包的包絡(luò)變化趨勢,預測方法是基于對語音特性合理的假設(shè)得出的。根據(jù)預測的當前包包絡(luò)變化的不同趨勢,采用對前一包語音進行不同形式的處理后的語音來代替當前包進行播放。這種基于語音包絡(luò)前向預測的差錯隱藏方法不占用額外的傳輸帶寬,不引入額外延時,對不同語言均適用,計算簡單有效,極易實現(xiàn)。文檔編號G10L19/00GK101221765SQ20081005706公開日2008年7月16日申請日期2008年1月29日優(yōu)先權(quán)日2008年1月29日發(fā)明者匡鏡明,輝尹,湘謝申請人:北京理工大學