專利名稱:丟包后解碼器狀態(tài)的重新定相的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種在語音或音頻編碼器中隱藏丟包導(dǎo)致的質(zhì)量降低效果的系統(tǒng)和方法。
背景技術(shù):
在聲音或音頻信號通過分組網(wǎng)絡(luò)進(jìn)行數(shù)字傳輸?shù)倪^程中,編碼的聲音/音頻信號通常被分割成幀,然后封裝成包,其中每個(gè)包可包含一個(gè)或多個(gè)編碼聲音/音頻數(shù)據(jù)的幀。然后通過分組網(wǎng)絡(luò)傳輸這些包。有時(shí)候一些包會丟失,而且一些有用的包會太晚到達(dá),從而被認(rèn)定為丟失。這種包丟失會引起音頻質(zhì)量的顯著降低,除非使用特殊的技術(shù)來隱藏丟包所導(dǎo)致的效果。
當(dāng)前存在用于獨(dú)立塊編碼器或全頻帶預(yù)測編碼器的基于外插音頻信號的包丟包隱藏(packet loss concealment,縮寫為PLC)方法。這種PLC方法包括以下美國專利申請中所公開的技術(shù)申請?zhí)枮?1/234,291、發(fā)明人為陳、名稱為“用于獨(dú)立塊語音編解碼器的丟包隱藏技術(shù)”的美國專利申請和申請?zhí)枮?0/183,608、發(fā)明人為陳、名稱為“用于預(yù)測語音編碼的基于外插語音波形的幀刪除隱藏方法和系統(tǒng)”的美國專利申請。然而,在這些申請中描述的技術(shù)不能直接用于子帶預(yù)測編碼器,如ITU-T推薦G.722寬帶語音編碼器,這是因?yàn)榇嬖谶@些技術(shù)未能解決的子帶特定結(jié)構(gòu)問題。此外,對于每個(gè)子帶來說,G.722編碼器使用了自適應(yīng)差分脈沖編碼調(diào)制(ADPCM)預(yù)測編碼器,該ADPCM預(yù)測編碼器使用了基于梯度方法的量化器步長和預(yù)測器系數(shù)的逐個(gè)采樣(sample-by-sample)后向自適應(yīng),這造成了現(xiàn)有PLC技術(shù)未能解決的特殊難題。因此,需要一種為子帶預(yù)測編碼器(如G.722)特別設(shè)計(jì)的合適的PLC方法。
發(fā)明內(nèi)容
本發(fā)明用于在子帶預(yù)測編碼器中隱藏丟包導(dǎo)致的質(zhì)量降低效果。本發(fā)明具體解決了在對子帶預(yù)測編碼器應(yīng)用音頻波形外插技術(shù)時(shí)的一些子帶特定的結(jié)構(gòu)問題,本發(fā)明還解決了一般的后向自適應(yīng)ADPCM編碼器及特殊的G.722子帶ADPCM編碼器的特定PLC難題。
具體地說,本發(fā)明在此描述了一種更新用于解碼表示編碼音頻信號的一系列幀的解碼器的狀態(tài)的方法。根據(jù)所述方法,合成與所述一系列幀中的丟失幀關(guān)聯(lián)的輸出音頻信號。將所述解碼器狀態(tài)設(shè)定為在幀邊界上與所述合成的輸出音頻信號對齊。基于所述合成的輸出音頻信號產(chǎn)生外插信號。計(jì)算出所述外插信號和與所述一系列幀中丟失幀后的第一接收幀關(guān)聯(lián)的解碼音頻信號之間的時(shí)滯,其中所述時(shí)滯表示所述外插信號和所述解碼音頻信號之間的相位差。然后基于所述時(shí)滯重設(shè)所述解碼器狀態(tài)。
本發(fā)明在此還描述了一種系統(tǒng)。所述系統(tǒng)包括解碼器、音頻信號合成器及解碼器更新邏輯。所述解碼器用于對表示編碼音頻信號的一系列幀中的接收幀進(jìn)行解碼。所述音頻信號合成器用于合成與所述一系列幀中的丟失幀關(guān)聯(lián)的輸出音頻信號。所述解碼器狀態(tài)更新邏輯用于在產(chǎn)生所述合成輸出音頻信號后設(shè)定所述解碼器狀態(tài)為在幀邊界上與所述合成的輸出音頻信號對齊,基于所述合成的輸出音頻信號產(chǎn)生外插信號,計(jì)算所述外插信號和與所述一系列幀中丟失幀后的第一接收幀關(guān)聯(lián)的解碼音頻信號之間的時(shí)滯,以及基于所述時(shí)滯重設(shè)所述解碼器狀態(tài)。所述時(shí)滯表示所述外插信號和所述解碼音頻信號之間的相位差。
本發(fā)明還描述一種計(jì)算機(jī)程序產(chǎn)品。所述計(jì)算機(jī)程序產(chǎn)品包括記錄有計(jì)算機(jī)程序邏輯的計(jì)算機(jī)可讀媒介,所述計(jì)算機(jī)程序邏輯用于使處理器更新用于解碼表示編碼音頻信號的一系列幀的解碼器的狀態(tài)。所述計(jì)算機(jī)程序邏輯包括第一模塊、第二模塊、第三模塊、第四模塊及第五模塊。第一模塊用于使所述處理器合成與所述一系列幀中的丟失幀關(guān)聯(lián)的輸出音頻信號。第二模塊用于使所述處理器在產(chǎn)生所述合成輸出音頻信號后設(shè)定所述解碼器狀態(tài)為在幀邊界上與所述合成的輸出音頻信號對齊。第三模塊用于使所述處理器基于所述合成的輸出音頻信號產(chǎn)生外插信號。第四模塊用于使所述處理器計(jì)算所述外插信號和與所述一系列幀中丟失幀后的第一接收幀關(guān)聯(lián)的解碼音頻信號之間的時(shí)滯。第五模塊用于使所述處理器基于所述時(shí)滯重設(shè)所述解碼器狀態(tài),其中所述時(shí)滯表示所述外插信號和所述解碼音頻信號之間的相位差。
本發(fā)明的更多特征和優(yōu)點(diǎn)以及本發(fā)明各種實(shí)施例的結(jié)構(gòu)和操作將參考附圖作進(jìn)一步的細(xì)節(jié)描述。注意,本發(fā)明并不局限于在此所述的特殊實(shí)施例。在此提出的實(shí)施例僅作為示例性的目的?;诎诖说慕虒?dǎo),更多的實(shí)施例對于所屬領(lǐng)域的技術(shù)人員來說是顯而易見的。
在此結(jié)合的附圖是說明書的一部分,附圖與文字描述一起闡明了本發(fā)明一個(gè)或多個(gè)實(shí)施例,并進(jìn)一步用于解釋本發(fā)明的用途、優(yōu)點(diǎn)和原理,以及使所屬領(lǐng)域的技術(shù)人員實(shí)施和使用本發(fā)明。
圖1是傳統(tǒng)的ITU-T G.722子帶預(yù)測編碼器的編碼器結(jié)構(gòu)的示意圖; 圖2是傳統(tǒng)的ITU-T G.722子帶預(yù)測編碼器的解碼器結(jié)構(gòu)的示意圖; 圖3是根據(jù)本發(fā)明實(shí)施例的解碼器/PLC系統(tǒng)的模塊圖; 圖4是根據(jù)本發(fā)明實(shí)施例在解碼器/PLC系統(tǒng)中處理幀以產(chǎn)生輸出語音信號的方法流程圖; 圖5是根據(jù)本發(fā)明實(shí)施例可由解碼器/PLC系統(tǒng)處理的不同類型幀的時(shí)序圖; 圖6是原始語音信號和外插語音信號的振幅的時(shí)間線示意圖; 圖7是根據(jù)本發(fā)明實(shí)施例在解碼語音信號和外插語音信號之間計(jì)算時(shí)滯(time lag)的方法流程圖; 圖8是根據(jù)本發(fā)明實(shí)施例在解碼語音信號和外插語音信號之間計(jì)算時(shí)滯的兩個(gè)階段的方法流程圖; 圖9是根據(jù)本發(fā)明實(shí)施例在時(shí)滯計(jì)算執(zhí)行過程中可相對于解碼語音信號平移外插語音信號的方式的示意圖; 圖10A是根據(jù)本發(fā)明實(shí)施例表示超前于外插語音信號的解碼語音信號和重新編碼操作的相關(guān)效果的時(shí)間線示意圖; 圖10B是根據(jù)本發(fā)明實(shí)施例表示滯后于外插語音信號的解碼語音信號和重新編碼操作的相關(guān)效果的時(shí)間線示意圖; 圖10C是根據(jù)本發(fā)明實(shí)施例表示在幀邊界上同步的外插語音信號和解碼語音信號以及重新編碼操作的相關(guān)效果的時(shí)間線示意圖; 圖11是根據(jù)本發(fā)明實(shí)施例在丟包后執(zhí)行子帶ADPCM解碼器內(nèi)部狀態(tài)的重新定相(re-phasing)的方法流程圖; 圖12A是根據(jù)本發(fā)明實(shí)施例對超前于外插語音信號的解碼語音信號應(yīng)用時(shí)間扭曲(time-warping)的示意圖; 圖12B和12C均是根據(jù)本發(fā)明實(shí)施例對滯后于外插語音信號的解碼語音信號應(yīng)用時(shí)間扭曲的示意圖; 圖13是根據(jù)本發(fā)明實(shí)施例執(zhí)行時(shí)間扭曲以沿時(shí)間軸收縮信號的一種方法的流程圖; 圖14是根據(jù)本發(fā)明實(shí)施例執(zhí)行時(shí)間扭曲以沿時(shí)間軸拉伸信號的一種方法的流程圖; 圖15是根據(jù)本發(fā)明實(shí)施例的用于在解碼器/PLC系統(tǒng)內(nèi)發(fā)生丟包后對預(yù)定數(shù)量的接收幀之后的接收幀進(jìn)行處理的邏輯的模塊圖; 圖16是根據(jù)本發(fā)明實(shí)施例的用于在解碼器/PLC系統(tǒng)中執(zhí)行波形外插來生成與丟失的幀相關(guān)聯(lián)的輸出語音信號的邏輯的模塊圖; 圖17是根據(jù)本發(fā)明實(shí)施例的用于更新解碼器/PLC系統(tǒng)中的子帶ADPCM解碼器狀態(tài)的邏輯的模塊圖; 圖18是根據(jù)本發(fā)明實(shí)施例的用于在解碼器/PLC系統(tǒng)中執(zhí)行重新定相和時(shí)間扭曲的邏輯的模塊圖; 圖19是根據(jù)本發(fā)明實(shí)施例的用于在解碼器/PLC系統(tǒng)中對丟包后接收到的好幀執(zhí)行約束和受控解碼的邏輯的模塊圖; 圖20是根據(jù)本發(fā)明實(shí)施例的用于在丟包過程中更新低帶ADPCM解碼器的內(nèi)部狀態(tài)的簡化低帶ADPCM編碼器的模塊圖; 圖21是根據(jù)本發(fā)明實(shí)施例的用于在丟包過程中更新高帶ADPCM解碼器的內(nèi)部狀態(tài)的簡化高帶ADPCM編碼器的模塊圖; 圖22A、22B和22C均是根據(jù)本發(fā)明實(shí)施例對解碼語音信號應(yīng)用時(shí)間扭曲的時(shí)間線示意圖; 圖23是根據(jù)本發(fā)明實(shí)施例的另一解碼器/PLC系統(tǒng)的模塊圖; 圖24是實(shí)現(xiàn)本發(fā)明的實(shí)施例的計(jì)算機(jī)系統(tǒng)的模塊圖。
通過結(jié)合附圖做出的細(xì)節(jié)描述,本發(fā)明特征和優(yōu)點(diǎn)將變得更加顯而易見。附圖中第一次出現(xiàn)的組件由對應(yīng)的附圖標(biāo)記中最左邊的阿拉伯?dāng)?shù)字表示。
具體實(shí)施例方式 A、引言 以下將參考附圖對本發(fā)明的典型實(shí)施例來了作細(xì)節(jié)描述。其它實(shí)施例也是可行的,而且可以在本發(fā)明精神和范圍之內(nèi)對示例性實(shí)施例做出修改。因此,以下的細(xì)節(jié)描述并不用于限制本發(fā)明。相反,本發(fā)明的范圍是由權(quán)利要求定義的。
所屬領(lǐng)域的技術(shù)人員應(yīng)容易理解,如以下所描述的,本發(fā)明可以在硬件、軟件、軟硬件和/或附圖所示的實(shí)體中實(shí)現(xiàn)。任何以特定控制硬件實(shí)現(xiàn)本發(fā)明的實(shí)際軟件代碼并不是本發(fā)明的限制。因而,以下對本發(fā)明的操作和行為的描述是基于以下理解給出的,即根據(jù)本申請中給出的詳細(xì)描述的程序,可以對本申請中的實(shí)施例進(jìn)行各種修改和變化。
應(yīng)理解,盡管在此提出的本發(fā)明的細(xì)節(jié)描述是針對的語音信號的處理,本發(fā)明還可用于涉及其它類型音頻信號的處理。因此,在此使用的術(shù)語“語音”和“語音信號”僅僅是為了描述方便,并不作為限制。所屬領(lǐng)域的技術(shù)人員應(yīng)知悉,該術(shù)語可以用更常用的術(shù)語“音頻”和“音頻信號”來代替。此外,雖然語音和音頻信號在此描述為被分割成多個(gè)幀,所屬領(lǐng)域的技術(shù)人員應(yīng)知悉,這種信號也可以被分割成其它離散的信號段,包括但不限于子幀。因而,在此描述的在幀上執(zhí)行的操作也包括在語音或音頻信號的其它段上執(zhí)行的類似操作,如子幀。
另外,雖然以下描述討論了通過分組網(wǎng)絡(luò)傳輸?shù)囊纛l信號的幀丟失(被稱為丟包),但是本發(fā)明并不限于丟包隱藏(PLC)。例如,在無線網(wǎng)絡(luò)中,由于信道損壞,也可能丟失或刪除音頻信號幀。這種情形稱之為“幀刪除”。當(dāng)這種情形發(fā)生時(shí),為了避免輸出語音質(zhì)量上的實(shí)質(zhì)下降,無線系統(tǒng)中的解碼器需要執(zhí)行“幀刪除隱藏”(FEC)來嘗試隱藏因丟幀而導(dǎo)致的質(zhì)量下降。對于PLC或FEC算法,丟包和幀刪除都遇到相同的問題某些傳輸?shù)膸荒茉儆糜诮獯a,所以PLC或FEC算法需要產(chǎn)生波形來填補(bǔ)對應(yīng)于丟失的幀的波形間隙(gap),從而隱藏幀因丟幀導(dǎo)致的質(zhì)量下降。因?yàn)樾g(shù)語FEC和PLC通常指相同種類的技術(shù),所以可以交替地使用。因而,為了方便起見,在此所用的術(shù)語“丟包隱藏”或PLC用于指代兩者。
B、子帶預(yù)測編碼的回顧 為了有利于更好地理解在后面章節(jié)中描述的本發(fā)明的各實(shí)施例,在此回顧一下子帶預(yù)測編碼的基本原理。通常,子帶預(yù)測編碼器可將輸入語音信號分離成N個(gè)子帶,其中N≥2。在不失一般性的情況下,在此將ITU-T G.722編碼器的雙帶預(yù)測編碼系統(tǒng)作為示例進(jìn)行描述。所屬領(lǐng)域的技術(shù)人員能夠容易地將該描述概括到其它N帶子帶預(yù)測編碼器。
圖1是G.722子帶預(yù)測編碼器的簡化編碼器結(jié)構(gòu)100。編碼器結(jié)構(gòu)100包括正交鏡像濾波器(QMF)分析濾波器組110、低帶自適應(yīng)差分脈碼調(diào)制(ADPCM)編碼器120、高帶ADPCM編碼器130和比特流復(fù)用器140。QMF分析濾波器組110將輸入語音信號分離成低帶語音信號和高帶語音信號。低帶ADPCM編碼器120將低帶語音信號編碼成低帶比特流。高帶ADPCM編碼器130將高帶語音信號編碼成高帶比特流。比特流復(fù)用器140將低帶比特流和高帶比特流復(fù)用成單個(gè)輸出比特流。在此討論的分組傳輸應(yīng)用中,該輸出比特流被封裝成包,然后被傳輸?shù)阶訋ьA(yù)測解碼器200,如圖2所示。
如圖2所示,解碼器200包括比特流解復(fù)用器210、低帶ADPCM解碼器220、高帶ADPCM解碼器230和QMF合成濾波器組240。比特流解復(fù)用器210將輸入比特流分離成低帶比特流和高帶比特流。低帶ADPCM解碼器220將低帶比特流解碼成解碼低帶語音信號。高帶ADPCM解碼器230將高帶比特流解碼成解碼高帶語言信號。然后QMF合成濾波器組240將解碼低帶語音信號和解碼高帶語音信號合并成全帶輸出語音信號。
有關(guān)編碼器100和解碼器200的結(jié)構(gòu)和操作的更多細(xì)節(jié)可以在ITU-T推薦G.722中找到,在此將其整體作為參考引入本文。
C、基于全帶語音波形外插(extrapolation)的子帶預(yù)測編碼器的丟包隱藏技術(shù) 現(xiàn)在對根據(jù)本發(fā)明的一個(gè)實(shí)施例的高質(zhì)量PLC系統(tǒng)和方法進(jìn)行描述。在本節(jié)中提供了對該系統(tǒng)和方法的概括介紹,涉及該系統(tǒng)和方法具體實(shí)現(xiàn)的更多細(xì)節(jié)將在以下D節(jié)中進(jìn)行描述。該示例系統(tǒng)和方法用于ITU-T推薦G.722語音編碼器。然而,所屬領(lǐng)域的技術(shù)人員應(yīng)知悉,在此參考該特殊實(shí)施例描述的許多概念可以用于在其它類型的子帶預(yù)測語音編碼器以及其它類型的語音和音頻編碼器中執(zhí)行PLC。
如在此更多的細(xì)節(jié)中描述的,該實(shí)施例在G.722語音解碼器的16kHz輸出域中執(zhí)行PLC。該方法使用周期性波形外插來填充與語音信號的丟幀相關(guān)聯(lián)的波形,其中根據(jù)發(fā)生丟幀前的信號特征將外插波形與經(jīng)濾波的噪聲混合。為了更新子帶ADPCM解碼器的狀態(tài),外插的16kHz信號通過QMF分析濾波器組來生成子帶信號,然后該子帶信號由簡化的子帶ADPCM編碼器處理。為了提供從與丟失的幀關(guān)聯(lián)的外插波形到與丟包后接收的好幀關(guān)聯(lián)的正常解碼波形的平滑過渡,每次丟包后會執(zhí)行額外的處理。其中,子帶ADPCM解碼器的狀態(tài)與丟包后接收的第一個(gè)好幀進(jìn)行相位對齊,并將與第一個(gè)好幀關(guān)聯(lián)的正常解碼波形進(jìn)行時(shí)間扭曲,以在其與插值波形疊加之間將該正常解碼波形與插值波形對齊,從而實(shí)現(xiàn)平滑過渡。對于長期的丟包情況,該系統(tǒng)和方法將逐漸將輸出信號減弱。
圖3是實(shí)現(xiàn)這種PLC功能的G.722語音解碼器300的高級模塊圖。雖然在此描述的解碼器/PLC系統(tǒng)300包括G.722解碼器,但是所屬領(lǐng)域的技術(shù)人員應(yīng)知悉,在此描述的許多概念通??捎糜谌魏蜰帶子帶預(yù)測編碼系統(tǒng)。類似地,針對每個(gè)子帶的預(yù)測編碼器不必是圖3所示的ADPCM編碼器,也可以是任何普通的預(yù)測編碼器,并且可以是前向自適應(yīng)或者后向自適應(yīng)的。
如圖3所示,解碼器/PLC系統(tǒng)300包括比特流解復(fù)用器310、低帶ADPCM解碼器320、高帶ADPCM解碼器330、切換器336、QMF合成濾波器組340、全帶語音信號合成器350、子帶ADPCM解碼器狀態(tài)更新模塊360和解碼約束和控制模塊370。
在此使用的術(shù)語“丟失幀”或者“壞幀”指的是沒有在解碼器/PLC300接收到的或者被認(rèn)為不適合正常解碼操作的語音信號幀。“接收幀”或“好幀”是在解碼器/PLC系統(tǒng)300正常接收的語音信號幀?!爱?dāng)前幀”是當(dāng)前正由解碼器/PLC300處理以生成輸出語音信號的幀,而“前幀”是之前由解碼器/PLC系統(tǒng)300處理來生成輸出語音信號的幀。術(shù)語“當(dāng)前幀”和“前幀”均可用來指接收的幀以及正執(zhí)行PLC操作和丟失幀。
解碼器/PLC系統(tǒng)300操作的方式將參考圖4的流程圖400來進(jìn)行描述。如圖4所示,流程圖400的方法在步驟402開始,解碼器/PLC系統(tǒng)300確定當(dāng)前幀的幀類型。解碼器/PLC系統(tǒng)300辨別六種不同類型的幀,分別用類型1到6表示。圖5提供了不同幀類型的時(shí)間線500。類型1的幀是丟包后的第八個(gè)接收幀后的任何接收幀。類型2的幀是與丟包相關(guān)的第一和第二丟失幀。類型3的幀是與丟包相關(guān)的第三到第六丟失幀中的任何一個(gè)。類型4的幀是與丟包相關(guān)的第六個(gè)丟失幀后的任何一個(gè)丟失幀。類型5的幀是緊隨丟包后接收的任何接收幀。最后,類型6的幀是在丟包后接收的第二到第八個(gè)接收幀中的任何一個(gè)。所屬領(lǐng)域的技術(shù)人員應(yīng)容易知悉,根據(jù)本發(fā)明的替代實(shí)施例也可使用分類幀類型的其它方案。例如,在具有不同幀大小的系統(tǒng)中,每個(gè)幀類型中的幀數(shù)都與上述不同。同樣,對于不同的編解碼器(即非G.722編解碼器),每個(gè)幀類型中的幀數(shù)可以是不同的。
解碼器/PLC系統(tǒng)300處理當(dāng)前幀來產(chǎn)生輸出語音信號的方式是由當(dāng)前幀的幀類型確定的。這在圖4中通過一系列判斷步驟404、406、408和410表現(xiàn)出來。具體地說,如果在步驟402確定當(dāng)前幀是類型1的幀,那么執(zhí)行第一序列的處理步驟來產(chǎn)生輸出語音信號,如判斷步驟404所示。如果在步驟402確定當(dāng)前幀是類型2、類型3或類型4的幀,那么執(zhí)行第二序列的處理步驟來產(chǎn)生輸出語音信號,如判斷步驟406所示。如果在步驟402確定當(dāng)前幀是類型5的幀,那么執(zhí)行第三序列的處理步驟來產(chǎn)生輸出語音信號,如判斷步驟408所示。最后,如果在步驟402確定當(dāng)前幀是類型6的幀,那么執(zhí)行第四序列的處理步驟來產(chǎn)生輸出語音信號,如判斷步驟410所示。以下將描述與每種不同幀類型關(guān)聯(lián)的處理步驟。
在執(zhí)行完每個(gè)序列的處理步驟之后,在判斷步驟430中確定是否有額外的幀要處理。如果有額外的幀要處理,那么處理返回到步驟402。然而,如果沒有額外的幀要處理,那么處理在所示步驟432結(jié)束。
1、處理類型1的幀 如在流程圖400的步驟412所示,如果當(dāng)前幀是類型1的幀,那么解碼器/PLC系統(tǒng)300執(zhí)行當(dāng)前幀的正常G.722解碼。因此,解碼器/PLC系統(tǒng)300的模塊310、320、330和340正確地執(zhí)行分別與傳統(tǒng)G.722解碼器200相對的模塊210、220、230和240相同的功能。具體地說,比特流解復(fù)用器310將輸入比特流分離成低帶比特流和高帶比特流。低帶ADPCM解碼器320將低帶比特流解碼成解碼低帶語音信號。高帶ADPCM解碼器330將高帶比特流解碼成解碼高帶語音信號。然后QMF合成濾波組340將解碼低帶語音信號和解碼高帶語音信號重新合并成全帶語音信號。在處理類型1的幀的過程中,切換器336連接到標(biāo)記為“類型1”的上面位置,從而將QMF合成濾波組340的輸出信號作為針對類型1的幀的解碼器/PLC系統(tǒng)300的最終輸出語音信號。
在完成步驟412之后,解碼器/PLC系統(tǒng)300更新各種狀態(tài)存儲器,并執(zhí)行有利于為后續(xù)丟幀而執(zhí)行的PLC操作的一些處理,如步驟414所示。狀態(tài)存儲器包括PLC相關(guān)的低帶ADPCM解碼器狀態(tài)存儲器、PLC相關(guān)的高帶ADPCM解碼器狀態(tài)存儲器和全帶PLC相關(guān)的狀態(tài)存儲器。作為該步驟的一部分,全帶語音信號合成器350將QMF合成濾波器組340的輸出信號存儲在內(nèi)部信號緩存中,以為后續(xù)丟失幀處理過程中可能的語音波形外插做準(zhǔn)備。子帶ADPCM解碼器狀態(tài)更新模塊360和解碼約束和控制模塊370在處理類型1的幀的過程中是非活躍的。以下將參考D節(jié)中描述的解碼器/PLC系統(tǒng)300的具體實(shí)現(xiàn)提供了有關(guān)類型1的幀處理的更多細(xì)節(jié)。
2、處理類型2、類型3和類型4的幀 在處理類型2、類型3和類型4的幀的過程中,與丟失幀相關(guān)的輸入比特流是不可用的。因此,模塊310、320、330和340不能執(zhí)行它們通常的功能,并且是非活躍的。相反,切換器336被連接到標(biāo)記為“類型2-6”的下部位置,全帶語音信號合成器350變?yōu)榛钴S,合成解碼器/PLC系統(tǒng)300的輸出語音信號。全帶語音信號合成器350通過插入之前存儲的與丟包前最后幾個(gè)接收幀相關(guān)的輸出語音信號來合成解碼器/PLC系統(tǒng)300的輸出語音信號。這在流程圖400的步驟416中體現(xiàn)出來。
在全帶語音信號合成器350完成波形合成的任務(wù)后,子帶ADPCM解碼器狀態(tài)更新模塊360適當(dāng)?shù)馗碌蛶DPCM解碼器320和高帶ADPCM解碼器330的內(nèi)部狀態(tài),為下一幀中可能存在的好幀做準(zhǔn)備,如步驟418所示?,F(xiàn)在對執(zhí)行步驟416和418的方式進(jìn)行更多的細(xì)節(jié)描述。
a、波形外插 執(zhí)行步驟416的波形外插功能存在許多現(xiàn)有技術(shù)。以下在D節(jié)中描述的解碼器/PLC系統(tǒng)300的實(shí)現(xiàn)所使用的技術(shù)是在申請?zhí)枮?1/234,291、申請人為陳、提交日期為2005年9月26日、標(biāo)題為“用于塊獨(dú)立語音編解碼器的丟包隱藏技術(shù)”的美國專利申請中描述的技術(shù)的修改版本。在此將提供該技術(shù)的高級描述,而在D節(jié)中將提出更多的細(xì)節(jié)。
為了實(shí)現(xiàn)波形外插功能,全帶語音信號合成器350在接收幀的處理過程中分析來自QMF合成濾波器組340的存儲的輸出語音信號以提取基音周期(pitchperiod)、短期預(yù)測因子和長期預(yù)測因子。然后將這些參數(shù)存儲起來以便后續(xù)使用。
全帶語音信號合成器350通過執(zhí)行兩階段搜索來提取基音周期。在第一階段,通過對輸入語音信號或其濾波版本的抽樣版本(decimated version)執(zhí)行搜索來確定低解析度的基音周期(或粗基音)。在第二階段,通過使用未抽樣信號搜索粗基音的鄰域來將粗基音提煉成正常解析度。這種兩階段搜索方法明顯比在未抽樣區(qū)間中的單階段完整搜索需要明顯較低的計(jì)算復(fù)雜度。在對語音信號或其濾波版本進(jìn)行抽樣之前,通常未抽樣信號需要通過防混疊(anti-aliasing)低通濾波器。為了減少復(fù)雜度,普通的現(xiàn)有技術(shù)是使用低階無限脈沖響應(yīng)(IIR)濾波器,如橢圓濾波器。然而,好的低階IIR濾波器的極點(diǎn)通常很靠近單位圓,因而當(dāng)執(zhí)行16位定點(diǎn)算法中與濾波器的全極點(diǎn)部分相對應(yīng)的濾波運(yùn)算時(shí),需要雙重精度的算法運(yùn)算。
與現(xiàn)有技術(shù)相比,全帶語音信號合成器350使用有限脈沖響應(yīng)(FIR)濾波器作為防混疊低通濾波器。通過以這種方式使用FIR濾波器,僅需要單精度的16位定點(diǎn)算法運(yùn)算,F(xiàn)IR濾波器能以較低的抽樣信號的采樣率進(jìn)行運(yùn)算。所以,這種方法可以顯著地減少防混疊低通濾波器的計(jì)算復(fù)雜度。例如,在D節(jié)中描述的解碼器/PLC系統(tǒng)300的實(shí)現(xiàn)中,未抽樣信號具有16kHz的采樣率,但是用于基音提取的抽樣信號僅具有2kHz的采樣率。在現(xiàn)有技術(shù)的基礎(chǔ)上,可以使用4階橢圓濾波器。橢圓濾波器的全極點(diǎn)部分需要雙重精度的定點(diǎn)算法,并且需要以16kHz采樣率運(yùn)算。正因如此,盡管全零部分能以2kHz采樣率運(yùn)算,整個(gè)4階橢圓濾波器和下采樣操作運(yùn)算需要0.66WMOPS(加權(quán)百萬運(yùn)算每秒)的計(jì)算復(fù)雜度。相反,即便使用相對的60階的高階FIR濾波器來代替4階橢圓濾波器,由于60階FIR濾波器是以非常低的2kHz采樣率操作,所以整個(gè)60階FIR濾波器和下采樣操作僅需要0.18WMOPS的復(fù)雜度,相比4階橢圓濾波器減少了73%。
在丟包的第一個(gè)丟失幀開始點(diǎn),當(dāng)?shù)郊壜?lián)合成濾波器的輸入設(shè)為零的時(shí)候,全帶語音信號合成器350使用級聯(lián)長期合成濾波器和短期合成濾波器來產(chǎn)生一個(gè)信號,稱之為“呼叫信號(ringing signal)”。然后全帶語音信號合成器350分析某些信號參數(shù)(如基音預(yù)測增益和標(biāo)準(zhǔn)化自相關(guān))來確定存儲的輸出語音信號中“發(fā)音(voicing)”的度。如果之前的輸出語音信號發(fā)音很高,那么以周期性方式外插該語音信號以產(chǎn)生當(dāng)前壞幀的替代波形。周期性波形外插是使用在最近接收的幀上提取的基音周期的提煉版來執(zhí)行的。如果之前的輸出語音信號是不發(fā)聲的或類似噪聲的,那么成比例的(scaled)隨機(jī)噪聲通過短期合成濾波器來產(chǎn)生當(dāng)前壞幀的替代信號。如果發(fā)音的度是在兩個(gè)極端之間,那么將兩個(gè)成分按發(fā)音度成比例的混合在一起。然后將該外插信號與呼叫信號疊加,以確保在丟包的第一個(gè)壞幀開始時(shí)不會有波形中斷。此外,將波形外插擴(kuò)展到超出當(dāng)前壞幀末端一段至少等于疊加周期的時(shí)間,使得下一幀開始時(shí)該外插信號的額外采樣可以用作下一幀開始時(shí)疊加的呼叫信號。
在不是丟包的第一個(gè)壞幀的壞幀中(即在類型3或類型4的幀中),全帶語音信號合成器350的操作本質(zhì)上與上一段描述的操作是相同的,除了全帶語音信號合成器350不需要計(jì)算呼叫信號,并且可以使用在超出上一幀末端后在上一幀內(nèi)計(jì)算出的外插信號的額外采樣作為疊加運(yùn)算的呼叫信號,以此確保在該幀開始時(shí)沒有波形中斷。
對于長期丟包的情況,全帶語音信號合成器350逐漸將解碼器/PLC系統(tǒng)300的輸出語音信號減弱。例如,在D節(jié)中描述的解碼器/PLC系統(tǒng)的實(shí)現(xiàn)中,丟包過程中產(chǎn)生的輸出語音信號以線性方式衰減或“減弱”到零,從20ms開始,并在60ms結(jié)束。執(zhí)行該功能是因?yàn)殛P(guān)于“實(shí)際”波形的形狀和形式的不確定性隨時(shí)間增加。實(shí)際上,當(dāng)外插片段遠(yuǎn)超出約60ms的范圍時(shí),許多PLC方案開始產(chǎn)生嗡嗡響(buzzy)的輸出。
在本發(fā)明的替代實(shí)施例中,對于背景噪聲中的PLC,(通常)本發(fā)明的實(shí)施例追蹤背景噪聲(周圍噪聲)的級別,并針對長時(shí)間的幀刪除衰減到該級別,而不是零。這消除了因PLC系統(tǒng)對輸出的消聲而在背景噪聲中產(chǎn)生的丟包中斷效果。
本發(fā)明的進(jìn)一步替代實(shí)施例通過執(zhí)行實(shí)現(xiàn)舒適噪聲產(chǎn)生(CNG)功能解決了背景噪聲中PLC的前述問題。當(dāng)本發(fā)明的該實(shí)施例開始針對長期丟包衰減解碼器/PLC系統(tǒng)300的輸出語音信號時(shí),其也開始混入由CNG產(chǎn)生的舒適噪聲。通過混入舒適噪聲和以舒適噪聲替換,當(dāng)解碼器/PLC系統(tǒng)300的輸出語音信號被衰弱并最終消聲時(shí),上述的中斷效果將被消除并且提供出了該信號周圍環(huán)境的可靠再現(xiàn)。該方法已經(jīng)被證明并且普遍地在其它應(yīng)用中被接受。例如,在子帶回聲消除器(SBAEC)中,或者一般的回聲消除器(AEC)中,當(dāng)檢測到殘余回聲時(shí),減弱該信號并且以舒適噪聲替換。這通常是指非線性處理(NLP)。本發(fā)明的該實(shí)施例的前提在于,PLC呈現(xiàn)出非常類似的方案。與AEC相似,這種方法針對PLC的使用將提供一種更加增強(qiáng)的體驗(yàn),這遠(yuǎn)沒有中斷效果令人討厭。
b、低帶和高帶ADPCM解碼器的內(nèi)部狀態(tài)的更新 全帶語音信號合成器350完成了在步驟416中執(zhí)行的波形合成任務(wù)之后,子帶ADPCM解碼器狀態(tài)更新模塊360然后在步驟418中適當(dāng)?shù)馗碌蛶DPCM解碼器320和高帶ADPCM解碼器330的內(nèi)部狀態(tài),為下一幀中可能的好幀做準(zhǔn)備。執(zhí)行低帶ADPCM解碼器320和高帶ADPCM解碼器330的內(nèi)部狀態(tài)更新存在許多方法。由于圖1中的G.722編碼器和圖2中的G.722解碼器具有相同類型的內(nèi)部狀態(tài),更新解碼器320和330的內(nèi)部狀態(tài)的一種直接的方法是反饋全帶語音信號合成器350的輸出信號通過圖1所示的標(biāo)準(zhǔn)G.722編碼器,以上一幀的最后一個(gè)采樣留下的內(nèi)部狀態(tài)開始。然后,在對外插語音信號的當(dāng)前壞幀編碼后,當(dāng)前壞幀的最后一個(gè)采樣留下的內(nèi)部狀態(tài)被用來更新低帶ADPCM解碼器320和高帶ADPCM解碼器330的內(nèi)部狀態(tài)。
然而,前述方法具有兩個(gè)子帶編碼器的復(fù)雜度。為了節(jié)省復(fù)雜度,在D節(jié)中描述的解碼器/PLC系統(tǒng)300對以上方法進(jìn)行了近似實(shí)現(xiàn)。對于高帶ADPCM編碼器,公認(rèn)的是在處理丟包后的第一個(gè)接收幀的時(shí)候,并不需要高帶自適應(yīng)量化步長ΔH(n)。相反,量化步長被復(fù)位為丟包前的滑動(dòng)平均值(如在本申請中其它部分描述的)。因此,使用非量化的差分信號(或預(yù)測誤差信號)eH(n)進(jìn)行高帶ADPCM編碼器中的自適應(yīng)預(yù)測更新,并且對eH(n)的量化操作被完全避免了。
對于低帶ADPCM編碼器,方案稍微有點(diǎn)不同。由于維持低帶自適應(yīng)量化步長ΔL(n)的基音調(diào)制的重要性,以下在D節(jié)中描述的解碼器/PLC系統(tǒng)300的實(shí)現(xiàn)有效地在丟失幀中更新了這個(gè)參數(shù)。標(biāo)準(zhǔn)G.722低帶ADPCM編碼器采用差分信號(或預(yù)測誤差信號)eL(n)的6位量化。然而,根據(jù)G.722標(biāo)準(zhǔn),僅使用了8個(gè)幅度量化指數(shù)的子集來更新低帶自適應(yīng)量化步長ΔL(n)。通過使用非量化差分信號eL(n)代替量化差分信號用于低帶ADPCM編碼器中的自適應(yīng)預(yù)測更新,在維持低帶自適應(yīng)量化步長ΔL(n)的同樣的更新的情況下,在D節(jié)中描述的實(shí)施例能夠使用不是很復(fù)雜的差分信號量化。
所屬領(lǐng)域的技術(shù)人員應(yīng)容易知悉,在本申請中涉及高帶自適應(yīng)量化步長ΔH(n)的描述中,高帶自適應(yīng)量化步長可由高帶對數(shù)比例因子
替換。同樣地,在本申請中涉及低帶自適應(yīng)量化步長ΔL(n)的描述中,低帶自適應(yīng)量化步長可由低帶對數(shù)比例因子
替換。
與標(biāo)準(zhǔn)G.722子帶ADPCM編碼器比較,在D節(jié)的實(shí)施例中所用的低帶和高帶ADPCM編碼器的另一區(qū)別是編碼器的基于信號屬性和丟包持續(xù)時(shí)間的自適應(yīng)復(fù)位?,F(xiàn)在開始描述該功能。
如以上介紹的,對于長時(shí)間的丟包,全帶語音信號合成器350在預(yù)定時(shí)間后將輸出語音波形消聲。在以下D節(jié)中描述的解碼器/PLC系統(tǒng)300的實(shí)現(xiàn)中,來自全帶語音信號合成器350的輸出信號饋通給G.722 QMF分析濾波器組,以獲得用于在丟失幀期間更新低帶ADPCM解碼器320和高帶ADPCM解碼器330內(nèi)部狀態(tài)的子帶信號。因此,一旦來自全帶語音信號合成器350的輸出信號被消減到零,用于更新子帶ADPCM解碼器內(nèi)部狀態(tài)的子帶信號也會變成零。恒零能使每個(gè)解碼器中的自適應(yīng)預(yù)測器與編碼器中的自適應(yīng)預(yù)測器區(qū)分開,因?yàn)楹懔銜蛔匀坏厥诡A(yù)測器部分在相同方向不停地適應(yīng)性調(diào)整。這在傳統(tǒng)的高帶ADPCM解碼器中是顯而易見的,這在長時(shí)間丟包后處理好幀時(shí)通常會產(chǎn)生高頻啁啾聲(chirping)。對于傳統(tǒng)的低帶ADPCM解碼器,由于預(yù)測器具有太高的濾波器增益,這個(gè)問題偶爾會引起不自然的能量增長。
基于前述的論述,一旦PLC輸出波形已經(jīng)被消減到零,以下在D節(jié)中描述的解碼器/PLC系統(tǒng)300的實(shí)現(xiàn)復(fù)位ADPCM子帶解碼器。該方法在長時(shí)間幀刪除后幾乎完全消除了高頻啁啾聲。全帶語音信號合成器350產(chǎn)生的合成波形的不確定性隨丟包時(shí)間的增加而增加,這種論述結(jié)果表明,在某個(gè)點(diǎn)上,使用該方法來更新子帶ADPCM解碼器320和330是不明顯的。
然而,即使在全帶語音信號合成器350的輸出被完全消聲時(shí)復(fù)位子帶APCM解碼器320和330,仍然存在以不常見的啁啾聲(來自高帶ADPCM解碼器330)和不常見且不自然能量增長(來自低帶ADPCM解碼器320)的形式出現(xiàn)的一些問題。通過產(chǎn)生各子帶ADPCM解碼器自適應(yīng)的復(fù)位深度,在D節(jié)中描述的實(shí)現(xiàn)中已經(jīng)解決了這些問題。復(fù)位在波形消聲時(shí)仍會發(fā)生,但是也可以提前復(fù)位子帶ADPCM解碼器320和330的一個(gè)或多個(gè)。
如將在D節(jié)中描述的,提前復(fù)位的決定是基于在壞幀期間(即在基于來自全帶語音信號合成器的輸出信號更新子帶ADPCM解碼器320和330的期間)對控制子帶ADPCM解碼器320和330的自適應(yīng)預(yù)測器的極點(diǎn)部分的自適應(yīng)的信號的某些性能的監(jiān)控做出的。對于低帶ADPCM解碼器320,部分重構(gòu)的信號PLt(n)驅(qū)動(dòng)全極點(diǎn)濾波部分的自適應(yīng),而部分重構(gòu)的信號PH(n)驅(qū)動(dòng)高帶ADPCM解碼器330的全極點(diǎn)濾波部分的自適應(yīng)。本質(zhì)上,在10ms的丟失幀期間內(nèi)監(jiān)控到每個(gè)參數(shù)都很大程度上是恒定的,或者在當(dāng)前丟失幀期間內(nèi)主要為正或負(fù)。應(yīng)注意,在D節(jié)描述的實(shí)現(xiàn)中,自適應(yīng)復(fù)位被限制在包丟失30ms之后。
3、處理類型5和類型6的幀 在處理類型5和類型6的幀時(shí),與當(dāng)前幀相關(guān)的輸入比特流再一次可用,因而模塊310、320、330和340再次處于活躍狀態(tài)。然而,低帶ADPCM解碼器320和高帶ADPCM解碼器330執(zhí)行的解碼操作被解碼約束和控制模塊370所約束和控制,以減少從丟失幀到接收幀的過渡處的贗像(artifact)和失真,從而提高丟包后解碼器/PLC系統(tǒng)300的性能。對于類型5的幀,這體現(xiàn)在流程圖400的步驟420中,對于類型6的幀則體現(xiàn)在步驟426中。
對于類型5的幀,將對輸出語音信號執(zhí)行附加修改來確保由全帶語音信號合成器350產(chǎn)生的合成信號和由QMF合成濾波器組340產(chǎn)生的輸出信號之間的平滑過渡。因而,QMF合成濾波器組340的輸出信號并不直接用作解碼器/PLC系統(tǒng)300的輸出語音信號。相反,全帶語音合成器350修改QMF合成濾波器組340的輸出,并使用修改后的版本作為解碼器/PLC系統(tǒng)300的輸出語音信號。因而,在處理類型5或類型6的幀時(shí),切換器336保持連接到標(biāo)記為“類型2-6”的下部位置,以接收來自全帶語音信號合成器350的輸出語音信號。
在這點(diǎn)上,如果全帶語音信號合成器350產(chǎn)生的合成信號和QMF合成濾波器組340產(chǎn)生的輸出信號之間存在未對齊,全帶語音信號合成器350執(zhí)行的操作包括時(shí)間扭曲和重新定相。這些操作的執(zhí)行在流程400的步驟422示出,并將在以下做更多的細(xì)節(jié)描述。
同樣,對于類型5的幀,全帶語音信號合成器350產(chǎn)生的輸出語音信號與來自先前處理的丟失幀的呼叫信號疊加。這樣做是為了確保從與前幀關(guān)聯(lián)的合成波形到與當(dāng)前類型5的幀關(guān)聯(lián)的輸出波形的平滑過渡。該步驟的執(zhí)行在流程圖400的步驟424示出。
在已經(jīng)為類型5或類型6的幀產(chǎn)生輸出語音信號之后,解碼器/PLC系統(tǒng)300更新各種狀態(tài)存儲器,并執(zhí)行一些處理來利于針對后續(xù)丟失幀以步驟414的類似方式所執(zhí)行的PLC運(yùn)算,如步驟428所示。
a、子帶ADPCM解碼的約束和控制 如以上介紹的,解碼約束和控制模塊370對在處理類型5和類型6的幀過程中由低帶ADPCM解碼器320和高帶ADPCM解碼器330執(zhí)行的解碼操作進(jìn)行約束和控制,以提高丟包后解碼器/PLC系統(tǒng)300的性能。現(xiàn)在對解碼約束和控制模塊370采用的各種約束和控制進(jìn)行描述。有關(guān)這些約束和控制的更多細(xì)節(jié)將在以下D節(jié)中參考解碼器/PLC系統(tǒng)300的特殊實(shí)現(xiàn)作進(jìn)一步描述。
i、用于高帶ADPCM解碼器的自適應(yīng)量化步長的設(shè)置 對于類型5的幀,解碼約束和控制模塊370將用于高帶ADPCM解碼器330的自適應(yīng)量化步長ΔH(n)設(shè)定為與丟包前接收的好幀關(guān)聯(lián)的值的滑動(dòng)平均值。通過減少背景噪聲的片段中可見的丟包導(dǎo)致的能量下降,提高了背景噪聲中解碼器/PLC系統(tǒng)300的性能。
ii、用于低帶ADPCM解碼器的自適應(yīng)量化步長的設(shè)置 對于類型5的幀,解碼約束和控制模塊370執(zhí)行自適應(yīng)策略以為低帶ADPCM解碼器320設(shè)置自適應(yīng)量化步長ΔL(n)。在替代的實(shí)施例中,該方法也可用于高帶ADPCM解碼器330。如在前面部分介紹的,對于高帶ADPCM解碼器330,將自適應(yīng)量化步長ΔH(n)設(shè)定為丟包前第一個(gè)好幀上的值的滑動(dòng)平均值,對解碼器/PLC系統(tǒng)300在背景噪聲內(nèi)的性能是有益的。然而,相同方法應(yīng)用到低帶ADPCM解碼器320偶爾會在有聲語音上產(chǎn)生很大的不自然能量增長。這是因?yàn)樵谟新曊Z音中使用基音周期對ΔL(n)進(jìn)行調(diào)制,并因此將ΔL(n)設(shè)定為丟幀前的滑動(dòng)平均值會在丟包后的第一個(gè)好幀上引起ΔL(n)非常大的反常增加。
因此,在由基音周期調(diào)制ΔL(n)的情況下,優(yōu)選地是使用來自ADPCM解碼器狀態(tài)更新模塊360的ΔL(n),而不是丟包前的ΔL(n)的滑動(dòng)平均值?;仡櫼幌拢ㄟ^將全帶語音信號合成器350的輸出信號傳遞通過G.722 QMF分析濾波器組來獲得低帶信號,子帶ADPCM解碼器狀態(tài)更新模塊360更新低帶ADPCM解碼器320。如果全帶語音信號合成器350正在執(zhí)行任務(wù),可能是針對有聲語音的,那么用于更新低帶ADPCM解碼器320的信號很可能非常匹配在編碼器上使用的信號,因此參數(shù)ΔL(n)也很可能非常接近該編碼器的步長。對于有聲語音,該方法優(yōu)選地是將ΔL(n)設(shè)定為丟包前的ΔL(n)的滑動(dòng)平均值。
考慮到之前描述的,解碼約束和控制模塊370采用自適應(yīng)策略以設(shè)定用于丟包后第一個(gè)好幀的ΔL(n)。如果丟包前的語音信號相當(dāng)穩(wěn)定的,例如穩(wěn)定的背景噪聲,那么將ΔL(n)設(shè)定為丟包前的ΔL(n)的滑動(dòng)平均值。然而,如果丟包前的語音信號呈現(xiàn)出ΔL(n)上的變化,例如被認(rèn)為是針對有聲語音的,那么將ΔL(n)設(shè)定為通過基于全帶語音信號合成器350的輸出的低帶ADPCM解碼器更新而獲得的值。對于中間的情況,ΔL(n)被設(shè)定為基于丟包前ΔL(n)變化在這兩個(gè)值之間進(jìn)行的線性加權(quán)。
iii、用于高帶ADPCM解碼器的自適應(yīng)量化步長的自適應(yīng)低通濾波 在處理包丟失后最初幾個(gè)好幀(類型5和類型6的幀)的過程中,為了減少產(chǎn)生太強(qiáng)的高頻內(nèi)容的局部波動(dòng)(由于G.722編碼器和G.722解碼器之間同步的暫時(shí)丟失)的風(fēng)險(xiǎn),解碼約束和控制模塊370會有效控制高帶ADPCM解碼器的自適應(yīng)量化步長ΔH(n)。這樣會產(chǎn)生高頻振蕩效應(yīng),這正好是實(shí)際啁啾聲的影響。因此,在最初幾個(gè)好幀內(nèi),對高帶量化步長ΔH(n)應(yīng)用自適應(yīng)低通濾波器。經(jīng)過自適應(yīng)的時(shí)間周期以二次形式減少了平滑過渡。對于丟包前語音信號非常穩(wěn)定的信號片段,持續(xù)時(shí)間更長(以下在D節(jié)中描述的解碼器/PLC系統(tǒng)300的實(shí)現(xiàn)中為80ms)。對于丟包前不是很穩(wěn)定的語音信號的情況,持續(xù)時(shí)間稍短(以下在D節(jié)中描述的解碼器/PLC系統(tǒng)300的實(shí)現(xiàn)中為40ms),而對于不穩(wěn)定的片段,則不采用低通濾波。
iv、最初幾個(gè)好幀內(nèi)全極點(diǎn)濾波器部分上的自適應(yīng)安全裕度(adaptivesafety margin) 由于在包丟失期間和之后G.722解碼器和編碼器之間必然的偏差,解碼約束和控制模塊370在丟包后最初幾個(gè)好幀(類型5和類型6的幀)期間對低帶ADPCM解碼器720的自適應(yīng)預(yù)測器執(zhí)行某些約束。根據(jù)G.722標(biāo)準(zhǔn),默認(rèn)的編碼器和解碼器在子帶預(yù)測器的極點(diǎn)部分上執(zhí)行1/16的最小“安全”裕度。然而,已經(jīng)發(fā)現(xiàn)的是,低帶ADPCM解碼器的兩極六個(gè)零預(yù)測濾波器的全極點(diǎn)部分在丟包后經(jīng)常會引起反常的能量增加。這通常以波形彈跳(pop)的形式感測到。顯然,丟包引起較低的安全裕度,其與產(chǎn)生極高能量波形的具有較高增益的全極點(diǎn)濾波部分對應(yīng)。
通過自適應(yīng)地在低帶ADPCM解碼器320的自適應(yīng)預(yù)測器的全極點(diǎn)濾波部分上執(zhí)行更多的嚴(yán)格約束,解碼約束和控制模塊370極大地減少了這種丟包后的反常能量增加。在包丟失后最初幾個(gè)好幀上獲得了增加的最小安全裕度。增加的最小安全裕度被逐漸降低至標(biāo)準(zhǔn)的G.722最小安全裕度。此外,還對丟包前的安全裕度的滑動(dòng)平均值進(jìn)行監(jiān)控,并對包丟失后最初幾個(gè)好幀期間增加的最小安全裕度進(jìn)行控制,以致不會超過該滑動(dòng)平均值。
v、高帶ADPCM解碼器的內(nèi)部信號上的DC移除 在包丟失后最初幾個(gè)好幀(類型5和類型6的幀)期間,據(jù)觀察,G.722解碼器經(jīng)常產(chǎn)生非常令人討厭的明顯的高頻啁啾失真。該失真來自于因丟包而與高帶ADPCM編碼器失去同步并因而產(chǎn)生有偏差的預(yù)測的高帶ADPCM解碼器。導(dǎo)致啁啾失真的同步丟失表明了其自身在輸入信號中對極點(diǎn)預(yù)測器PH(n)的自適應(yīng)的控制和對在長時(shí)間內(nèi)具有恒定正負(fù)號的重構(gòu)高帶信號rH(n)的控制。這使得預(yù)測器的極點(diǎn)部分發(fā)生漂移,因?yàn)樽赃m應(yīng)是基于符號的(sign-based),因而在相同方向上保持更新。
為了避免這個(gè)問題,通過在包丟失后最初幾個(gè)好幀期間分別以高通濾波版本PH,HP(n)和rH,HP(n)來代替信號PH(n)和rH(n),解碼約束和控制模塊370對這些信號增加了DC移除操作。這用來完全消除啁啾聲。DC移除被實(shí)現(xiàn)為PH(n)和rH(n)各自的滑動(dòng)平均值的減法。這些滑動(dòng)平均值針對好幀和壞幀持續(xù)地更新。在以下D節(jié)中描述的解碼器/PLC系統(tǒng)300的實(shí)現(xiàn)中,這種替換針對包丟失后最初40ms發(fā)生。
b、重新定相和時(shí)間扭曲 如以上介紹的,在流程圖400的步驟422中,如果全帶語音信號合成器350在丟包期間產(chǎn)生的合成語音信號和QMF合成濾波器組340在丟包后最初接收的幀期間產(chǎn)生的語音信號之間存在未對齊,全帶語音信號合成器350執(zhí)行被稱為“重新定相”和“時(shí)間扭曲”的技術(shù)。
如上所述的,在處理丟失幀時(shí),如果與丟包前的接收幀相關(guān)的解碼語音信號幾乎是周期性的,如語音元音信號,那么全帶語音信號合成器350基于基音周期外插語音波形。仍如上所述的,在丟失幀結(jié)尾以外繼續(xù)這種波形外插,以獲得用于與下一幀的相關(guān)語音信號疊加的更多采樣,從而確保了平滑過渡以及避免了任何中斷。然而,解碼語音信號的實(shí)際基音周期一般不跟隨在丟失幀中進(jìn)行波形外插期間所用的基音軌跡。所以,一般外插語音信號不會與第一個(gè)好幀關(guān)聯(lián)的解碼語音信號完全對齊。
這在圖6中示出,圖6是示出了丟包前和丟包后第一個(gè)接收幀期間解碼語音信號602的振幅(為了方便,還示出了丟失幀時(shí)的解碼語音信號,但是應(yīng)了解,解碼器/PLC系統(tǒng)300不能解碼原始信號的這個(gè)部分)以及在丟失幀期間和丟包后第一個(gè)接收幀期間產(chǎn)生的外插語音信號604的振幅的時(shí)間線600。如圖6所示,兩個(gè)信號在第一個(gè)接收幀中是異相的。
這種異相現(xiàn)象在解碼器/PLC系統(tǒng)300中引起兩個(gè)問題。第一,從圖6中可以看到,在丟包后的第一個(gè)接收幀中,疊加區(qū)域中的解碼語音信號602和外插語音信號604是異相的,并將部分對消,引起可聽膺像。第二,與子帶ADPCM解碼器320和330相關(guān)的狀態(tài)存儲器呈現(xiàn)了某種程度的基音調(diào)制,并因此對語音信號的相位敏感。如果語音信號接近基音周期,即是靠近信號電平急劇上升和下降的基音脈沖的語音信號部分,這一問題尤其明顯。因?yàn)樽訋DPCM解碼器320和330對語音信號的相位敏感,并因?yàn)橥獠逭Z音信號604被用來在包丟失時(shí)更新這些解碼器的狀態(tài)存儲器(如上所述),外插語音信號604和解碼語音信號602之間的相位差將在丟包后的接收幀中產(chǎn)生明顯的膺像,這是因?yàn)樽訋DPCM編碼器和解碼器的內(nèi)部狀態(tài)失配。
以下將對此作更多的細(xì)節(jié)描述,時(shí)間扭曲用于解決疊加區(qū)域中的相消干擾的第一個(gè)問題。具體地說,時(shí)間扭曲用于拉伸和收縮與丟包后第一個(gè)接收幀相關(guān)的解碼語音信號的時(shí)間軸,以將它與用于隱藏前一丟失幀的外插語音信號對齊。雖然在此參考具有存儲器的子帶預(yù)測編碼器對時(shí)間扭曲進(jìn)行描述,但是這項(xiàng)普通技術(shù)也可應(yīng)用到其它編碼器,包括但不限于具有和不具有存儲器的編碼器、預(yù)測和非預(yù)測編碼器以及子帶和全帶編碼器。
同樣在此作更多的細(xì)節(jié)描述,重新定相用于解決由于丟失幀和包丟失后第一幀的未對齊引起的子帶ADPCM編碼器和解碼器的內(nèi)部狀態(tài)失陪的第二個(gè)問題。重新定相是將子帶ADPCM解碼器320和330的內(nèi)部狀態(tài)設(shè)定為外插語音波形與包丟失后第一個(gè)接收幀前的最后一個(gè)輸入信號采樣同相時(shí)的時(shí)間點(diǎn)的狀態(tài)的處理過程。雖然在后向自適應(yīng)系統(tǒng)的環(huán)境中描述了重新定相,但是它也可以用于在前向自適應(yīng)預(yù)測編碼器或者具有存儲器的任何編碼器中執(zhí)行PLC。
i、時(shí)滯計(jì)算 重新定相和時(shí)間扭曲技術(shù)都需要計(jì)算外插語音信號和與包丟失后第一個(gè)接收幀相關(guān)的解碼語音信號之間未對齊的采樣的數(shù)量。這一未對齊被稱為“滯后”,如圖6中所標(biāo)記的,其可認(rèn)為是解碼語音信號滯后外插語音信號的采樣數(shù)量。在圖6的情形中,滯后是負(fù)的。
實(shí)行時(shí)滯計(jì)算的一種一般的方法在圖7的流程圖700中示出,但是也可以使用其它的方法。執(zhí)行該方法的一種特定方式在以下D節(jié)中給出了描述。
如圖7所示,流程圖700的方法在步驟702開始,在前一丟失幀期間由全帶語音信號合成器350產(chǎn)生的語音波形被外插到丟包后第一個(gè)接收幀中。
在步驟704,計(jì)算時(shí)滯。在概念級上,通過最大化外插語音信號和與丟包后第一個(gè)接收幀關(guān)聯(lián)的解碼語音信號之間的相關(guān)性來計(jì)算時(shí)滯。如圖9所示,相對于與第一接收幀(表示為902)關(guān)聯(lián)的解碼語音信號,外插語音信號(表示為904)在-MAXOS到+MAXOS的范圍內(nèi)漂移,其中MAXOS表示最大偏移量,最大化相關(guān)性的漂移量被用作時(shí)滯。這可以通過在零附近的±MAXOS的時(shí)滯范圍內(nèi)的信號間搜索標(biāo)準(zhǔn)化交叉相關(guān)性函數(shù)R(k)的峰值來完成 其中es是外插語音信號,x是與包丟失后第一個(gè)接收幀關(guān)聯(lián)的解碼語音信號,MAXOS是允許的最大偏移,LSW是滯后搜索窗口長度,i=0表示在滯后搜索窗口中的第一采樣。最大化該函數(shù)的時(shí)滯將對應(yīng)于兩個(gè)波形之間的相對時(shí)間偏差。
在一個(gè)實(shí)施例中,以基于基音周期自適應(yīng)的方式確定出在其上計(jì)算相關(guān)性的采樣的數(shù)量(又稱為滯后搜索窗口)。例如,在以下D節(jié)中描述的實(shí)施例中,用于粗滯后搜索的采樣(16kHz采樣率)數(shù)量上的窗口大小如下
其中ppfe是基音周期。該等式使用了地板函數(shù)(floor function)。實(shí)數(shù)x的地板函數(shù)
是返回小于或等于x的最大整數(shù)的函數(shù)。
如果在步驟704中計(jì)算的時(shí)滯是零,那么這表示外插語音信號和第一個(gè)接收幀關(guān)聯(lián)的解碼語音信號是同相的,而正值表示與第一個(gè)接收幀關(guān)聯(lián)的解碼語音信號滯后于(相比較而言被延遲)外插語音信號,負(fù)值表示與第一個(gè)接收幀關(guān)聯(lián)的解碼語音信號超前于外插語音信號。如果時(shí)滯等于零,那么不需要執(zhí)行重新定相和時(shí)間扭曲。在以下D節(jié)中提出的示例實(shí)現(xiàn)中,如果包丟失前的最后一個(gè)接收幀是無聲的(通過針對該幀計(jì)算出的發(fā)聲的度數(shù)來表示,如以上關(guān)于類型2、類型3和類型4的處理所描述的),或者如果包丟失后的第一個(gè)接收幀是無聲的,時(shí)滯也被設(shè)為零。
為了最小化相關(guān)性計(jì)算的復(fù)雜度,可以使用多階段處理來執(zhí)行滯后搜索。圖8的流程圖800示出了這種方法,其中首先在步驟802使用信號的下采樣表示來執(zhí)行粗時(shí)滯搜索,然后在步驟804使用信號的較高采樣率表示來執(zhí)行細(xì)化時(shí)滯搜索。例如,將信號下采樣到4kHz后執(zhí)行粗時(shí)滯搜索,以8kHz上的信號執(zhí)行細(xì)化時(shí)滯搜索。為了進(jìn)一步減小復(fù)雜度,可以僅通過對信號進(jìn)行二次采樣而忽略任何混疊效應(yīng)來執(zhí)行向下采樣。
一個(gè)問題在于使用什么信號來與第一個(gè)接收幀內(nèi)的外插語音信號進(jìn)行相關(guān)。“強(qiáng)力(brute force)”方法是完整地解碼第一個(gè)接收幀以獲得解碼語音信號然后在16kHz上計(jì)算相關(guān)性的方法。為解碼第一個(gè)接收幀,可以使用從重新編碼外插語音信號(如上所述)一直到幀邊界而獲得的子帶ADPCM解碼器320和330的內(nèi)部狀態(tài)。然而,由于以下所述的重新定相算法將為子帶ADPCM解碼器320和330提供一組的更佳狀態(tài),這需要重新運(yùn)行G.722解碼。因?yàn)樵摲椒▓?zhí)行兩次完整的解碼操作,所以在計(jì)算復(fù)雜度方面是非常浪費(fèi)的。為了解決此問題,本發(fā)明的實(shí)施例實(shí)現(xiàn)了一種較低復(fù)雜度的方法。
根據(jù)較低復(fù)雜度的方法,在第一個(gè)接收幀中接收的G.722比特流僅被部分解碼以獲得低帶量化差分信號dLt(n)。在正常G.722解碼過程中,從比特流解復(fù)用器310接收的比特由子帶ADPCM解碼器320和330轉(zhuǎn)換成差分信號dLt(n)和dH(n),這兩個(gè)信號由向后自適應(yīng)比例因子進(jìn)行縮放,并通過向后自適應(yīng)零極點(diǎn)(pole-zero)預(yù)測器來獲得子帶語音信號,這些信號然后由QMF合成濾波器組340合成來產(chǎn)生輸出語音信號。在該處理過程內(nèi)的每個(gè)采樣上,將更新子帶ADPCM解碼d器320和330中的自適應(yīng)預(yù)測器的系數(shù)(coefficient)。這個(gè)更新解決了解碼器復(fù)雜度的重要部分。由于僅需要用于時(shí)滯計(jì)算的信號,那么在較低復(fù)雜度方法中,兩極、六零預(yù)測濾波器系數(shù)仍保持不變(它們并不基于逐個(gè)采樣被更新)。另外,因?yàn)闇笫怯苫魶Q定的,而人的語音的基音基本頻率小于4kHz,所以僅能獲得低帶近似信號rL(n)。關(guān)于此方法的更多細(xì)節(jié)將在以下D節(jié)中提供。
在以下D節(jié)中描述的實(shí)施例中,兩極、六零預(yù)測濾波器的固定濾波系數(shù)是從重新解碼丟包期間的外插波形一直到最后一個(gè)丟失幀的末端來獲得。在可選的實(shí)現(xiàn)中,固定濾波系數(shù)可以是在包丟失前的最后一個(gè)接收幀的結(jié)尾使用的那些濾波器系數(shù)。在另一可選的實(shí)現(xiàn)中,可以根據(jù)語音信號的特性或者其它標(biāo)準(zhǔn),以自適應(yīng)方式來選擇這些系數(shù)組中的一個(gè)或者其它。
ii、重新定相 在重新定相過程中,調(diào)整子帶ADPCM解碼器320和330的內(nèi)部狀態(tài)來考慮外插語音波形和包丟失后的第一個(gè)接收幀關(guān)聯(lián)的解碼語音波形之間的時(shí)滯。如之前所述,在處理第一個(gè)接收幀之前,通過對在前一丟失幀期間由全帶語音信號合成器350合成的輸出語音信號進(jìn)行重新編碼來估計(jì)子帶ADPCM解碼器320和330的內(nèi)部狀態(tài)。這些解碼器的內(nèi)部狀態(tài)呈現(xiàn)出某種基音調(diào)制。因而,如果在與前一丟失幀關(guān)聯(lián)的波形外插期間使用的基音周期正好緊跟解碼語音信號的基音軌跡,那么可在最后一個(gè)丟失幀和第一個(gè)接收幀之間的邊界停止重編碼處理,而子帶ADPCM解碼器320和330的狀態(tài)與原始信號是同相的。然而,如上所述,在外插時(shí)使用的基音一般不匹配解碼語音信號的基音軌跡,且在包丟失后的第一個(gè)接收幀開始時(shí),外插語音信號和解碼語音信號是不對齊的。
為了克服此問題,重新定相使用時(shí)滯來控制在何處停止重新定相處理。在圖6的例子中,外插語音信號604和解碼語音信號602之間的時(shí)滯是負(fù)的。假設(shè)該時(shí)滯由lag表示。那么,可以看出,如果對外插語音信號重編碼超出幀邊界的-lag個(gè)采樣,那么重編碼將在外插語音信號604內(nèi)的與幀邊界上解碼語音信號602的相位一致的相位上停止。產(chǎn)生的子帶ADPCM解碼器320和330的狀態(tài)存儲器將與第一個(gè)好幀中的接收數(shù)據(jù)同相,從而提供了更好的解碼信號。因而,重新解碼子帶重構(gòu)信號的采樣數(shù)量如下 N=FS-lag (3) 其中FS是幀大小,所有參數(shù)都是以子帶采樣率(8kHz)為單位。
圖10A、圖10B和圖10C分別給出了三種重新定相的方案。在圖10A的時(shí)間線1000上,解碼語音信號1002超前于外插語音信號1004,所以重新解碼超出幀邊界-lag個(gè)采樣。在圖10B的時(shí)間線1010上,解碼語音信號102滯后于外插語音信號1014,重新解碼在幀邊界前l(fā)ag個(gè)采樣處中止。在圖10C的時(shí)間線1020上,外插語音信號1024和解碼語音號信1022在幀邊界上同相(盡管丟失幀期間的基音軌跡是不同的),且重新編碼在幀邊界上停止。注意,為了方便,在圖10A、10B和10C中,都示出了在丟失幀期間的解碼語音信號,但是應(yīng)清楚解碼器300并不能解碼原始信號的這個(gè)部分。
如果沒有執(zhí)行子帶ADPCM解碼器320和330內(nèi)部狀態(tài)的重新定相,那么可以在丟失幀的整個(gè)處理過程中執(zhí)行用于更新這些內(nèi)部狀態(tài)的重新編碼。然而,因?yàn)橐恢币桨鼇G失后的第一個(gè)接收幀才知道滯后,所以并不能在丟失幀的整個(gè)過程中執(zhí)行重新編碼。解決此問題的簡單方法是存儲用于替換前一丟失幀的整個(gè)外插波形,然后在第一個(gè)接收幀期間執(zhí)行重新編碼。然而,這需要存儲器來存儲FS+MAXOS個(gè)采樣。重新編碼的復(fù)雜度也全部落入第一個(gè)接收幀。
圖11是以重新分配對在前丟失幀的大量計(jì)算的方式執(zhí)行重新編碼的方法流程圖110。因?yàn)镸AXOS<<FS,所以從計(jì)算的負(fù)載平衡角度來看,這是合理和可行的。
如圖11所示,流程圖1100的方法開始于步驟1102,在丟失幀內(nèi)執(zhí)行重新編碼一直到幀邊界,然后存儲幀邊界上子帶ADPCM解碼器320和330的內(nèi)部狀態(tài)。另外,還要存儲重新編碼FS-MAXOS個(gè)采樣后的中間內(nèi)部狀態(tài),如步驟1104所示。在步驟1106,在存儲器中保存用于重新編碼FS-MAXOS+1到FS+MAXOS所生成的波形外插采樣。在步驟1108,在包丟失后的第一個(gè)接收幀內(nèi),使用幀邊界上存儲的內(nèi)部狀態(tài)作為初始狀態(tài)以執(zhí)行子帶近似解碼(用于確定上述的lag)。然后,在判決步驟1110,確定lag是正的還是負(fù)的。如果lag是正的,那么重新存儲在FS-MAXOS采樣上的內(nèi)部狀態(tài),并開始重新解碼MAXOS-lag采樣,如步驟1112所示。相反,如果lag是負(fù)的,那么使用幀邊界上的內(nèi)部狀態(tài),并重新編碼附加的|lag|采樣。根據(jù)本方法,在第一個(gè)接收幀中重新編碼至多MAXOS采樣。
所屬領(lǐng)域的技術(shù)人員應(yīng)知悉,可以通過在丟失幀中的重新編碼過程時(shí)沿途存儲更多的G.722狀態(tài)來減少第一個(gè)好幀中的重新編碼的量。在極端情況下,可以存儲FRAMESIZE-MAXOS和FRAMESIZE+MAXOS之間每個(gè)采樣的G.722狀態(tài),且并不需要在第一個(gè)接收幀中進(jìn)行重新編碼。
相比流程圖1100的方法,一種在第一個(gè)接收幀中需要更多的重新編碼的替代方法中,重新編碼在丟失幀期間針對FS-MAXOS個(gè)采樣而執(zhí)行。子帶ADPCM解碼器320和330的內(nèi)部狀態(tài)和剩余2*MAXOS個(gè)采樣被保存在存儲器中以便在第一個(gè)接收幀中使用。在第一個(gè)接收幀中,計(jì)算出滯后,并基于該滯后對合適量的采樣從存儲的G.722狀態(tài)開始執(zhí)行重新編碼。該方法需要存儲2*MAXOS個(gè)重構(gòu)的采樣、G.722狀態(tài)的一份副本以及第一個(gè)接收幀中的至多2*MAXOS個(gè)采樣的重新編碼。該替代方法的缺點(diǎn)是不能存儲用于上述較低復(fù)雜度解碼和時(shí)滯計(jì)算的幀邊界上的子帶ADPCM解碼器320和330的內(nèi)部狀態(tài)。
理想地說,滯后應(yīng)該與外插語音信號和第一個(gè)接收幀關(guān)聯(lián)的解碼語音信號之間的幀邊界上的相移一致。根據(jù)本發(fā)明的一個(gè)實(shí)施例,通過相對長的滯后搜索窗口來計(jì)算出粗滯后估計(jì)值,該窗口的中心并不與幀邊界一致。例如,滯后搜索窗口可以是基音周期的1.5倍。滯后搜索范圍(即相對于原始語音信號偏移外插語音信號的采樣數(shù)量)也相對比較寬(即±28個(gè)采樣)。為了改善對齊度,于是執(zhí)行滯后細(xì)化搜索。作為滯后細(xì)化搜索的一部分,移動(dòng)搜索窗口以從第一個(gè)接收幀的第一個(gè)采樣開始。這可以通過由粗滯后估計(jì)來偏置外插語音信號來完成。滯后細(xì)化搜索中的滯后搜索窗口的大小可以比較小,且滯后搜索范圍也可以比較小(即±4個(gè)采樣)。搜索方法可以與上述3.b.i節(jié)中的方法相同。
本發(fā)明在以上G.722后向自適應(yīng)預(yù)測編譯碼器的環(huán)境中已經(jīng)提出了重新定相的概念。我們可以很容易的將此概念擴(kuò)展到其它后向自適應(yīng)預(yù)測編譯碼器,如G.726。然而,重新定相的使用并不局限于后向自適應(yīng)預(yù)測編譯碼器。相反,多數(shù)基于存儲器的編碼器在狀態(tài)存儲器中表現(xiàn)出相位相關(guān)性,并因此受益于重新定相。
iii、時(shí)間扭曲 如在此使用的,術(shù)語時(shí)間扭曲指的是沿時(shí)間軸拉伸或收縮信號的處理。如在此別處討論的,為了維持連續(xù)的信號,本發(fā)明的實(shí)施例將用于代替丟失幀的外插語音信號和包丟失后第一個(gè)接收幀關(guān)聯(lián)的解碼語音信號合并以避免中斷。這是通過執(zhí)行兩個(gè)信號之間的疊加來完成的。然而,如果信號間是相互異相的,那么可能發(fā)生波形對消(cancellation),并產(chǎn)生可聽膺像,例如圖6中的疊加區(qū)域。在此區(qū)域中執(zhí)行疊加將引起解碼語音信號602的負(fù)的部分和外插語音信號604之間明顯的波形對消。
根據(jù)本發(fā)明的實(shí)施例,與包丟失后第一個(gè)接收幀關(guān)聯(lián)的解碼語音信號被執(zhí)行時(shí)間扭曲,以在第一個(gè)接收幀中的某個(gè)時(shí)間點(diǎn)上使解碼語音信號與外插語音信號相位對齊。時(shí)間扭曲的量是由時(shí)滯的值控制的。因而,在一個(gè)實(shí)施例中,如果時(shí)滯是正的,那么將拉伸與第一個(gè)接收幀關(guān)聯(lián)的解碼語音信號,并且疊加區(qū)域可以設(shè)置在第一個(gè)接收幀的開始處。然而,如果時(shí)滯是負(fù)的,解碼語音信號將被壓縮。因此,疊加區(qū)域被設(shè)置到進(jìn)入第一個(gè)接收幀|lag|個(gè)采樣。
在G.722的情況下,丟包后第一個(gè)接收幀開始的有些采樣并不是可靠的,這是因?yàn)閹_始時(shí)子帶ADPCM解碼器320和330的內(nèi)部狀態(tài)是不正確的。因此,在本發(fā)明的實(shí)施例中,根據(jù)對與第一個(gè)接收幀關(guān)聯(lián)的解碼語音信號應(yīng)用的時(shí)間扭曲,第一個(gè)接收幀內(nèi)的頭MIN_UNSTBL個(gè)采樣可不包含在疊加區(qū)域中。例如,在以下D節(jié)描述的實(shí)施例中,將MIN_UNSTBL設(shè)定為16,或者是160個(gè)采樣的10ms幀內(nèi)的第一個(gè)1ms。在該區(qū)域中,外插語音信號可用作解碼器/PLC系統(tǒng)300的輸出語音信號。這種實(shí)施例有效地解決了第一個(gè)接收幀中語音信號的重新收斂時(shí)間。
圖12A、圖12B和圖12C示出了這一概念的幾個(gè)例子。在圖12A的例子中,時(shí)間線1200示出了在第一個(gè)接收幀中解碼語音信號超前于外插信號。因此,解碼語音信號經(jīng)過了-lag個(gè)采樣的時(shí)間扭曲收縮(時(shí)滯lag是負(fù)的)。應(yīng)用了時(shí)間扭曲后的結(jié)果如時(shí)間線1210所示。如時(shí)間線1210所示,這些信號在疊加區(qū)的中心或中心附近是同相的。在這種情況下,疊加區(qū)域的中心位于MIN_UNSTBL-lag+OLA/2處,其中OLA是疊加區(qū)域中采樣的數(shù)量。在圖12B的例子中,時(shí)間線1220示出了在第一個(gè)接收幀中解碼語音信號滯后于外插信號。因此,將解碼語音信號作lag個(gè)采樣的時(shí)間扭曲拉伸來完成對齊。采用時(shí)間扭曲的結(jié)果如圖1230所示。在這種情況下,MIN_UNSTBL>lag,并且在第一個(gè)接收幀中仍存在不穩(wěn)定的區(qū)域。在圖12C的例子中,時(shí)間線1240示出了解碼信號再一次滯后于外插信號,所以解碼語音信號被時(shí)間扭曲拉伸來提供時(shí)間線1250中的結(jié)果。然而,如時(shí)間線1250所示,因?yàn)镸IN_UNSTBL≤lag,所以疊加區(qū)域可以從第一個(gè)接收幀中的第一個(gè)采樣開始。
解碼語音信號和外插信號之間的“同相點(diǎn)”需要在疊加區(qū)域的中間,疊加區(qū)域盡可能設(shè)置在靠近第一個(gè)接收幀開始的地方。這減少了必須將前一丟失幀關(guān)聯(lián)的合成語音信號外插到第一個(gè)接收幀的時(shí)間。在本發(fā)明的一個(gè)實(shí)施例中,這是通過執(zhí)行兩個(gè)階段的時(shí)滯估計(jì)來完成的。在第一階段,通過相對長的滯后搜索窗口來計(jì)算粗滯后估計(jì)值,窗口的中心可不與疊加區(qū)域的中心一致。例如,滯后搜索窗口可以是基音周期的1.5倍。滯后搜索范圍(即相對于原始語音信號偏移外插語音信號的采樣數(shù)量)也相對比較寬(即±28個(gè)采樣)。為了改善對齊度,于是執(zhí)行滯后細(xì)化搜索。作為滯后細(xì)化搜索的一部分,滯后搜索窗口與依照粗滯后估計(jì)得到的預(yù)計(jì)疊加設(shè)置同中心。這可以通過由粗滯后估計(jì)來偏置外插語音信號來完成。滯后細(xì)化搜索中的滯后搜索窗口的大小可以較小(例如疊加區(qū)域的大小),而滯后搜索范圍也可以較小(即±4個(gè)采樣)。搜索方法可以與上述3.b.i節(jié)中的方法相同。
執(zhí)行時(shí)間扭曲存在許多技術(shù),一種技術(shù)包括分段式(piece-wise)單采樣平移和疊加。圖13的流程圖1300描述了一種使用該技術(shù)進(jìn)行收縮的方法。根據(jù)該方法,如步驟1302所示,周期性降低采樣。從采樣降低的這個(gè)點(diǎn)開始,疊加原始信號和向左平移的信號(由于降低),如步驟1304所示。圖14的流程圖1400描述了一種使用該技術(shù)進(jìn)行拉伸的方法。根據(jù)該方法,周期性重復(fù)采樣,如步驟1402所示。從采樣重復(fù)的那個(gè)點(diǎn)開始,疊加原始信號和向右平移的信號(由于采樣重復(fù)),如步驟1404所示。這些操作的疊加窗口的長度取決于采樣增加/降低的周期性。為了避免太多的信號平滑,可以定義一個(gè)最大的疊加周期(即8個(gè)采樣)。發(fā)生采樣增加/降低的周期取決于各種因素,如幀大小、采樣增加/降低的數(shù)量以及是否正在執(zhí)行增加或降低。
時(shí)間扭曲的量可以被限制。例如,在以下D節(jié)描述的G.722系統(tǒng)中,可以將時(shí)間扭曲的量針對10ms的幀限制為±1.75ms(或者160個(gè)采樣的10ms幀中的28個(gè)采樣)。大于此范圍的扭曲可以消除上述的破壞性干擾,但是通常會帶來一些其它的可聽失真。因而,在這種實(shí)施例中,在時(shí)滯超出此范圍的情況下,將不執(zhí)行時(shí)間扭曲。
本發(fā)明將以下在D節(jié)中描述的系統(tǒng)設(shè)置來確保在丟包后第一個(gè)接收幀之后的零采樣延遲。為此,該系統(tǒng)不對超過第一個(gè)接收幀的解碼語音信號執(zhí)行時(shí)間扭曲。這進(jìn)而限制了在上一段中所述的沒有可聽失真發(fā)生的時(shí)間扭曲的量。然而,所屬領(lǐng)域的技術(shù)人員應(yīng)知悉,在容納某些采樣延遲(在包丟失后的第一個(gè)接收幀之后)的系統(tǒng)中,可以對超過第一個(gè)好幀的解碼語音信號應(yīng)用時(shí)間扭曲,從而能在沒有可聽失真的情況下調(diào)整到較大的時(shí)滯。當(dāng)然,在這種系統(tǒng)中,如果第一個(gè)接收幀后的幀丟失,那么時(shí)間扭曲僅可以應(yīng)用于與第一個(gè)好幀關(guān)聯(lián)的解碼語音信號。這種可選實(shí)施例也在本發(fā)明的范圍和精神之內(nèi)。
在本發(fā)明的可選實(shí)施例中,對解碼語音信號和外插語音信號都可以執(zhí)行時(shí)間扭曲。由于多種原因,這種方法可以提供更好的性能。
例如,如果時(shí)滯是-20,那么根據(jù)上述方法將解碼語音信號作20個(gè)采樣的收縮。這就是說需要產(chǎn)生外插語音信號的20個(gè)采樣以用于第一個(gè)接收幀內(nèi)。這個(gè)數(shù)量也可以通過收縮外插語音信號來減少。例如,可以將外插語音信號收縮4個(gè)采樣,留下16個(gè)采樣用于解碼語音信號。這減少了必須用于第一個(gè)接收幀內(nèi)的外插信號的采樣數(shù)量,也減少了必須在解碼語音信號上執(zhí)行的扭曲的量。如上記錄的,在D節(jié)的實(shí)施例中,時(shí)間扭曲需要限制到28個(gè)采樣。用于對齊信號所需的時(shí)間扭曲量的減少意味著在時(shí)間扭曲過程中會引入更少的失真,而且也增加了可以改善的情形的數(shù)量。
通過將解碼語音信號和外插語音信號作時(shí)間扭曲,也應(yīng)該獲得疊加區(qū)域中更好的波形匹配。解釋如下如果滯后是之前例子中的-20個(gè)采樣,這就是說解碼語音信號超前于外插信號20個(gè)采樣。這種情況最有可能的原因是用于外插的基音周期大于實(shí)際基音。通過同樣收縮外插語音信號,疊加區(qū)域中該信號的有效基音變得更小,更接近于實(shí)際基音周期。同樣,通過收縮原始信號,該信號的有效基音周期大于僅用于收縮的情況。因此,疊加區(qū)域中的兩個(gè)波形會具有更加匹配的基音周期,因而波形會更匹配。
如果滯后是正的,那么拉伸解碼語音信號。在這種情況下,雖然拉伸外插信號會增加用于第一個(gè)接收幀中的外插采樣的數(shù)量,而是否可以獲得改善卻并不清楚。然而,如果存在長期的丟包,并且兩個(gè)波形明顯異相,那么該方法可以提供改善的性能。例如,如果滯后是30個(gè)采樣,因?yàn)榇笥?8個(gè)采樣的限制,在前述的方法中并沒有執(zhí)行扭曲。30個(gè)采樣的扭曲很可能引起本身的失真。然而,如果該30個(gè)采樣分布在兩個(gè)信號之間,如拉伸外插語音信號10個(gè)采樣并拉伸解碼語音信號20個(gè)采樣,那么可以在沒使用過多時(shí)間扭曲的情況下將它們對齊。
D、G.722解碼器中的示例實(shí)現(xiàn)的細(xì)節(jié) 這部分提供了涉及本發(fā)明在ITU-T推薦G.722語音解碼器中特殊實(shí)現(xiàn)的具體細(xì)節(jié)。該示例實(shí)現(xiàn)在固有的10毫秒(ms)幀大小上執(zhí)行,也可以在任何10ms的倍數(shù)的包或幀大小上執(zhí)行。較長的輸入幀作為超幀(super frame)進(jìn)行處理,對此,PLC邏輯以其固有的10ms幀大小調(diào)用合適數(shù)量的次數(shù)。與使用相同幀大小的常規(guī)G.722解碼相比,其并不會引起附加的延遲。本發(fā)明僅通過示例的方式提供了這些實(shí)現(xiàn)細(xì)節(jié)及以下給出的內(nèi)容,并不能用來限制本發(fā)明。
本節(jié)中描述的實(shí)施例滿足與G.722附錄IV中描述的PLC算法相同的復(fù)雜度需求,但是提供了比那個(gè)附錄中描述的PLC算法明顯更好的語音質(zhì)量。由于它的高質(zhì)量,本節(jié)中描述的實(shí)施例適用于發(fā)生幀刪除或丟包的G.722的一般應(yīng)用。這種應(yīng)用包括,例如,互聯(lián)網(wǎng)協(xié)議語音技術(shù)(VoIP)、無線保真語音技術(shù)(WiFi)和下一代數(shù)字增強(qiáng)無線通信(DECT)。本節(jié)中描述的實(shí)施例易于適用,除了在執(zhí)行無PLC的基本G.722解碼器之后實(shí)際沒有留下復(fù)雜度凈空(headroom)的應(yīng)用之外。
1、縮寫和約定 表1中列出了在本節(jié)中使用的一些縮寫。
表1縮寫 本發(fā)明的描述也使用了一些約定,并將對其中一部分作出解釋。PLC算法以10ms的固有幀大小進(jìn)行運(yùn)算,因此該算法的描述僅針對10ms的幀。對于更大的包(10ms的倍數(shù)),以10ms分段對接收包進(jìn)行解碼。在16kHz采樣率級別上信號的離散時(shí)間一般使用“j”或“i”表示。在8kHz采樣級別上信號的離散時(shí)間索引一般使用“n”表示。低帶信號(0-4kHz)以下標(biāo)“L”標(biāo)識,高帶信號(4-8kHz)以下標(biāo)“H”標(biāo)識。如果可能,該描述將重新使用ITU-T G.722的規(guī)范。
以下表2中列出了最常用的符號及它們的描述。
表2常用符號及其描述 2、PLC算法的一般描述 如以上參考圖5描述的,解碼器/PLC系統(tǒng)300處理的幀有六種類型類型1、類型2、類型3、類型4、類型5和類型6。類型1的幀是任何在包丟失之后的第八個(gè)接收幀以外的接收幀。類型2的幀是與包丟失關(guān)聯(lián)的第一個(gè)和第二個(gè)丟失幀的其中之一。類型3的幀是與包丟失關(guān)聯(lián)的第三個(gè)到第六個(gè)丟失幀的其中任何一個(gè)。類型4的幀是與包丟失關(guān)聯(lián)的第六幀以外的任何丟失幀。類型5的幀是緊隨包丟失后的一個(gè)接收幀。最后,類型6的幀是緊隨包丟失后的第二個(gè)到第八個(gè)接收幀的其中任何一個(gè)。本節(jié)中描述的PLC算法是在持續(xù)時(shí)間為10ms的固定幀大小上進(jìn)行運(yùn)算的。
本發(fā)明根據(jù)標(biāo)準(zhǔn)的G.722操作來解碼類型1的幀,增加了某些狀態(tài)存儲器的維護(hù)和處理以利于PLC及相關(guān)的處理。圖15是根據(jù)本發(fā)明的實(shí)施例執(zhí)行這些操作的邏輯的模塊圖1500。具體地說,如圖15所示,在處理類型1的幀時(shí),從比特解復(fù)用器(圖15中未示出)中接收低帶ADPCM編碼器的索引(index)IL(n),并由低帶ADPCM解碼器1510解碼來產(chǎn)生子帶語音信號。類似地,從比特解復(fù)用器中接收高帶ADPCM編碼器的索引數(shù)IH(n),并由高帶ADPCM解碼器1520解碼來產(chǎn)生子帶語音信號。QMF合成濾波器組1530合成低帶語音信號和高帶語音信號來產(chǎn)生解碼輸出信號xout(j)。這些操作與標(biāo)準(zhǔn)G.722解碼是一致的。
除這些標(biāo)準(zhǔn)G.722解碼操作以外,在處理類型1的幀時(shí),邏輯模塊1540用于更新PLC相關(guān)的低帶ADPCM狀態(tài)存儲器,邏輯模塊1550用于更新PLC相關(guān)的高帶ADPCM狀態(tài)存儲器,邏輯模塊1560用于更新WB PCM PLC相關(guān)的狀態(tài)存儲器。這些狀態(tài)存儲器更新用于加快與其它幀類型相關(guān)的PLC處理。
對于類型2、類型3和類型4的幀,寬帶(WB)PCM PLC是在16kHz輸出語音域內(nèi)執(zhí)行的。圖16中提供了用于執(zhí)行WB PCM PLC的邏輯的模塊圖1600。G.722解碼器的之前的輸出語音xout(j)被緩存起來,并被傳送到WB PCMPLC邏輯。WB PCM PLC算法是基于周期性波形外插(PWE)的,基音估計(jì)是WB PCM PLC邏輯的重要組成部分。最初,基于加權(quán)語音域中的向下采樣(到2kHz)信號來估計(jì)粗基音。隨后,使用原始的16kHz采樣以全解析度細(xì)化該估計(jì)值。WB PCM PLC邏輯的輸出xPLC(i)是周期性外插波形和由PLC定形的噪聲的線性組合。對于持續(xù)的幀刪除,輸出波形xPLC(i)被逐漸減弱。減弱從幀丟失后的20ms后開始,并在幀丟失后的60ms后完成。
如圖17的模塊圖1700所示,對于類型2、類型3和類型4的幀,WB PCMPLC邏輯的輸出xPLC(i)被傳送通過G.722 QMF分析濾波器組1702以獲得相應(yīng)的子帶信號,這些子帶信號隨后被分別傳送給改進(jìn)的低帶ADPCM編碼器1704和改進(jìn)的高帶ADPCM編碼器1706以更新解碼器的狀態(tài)和存儲器。只有部分簡化的子帶ADPCM編碼器用于該更新。
圖16和圖17所示的邏輯執(zhí)行的處理發(fā)生在丟失幀期間。改進(jìn)的低帶ADPCM編碼器1704和改進(jìn)的高帶ADPCM編碼器均被簡化以減少復(fù)雜度。在本申請的其它地方將對它們作細(xì)節(jié)描述。在編碼器1704和1706中出現(xiàn)的一個(gè)特征(在常規(guī)的G.722子帶ADPCM編碼器中并不存在)是基于信號屬性和包丟失持續(xù)時(shí)間的編碼器自適應(yīng)復(fù)位。
與PLC算法關(guān)聯(lián)的最復(fù)雜的處理是對于類型5的幀的處理,類型5的幀是緊隨包丟失的第一個(gè)接收幀。在這個(gè)幀期間發(fā)生外插波形到標(biāo)準(zhǔn)解碼波形的過渡。在處理類型5的幀時(shí)使用的技術(shù)包括重新定相和時(shí)間扭曲,這些將在此作更多的細(xì)節(jié)描述。圖18提供了用于執(zhí)行這些技術(shù)的邏輯的模塊圖1800。另外,在處理類型5的幀時(shí),以在此描述了更多細(xì)節(jié)的方式來更新解碼器中的QMF合成濾波器組。與處理類型5的幀關(guān)聯(lián)的另一功能包括在包丟失后第一個(gè)接收幀開始時(shí)的低帶和高帶對數(shù)比例因子的設(shè)定。
在此都是使用改進(jìn)的和約束的子帶ADPCM解碼器來解碼類型5和類型6的幀。圖19描述了用于處理類型5和類型6的幀的邏輯的模塊圖1900。如圖19所示,邏輯1970在處理類型5和/或類型6的幀時(shí)對子帶ADPCM解碼器1910和1920施加約束和控制。子帶ADPCM解碼器的約束和控制是在包丟失后的頭80ms期間施加的。其中有些沒有擴(kuò)展到40ms以外,而其它的約束和控制在持續(xù)時(shí)間或度上是自適應(yīng)的。約束和控制機(jī)制將在本申請中作更多的細(xì)節(jié)描述。如圖19所示,邏輯模塊1940、1950和1960用于在處理類型5或類型6的幀之后更新狀態(tài)存儲器。
在無錯(cuò)信道的條件下,本節(jié)中描述的PLC算法與G.722是比特精準(zhǔn)的(bit-exact)。此外,在錯(cuò)誤條件下,該算法在包丟失后第八幀以外與G.722是相同的,如果沒有比特錯(cuò)誤,應(yīng)該能得到向G.722無錯(cuò)輸出的收斂。
本節(jié)中描述的PLC算法支持任何是10ms的倍數(shù)的幀大小。對于大于10ms的包大小,僅需針對每個(gè)包將PLC算法以10ms間隔調(diào)用多次。因此,在本節(jié)的后續(xù)部分中,將按照10ms的固定幀大小來描述PLC算法。
3、G.722輸出的波形外插 對于與包丟失相應(yīng)的丟失幀(類型2、類型3和類型4的幀),在圖16中描述的WB PCM PLC邏輯外插與前一幀關(guān)聯(lián)的G.722輸出波形來產(chǎn)生當(dāng)前幀的替換波形。然后在處理類型2、類型3和類型4的幀時(shí)將該外插寬帶信號波形xPLC(i)用作G.722PLC邏輯的輸出波形。為了方便地描述圖16中各種模塊,當(dāng)WB PCM PLC邏輯為丟失幀計(jì)算出信號xPLC(i)以后,信號xPLC(i)被寫入存儲了xout(j)的緩存,其中xout(j)是整個(gè)G.722解碼器/PLC系統(tǒng)的最終輸出?,F(xiàn)在對圖16的每個(gè)處理模塊作更多的細(xì)節(jié)描述。
a、八階LPC分析 模塊1604用于在計(jì)算出當(dāng)前幀關(guān)聯(lián)的信號xout(j)并將其存儲在緩存之后,在接近幀處理循環(huán)的結(jié)尾執(zhí)行8階LPC分析。這種8階LPC分析是一種自相關(guān)LPC分析,具有應(yīng)用到與當(dāng)前幀關(guān)聯(lián)的xout(j)信號的10ms不對稱分析窗口。這種不對稱窗口定義如下 假設(shè)xout(0)、xout(1)、...、xout(159)表示與當(dāng)前幀關(guān)聯(lián)的G.722解碼器/PLC系統(tǒng)輸出寬帶信號采樣。執(zhí)行窗口運(yùn)算如下 xw(j)=xout(j)w(j),j=0,1,2,...,159.(5) 下一步,計(jì)算自相關(guān)系數(shù)如下 然后將頻譜平滑和白噪聲糾正操作應(yīng)用到自相關(guān)系數(shù),如下 其中fs=16000是輸入信號的采樣率,σ=40。
下一步,使用列文森-杜賓(Levinson-Durbin)遞歸來將自相關(guān)系數(shù)
轉(zhuǎn)換為LPC預(yù)測器系數(shù)
i=0,1,...,8。如果列文森-杜賓遞歸在完成遞歸之前過早的退出(例如,因?yàn)轭A(yù)測誤差能量E(i)小于零),那么在當(dāng)前幀中使用與最近一幀關(guān)聯(lián)的短期預(yù)測器系數(shù)。為了解決這種方式的例外,需要
數(shù)組的初始值。
數(shù)組的初始值被設(shè)定為
和
i=1,2,...,8。列文森-杜賓遞歸算法具體規(guī)定如下
1、如果
使用最近一幀的
數(shù)組,并退出列文森-杜賓遞歸 2. 3. 4. 5.E(1)=(1-k12)E(0) 6、如果E(1)≤0,使用最近一幀的
數(shù)組,并退出列文森-杜賓遞歸 7,對于i=2,3,4,...,8,執(zhí)行如下運(yùn)算 a. b. c. d.E(i)=(1-ki2)E(i-1) e、如果E(i)≤0,使用最近一幀的
數(shù)組,并退出列文森-杜賓遞歸
如果過早退出遞歸,使用之前處理的幀的
數(shù)組。如果順利完成遞歸(正常情況下),LPC預(yù)測器系數(shù)如下 及 通過對以上獲得的系數(shù)應(yīng)用寬帶擴(kuò)展運(yùn)算,最終獲得的LPC預(yù)測器系數(shù)組如下
b、短期預(yù)測殘余信號的計(jì)算 圖16的模塊1602(標(biāo)記為“A(z)”)表示短期線性預(yù)測誤差濾波器,濾波器系數(shù)為以上計(jì)算的ai,i=0,1,...,8。模塊1602用于在執(zhí)行8階LPC分析后進(jìn)行操作。模塊1602計(jì)算短期預(yù)測殘余信號d(j)如下 傳統(tǒng)上,當(dāng)前幀的時(shí)間索引n從之前處理的幀的時(shí)間索引繼續(xù)。換言之,如果時(shí)間索引范圍0,1,2,...,159表示當(dāng)前幀,那么時(shí)間索引范圍-160,-159,...,-1就表示之前處理的幀。因而,在以上的等式中,如果索引(j-i)是負(fù)的,那么該索引指向在之前處理的幀的結(jié)尾附近的信號采樣。
c、比例因子的計(jì)算 圖16中的模塊1606用于計(jì)算與當(dāng)前幀關(guān)聯(lián)的短期預(yù)測殘余信號的平均幅度。這一操作在模塊1602以上述方式計(jì)算出短期預(yù)測殘余信號d(j)之后才執(zhí)行。平均幅度avm的計(jì)算如下 如果下一待處理的幀是丟失幀(換言之,與包丟失相應(yīng)的幀),可以使用該平均幅度作為比例因子來調(diào)整白高斯(Gaussian)噪聲序列(如果當(dāng)前幀是無聲的)。
d、加權(quán)語音信號的計(jì)算 圖16的模塊1608(標(biāo)記為“1/A(z/y)”)表示加權(quán)短期合成濾波器。模塊1608用于在以上述方式(參考模塊1602)計(jì)算出當(dāng)前幀的短期預(yù)測殘余信號d(j)之后進(jìn)行操作。這個(gè)加權(quán)短期合成濾波器的系數(shù)
(i=0,1,...,8)計(jì)算如下(其中γ1=0.75) 短期預(yù)測殘余信號d(j)通過該加權(quán)合成濾波器。相應(yīng)的輸出加權(quán)語音信號xw(j)的計(jì)算如下
e、八比一抽樣(eight-to-one decimation) 圖16的模塊1616將模塊1608輸出的加權(quán)語音信號傳送通過60階最小相位有限脈沖響應(yīng)(FIR)濾波器,然后執(zhí)行8:1抽樣來將獲得的16kHz低通濾波加權(quán)語音信號向下采樣為2kHz向下采樣的加權(quán)語音信號xwd(n)。這一抽樣操作是在計(jì)算出加權(quán)語音信號后才執(zhí)行的。為了減少復(fù)雜度,僅當(dāng)需要xwd(n)的新采樣時(shí)才執(zhí)行FIR低通濾波操作。因而,向下采樣的加權(quán)語音信號xwd(n)的計(jì)算如下
其中bi(i=0,1,2,...,59)是60階FIR低通濾波器的濾波系數(shù),如表3所示。
表360階FIR濾波器的系數(shù) f、粗基音周期提取 為了減小計(jì)算的復(fù)雜度,WB PCM PLC邏輯執(zhí)行基音提取分為兩個(gè)階段首先使用2kHz抽樣信號的時(shí)間解析度來確定粗基音周期,然后使用16kHz非抽樣信號的時(shí)間解析度來執(zhí)行基音周期細(xì)化。僅當(dāng)計(jì)算出向下采樣的加權(quán)語音信號xwd(n)之后才執(zhí)行這種基音提取。本子部分描述了圖16的模塊1620所執(zhí)行的第一階段的粗基音周期提取算法。該算法基于使用某種附加判定邏輯來最大化標(biāo)準(zhǔn)的交叉相關(guān)性。
在粗基音周期提取時(shí)可使用15ms的基音分析窗口。基音分析窗口的尾部與當(dāng)前幀的尾部對齊。在2kHz的采樣率下,15ms對應(yīng)30個(gè)采樣。在不失一般性的情況下,假設(shè)索引范圍n=0到n=29對應(yīng)于用于xwd(n)的基音分析窗口。粗基音周期提取算法通過計(jì)算以下值開始 及
以上計(jì)算針對從k=MINPPD-1到k=MAXPPD+1范圍內(nèi)的所有整數(shù)進(jìn)行,其中MINPPD=5和MAXPPD=33分別是抽樣范圍中的最小和最大基音周期。然后粗基音周期提取算法在k=MINPPD,MINPPD+1,MINPPD+2,...,MAXPPD的范圍中進(jìn)行搜索,以找到滿足c(k)>0的數(shù)組{c2(k)/E(k)}的所有局部峰值。(如果一個(gè)值相鄰的兩個(gè)值都比它小,將這個(gè)值定義為局部峰值)。假設(shè)Np表示正的局部峰值的數(shù)量。假設(shè)kp(j)(j=1,2,...,Np)為索引,其中c2(kp(j))/E(kp(j))是局部峰值且c(kp(j))>0,并假設(shè)kp(1)<kp(2)<...<kp(Np)。為了方便,c2(k)/E(k)將被稱為“標(biāo)準(zhǔn)化相關(guān)性平方(normalized correlation square)”。
如果Np=0,即如果函數(shù)c2(k)/E(k)不存在正的局部峰值,那么該算法將搜索具有最大幅值|c2(k)/E(k)|的最大的負(fù)局部峰值。如果找到這個(gè)最大的負(fù)局部峰值,那么將相應(yīng)的索引k用作輸出粗基音周期cpp,并終止模塊1620的處理。如果標(biāo)準(zhǔn)化相關(guān)性平方函數(shù)c2(k)/E(k)既沒有正局部峰值,也沒有負(fù)局部峰值,那么將輸出粗基音周期設(shè)定為cpp=MIPPD,并終止模塊1620的處理。如果Np=1,那么將輸出粗基音周期設(shè)定為cpp=kp(1),并終止模塊1620的處理。
如果存在至少兩個(gè)局部峰值(Np≥2),那么這個(gè)模塊使用算法A、B、C和D(將在下面描述),按照這個(gè)順序來確定輸出粗基音周期cpp。在這四個(gè)算法中較前的算法中計(jì)算出的變量將傳遞給后一算法繼續(xù)使用。
以下的算法A用于識別標(biāo)準(zhǔn)化相關(guān)性平方c2(kp)/E(kp)的局部峰值周圍的最大二次內(nèi)插峰值。針對c(kp)執(zhí)行二次內(nèi)插,而針對E(kp)執(zhí)行線性內(nèi)插。這種內(nèi)插是使用16kHz非抽樣語音信號的時(shí)間解析度來執(zhí)行的。在以下的算法中,D表示將xw(n)抽樣為到xwd(n)時(shí)使用的抽樣因子。因而,在此D=8。
算法A-在c2(kp)/E(kp)周圍查找最大二次內(nèi)插峰值. A、設(shè)定c2max=-1,Emax=1,jmax=0。
B、對于j=1,2,...,Np,進(jìn)行如下12個(gè)步驟 1、設(shè)定a=0.5[c(kp(j)+1)+c(kp(j)-1)]-c(kp(j)) 2、設(shè)定b=0.5[c(kp(j)+1)+c(kp(j)-1)] 3、設(shè)定ji=0 4、設(shè)定ei=E(kp(j)) 5、設(shè)定c2m=c2(kp(j)) 6、設(shè)定Em=E(kp(j)) 7、如果c2(kp(j)+1)E(kp(j)-1)>c2(kp(j)-1)E(kp(j)+1),進(jìn)行步驟7的余下部分 a、Δ=[E(kp(j)+1)-ei]/D b、對于k=1,2,...,D/2,進(jìn)行步驟7的以下部分 i.ci=a(k/D)2+b(k/D)+c(kp(j)) ii.ei←ei+Δ iii.如果(ci)2Em>(c2m)ei,進(jìn)行下面三行 a.ji=k b.c2m=(ci)2 c.Em=ei 8、如果c2(kp(j)+1)E(kp(j)-1)≤c2(kp(j)-1)E(kp(j)+1),進(jìn)行步驟8的余下部分 a、Δ=[E(kp(j)-1)-ei]/D b、對于k=-1,-2,...,-D/2,進(jìn)行步驟8的以下部分 i.ci=a(k/D)2+b(k/D)+c(kp(j)) ii.ei←ei+Δ iii.如果(ci)2Em>(c2m)ei,進(jìn)行下面三行 a.ji=k b.c2m=(ci)2 c.Em=ei 9、設(shè)定lag(j)=kp(j)+ji/D 10、設(shè)定c2i(j)=c2m 11、設(shè)定Ei(j)=Em 12、如果c2m×Emax>c2max×Em,進(jìn)行以下三行 a.jmax=j(luò) b.c2max=c2m c.Emax=Em
符號←表示使用右側(cè)的值更新左側(cè)的參數(shù)。
為了避免選擇大約是實(shí)際粗基音周期的整數(shù)倍的粗基音周期,對與c2(kp)/E(kp)的局部峰值相對應(yīng)的各時(shí)滯進(jìn)行搜索,以確定是否有時(shí)滯足夠接近之前處理的幀的輸出粗基音周期(表示為cpplast,對于每個(gè)第一幀,cpplast被初始化為12)。如果有時(shí)滯位于cpplast的25%以內(nèi),那么就認(rèn)為足夠接近了。對于所有在cpplast的25%以內(nèi)的時(shí)滯,將相應(yīng)的標(biāo)準(zhǔn)化相關(guān)性平方c2(kp)/E(kp)的二次內(nèi)插峰值進(jìn)行比較,并選擇其中對應(yīng)于最大標(biāo)準(zhǔn)化相關(guān)性平方的內(nèi)插時(shí)滯用于后續(xù)處理。以下的算法B執(zhí)行了上述的任務(wù)。在該算法中使用了在上述算法A中計(jì)算出的內(nèi)插數(shù)組c2i(j)和Ei(j)。
算法B-在所有接近最近一幀的輸出粗基音周期的時(shí)滯之中查找最大化內(nèi)插c2(kp)/E(kp)的時(shí)滯 A、設(shè)定索引im=-1 B、設(shè)定c2m=-1 C、設(shè)定Em=1 D、對于j=1,2,...Np,進(jìn)行如下運(yùn)算 1.如果|kp(j)-cpplast|≤0.25×cpplast,進(jìn)行如下 a.如果c2i(j)×Em>c2m×Ei(j),進(jìn)行如下三行 i.im=j(luò) ii.c2m=c2i(j) iii.Em=Ei(j)
注意,如果沒有位于cpplast的25%以內(nèi)的時(shí)滯kp(j),那么索引im的值將在執(zhí)行算法B后保持為-1。如果存在一個(gè)或多個(gè)位于cpplast的25%以內(nèi)的時(shí)滯,那么索引im在這些時(shí)滯中對應(yīng)于最大標(biāo)準(zhǔn)化相關(guān)性平方。
接下來,算法C確定是否在基音范圍的前半周選擇另一個(gè)時(shí)滯作為輸出粗基音周期。該算法搜索小于16個(gè)的所有內(nèi)插時(shí)滯lag(j),并檢查它們中是否有接近其每個(gè)整數(shù)倍(一直到32,包括其本身)的足夠大的標(biāo)準(zhǔn)化相關(guān)性平方的局部峰值。如果存在滿足這個(gè)條件的一個(gè)或多個(gè)時(shí)滯,那么選擇這些滿足條件的時(shí)滯中最小的一個(gè)時(shí)滯作為輸出粗基音周期。
此外,在以上算法A和算法B中計(jì)算出的各個(gè)變量也傳遞其最終值給以下的算法C。如下所述,參數(shù)MPDTH為0.06,給出閾數(shù)組MPTH(k)為MPTH(2)=0.7,MPTH(3)=0.55,MPTH(4)=0.48,MPTH(5)=0.37,MPTH(k)=0.30,k>5。
算法C-檢查是否應(yīng)該選擇粗基音周期范圍內(nèi)的前半周中的另一個(gè)時(shí)滯作為輸出粗基音周期 A、對于j=1,2,3,...,Np,當(dāng)lag(j)<16時(shí),按該順序進(jìn)行如下操作 1、如果j≠im,設(shè)定threshold=0.73;否則,設(shè)定threshold=0.4。
2、如果c2i(j)×Emax≤threshold×c2max×Ei(j),取消這個(gè)j,并跳過對應(yīng)這個(gè)j的步驟(3),將j增1并返回步驟(1)。
3、如果c2i(j)×Emax>threshold×c2max×Ei(j),進(jìn)行如下操作 a、對于k=2,3,4,...,當(dāng)k×lag(j)<32時(shí),進(jìn)行如下 i、s=k×lag(j) ii、a=(1-MPDTH)s iii、b=(1+MPDTH)s iv、按照順序經(jīng)過m=j(luò)+1,j+2,j+3,...,Np,看是否有時(shí)滯lag(m)位于a和b之間。如果沒有時(shí)滯處于a和b之間,跳過這個(gè)j,停止步驟3,將j增1并返回步驟1。如果存在滿足a<lag(m)<b且c2i(m)×Emax>MPTH(k)×c2max×Ei(m)的至少一個(gè)m,那么認(rèn)為在lag(j)的第k個(gè)整數(shù)倍的附近找到了標(biāo)準(zhǔn)化相關(guān)性平方的足夠大的峰值;在這種情況下,停止步驟3.a.iv,將k增1并返回步驟3.a.i。b、如果是在沒有過早停止的情況下完成步驟3.a的,也就是,如果在小于32的lag(j)的每個(gè)整數(shù)倍的±100xMPDTH%中存在標(biāo)準(zhǔn)化相關(guān)性平方的足夠大的內(nèi)插峰值,那么停止該算法,跳過算法D并將cpp=lag(j)作為最終的輸出粗基音周期。
如果執(zhí)行完以上的算法C而沒有找到滿足條件的輸出粗基音周期cpp,算法D將檢查最近一幀的粗基音周期周圍的標(biāo)準(zhǔn)化相關(guān)性平方的最大局部峰值(在以上的算法B中得到),并最終確定輸出粗基音周期cpp。同樣,在以上算法A和算法B中計(jì)算出的變量將其最終值傳遞給以下的算法D。如下所述,參數(shù)為SMDTH=0.095,LPTHI=0.78。
算法D-輸出粗基音周期的最終確定 A、如果im=-1,即如果在最近一幀的粗基音周期周圍沒有足夠大的標(biāo)準(zhǔn)化相關(guān)性平方的局部峰值,那么將在算法A最后計(jì)算出的cpp作為最終的輸出粗基音周期,并退出該算法。
B、如果im=j(luò)max,即如果在最近一幀的粗基音周期周圍的標(biāo)準(zhǔn)化相關(guān)性平方的最大局部峰值也是該幀中標(biāo)準(zhǔn)化相關(guān)性平方的所有內(nèi)插峰值中的全局最大值,那么將在算法A最后計(jì)算出的cpp作為最終的輸出粗基音周期,并退出該算法。
C、如果im<jmax,進(jìn)行如下部分 1、如果c2m×Emax>0.43×c2max×Em,進(jìn)行步驟C的以下部分 a、如果lag(im)>MAXPPD/2,設(shè)定輸出cpp=lag(im),并退出該算法。
b、否則,對于k=2,3,4,5,進(jìn)行以下部分 i、s=lag(jmax)/k ii、a=(1-SMDTH)s iii、b=(1+SMDTH)s iv、如果lag(im)>a且lag(im)>b,設(shè)定輸出cpp=lag(im),并退出該算法。
D、如果im>jmax,進(jìn)行以下部分 1、如果c2m×Emax>LPTH1×c2max×Em,設(shè)定輸出cpp=lag(im),并退出該算法。
E、如果算法執(zhí)行到此,那么上述步驟都不沒有選擇出最終的輸出粗基音周期。在這種情況下,僅接受在算法A的結(jié)尾計(jì)算出的cpp作為最終的輸出粗基音周期。
g、基音周期細(xì)化 圖16中的模塊1622用于通過使用G.722解碼輸出語音信號以完整的16kHz時(shí)間解析度搜索粗基音周期的附近區(qū)域來執(zhí)行基音周期提取算法的第二階段處理。該模塊首先通過用抽樣因子D乘以粗基音周期cpp來將粗基音周期cpp轉(zhuǎn)換到非抽樣信號域,其中D=8?;艏?xì)化分析窗口大小WSZ選定為cpp×D個(gè)采樣和160個(gè)采樣(對應(yīng)10ms)中較小的一個(gè)窗口大小WSZ=min(cpp×D,160)。
接下來,計(jì)算搜索范圍的下邊界為lb=max(MINPP,cpp×D-4),其中MINPP=40個(gè)采樣是最小基音周期。計(jì)算搜索范圍的上邊界為ub=max(MAXPP,cpp×D+4),其中MAXPP=265個(gè)采樣是最大基音周期。
模塊1622維持了總共是XQOFF=MAXPP+1+FRSZ個(gè)采樣的16kHz G.722解碼語音信號xout(j)的緩存,其中FRSZ=160是幀大小。這個(gè)緩存的最后FRSZ個(gè)采樣包含當(dāng)前幀的G.722解碼語音信號。前MAXPP+1個(gè)采樣是當(dāng)前幀之前被處理的上一幀中的G.722解碼器/PLC系統(tǒng)輸出信號。分析窗口的最后一個(gè)采樣與當(dāng)前幀的最后一個(gè)采樣對齊。設(shè)從j=0到j(luò)=WSZ-1的索引范圍對應(yīng)于該分析窗口(該窗口是xout(j)緩存中的最后WSZ個(gè)采樣),并且設(shè)負(fù)索引表示分析窗口之前的采樣。在搜索范圍[lb,ub]內(nèi)針對時(shí)滯k計(jì)算非抽樣信號域中的以下相關(guān)性函數(shù)和能量項(xiàng)(energy term)如下 然后將最大化比率
的時(shí)滯k∈[lb,ub]選定為幀刪除的最終細(xì)化基音周期,或ppfe。即 接下來,模塊1622還計(jì)算了兩個(gè)更加與基音相關(guān)的比例因子。第一個(gè)被稱為ptfe或幀刪除的基音抽頭,其是用于周期性波形外插的比例因子,并被計(jì)算為分析窗口中xout(j)信號的平均幅度和ppfe個(gè)采樣之前的xout(j)信號部分的平均幅度的比,具有與這兩個(gè)信號部分之間的相關(guān)性函數(shù)相同的符號,如下 在的退化情況下,將ptfe設(shè)定為0。當(dāng)ptfe的這種計(jì)算完成之后,ptfe值的邊界范圍為[-1,1]。
第二個(gè)與基音相關(guān)的比例因子被稱為ppt或基音預(yù)測抽頭,用于計(jì)算長期濾波呼叫信號(后面將對此進(jìn)行敘述),其被計(jì)算為ppt=0.75×ptfe。
h、計(jì)算混合比(Mixing Ratio) 圖16中的模塊1618計(jì)算優(yōu)值系數(shù)(figure of merit)來確定丟失幀期間的周期性外插波形和經(jīng)濾波噪聲波形之間的混合比。這一計(jì)算僅在每次發(fā)生包丟失時(shí)的第一個(gè)丟失幀期間執(zhí)行。優(yōu)值系數(shù)是三個(gè)信號特性的加權(quán)和對數(shù)增益、第一標(biāo)準(zhǔn)化自相關(guān)和基音預(yù)測增益,它們每個(gè)的計(jì)算如下。
使用與之前的子節(jié)描述中相同的用于xout(j)的索引約定,基音細(xì)化分析窗口中的xout(j)信號的能量為 且以2為底的對數(shù)增益lg的計(jì)算如下
如果基音預(yù)測余能的計(jì)算如下 而基音預(yù)測增益pg的計(jì)算如下
如果設(shè)定pg=0。如果sige=0,同樣設(shè)定pg=0。
第一標(biāo)準(zhǔn)化自相關(guān)ρ1的計(jì)算如下
當(dāng)獲得這三個(gè)信號特性之后,優(yōu)值系數(shù)的計(jì)算如下 merit=1g+pg+12ρ1. (28) 以上計(jì)算出的merit確定了兩個(gè)比例因子Gp和Gr,這兩個(gè)比例因子有效地確定了周期性外插波形和經(jīng)濾波噪聲波形之間的混合比。這里有兩個(gè)用于merit的閾值優(yōu)值高閾值MHI和優(yōu)值低閾值MLO。這些閾值被設(shè)定為MHI=28和MLO=20。隨機(jī)(濾波噪聲)成分的比例因子Gr的計(jì)算如下 而周期性成分的比例因子Gp的計(jì)算如下 Gp=1-Gr(30) i、周期性波形外插 圖16中的模塊1624用于在丟失幀期間周期性地外插前一輸出語音波形(如果merit>MLO)。現(xiàn)在將對模塊1624執(zhí)行該功能的方式進(jìn)行描述。
對于每次包丟失的第一個(gè)丟失幀,計(jì)算出每幀的平均基音周期增量。基音周期歷史緩存pph(m)(m=1,2,...,5)保存了前5幀的基音周期ppfe。平均基音周期增量是按照以下過程獲得的。以即時(shí)的最近一幀開始,計(jì)算從其前一幀到該幀的基音周期增量(負(fù)值表示基音周期減量)。如果基音周期增量為零,該算法會檢查前一幀的基音周期增量。該處理過程持續(xù)直到檢測到第一個(gè)具有非零基音周期增量的幀為止,或者直到檢測到第四個(gè)先前幀為止。如果所有在前的五幀具有相同的基音周期,那么將平均基音周期增量設(shè)為零。否則,如果在第m個(gè)先前幀發(fā)現(xiàn)第一個(gè)非零基音周期增量,并且如果該基音周期增量的幅度小于在該幀上的基音周期的5%,則平均基音周期增量ppinc計(jì)算為該幀上的基音周期增量除以m,并且將結(jié)果值限制在[-1,2]的范圍內(nèi)。
在包丟失的第二個(gè)連續(xù)丟失幀中,將平均基音周期增量與基音周期ppfe相加,并將結(jié)果數(shù)四舍五入成最接近的整數(shù),然后將其限制到[MIPP,MAXPP]的范圍內(nèi)。
如果當(dāng)前幀是包丟失的第一個(gè)丟失幀,那么計(jì)算出在疊加中使用的所謂的“呼叫信號”,以保證在幀起始時(shí)的平滑波形過渡。呼叫信號和周期性外插波形的疊加長度是第一個(gè)丟失幀的20個(gè)采樣。假設(shè)j=0,1,2,...,19的索引范圍對應(yīng)當(dāng)前第一個(gè)丟失幀的頭20個(gè)采樣,即為疊加周期,并且假設(shè)負(fù)索引對應(yīng)先前的幀。便可獲得長期呼叫信號為短期預(yù)測殘余信號(其比疊加周期早一個(gè)基音周期)的縮放版本 在計(jì)算出ltring(j)的這些20個(gè)采樣之后,用模塊622計(jì)算出的比例因子ppt進(jìn)一步對它們進(jìn)行調(diào)整 ltring(j)←ppt·ltring(j),j=0,1,2,...,19. (32) 使用在最近一幀中被初始化為xout(j)信號的最后8個(gè)采樣的濾波存儲器ring(j)(j=-8,-7,...,-1),獲得的最終呼叫信號如下 假設(shè)j=0,1,2,...,159的索引范圍對應(yīng)于當(dāng)前第一個(gè)丟失幀,而j=160,161,162,...,209的索引范圍對應(yīng)于下一幀的頭50個(gè)采樣。此外,假設(shè)wi(j)和wo(j)(j=0,1,...,19)分別是三角形淡入和淡出窗口,所以wi(j)+wo(j)=1。那么,周期性波形外插是分以下兩個(gè)步驟執(zhí)行的 步驟1 xout(j)=wi(j)·ptfe·xout(n-ppfe)+wo(j)·ring(j),j=0,1,2,...,19.(34) 步驟2 xout(j)=ptfe·xout(j-ppfe),j=20,21,22,...,209. (35) j、標(biāo)準(zhǔn)化噪聲生成器 如果merit<MHI,圖16中的模塊1610會產(chǎn)生具有單一平均幅度的白高斯隨機(jī)噪聲序列。為了降低計(jì)算復(fù)雜度,預(yù)先計(jì)算白高斯隨機(jī)噪聲并存儲在表中。為了避免使用過長的表并避免由于過短的表而重復(fù)相同的噪聲模式,本發(fā)明將使用一種特殊的索引方案。在該方案中,白高斯噪聲表wn(j)具有127個(gè)條目,噪聲生成器模塊的輸出的調(diào)整版本為 wgn(j)=avm×wn(mod(cfecount×j,127)),j=0,1,2,...,209, (36) 其中cfecount是幀計(jì)數(shù)器,對于當(dāng)前包丟失中的第k個(gè)連續(xù)丟失幀,cfecount=k,
是模運(yùn)算。
k、噪聲序列的濾波 圖16中的模塊1614表示短期合成濾波器。如果merit<MHI,模塊1614對經(jīng)調(diào)整的白高斯噪聲進(jìn)行濾波以對其給出與最近一幀內(nèi)的xout(j)信號的頻譜包絡(luò)相同的頻譜包絡(luò)。獲得的經(jīng)濾波噪聲fn(j)如下 1、周期性和隨機(jī)成分的混合 如果merit>MHI,那么只有模塊1624計(jì)算出的周期性外插波形xout(j)用作WB PCM PLC邏輯的輸出。如果merit<MLO,只有模塊1614產(chǎn)生的經(jīng)濾波噪聲信號fn(j)用作WB PCM PLC邏輯的輸出。如果MLO≤merit≤MHI,那么將兩個(gè)成分混合為 xout(j)←Gp·xout(j)+Gr·fn(j),j=0,1,2,...,209. (38) 外插的xout(j)信號(j=160,161,162,...,199)的前40個(gè)額外采樣將變?yōu)橄乱粠暮艚行盘杛ing(j),j=0,1,2,...,39。如果下一幀還是丟失幀,那么只有該呼叫信號的前20個(gè)采樣用于疊加。如果下一幀是接收幀,那么該呼叫信號的所有40個(gè)采樣都將用于疊加。
m、有條件的斜降(conditional ramp down) 如果包丟失持續(xù)20ms或更短,那么通過混合周期性和隨機(jī)成分而產(chǎn)生的xout(j)信號將用作WB PCM PLC輸出信號。如果包丟失持續(xù)大于60ms,那么WB PCM PLC輸出信號被完全消聲。如果包丟失持續(xù)大于20ms但小于60ms,那么通過混合周期性和隨機(jī)成分而產(chǎn)生的xout(j)信號將產(chǎn)生線性斜降(以線性方式衰減到零)。如以下特定的算法中規(guī)定的,這個(gè)有條件的斜降是在cfecount>2時(shí)的丟失幀期間執(zhí)行的。在此給出了以Q15形式的數(shù)組gawd()為{-52,-69,-104,-207}。同樣,j=0,1,2,...,159的索引范圍對應(yīng)于xout(j)的當(dāng)前幀。
有條件的斜降算法 A、如果cfecount≤6,進(jìn)行以下9行 1、delta=gawd(cfecount-3) 2、gaw=1 3、對于j=0,1,2,...,159,進(jìn)行以下兩行 a.xout(j)=gaw·xout(j) b.gaw=gaw+delta 4、如果cfecount<6,進(jìn)行以下三行 a、對于j=160,161,162,...,209,進(jìn)行以下兩行 i.xout(j)=gaw·xout(j) ii.gaw=gaw+delta B、否則(如果cfecount>6),設(shè)定xout(j)=0,j=0,1,2,...,209。
n、第一個(gè)接收幀中的疊加 對于類型5的幀,將來自G.722解碼器的輸出xout(j)與來自最后一個(gè)丟失幀的呼叫信號ring(j)(由模塊1624以如上描述的方式計(jì)算出)進(jìn)行疊加 xout(j)=wi(j)·xout(j)+wo(j)·ring(j) j=0...LOLA-1, (39) 其中 4、PLC輸出的重新編碼 為了在丟失幀期間(類型2、類型3和類型4的幀)更新G.722ADPCM解碼器的存儲器和參數(shù),PLC輸出本質(zhì)上要經(jīng)過G.722編碼器。圖17是用于執(zhí)行該重新編碼處理的邏輯的模塊圖1700。如圖17所示,PLC輸出xout(j)通過QMF分析濾波器組1702以產(chǎn)生低帶子帶信號xL(n)和高帶子帶信號xH(n)。低帶子帶信號xL(n)由低帶ADPCM編碼器1704進(jìn)行編碼,高帶子帶信號xH(n)由高帶ADPCM編碼器1706進(jìn)行編碼。為了降低復(fù)雜度,與傳統(tǒng)的ADPCM子帶編碼器相比,本發(fā)明將ADPCM子帶編碼器1704和1706進(jìn)行簡化?,F(xiàn)在對前述的操作進(jìn)行更多的細(xì)節(jié)描述。
a、傳送PLC輸出經(jīng)過QMF分析濾波器組 QMF分析濾波器組1702的存儲器被初始化來提供與解碼子帶信號連續(xù)的子帶信號。WB PCM PLC輸出的最初22個(gè)采樣構(gòu)成了濾波存儲器,子帶信號根據(jù)如下等式計(jì)算得到 其中xPLC(0)對應(yīng)當(dāng)前幀的16kHz WB PCM PLC輸出的第一個(gè)采樣,xL(n=0)和xH(n=0)分別對應(yīng)當(dāng)前幀的8kHz低帶和高帶子帶信號的第一個(gè)采樣。除了偏移額外的22個(gè)采樣外,所述濾波與G.722編碼器的傳送QMF是相同的,并且WB PCM PLC輸出(與輸入相對)被傳送到濾波器組。此外,為了產(chǎn)生子帶信號的完整幀(80個(gè)采樣~10ms),WB PCM PLC需要在當(dāng)前幀之外擴(kuò)展22個(gè)采樣,并產(chǎn)生182個(gè)采樣~11.375ms。子帶信號xL(n)(n=0,1,...,79)和xH(n)(n=0,1,...,79)分別是根據(jù)等式41和42產(chǎn)生的。
b、低帶信號的重新編碼 低帶信號xL(n)是使用簡化的低帶ADPCM編碼器來進(jìn)行編碼的。簡化的低帶ADPCM編碼器2000的模塊圖如圖20所示。在圖20中可以看到,刪除了標(biāo)準(zhǔn)的低帶ADPCM編碼器的反向量化器,且用非量化預(yù)測誤差代替了量化預(yù)測誤差。此外,因?yàn)樽赃m應(yīng)量化器的更新僅基于由6比特低帶編碼器索引IL(n)表示的64元素集合中的8元素子集進(jìn)行,所以預(yù)測誤差僅被量化為8元素集。這提供了自適應(yīng)量化器的相同更新,也簡化了量化。表4列出了基于eL(n)的絕對值的8級簡化量化器的判定級別、輸出代碼和乘數(shù)。
表48級簡化量化器的判定級別、輸出代碼和乘數(shù) 圖20的實(shí)體是根據(jù)它們的G.722低帶ADPCM子帶編碼器的等效形式來計(jì)算的 sL(n)=sLp(n)+sLz(n),(45) eL(n)=xL(n)-sL(n),及(46) pLt(n)=sLz(n)+eL(n). (47) 自適應(yīng)量化器準(zhǔn)確地根據(jù)G.722編碼器的規(guī)定進(jìn)行更新。零和極點(diǎn)部分的自適應(yīng)與在G.722編碼器中一樣發(fā)生,如G.722規(guī)范的條款3.6.3和3.6.4中所描述的。
低帶ADPCM解碼器1910在幀丟失的60ms后自動(dòng)復(fù)位,但是其可以在幀丟失期間早30ms進(jìn)行自適應(yīng)復(fù)位。在低帶信號的重新編碼過程中,對部分重構(gòu)信號pLt(n)的屬性進(jìn)行監(jiān)控,并控制低帶ADPCM解碼器1910的自適應(yīng)復(fù)位。pLt(n)信號在整個(gè)丟失過程中被監(jiān)控,因此其在第一個(gè)丟失幀時(shí)被設(shè)為零 對于丟失幀,在每幀的基礎(chǔ)上監(jiān)控與恒定信號對比的pLt(n)的屬性,因此在每個(gè)丟失幀的起初將屬性(cnst[])設(shè)為零。其被更新為 如果滿足以下條件,在丟失幀3到5的結(jié)尾復(fù)位子帶解碼器 或cnst[pLt(n)]>40, (50) 其中Nlost是丟失幀的數(shù)量,即3、4或5。
c、高帶信號的重新編碼 高帶信號xH(n)是使用簡化的高帶ADPCM編碼器來進(jìn)行編碼的。簡化的高帶ADPCM編碼器2100的模塊圖如圖21所示。在圖21中可以看到,標(biāo)準(zhǔn)高帶ADPCM編碼器的自適應(yīng)量化器已經(jīng)被刪除,因?yàn)樵撍惴ㄊ褂脕G包前的移動(dòng)平均值重寫第一個(gè)接收幀上的對數(shù)比例因子,因而并不需要高帶重編碼的對數(shù)比例因子。高帶ADPCM編碼器2100的量化預(yù)測誤差被非量化預(yù)測誤差替代了。
圖21的實(shí)體是根據(jù)它們的G.722高帶ADPCM子帶編碼器的等效形式來計(jì)算的 sH(n)=sHp(n)+sHz(n), (53) eH(n)=xH(n)-sH(n), (54) 及 pH(n)=sHz(n)+eH(n). (55) 零和極點(diǎn)部分的自適應(yīng)與在G.722編碼器中一樣發(fā)生,如G.722規(guī)范的條款3.6.3和3.6.4中所描述的。
與低帶重新編碼類似,高帶ADPCM解碼器1920在幀丟失的60ms后自動(dòng)復(fù)位,但是其可以在幀丟失期間早30ms進(jìn)行自適應(yīng)復(fù)位。在高帶信號的重新編碼過程中,對部分重構(gòu)信號pH(n)的屬性進(jìn)行監(jiān)控,并控制高帶ADPCM解碼器1910的自適應(yīng)復(fù)位。pH(n)信號在整個(gè)丟失過程中被監(jiān)控,因此其在第一個(gè)丟失幀時(shí)被設(shè)為零 對于丟失幀,在每幀基礎(chǔ)上監(jiān)控與恒定信號對比的pH(n)的屬性,因此在每個(gè)丟失幀的開始將屬性(cnst[])設(shè)為零。其被更新為 如果滿足以下條件,在丟失幀3到5的結(jié)尾復(fù)位子帶解碼器 或cnst[pH(n)]>40.(58) 5、監(jiān)控信號特性及其PLC的使用 以下描述了圖19的約束和控制邏輯1970的功能,用于減少從丟失幀到接收幀的過渡上的贗像和失真,從而提高丟包后解碼器/PLC系統(tǒng)300的性能。
a、低帶對數(shù)比例因子 在接收幀期間更新低帶對數(shù)比例因子
的特性,并在幀丟失后的第一個(gè)接收幀上使用這些特性來自適應(yīng)地設(shè)定針對比例因子的自適應(yīng)量化器的狀態(tài)。因而得到一種低帶對數(shù)比例因子平穩(wěn)性的度量(measure),用于確定狀態(tài)的正確復(fù)位。
i、低帶對數(shù)比例因子的平穩(wěn)性 在接收幀期間計(jì)算和更新低帶對數(shù)比例因子
的平穩(wěn)性,這是基于具恒定泄漏(leakage)的
的一階移動(dòng)平均值
的 一階移動(dòng)平均值的追蹤
的度量計(jì)算如下 具有自適應(yīng)泄漏的二階移動(dòng)平均值
根據(jù)如下等式61計(jì)算 低帶對數(shù)比例因子的平穩(wěn)性根據(jù)如下等式被衡量為變化度 在丟失幀期間沒有更新,換言之 (63) ii、低帶自適應(yīng)量化器的對數(shù)比例因子的復(fù)位 在幀丟失后的第一個(gè)接收幀處,根據(jù)幀丟失前的平穩(wěn)性自適應(yīng)地復(fù)位(重寫)低帶對數(shù)比例因子 b、高帶對數(shù)比例因子 在接收幀期間更新高帶對數(shù)比例因子
的特性,并在幀丟失后的接收幀上使用這些特性來設(shè)定自適應(yīng)量化比例因子的狀態(tài)。此外,所述特性自適應(yīng)地控制幀丟失后高帶對數(shù)比例因子的收斂。
i、高帶對數(shù)比例因子的移動(dòng)平均值和平穩(wěn)性 根據(jù)下式計(jì)算
的追蹤
基于追蹤,計(jì)算具有自適應(yīng)泄漏的移動(dòng)平均值如下 該移動(dòng)平均值用于在第一個(gè)接收幀上復(fù)位高帶對數(shù)比例因子,這將在稍后的子節(jié)中進(jìn)行描述。
從平均值中計(jì)算高帶對數(shù)比例因子的平穩(wěn)性的度如下 該平穩(wěn)性的度量用于控制幀丟失后
的重收斂,這將在稍后的子節(jié)中進(jìn)行描述。
在丟失幀期間沒有更新,換言之 ii、高帶自適應(yīng)量化器的對數(shù)比例因子的復(fù)位 在第一個(gè)接收幀上將高帶對數(shù)比例因子復(fù)位為丟包前的接收幀的移動(dòng)平均值 iii、高帶自適應(yīng)量化器的對數(shù)比例因子的收斂 幀丟失后的高帶對數(shù)比例因子的收斂是由丟幀前的平穩(wěn)性的度量
來控制的。對于平穩(wěn)的情況,在丟包后對
應(yīng)用自適應(yīng)低通濾波器。該低通濾波器應(yīng)用到0ms、40ms或80ms上,在此期間低通濾波的程度逐漸減少。采樣的持續(xù)時(shí)間
根據(jù)如下來確定 低通濾波如下給出 其中系數(shù)按如下給出 因此,低通濾波逐個(gè)采樣的減少了時(shí)間n。經(jīng)低通濾波的對數(shù)比例因子在
采樣期間簡單地替換常規(guī)的對數(shù)比例因子。
c、低帶極點(diǎn)部分 在接收幀期間為子帶ADPCM解碼器更新稱之為(極點(diǎn)部分的)穩(wěn)定性裕度的實(shí)體(entity),以用于約束幀丟失后的極點(diǎn)部分。
i、低帶極點(diǎn)部分的穩(wěn)定性裕度 低帶極點(diǎn)部分的穩(wěn)定性裕度被定義為 βL(n)=1-|aL,1(n)|-aL,2(n), (73) 其中aL,1(n)和aL,2(n)是兩個(gè)極點(diǎn)系數(shù)。接收幀期間的穩(wěn)定性裕度的移動(dòng)平均值根據(jù)下式進(jìn)行更新 βL,MA(n)=15/16·βL,MA(n-1)+1/16·βL(n) (74) 在丟失幀期間,不更新移動(dòng)平均值 βL,MA(n)=βL,MA(n-1). (75) ii、低帶極點(diǎn)部分的約束 在常規(guī)G.722低帶(和高帶)ADPCM編碼和解碼中,要維持βL,min=1/16的最小穩(wěn)定性裕度。在幀丟失后的最初40ms內(nèi),為低帶ADPCM解碼器維持增加的最小穩(wěn)定性裕度,其是幀丟失以來的時(shí)間及穩(wěn)定性裕度的移動(dòng)平均值的函數(shù)。
對于最初的三個(gè)10ms幀,最小穩(wěn)定性裕度 βL,min=min{3/16,βL,MA(n-1)} (76) 設(shè)置在幀邊界上并在整個(gè)幀上執(zhí)行該最小穩(wěn)定裕度。在進(jìn)入到第四個(gè)10ms幀的幀邊界上,執(zhí)行最小穩(wěn)定性裕度 而對其它幀執(zhí)行βL,min=1/16的常規(guī)最小穩(wěn)定性裕度。
d、高帶部分重構(gòu)信號和高帶重構(gòu)信號 在所有幀期間,包括丟失幀和接收幀,保存持高帶部分重構(gòu)信號pH(n)和高帶重構(gòu)信號rH(n)的高通濾波版本 pH,HP(n)=0.97[pH(n)-pH(n-1)+pH,HP(n-1)],及 (78)
這對應(yīng)約40Hz的3dB截?cái)啵饕侨コ鼶C。
在幀丟失后的最初40ms內(nèi),常規(guī)的部分重構(gòu)信號和常規(guī)的重構(gòu)信號被它們各自的高通濾波版本所代替,這分別是為了高帶極點(diǎn)部分自適應(yīng)和高帶重構(gòu)輸出。
6、時(shí)滯計(jì)算 在此討論的重新定相和時(shí)間扭曲技術(shù)需要有丟幀隱藏波形xPLC(j)和第一個(gè)接收幀中的信號未對齊的采樣數(shù)量。
a、低子帶重構(gòu)信號的低復(fù)雜度估計(jì) 在第一個(gè)接收幀內(nèi)用于計(jì)算時(shí)滯的信號是通過使用極零濾波系數(shù)(aLpwe,i(159),bLpwe,i(159))和從STATE159獲得的其它的必要狀態(tài)信息對低子帶截?cái)嗖罘中盘杁Lt(n)進(jìn)行濾波來獲得的 n=0,1,...,79.(80) 這一功能由圖18的模塊1820來執(zhí)行。
b、重新定相和時(shí)間扭曲需求的確定 如果最后一個(gè)接收幀是無聲的,如優(yōu)值系數(shù)所表示的,時(shí)滯TL被設(shè)定為 如果merit≤MLO,TL=0. (81) 另外,如果第一個(gè)接收幀是無聲的,如標(biāo)準(zhǔn)化第一自相關(guān)系數(shù)所表示 時(shí)滯被設(shè)定為零 如果r(1)<0.125,TL=0. (83) 否則,時(shí)滯的計(jì)算如以下部分所解釋。所述時(shí)滯的計(jì)算是由圖18的模塊1850來執(zhí)行的。
c、時(shí)滯的計(jì)算 時(shí)滯的計(jì)算包括以下步驟(1)生成外插信號;(2)粗時(shí)滯搜索;及(3)細(xì)化時(shí)滯搜索。這些將在以下的子節(jié)中進(jìn)行描述。
i、外插信號的生成 時(shí)滯表示xPLC(j)和rLe(n)之間的偏差。為了計(jì)算這個(gè)偏差,將xPLC(j)延伸到第一個(gè)接收幀,并將標(biāo)準(zhǔn)化交叉相關(guān)性函數(shù)最大化。這個(gè)子節(jié)描述了如何外插xPLC(j),并詳細(xì)說明了所需信號的長度。假設(shè)xPLC(j)被復(fù)制到xout(j)緩存中。因?yàn)檫@是一個(gè)類型5的幀(第一個(gè)接收幀),所以假設(shè)相應(yīng)的是 xout(j-160)=xPLC(j),j=0,1,...,159 (84) 搜索相關(guān)性(correlation)的范圍如下
其中ΔTLMAX=28,ppfe是在產(chǎn)生xPLC(j)時(shí)使用的周期性波形外插的基音周期。滯后搜索的窗口大小(16kHz采樣率下)如下
指定8kHz采樣率下的滯后搜索窗口LSW是很用的,如下
如上給出的,需要從xPLC(j)得到的外插信號的總長度為 L=2·(LSW+ΔTL). (88) 外插信號相對于接收幀中第一個(gè)采樣的起始位置為 D=12-ΔTL. (89) 外插信號es(j)是根據(jù)如下方法重構(gòu)的
如果D<0 es(j)=xout(D+j) j=0,1,...,-D-1 如果(L+D≤ppfe) es(j)=xout(-ppfe+D+j) j=-D,-D+1,...,L-1 否則 es(j)=xout(-ppfe+D+j) j=-D,-D+1,...,ppfe-D-1 es(j)=es(j-ppfe) j=ppfe-D,ppfe-D+1,...,L-1 否則
如果(ovs≥L) es(j)=xout(-ovs+j) j=0,1,...,L-1 否則 如果(ovs>0) es(j)=xout(-ovs+j) j=0,1,...,ovs-1 如果(L-ovs≤ppfe) es(j)=xout(-ovs-ppfe+j) j=ovs,ovs+1,...,L-1 否則 es(j)=xout(-ovs-ppfe+j) j=ovs,ovs+1,...,ovs+ppfe-1 es(j)=es(j-ppfe) j=ovs+ppfe,ovs+ppfe+1,...,L-1.
ii、粗時(shí)滯搜索 粗略估計(jì)的時(shí)滯TLSUB首先通過搜索子采樣標(biāo)準(zhǔn)化交叉相關(guān)性函數(shù)RSUB(k)的峰值來計(jì)算得到 為了在細(xì)化時(shí)避免搜索超出邊界,調(diào)整TLSUB如下 如果(TLSUB>ΔTLMAX-4)TLSUB=ΔTLMAX-4 (91) 如果(TLSUB<-ΔTLMAX+4)TLSUB=-ΔTLMAX+4.(92) iii、細(xì)化時(shí)滯搜索 然后通過搜索R(k)的峰值細(xì)化搜索以給出時(shí)滯TL,R(k)如下 最后,檢查以下條件 如果 Or(TL>ΔTLMAX-2)‖(TL<-ΔTLMAX+2)(96) 那么TL=0. 7、重新定相 重新定相是將內(nèi)部狀態(tài)設(shè)定為丟幀隱藏波形xPLC(j)與第一個(gè)接收幀前的最后一個(gè)輸入信號采樣同相時(shí)的狀態(tài)的處理過程。重新定相可以分成以下幾個(gè)步驟(1)在丟失幀的重新編碼過程中存儲中間G.722狀態(tài);(2)根據(jù)時(shí)滯調(diào)整重新編碼;及(3)更新QMF合成濾波存儲器。以下的子部分將描述這些步驟的更多細(xì)節(jié)。重新定相是由圖18的模塊1810來執(zhí)行的。
a、在重新編碼過程中存儲中間G.722狀態(tài) 如在本申請其它地方所描述的,在丟失幀期間重新編碼重構(gòu)信號xPLC(j)以更新G.722解碼器狀態(tài)存儲器。假設(shè)STATEj是對xPLC(j)的第j個(gè)采樣重新編碼后的G.722狀態(tài)和PLC狀態(tài)。那么除在幀邊界上的G.722狀態(tài)(將被正常維持,即STATE159)之外,還存儲了STATE159-ΔTLMAX。為了促進(jìn)重新定相,還存儲了子帶信號 xL(n),xH(n)n=69-ΔTLMAX/2...79+ΔTLMAX/2 b、根據(jù)時(shí)滯調(diào)整重新編碼 依據(jù)時(shí)滯的符號,調(diào)整重新編碼的過程如下 如果ΔTL>0 1、恢復(fù)G.722狀態(tài)和PLC狀態(tài)到STATE159-ΔTLMAX 2、以前述方式重新編碼xL(n)、xH(n)(n=80-ΔTLMAX/2...79-ΔTL/2)如果ΔTL<0 1、恢復(fù)G.722狀態(tài)和PLC狀態(tài)到STATE159 2、以前述方式重新編碼xL(n)、xH(n)(n=80...79+|ΔTL/2|)注意,為了促進(jìn)xL(n)和xH(n)的重新編碼一直到n=79+|ΔTL/2|,需要xPLC(j)的一直到ΔTLMAX+182個(gè)采樣。
c、更新QMF合成濾波器存儲器 在第一個(gè)接收幀上,由于在丟失幀期間因?yàn)镻LC發(fā)生在16kHz輸出語音域內(nèi),QMF合成濾波器組是不活躍的,所以需要計(jì)算QMF合成濾波器存儲器。時(shí)間上來說,該存儲器一般對應(yīng)最后一個(gè)丟失幀的最后一個(gè)采樣。然而,需要將重新定相考慮進(jìn)去。根據(jù)G.722,QMF合成濾波器存儲器給定如下 xd(i)=rL(n-i)-rH(n-i),i=1,2,...,11,及(97) xs(i)=rL(n-i)+rH(n-i),i=1,2,...,11(98) 第一個(gè)接收幀的最初兩個(gè)輸出采樣計(jì)算如下 及 (99) 濾波器存儲器(即xd(i)和xs(i)(i=1,2,...,11))是根據(jù)在重新編碼xL(n)和xH(n)(n=69-ΔTL/2,69-ΔTL/2+1,...,79-ΔTL/2,)(即一直到重新定相點(diǎn)的最后一些采樣)時(shí)給簡化子帶ADPCM編碼器的經(jīng)重新定相的輸入中的最后11個(gè)采樣計(jì)算出的 xd(i)=xL(80-ΔTL/2-i)-xH(80-ΔTL/2-i),i=1,2,...,11,及 (101) xs(i)=xL(80-ΔTL/2-i)+xH(80-ΔTL/2-i),i=1,2,...,11,(102) 其中xL(n)和xH(n)在丟失幀期間已經(jīng)被存儲在狀態(tài)存儲器中。
8、時(shí)間扭曲 時(shí)間扭曲是沿時(shí)間軸拉伸或收縮信號的處理。以下描述了如何對xout(j)進(jìn)行時(shí)間扭曲以改善與周期性波形外插信號xPLC(j)的對齊。僅當(dāng)TL≠0時(shí)執(zhí)行該算法。時(shí)間扭曲由圖18的模塊1860來執(zhí)行。
a、時(shí)滯細(xì)化 通過取疊加窗口中的交叉相關(guān)性的最大值來細(xì)化用于時(shí)間扭曲的時(shí)滯TL?;赥L估計(jì)出的第一個(gè)接收幀中的疊加窗口的起始位置如下 SPOLA=max(0,MIN_UNSTBL-TL), (103) 其中MIN_UNSTBL=16。
相對于SPOLA的外插信號的起始位置如下 Dref=SPOLA-TL-RSR, (104) 其中RSR=4是細(xì)化搜索范圍。
外插信號的所需長度如下 Lref=OLALG+RSR. (105) 外插信號estw(j)是使用如D.6.c.i節(jié)所述的相同過程來獲得的,除了LSW=OLALG,L=Lref及D=Dref。
細(xì)化滯后Tref是通過搜索以下的峰值來獲得的 然后獲得用于時(shí)間扭曲的最終時(shí)滯 TLwarp=TL+Tref. (107) b、計(jì)算經(jīng)時(shí)間扭曲的xout(j)信號 信號xout(j)經(jīng)過TLwarp個(gè)采樣的時(shí)間扭曲,形成隨后與波形外插信號esold(j)疊加的信號xwarp(j)。圖22A、圖22B和圖22C的時(shí)間線2200、2220和2240分別示出了依據(jù)TLwarp值的三種情況。在圖22A中,TLwarp<0,xout(j)經(jīng)歷收縮或壓縮。xout(j)的第一個(gè)MIN_UNSTBL采樣在扭曲過程中不用于創(chuàng)建xwarp(j)且xstart=MIN_UNSTBL。在圖22B中,0≤TLwarp≤MIN_UNSTBL,對xout(j)進(jìn)行TLwarp個(gè)采樣的拉伸。同樣,xout(j)的第一個(gè)MIN_UNSTBL未被使用且xstart=MIN_UNSTBL。在圖22C中,TLwarp≥MIN_UNSTBL,再一次對xout(j)進(jìn)行TLwarp個(gè)采樣的拉伸。然而,因?yàn)樵谂で^程中會創(chuàng)建額外的TLwarp個(gè)采樣,所以在這種情況下不需要xout(j)的頭TLwarp個(gè)采樣;因而,xstart=TLwarp。
在每種情況下,每次疊加/下降的采樣數(shù)量如下 扭曲是通過分段式(piece-wise)單采樣平移和三角疊加來實(shí)現(xiàn)的,從xout[xstart]開始。為了執(zhí)行收縮,周期性地降低采樣。從采樣降低的點(diǎn)開始,將原始信號和向左平移的信號(由于降低)進(jìn)行疊加。為了執(zhí)行拉伸,周期性地重復(fù)采樣。從采樣重復(fù)的點(diǎn)開始,將原始信號和向右平移的信號(由于采樣重復(fù))進(jìn)行疊加。疊加窗口的長度Lolawarp(注意這不同于圖22A、22B和22C中所示的OLA區(qū)域)取決于采樣增加/降低的周期性,如下 如果 否則
Lolawarp=min(8,Lolawarp). 經(jīng)扭曲的輸入信號xwarp的長度如下 Lxwarp=min(160,160-MIN_UNSTBL+TLwarp). (110) c、計(jì)算波形外插信號 如圖22A、22B和22C所示,在第一個(gè)接收幀中將扭曲信號xwarp和外插信號esola(j)進(jìn)行疊加。按照如下兩個(gè)步驟的處理可在xout(j)信號緩存中直接產(chǎn)生外插信號esola(j) 步驟1 esola(j)=xout(j)=ptfe·xout(j-ppfe)j=0,1,...,160-Lxwarp+39 (111) 步驟2 xout(j)=xout(j)·wi(j)+ring(j)·wo(j)j=0,1,...,39, (112) 其中wi(j)和wo(j)是長度為40的三角形斜升和斜降疊加窗口,ring(j)是以本申請中其它地方所述的方式計(jì)算出的呼叫信號。
d、時(shí)間扭曲信號與波形外插信號的疊加 在前一段中計(jì)算出的外插信號與扭曲信號xwarp(j)進(jìn)行疊加,如下 xout(160-Lxwarp+j)=xout(160-Lxwarp+j)·wo(j)+xwarp(j)·wi(j),j=0,1,...,39. (113) 然后xwarp(j)的剩余部分被簡單復(fù)制到信號緩存中 xout(160-Lxwarp+j)=xwarp(j),j=40,41,...,Lxwarp-1. (114) E、基于子帶語音波形外插的子帶預(yù)測編碼器的丟包隱藏 如圖23中的解碼器/PLC系統(tǒng)2300所示,為本發(fā)明的一個(gè)可選實(shí)施例。上述為解碼器/PLC系統(tǒng)300研究的大部分技術(shù)也可用于這第二個(gè)示例性實(shí)施例。解碼器PLC系統(tǒng)2300和解碼器/PLC系統(tǒng)300的主要區(qū)別是在子帶語音信號域內(nèi)執(zhí)行語音信號波形外插,而不是在全帶語音信號域。
如圖23所示,解碼器/PLC系統(tǒng)2300包括比特流解復(fù)用器2310、低帶ADPCM解碼器2320、低帶語音信號合成器2322、切換器2336和QMF合成濾波器組2340。比特流解復(fù)用器2310本質(zhì)上與圖2的比特流解復(fù)用器210相同,QMF合成濾波器組2340本質(zhì)上與圖2的QMF合成濾波器組240相同。
與圖3的解碼器/PLC系統(tǒng)300一樣,解碼器/PLC系統(tǒng)2300以依據(jù)幀類型的方式處理幀,并且使用與上述圖5中相同的幀類型。
在處理類型1的幀時(shí),解碼器/PLC系統(tǒng)2300執(zhí)行標(biāo)準(zhǔn)G.722解碼。在這種操作模式下,解碼器/PLC系統(tǒng)2300的模塊2310、2320、2330和2340分別執(zhí)行與傳統(tǒng)的G.722解碼器200的對應(yīng)模塊210、220、230和240相同的功能。具體地說,比特流解復(fù)用器2310將輸入比特流分離成低帶比特流和高帶比特流。低帶ADPCM解碼器2320將低帶比特流解碼成解碼低帶語音信號。切換器2326連接到標(biāo)記為“類型1”的上面位置,從而將解碼低帶語音信號連接到QMF合成濾波器組2340。高帶ADPCM解碼器2330將高帶比特流解碼成解碼高帶語音信號。切換器2336也連接到標(biāo)記為“類型1”的上面位置,從而將解碼高帶語音信號連接到QMF合成濾波器組2340。然后QMF合成濾波器組2340將解碼低帶語音信號和解碼高帶語音信號重新組合成全帶輸出語音信號。
因此,在處理類型1的幀時(shí),解碼器/PLC系統(tǒng)相當(dāng)于圖2的解碼器200,區(qū)別是為了后續(xù)丟失幀中可能的使用,解碼低帶語音信號被存儲在低帶語音信號合成器2322中,同樣為了后續(xù)丟失幀中可能的使用,解碼高帶語音信號被存儲在高帶語音信號合成器2332中。預(yù)計(jì)執(zhí)行PLC操作的其它狀態(tài)更新和處理也可以被執(zhí)行。
在處理類型2、類型3和類型4的幀(丟失幀)時(shí),從與先前幀關(guān)聯(lián)的存儲的子帶語音信號中對每個(gè)子帶的解碼語音信號進(jìn)行外插,以填補(bǔ)與當(dāng)前丟失幀關(guān)聯(lián)的波形間隙。這種波形外插是由低帶語音信號合成器2322和高帶語音信號合成器2332來執(zhí)行的。執(zhí)行模塊2322和2332的波形外插功能存在許多現(xiàn)有技術(shù)。例如,可使用在申請?zhí)枮?1/234,291、發(fā)明人為陳、申請時(shí)間為2005年9月26日、名稱為“獨(dú)立塊語音編解碼器的丟包隱藏技術(shù)”的美國專利中描述的技術(shù),或者使用那些技術(shù)的修改版本,如涉及上述圖3的解碼器/PLC系統(tǒng)300的技術(shù)。
在處理類型2、類型3或類型4的幀時(shí),切換器2326和2336位于標(biāo)記為“類型2-6”的下面位置。因而,它們將合成低帶音頻信號和合成高帶音頻信號連接到QMF合成濾波器組2340,進(jìn)而將它們重新組合成針對當(dāng)前丟失幀的合成輸出語音信號。
與解碼器/PLC系統(tǒng)300類似,緊隨壞幀(類型5和類型6的幀)的最初幾個(gè)接收幀需要特殊的處理來最小化由于不匹配G.722狀態(tài)導(dǎo)致的語音質(zhì)量下降,以及保證從最后一個(gè)丟失幀中的外插語音信號波形到緊隨最后一個(gè)壞幀的最初幾個(gè)好幀中的解碼語音信號波形的平滑過渡。因而,在處理這些幀時(shí),切換器2326和2336保持在標(biāo)為“類型2-6”的下面位置,以便來自低帶ADPCM解碼器2320的解碼低帶語音信號可以在提供到QMF合成濾波器組2340之前由低帶語音信號合成器2322進(jìn)行修改,以及來自高帶ADPCM解碼器2330的解碼高帶語音信號可以在提供到QMF合成濾波器組2340之前由高帶語音信號合成器2332進(jìn)行修改。
所屬領(lǐng)域的技術(shù)人員應(yīng)知悉,在以上子節(jié)C和D中針對包丟失后最初幾個(gè)幀描述的大部分技術(shù)也可以很容易地用于包丟失后的最初幾個(gè)幀的特殊處理的這種示例性實(shí)施例中。例如,解碼約束和控制邏輯(圖23中未示出)也包括在解碼器/PLC系統(tǒng)2300中,用于以上述參照解碼器/PLC系統(tǒng)300的類似方式來約束和控制由低帶ADPCM解碼器2320和高帶ADPCM解碼器2330在處理類型5和類型6的幀時(shí)執(zhí)行的解碼操作。同樣,每個(gè)子帶語音信號合成器2322和2332用于執(zhí)行重新定相和時(shí)間扭曲技術(shù),如上述參照解碼器/PLC系統(tǒng)300描述的那些技術(shù)。因?yàn)樵谇懊娌糠痔峁┝诉@些技術(shù)的完整描述,所以在此不需要重復(fù)在解碼器/PLC系統(tǒng)2300的環(huán)境中使用的這些技術(shù)的描述。
與解碼器/PLC系統(tǒng)300相比,解碼器/PLC系統(tǒng)2300的主要優(yōu)點(diǎn)是其具有更低的復(fù)雜度。這是因?yàn)樵谧訋в蛑型獠逭Z音信號排除了采用QMF合成濾波器組將全帶外插語音信號分離成子帶語音信號的需要,如在第一個(gè)示例性實(shí)施例中完成的。然而,在全帶域中外插語音信號也具有其優(yōu)點(diǎn),以下將對此進(jìn)行闡述。
當(dāng)圖23中的系統(tǒng)2300外插高帶語音信號時(shí),存在一些潛在的問題。首先,如果其不對高帶語音信號執(zhí)行周期性波形外插,那么輸出語音信號將不保留可能在一些高周期性有聲信號中出現(xiàn)的高帶語音信號的周期性特性。換言之,如果其對高帶語音信號執(zhí)行周期性波形外插,即使其使用用于外插低帶語音信號的相同基音周期來減少計(jì)算并保證兩個(gè)子帶語音信號正使用相同的基音周期用于外插,仍然存在另一問題。當(dāng)周期性外插高帶語音信號時(shí),外插高帶語音信號將是周期性的,并在頻譜上具有諧波結(jié)構(gòu)。換言之,高帶語音信號的頻譜中的頻譜峰值的頻率將與整數(shù)倍相關(guān)。然而,一旦合成濾波器組2340將高帶語音信號與低帶語音信號重新組合,高帶語音信號的頻譜將被“譯成”或移位為較高的頻率,同時(shí)可能發(fā)生鏡像,這取決于所用的QMF合成濾波器組。因而,在這種鏡像和頻率偏移之后,并不能保證全帶輸出語音信號的高帶部分中的頻譜峰值仍具有低帶語音信號中的基音頻率的整數(shù)倍的頻率。這可能潛在地導(dǎo)致高周期性有聲信號的輸出音頻質(zhì)量的下降。相反,圖3中的系統(tǒng)300并不存在這個(gè)問題。因?yàn)橄到y(tǒng)300在全帶域中執(zhí)行音頻信號外插,所以保證了高帶中的諧波峰值的頻率是基音頻率的整數(shù)倍。
總之,解碼器/PLC系統(tǒng)300的優(yōu)點(diǎn)是對于有聲信號,外插全帶語音信號將在整個(gè)語音帶上保留頻譜峰值的諧波結(jié)構(gòu)。換言之,解碼器/PLC系統(tǒng)2300具有低復(fù)雜度的優(yōu)點(diǎn),但是其不可以在較高的子帶中保留這種諧波結(jié)構(gòu)。
F、硬件和軟件實(shí)現(xiàn) 為了保證完整,本發(fā)明提供了通用的計(jì)算機(jī)系統(tǒng)的以下描述。本發(fā)明可以在硬件或軟硬件的組合中實(shí)現(xiàn)。因此,本發(fā)明可在計(jì)算機(jī)系統(tǒng)或其它處理系統(tǒng)的環(huán)境中實(shí)現(xiàn)。圖24示出了這種計(jì)算機(jī)系統(tǒng)2400的一個(gè)示例。在本發(fā)明中,以上在C、D和E節(jié)中描述的所有解碼和PLC操作可在一個(gè)或多個(gè)不同的計(jì)算機(jī)系統(tǒng)2400上執(zhí)行,以實(shí)現(xiàn)本發(fā)明的各種方法。
計(jì)算機(jī)系統(tǒng)2400包括一個(gè)或多個(gè)處理器,如處理器2404。處理器2404可以是特殊用途或通用的數(shù)字信號處理器。處理器2404連接到通信架構(gòu)2402(例如,總線或網(wǎng)絡(luò))。各種軟件實(shí)現(xiàn)是按照這個(gè)示例性計(jì)算機(jī)系統(tǒng)來描述的。在閱讀完這個(gè)敘述之后,所屬領(lǐng)域的技術(shù)人員將很容易理解如何使用其它計(jì)算機(jī)系統(tǒng)和/或計(jì)算機(jī)結(jié)構(gòu)實(shí)現(xiàn)本發(fā)明。
計(jì)算機(jī)系統(tǒng)2400還包括主存儲器2406,優(yōu)選是隨機(jī)存儲器(RAM),還可包括第二存儲器2420。第二存儲器2420可包括,例如,硬盤驅(qū)動(dòng)器2422和/或移動(dòng)存儲驅(qū)動(dòng)器2424,代表性的有軟盤驅(qū)動(dòng)器、磁帶驅(qū)動(dòng)器、光盤驅(qū)動(dòng)器等等。移動(dòng)存儲驅(qū)動(dòng)器2424以眾所周知的方式讀和/或?qū)懸苿?dòng)存儲單元2428。移動(dòng)存儲單元2428有軟盤、磁帶、光盤等等,其由移動(dòng)存儲驅(qū)動(dòng)器2424進(jìn)行讀和寫。應(yīng)知悉,移動(dòng)存儲單元2428包括已將計(jì)算機(jī)軟件和/數(shù)據(jù)存儲在其中的計(jì)算機(jī)使用存儲媒介。
在可選的實(shí)現(xiàn)中,第二存儲器2420可包括其它類似的裝置,用于將計(jì)算機(jī)程序或其它指令載入計(jì)算機(jī)系統(tǒng)2400。這種裝置也包括,例如,移動(dòng)存儲單元2430和接口2426。這種裝置的例子包括程序盒(cartridge)和盒式接口(如在視頻游戲設(shè)置中使用的)、移動(dòng)存儲芯片(如EPROM或PROM)和相關(guān)插槽、其它使數(shù)據(jù)從移動(dòng)存儲單元2430傳輸?shù)接?jì)算機(jī)系統(tǒng)2400的移動(dòng)存儲單元2430和接口2426。
計(jì)算機(jī)系統(tǒng)2400還包括通信接口2440。通信接口2440使軟件和數(shù)據(jù)在計(jì)算機(jī)系統(tǒng)2400和外部設(shè)置之間傳輸。通信接口2440的示例包括調(diào)制解調(diào)器、網(wǎng)絡(luò)接口(如以太網(wǎng)卡)、通信端口、PCMCIA槽和卡等。通過通信接口2440傳輸?shù)能浖蛿?shù)據(jù)的形式可以是電、電磁、光或其它能夠由通信接口2440接收的信號。通過通信通道2442可將這些信號提供到通信接口2440。通信通道2442傳送信號,其可使用電線或電纜、光纖、電話線、移動(dòng)電話連接、RF連接和其它通信信道來實(shí)現(xiàn)。
在此所用的術(shù)語“計(jì)算機(jī)程序媒介”和“計(jì)算機(jī)可使用媒介”通常用于指的是媒介,如移動(dòng)存儲單元2428、安裝在硬盤驅(qū)動(dòng)器2422上的硬盤及由通信接口2440接收的信號。這些計(jì)算機(jī)程序產(chǎn)品是用于提供軟件給計(jì)算機(jī)系統(tǒng)2400的手段。
計(jì)算機(jī)程序(也稱為計(jì)算機(jī)控制邏輯)被存儲在主存儲器2406和/或第二存儲器2420中。計(jì)算機(jī)程序也可通過通信接口2440進(jìn)行接收。這種計(jì)算機(jī)程序在被執(zhí)行時(shí),使計(jì)算機(jī)系統(tǒng)2400實(shí)現(xiàn)了本發(fā)明,如在此討論的。具體地說,計(jì)算機(jī)程序被執(zhí)行時(shí),使處理器2400實(shí)現(xiàn)了本發(fā)明的處理,如在此討論的任何方法。因此,這種計(jì)算機(jī)程序表示計(jì)算機(jī)系統(tǒng)2400的控制器。在使用軟件實(shí)現(xiàn)本發(fā)明時(shí),可以將軟件存儲在計(jì)算機(jī)程序產(chǎn)品中并使用移動(dòng)存儲驅(qū)動(dòng)器2424、接口2426或通信接口2440將軟件載入到計(jì)算機(jī)系統(tǒng)2400中。
在另一實(shí)施例中,本發(fā)明的特征主要是在硬件中實(shí)現(xiàn),例如,使用硬件器件,如專用集成電路(ASIC)和門矩陣。使用硬件狀態(tài)機(jī)執(zhí)行在此所述的功能的實(shí)現(xiàn)對于所屬領(lǐng)域的技術(shù)人員來說也是顯而易見的。
G、結(jié)論 雖然以上描述了本發(fā)明的各種實(shí)施例,應(yīng)當(dāng)理解,其目的僅在于舉例說明,而沒有限制性。本領(lǐng)域的技術(shù)人員知悉,在不離開本發(fā)明的精神和范圍情況下,在形式上和細(xì)節(jié)上還可做各種的改變。因此,本發(fā)明的保護(hù)范圍不當(dāng)僅局限于以上描述的任一實(shí)施例,而應(yīng)該依照權(quán)利要求及其等效替換來限定。
權(quán)利要求
1.一種更新用于解碼表示編碼音頻信號的一系列幀的解碼器的狀態(tài)的方法,其特征在于,所述方法包括
合成與所述一系列幀中的丟失幀關(guān)聯(lián)的輸出音頻信號;
設(shè)定所述解碼器狀態(tài)為在幀邊界上與所述合成的輸出音頻信號對齊;
基于所述合成的輸出音頻信號產(chǎn)生外插信號;
計(jì)算所述外插信號和與所述一系列幀中丟失幀后的第一接收幀關(guān)聯(lián)的解碼音頻信號之間的時(shí)滯,其中所述時(shí)滯表示所述外插信號和所述解碼音頻信號之間的相位差;及
基于所述時(shí)滯重設(shè)所述解碼器狀態(tài)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,設(shè)定所述解碼器狀態(tài)為在幀邊界上與所述合成的輸出音頻信號對齊包括對表示所述合成的輸出音頻信號一系列采樣重新編碼直到所述幀邊界;以及
基于所述時(shí)滯重設(shè)所述解碼器狀態(tài)包括對表示所述合成的輸出音頻信號的一系列采樣重新編碼直到所述幀邊界加上或減去與所述時(shí)滯關(guān)聯(lián)的多個(gè)采樣。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,計(jì)算所述外插信號和所述解碼音頻信號之間的時(shí)滯包括最大化所述外插信號和所述解碼音頻信號之間的相關(guān)性。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,最大化所述外插信號和所述解碼音頻信號之間的相關(guān)性包括在零附近±MAXOS的時(shí)滯范圍內(nèi)搜索所述外插信號和所述解碼音頻信號之間的標(biāo)準(zhǔn)化交叉相關(guān)性函數(shù)R(k)的峰值
k=-MAXOS,K,MAXOS
其中es是外插語音信號,x是解碼語音信號,MAXOS是允許的最大偏移,LSW是滯后搜索窗口長度,i=0表示在滯后搜索窗口中的第一采樣。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,計(jì)算所述外插信號和所述解碼音頻信號之間的時(shí)滯包括
使用第一滯后搜索范圍和第一滯后搜索窗口搜索所述外插信號與所述解碼音頻信號之間的標(biāo)準(zhǔn)化交叉相關(guān)性函數(shù)的第一峰值以確定粗時(shí)滯,其中所述第一滯后搜索范圍指定在搜索過程中所述外插信號的起始點(diǎn)移位的范圍,所述第一滯后搜索窗口指定計(jì)算所述標(biāo)準(zhǔn)化交叉相關(guān)性函數(shù)的采樣數(shù)量;及
使用第二滯后搜索范圍和第二滯后搜索窗口搜索所述外插信號與所述解碼音頻信號之間的標(biāo)準(zhǔn)化交叉相關(guān)性函數(shù)的第二峰值以確定細(xì)化時(shí)滯,其中第二滯后搜索范圍小于第一滯后搜索范圍。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,搜索所述外插信號與所述解碼音頻信號之間的標(biāo)準(zhǔn)化交叉相關(guān)性函數(shù)的第一峰值包括搜索所述外插信號與所述解碼音頻信號的下采樣樣本之間的標(biāo)準(zhǔn)化交叉相關(guān)性函數(shù)的峰值。
7.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述第二滯后搜索窗口小于第一滯后搜索窗口。
8.根據(jù)權(quán)利要求5所述的方法,其特征在于,使用第二滯后搜索和第二滯后搜索窗口搜索所述外插信號與所述解碼音頻信號之間的標(biāo)準(zhǔn)化交叉相關(guān)性函數(shù)的第二峰值包括使所述第二滯后搜索窗口與所述第一接收幀的第一采樣對齊。
9.根據(jù)權(quán)利要求1所述的方法,其特征在于,計(jì)算所述外插信號和所述解碼音頻信號之間的時(shí)滯包括
部分解碼第一接收幀以產(chǎn)生所述解碼音頻信號的近似值;及
計(jì)算所述外插信號與所述解碼音頻信號的近似值之間的時(shí)滯。
10.根據(jù)權(quán)利要求9所述的方法,其特征在于,部分解碼所述第一接收幀包括
在低帶自適應(yīng)差分脈沖編碼調(diào)制解碼器中解碼與所述第一接收幀關(guān)聯(lián)的低帶比特流以產(chǎn)生低帶重構(gòu)信號;及
使用所述低帶重構(gòu)信號作為所述解碼音頻信號的近似值。
11.根據(jù)權(quán)利要求10所述的方法,其特征在于,在低帶自適應(yīng)差分脈沖編碼調(diào)制解碼器中解碼與所述第一接收幀關(guān)聯(lián)的低帶比特流包括在解碼所述低帶比特流的過程中固定兩極、六-零自適應(yīng)濾波器的系數(shù)。
12.根據(jù)權(quán)利要求1所述的方法,其特征在于,設(shè)定所述解碼器狀態(tài)為在幀邊界上與所述合成的輸出音頻信號對齊包括
在處理所述第一接收幀前,在編碼器中對表示所述合成的輸出音頻信號的一系列采樣重新編碼直到所述幀邊界;
保存在對所述一系列采樣重新編碼直到所述幀邊界減去最大偏移后的編碼器的第一狀態(tài),以及在對所述一系列采樣重新編碼直到所述幀邊界后的編碼器的第二狀態(tài);及
其中基于所述時(shí)滯重設(shè)所述解碼器狀態(tài)包括
在處理所述第一接收幀的過程中,
如果所述時(shí)滯為正,將編碼器狀態(tài)恢復(fù)到所述第一狀態(tài),并對表示所述合成輸出音頻信號的一系列采樣從所述幀邊界減去最大偏移重新編碼直到所述幀邊界減去由所述時(shí)滯指定的多個(gè)采樣;
如果所述時(shí)滯為負(fù),將編碼器狀態(tài)恢復(fù)到所述第二狀態(tài),并對表示所述合成輸出音頻信號的一系列采樣從所述幀邊界重新編碼直到由所述時(shí)滯指定的多個(gè)采樣的絕對值;以及
在完成重新編碼后基于所述編碼器的狀態(tài)重設(shè)所述解碼器狀態(tài)。
13.根據(jù)權(quán)利要求12所述的方法,其特征在于,設(shè)定所述解碼器狀態(tài)為在幀邊界上與所述合成的輸出音頻信號對齊進(jìn)一步包括
在處理所述第一接收幀前,將從所述幀邊界減去最大偏移一直到幀邊界加上最大偏移的表示所述合成輸出音頻信號的采樣保存;及
基于所述時(shí)滯重設(shè)所述解碼器狀態(tài)包括
使用所述保存的采樣的至少一部分用于重新編碼。
14.根據(jù)權(quán)利要求13所述的方法,其特征在于,保存表示所述合成輸出音頻信號的采樣包括保存低帶音頻信號采樣和高帶音頻信號采樣。
15.一種系統(tǒng),其特征在于,包括
用于對表示編碼音頻信號的一系列幀中的接收幀進(jìn)行解碼的解碼器;
用于合成與所述一系列幀中的丟失幀關(guān)聯(lián)的輸出音頻信號的音頻信號合成器;
解碼器狀態(tài)更新邏輯,用于在產(chǎn)生所述合成的輸出音頻信號后設(shè)定所述解碼器狀態(tài)為在幀邊界上與所述合成的輸出音頻信號對齊,基于所述合成的輸出音頻信號產(chǎn)生外插信號,計(jì)算所述外插信號和與所述一系列幀中丟失幀后的第一接收幀關(guān)聯(lián)的解碼音頻信號之間的時(shí)滯,以及基于所述時(shí)滯重設(shè)所述解碼器狀態(tài),其中所述時(shí)滯表示所述外插信號和所述解碼音頻信號之間的相位差。
16.根據(jù)權(quán)利要求15所述的系統(tǒng),其特征在于,所述解碼器狀態(tài)更新邏輯用于通過對表示所述合成的輸出音頻信號的一系列采樣重新編碼直到所述幀邊界來設(shè)定所述解碼器狀態(tài)為在幀邊界上與所述合成的輸出音頻信號對齊;以及
所述解碼器狀態(tài)更新邏輯用于通過對表示所述合成的輸出音頻信號的一系列采樣重新編碼直到的所述幀邊界加上或減去與所述時(shí)滯關(guān)聯(lián)的多個(gè)采樣來基于所述時(shí)滯重設(shè)所述解碼器狀態(tài)。
17.根據(jù)權(quán)利要求15所述的系統(tǒng),其特征在于,所述解碼器狀態(tài)更新邏輯用于通過最大化所述外插信號和所述解碼音頻信號之間的相關(guān)性來來計(jì)算所述外插信號和所述解碼音頻信號之間的時(shí)滯。
18.根據(jù)權(quán)利要求17所述的系統(tǒng),其特征在于,所述解碼器狀態(tài)更新邏輯用于通過搜索零附近±MAXOS的時(shí)滯范圍內(nèi)所述外插信號和所述解碼音頻信號之間的標(biāo)準(zhǔn)化交叉相關(guān)性函數(shù)R(k)的峰值來最大化所述外插信號和所述解碼音頻信號之間的相關(guān)性
k=-MAXOS,K,MAXOS
其中es是外插語音信號,x是解碼語音信號,MAXOS是允許的最大偏移,LSW是滯后搜索窗口長度,i=0表示在滯后搜索窗口中的第一采樣。
19.根據(jù)權(quán)利要求15所述的系統(tǒng),其特征在于,所述解碼器狀態(tài)更新邏輯用于使用第一滯后搜索范圍和第一滯后搜索窗口搜索所述外插信號與所述解碼音頻信號之間的標(biāo)準(zhǔn)化交叉相關(guān)性函數(shù)的第一峰值以確定粗時(shí)滯,其中所述第一滯后搜索范圍指定在搜索過程中所述外插信號的起始點(diǎn)移位的范圍,所述第一滯后搜索窗口指定計(jì)算所述標(biāo)準(zhǔn)化交叉相關(guān)性函數(shù)的采樣數(shù)量;及
所述解碼器狀態(tài)更新邏輯使用第二滯后搜索范圍和第二滯后搜索窗口搜索所述外插信號與所述解碼音頻信號之間的標(biāo)準(zhǔn)化交叉相關(guān)性函數(shù)的第二峰值以確定細(xì)化時(shí)滯,其中第二滯后搜索范圍小于第一滯后搜索范圍。
20.根據(jù)權(quán)利要求19所述的系統(tǒng),其特征在于,所述解碼器狀態(tài)更新邏輯用于通過搜索所述外插信號與所述解碼音頻信號的下采樣樣本之間的標(biāo)準(zhǔn)化交叉相關(guān)性函數(shù)的峰值來搜索所述外插信號與所述解碼音頻信號之間的標(biāo)準(zhǔn)化交叉相關(guān)性函數(shù)的第一峰值。
21.根據(jù)權(quán)利要求19所述的系統(tǒng),其特征在于,所述第二滯后搜索窗口小于第一滯后搜索窗口。
22.根據(jù)權(quán)利要求19所述的系統(tǒng),其特征在于,所述解碼器狀態(tài)更新邏輯進(jìn)一步用于使所述第二滯后搜索窗口與所述第一接收幀的第一采樣對齊。
23.根據(jù)權(quán)利要求15所述的系統(tǒng),其特征在于,所述解碼器狀態(tài)更新邏輯部分地解碼所述接收幀以產(chǎn)生所述解碼音頻信號的近似值,并計(jì)算所述外插信號與所述解碼音頻信號的近似值之間的時(shí)滯。
24.根據(jù)權(quán)利要求23所述的系統(tǒng),其特征在于,所述解碼器狀態(tài)更新邏輯用于通過在低帶自適應(yīng)差分脈沖編碼調(diào)制解碼器中解碼與所述第一接收幀關(guān)聯(lián)的低帶比特流以產(chǎn)生低帶重構(gòu)信號以及通過使用所述低帶重構(gòu)信號作為所述解碼音頻信號的近似值來部分地解碼所述第一接收幀。
25.根據(jù)權(quán)利要求24所述的系統(tǒng),其特征在于,所述解碼器狀態(tài)更新邏輯用于在所述低帶比特流的解碼過程中固定兩極、六-零自適應(yīng)濾波器的系數(shù)。
26.根據(jù)權(quán)利要求15所述的系統(tǒng),其特征在于,所述解碼器狀態(tài)更新邏輯用于通過以下步驟來設(shè)定所述解碼器狀態(tài)為在幀邊界上與所述合成的輸出音頻信號對齊
在處理所述第一接收幀前,在編碼器中對表示所述合成的輸出音頻信號的一系列采樣重新編碼直到所述幀邊界;
保存在對所述一系列采樣重新編碼直到所述幀邊界減去最大偏移后的編碼器的第一狀態(tài),以及在對所述一系列采樣重新編碼直到所述幀邊界后的編碼器的第二狀態(tài);及
其中基于所述時(shí)滯重設(shè)所述解碼器狀態(tài)包括
在處理所述第一接收幀的過程中,
如果所述時(shí)滯為正,將編碼器狀態(tài)恢復(fù)到所述第一狀態(tài),并對表示所述合成輸出音頻信號的一系列采樣從所述幀邊界減去最大偏移重新編碼直到所述幀邊界減去由所述時(shí)滯指定的多個(gè)采樣;
如果所述時(shí)滯為負(fù),將編碼器狀態(tài)恢復(fù)到所述第二狀態(tài),并對表示所述合成輸出音頻信號的一系列采樣從所述幀邊界重新編碼直到由所述時(shí)滯指定的多個(gè)采樣的絕對值;以及
在完成重新編碼后基于所述編碼器的狀態(tài)重設(shè)所述解碼器狀態(tài)。
27.根據(jù)權(quán)利要求26所述的系統(tǒng),其特征在于,所述解碼器狀態(tài)更新邏輯通過在處理所述第一接收幀前將從所述幀邊界減去最大偏移一直到幀邊界加上最大偏移的表示所述合成輸出音頻信號的采樣保存來設(shè)定所述解碼器狀態(tài)為在幀邊界上與所述合成的輸出音頻信號對齊;及通過使用所述保存的采樣的至少一部分用于重新編碼來基于所述時(shí)滯重設(shè)所述解碼器狀態(tài)。
28.根據(jù)權(quán)利要求27所述的系統(tǒng),其特征在于,所述解碼器狀態(tài)更新邏輯用于保存表示所述合成輸出音頻信號的低帶音頻信號采樣和高帶音頻信號采樣。
29.一種計(jì)算機(jī)程序產(chǎn)品,包括記錄有計(jì)算機(jī)程序邏輯的計(jì)算機(jī)可讀媒介,所述計(jì)算機(jī)程序邏輯用于使處理器更新用于解碼表示編碼音頻信號的一系列幀的解碼器的狀態(tài),其特征在于,所述計(jì)算機(jī)程序邏輯包括
用于使所述處理器合成與所述一系列幀中的丟失幀關(guān)聯(lián)的輸出音頻信號的第一模塊;
用于使所述處理器在產(chǎn)生所述合成的輸出音頻信號后設(shè)定所述解碼器狀態(tài)為在幀邊界上與所述合成的輸出音頻信號對齊的第二模塊;
用于使所述處理器基于所述合成的輸出音頻信號產(chǎn)生外插信號的第三模塊;
用于使所述處理器計(jì)算所述外插信號和與所述一系列幀中丟失幀后的第一接收幀關(guān)聯(lián)的解碼音頻信號之間的時(shí)滯的第四模塊;以及
用于使所述處理器基于所述時(shí)滯重設(shè)所述解碼器狀態(tài)的第五模塊,其中所述時(shí)滯表示所述外插信號和所述解碼音頻信號之間的相位差。
30.根據(jù)權(quán)利要求29所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述第二模塊包括用于使所述處理器對表示所述合成的輸出音頻信號的一系列采樣重新編碼直到所述幀邊界的模塊,所述第五模塊包括用于使所述處理器對表示所述合成的輸出音頻信號一系列采樣重新編碼直到的所述幀邊界加上或減去與所述時(shí)滯關(guān)聯(lián)的多個(gè)采樣的模塊。
31.根據(jù)權(quán)利要求29所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述第四模塊包括用于使所述處理器最大化所述外插信號和所述解碼音頻信號之間的相關(guān)性的模塊。
32.根據(jù)權(quán)利要求31所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述用于使所述處理器最大化所述外插信號和所述解碼音頻信號之間的相關(guān)性的模塊包括用于使所述處理器通過搜索零附近±MAXOS的時(shí)滯范圍內(nèi)所述外插信號和所述解碼音頻信號之間的標(biāo)準(zhǔn)化交叉相關(guān)性函數(shù)R(k)的峰值的模塊
k=-MAXOS,K,MAXOS
其中es是外插語音信號,x是解碼語音信號,MAXOS是允許的最大偏移,LSW是滯后搜索窗口長度,i=0表示在滯后搜索窗口中的第一采樣。
33.根據(jù)權(quán)利要求29所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述第四模塊包括
用于使所述處理器使用第一滯后搜索范圍和第一滯后搜索窗口搜索所述外插信號與所述解碼音頻信號之間的標(biāo)準(zhǔn)化交叉相關(guān)性函數(shù)的第一峰值以確定粗時(shí)滯的模塊,其中所述第一滯后搜索范圍指定在搜索過程中所述外插信號的起始點(diǎn)移位的范圍,所述第一滯后搜索窗口指定計(jì)算所述標(biāo)準(zhǔn)化交叉相關(guān)性函數(shù)的采樣數(shù)量;及
用于使所述處理器使用第二滯后搜索范圍和第二滯后搜索窗口搜索所述外插信號與所述解碼音頻信號之間的標(biāo)準(zhǔn)化交叉相關(guān)性函數(shù)的第二峰值以確定細(xì)化時(shí)滯的模塊,其中第二滯后搜索范圍小于第一滯后搜索范圍。
34.根據(jù)權(quán)利要求33所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述用于使所述處理器搜索所述外插信號與所述解碼音頻信號之間的標(biāo)準(zhǔn)化交叉相關(guān)性函數(shù)的第一峰值的模塊包括用于使所述處理器搜索所述外插信號與所述解碼音頻信號的向下采樣樣本之間的標(biāo)準(zhǔn)化交叉相關(guān)性函數(shù)的峰值的模塊。
35.根據(jù)權(quán)利要求33所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述第二滯后搜索窗口小于第一滯后搜索窗口。
36.根據(jù)權(quán)利要求33所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述用于使所述處理器使用第二時(shí)滯搜索范圍和第二時(shí)滯搜索窗口搜索所述外插信號與所述解碼音頻信號之間的標(biāo)準(zhǔn)化交叉相關(guān)性函數(shù)的第二峰值的模塊包括用于使所述處理器將所述第二滯后搜索窗口與所述第一接收幀的第一采樣對齊的模塊。
37.根據(jù)權(quán)利要求29所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述第四模塊包括
用于使所述處理器部分地解碼所述第一接收幀以產(chǎn)生所述解碼音頻信號的近似值的模塊;以及
用于使所述處理器計(jì)算所述外插信號與所述解碼音頻信號的近似值之間的時(shí)滯的模塊。
38.根據(jù)權(quán)利要求37所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述用于使所述處理器部分地編碼所述第一接收幀的模塊包括
用于使所述處理器在低帶自適應(yīng)差分脈沖編碼調(diào)制解碼器中解碼與所述第一接收幀關(guān)聯(lián)的低帶比特流以產(chǎn)生低帶重構(gòu)信號的模塊;以及
用于使所述處理器使用所述低帶重構(gòu)信號作為所述解碼音頻信號的近似值的模塊。
39.根據(jù)權(quán)利要求38所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,用于使所述處理器在低帶自適應(yīng)差分脈沖編碼調(diào)制解碼器中解碼與所述第一接收幀關(guān)聯(lián)的低帶比特流的模塊包括用于使所述處理器在所述低帶比特流的解碼過程中固定兩極、六-零自適應(yīng)濾波器的系數(shù)的模塊。
40.根據(jù)權(quán)利要求29所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述第二模塊包括
用于使所述處理器在處理所述第一接收幀前執(zhí)行以下步驟的模塊
在編碼器中對表示所述合成的輸出音頻信號的一系列采樣重新編碼直到所述幀邊界;以及
保存在對所述一系列采樣重新編碼直到所述幀邊界減去最大偏移后的編碼器的第一狀態(tài),以及在對所述一系列采樣重新編碼直到所述幀邊界后的編碼器的第二狀態(tài);且
其中,第四模塊包括用于使所述處理器在處理所述第一接收幀過程中執(zhí)行以下步驟的模塊
如果所述時(shí)滯為正,將編碼器狀態(tài)恢復(fù)到所述第一狀態(tài),并對表示所述合成輸出音頻信號的一系列采樣從所述幀邊界減去最大偏移重新編碼直到所述幀邊界減去由所述時(shí)滯指定的多個(gè)采樣;
如果所述時(shí)滯為負(fù),將編碼器狀態(tài)恢復(fù)到所述第二狀態(tài),并對表示所述合成輸出音頻信號的一系列采樣從所述幀邊界重新編碼直到由所述時(shí)滯指定的多個(gè)采樣的絕對值;以及
在完成重新編碼后基于所述編碼器的狀態(tài)重設(shè)所述解碼器狀態(tài)。
41.根據(jù)權(quán)利要求40所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述第二模塊進(jìn)一步包括使所述處理器在處理所述第一接收幀之前將表示從所述幀邊界減去最大偏移一直到幀邊界加上最大偏移的所述合成輸出音頻信號的采樣保存的模塊;且
其中,所述第四模塊包括使所述處理器使用所述保存的采樣的至少一部分用于重新編碼的模塊。
42.根據(jù)權(quán)利要求41所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,用于使所述處理器保存表示所述合成輸出音頻信號的采樣的模塊包括用于使所述處理器保存低帶音頻信號采樣和高帶音頻信號采樣的模塊。
全文摘要
本發(fā)明描述了一種更新用于解碼表示編碼音頻信號的一系列幀的解碼器狀態(tài)的技術(shù)。根據(jù)所述技術(shù),將解碼器狀態(tài)設(shè)定為在幀邊界上與合成的輸出音頻信號對齊?;谒龊铣傻妮敵鲆纛l信號產(chǎn)生外插信號。計(jì)算所述外插信號和與所述一系列幀中丟失幀后的第一接收幀關(guān)聯(lián)的解碼音頻信號之間的時(shí)滯,其中所述時(shí)滯表示所述外插信號和所述解碼音頻信號之間的相位差。然后基于所述時(shí)滯重設(shè)所述解碼器狀態(tài)。
文檔編號G10L21/04GK101366080SQ200780002049
公開日2009年2月11日 申請日期2007年8月15日 優(yōu)先權(quán)日2006年8月15日
發(fā)明者羅伯塔·W.·措普夫, 杰斯·賽森, 朱因韋·陳 申請人:美國博通公司