專利名稱:語音編碼中的前向糾錯的制作方法
背景技術(shù):
本發(fā)明涉及到在聲頻信息傳輸中用于執(zhí)行前向糾錯的系統(tǒng)和方法,并且更具體而言,本發(fā)明涉及到在基于分組的語音編碼信息傳輸中用于執(zhí)行前向糾錯的系統(tǒng)和方法。
1.語音編碼目前水平的前向糾錯(FEC)技術(shù)的缺點可以通過一些常規(guī)語音編碼概念的引導性討論來最好地理解。
1.1碼激勵線性預測(CELP)編碼
圖1示出常規(guī)碼激勵線性預測(CELP)綜合分析編碼器100。編碼器100包括以下功能單元,稱為成幀模塊104、線性預測編碼(LPC)分析模塊106、差值計算模塊118、誤差加權(quán)模塊114、誤差最小化模塊116以及譯碼器模塊102。而譯碼器模塊102又包括以級聯(lián)關(guān)系相互連接以產(chǎn)生合成信號 的固定碼本112、長期預測(LTP)濾波器110和線性預測編碼(LPC)濾波器108。LPC濾波器108模擬歸因于聲道的語音中的短期相關(guān),相當于語音信號的頻譜包絡(luò)。它表示為1/A(z)=1/(1-Σi=1paiz-i)]]>(式1)其中p表示濾波器階數(shù),ai表示濾波器系數(shù)。另一方面,LTP濾波器110模擬歸因于聲帶的語音的長期相關(guān),相當于語音信號的精細的似周期頻譜結(jié)構(gòu)。例如,它可有下式給定的形式1/P(z)=1/(1-Σi=-1Ibiz-(D+i))]]>(式2)其中D通常相當于該長期相關(guān)的基音周期,且bi與濾波器的長期增益系數(shù)有關(guān)。固定碼本112存儲一系列激勵輸入序列。該序列給LTP濾波器110和LPC濾波器108提供激勵信號,并且在某種程度上該序列在模擬不能使用LTP濾波器110和LPC濾波器108以確定性的方法預測的語音信號特性(比如音樂內(nèi)的聲頻成分)時是有用的。
在操作中,成幀模塊104接收輸入語音信號并把它分成連續(xù)的幀(例如20ms持續(xù)時間)。然后,LPC分析模塊106接收且分析該幀以產(chǎn)生一組LPC系數(shù)。這些系數(shù)被LPC濾波器108用于模擬相當于語音信號頻譜包絡(luò)的語音信號的短期特性。然后,通過使該輸入語音信號饋送通過包括計算的LPC系數(shù)的反向濾波器而形成LPC殘余。如圖2中所示,這個殘余表示原始語音信號在由線性預測分析去除短期冗余之后剩余的成分。在兩個音調(diào)脈沖之間的距離記作“L”且稱為滯后。然后,編碼器100可以使用該殘余以預測長期系數(shù)。LTP濾波器110使用這些長期系數(shù)來模擬該語音信號的精細的頻譜結(jié)構(gòu)(例如音調(diào)延遲和音調(diào)增益)。LTP濾波器110和LPC濾波器108共同用來形成模擬語音信號的長期特性和短期特性的級聯(lián)濾波器。當來自固定碼本112的激勵序列驅(qū)動該級聯(lián)濾波器時,該級聯(lián)濾波器生成表示原始語音信號s(n)的重構(gòu)版本的合成語音信號 編碼器100通過連續(xù)地生成一系列的合成語音信號 、連續(xù)地比較該合成語音信號 和原始語音信號s(n)以及連續(xù)地調(diào)整譯碼器模塊102的操作參數(shù)以最小化 和s(n)之間的差值來選擇最佳激勵序列。更準確地說,差值計算模塊118形成原始語音信號s(n)和合成語音信號 之間的差值(即誤差信號e(n))。誤差加權(quán)模塊114接收誤差信號e(n)并生成基于感性加權(quán)因數(shù)的加權(quán)誤差信號ew(n)。誤差最小化模塊116使用一個搜索過程來調(diào)整語音譯碼器102的操作參數(shù)以使它產(chǎn)生盡可能最接近原始信號s(n)的合成信號 在達到最佳合成信號 之后,相關(guān)的譯碼器參數(shù)經(jīng)由傳輸媒質(zhì)(沒有示出)傳送到譯碼器地點(沒有示出)。在譯碼器地點的譯碼器包括與編碼器100的譯碼器模塊102相同的結(jié)構(gòu)。譯碼器使用傳送的參數(shù)來再生在編碼器100中計算的最佳的合成信號 。例如,編碼器100可以傳送表示在固定碼本112中最優(yōu)激勵信號位置的碼本索引連同相關(guān)的濾波器參數(shù)或系數(shù)(例如LPC和LTP參數(shù))。傳送這些參數(shù)以代替輸入語音信號的更直接表示會顯著地減少傳送語音信息所需要的帶寬。
圖3示出圖1中示出的綜合分析編碼器100的一種修改。圖3中示出的編碼器300包括成幀模塊304、LPC分析模塊306、LPC濾波器308、差值計算模塊318、誤差加權(quán)模塊314、誤差最小化模塊316以及固定碼本312。這些單元總地都各自對應于圖1中示出的相似名字的部分。然而在圖3中,LTP濾波器110被自適應碼本320代替。另外,加法器模塊322把從自適應碼本320和固定碼本312輸出的激勵信號加起來。
編碼器300基本上以與圖1的編碼器100相同的方式運行。然而在編碼器300中,自適應碼本320模擬語音信號的長期特性。另外,施加于LPC濾波器308的激勵信號表示自適應碼本320輸入項和固定碼本312輸入項的總和。
1.2GSM增強型全速率編碼(GSM-EFR)現(xiàn)有技術(shù)提供上面描述的CELP設(shè)計的許多具體的實施。一個這樣的實施是GSM增強型全速率(GSM-EFR)語音代碼轉(zhuǎn)換標準,該標準在歐洲電信標準協(xié)會(ETSI)1996年十一月的“Global System for MobileCommunicationsDigital Cellular Telecommunications SystemsEnhanced full Rate(EFR)Speech Transcoding(GSM 06.60)(全球移動通信系統(tǒng)數(shù)字蜂窩電信系統(tǒng)增強型全速率(EFR)語音代碼轉(zhuǎn)換(GSM 06.60))”中描述,在這里將其整體引入作為參考。
GSM-EFR標準使用下式模擬語音信號的短期性質(zhì)H(z)=1/A^(z)=1/(1+Σi=1ma^iz-i)]]>(式3)其中 表示量化的線性預測參數(shù)。該標準使用下式模擬語音信號的長期特征1/B(z)=1/(1-gpz-T)(式4)其中T與音調(diào)延遲有關(guān),gp與音調(diào)增益有關(guān)。自適應碼本實施音調(diào)合成。另外,GSM-EFR標準使用由下式定義的感性加權(quán)濾波器W(z)=(A(z/γ1))/(A(z/γ2))(式5)其中A(z)定義未量化的LPC濾波器,γ1和γ2表示感性加權(quán)因數(shù)。最后,GSM-EFR標準使用自適應且固定的(創(chuàng)新的)碼本提供激勵信號。特別是,固定的碼本形成基于交織的單脈沖置換(ISPP)設(shè)計構(gòu)成的代數(shù)碼本。激勵矢量由固定數(shù)目的、算術(shù)地計算的異于零的脈沖組成。激勵由碼本中選擇的脈沖位置和符號規(guī)定。
在操作中,GSM-EFR編碼器把輸入語音信號分成20ms幀,而20ms幀又分為4個5ms子幀。然后,編碼器每幀執(zhí)行兩遍LPC分析。更準確地說,GSM-EFR編碼器使用自相關(guān)方法用30ms不對稱窗口來計算短期參數(shù)。在LPC分析中沒有使用超前(look-ahead)。超前是指在執(zhí)行分析時使用來自將來的幀的樣本。
然后,各個LP系數(shù)被轉(zhuǎn)換為線性頻譜對(LSP)表示以便使用LSP預測器進行量化和插值。LSP分析把濾波器系數(shù)映射到單位圓上-π到π范圍內(nèi)以產(chǎn)生線譜頻率(LSF)數(shù)值。相對于比特誤差,使用LSF數(shù)值與使用LPC數(shù)值相比較提供更好的健壯性和穩(wěn)定性。另外,與使用LPC數(shù)值相比較,使用LSF數(shù)值允許更有效的信息量化。GSM-EFR特別地使用下列的預測器方程式來計算隨后被量化的殘余LSFres=LSF-LSFmean-predFactor·LSFprev,res(式6)項LSFres是指幀n的LSF殘余矢量。量(LSF-LSFmean)定義在幀n處去除均值的LSF矢量。項(predFactor·LSFprev,res)是指在幀n處預測的LSF矢量,其中,predFactor是指預測因數(shù)常數(shù),且LSFprev,res是指來自過去的幀(即幀n-1)的第二殘余矢量。譯碼器按照下面的式7使用反向過程LSF=LSFres+LSFmean+predFactor·LSFprev,res(式7)為達到預測的結(jié)果,在譯碼器中先前的殘余LSFprev,res必須有正確的數(shù)值。在重構(gòu)之后,系數(shù)轉(zhuǎn)換為直接濾波器形式,并且在合成語音時使用。
然后編碼器在每半個幀(每10ms)中基于感性加權(quán)的語音信號執(zhí)行所謂的開環(huán)音調(diào)分析以估計音調(diào)滯后。此后,編碼器對每個子幀執(zhí)行許多操作。更準確地說,編碼器通過從加權(quán)的語音信號中減去加權(quán)的合成濾波器W(z)H(z)的零輸入響應以計算目標信號x(n)。然后編碼器計算加權(quán)的合成濾波器的沖激響應h(n)。編碼器使用沖激響應h(n)執(zhí)行所謂的閉環(huán)分析以發(fā)現(xiàn)音調(diào)滯后和增益。閉環(huán)搜索分析涉及到最小化在原始和合成語音之間的均方加權(quán)誤差。閉環(huán)搜索使用開環(huán)滯后計算結(jié)果作為初始估計。此后,編碼器通過去除自適應碼本的貢獻來更新該目標信號x(n),并且編碼器使用總的目標以在該代數(shù)碼本中發(fā)現(xiàn)最佳的改進矢量。然后使用碼本預測器來標量量化該碼本的相關(guān)參數(shù),且使用確定的激勵信號更新濾波器存儲器以在下一個子幀中發(fā)現(xiàn)該目標信號。
編碼器發(fā)送兩組LSP系數(shù)(包含38比特)、音調(diào)延遲參數(shù)(包含30比特)、音調(diào)增益參數(shù)(包含16比特)、代數(shù)碼參數(shù)(包含140比特)以及碼本增益參數(shù)(包含20比特)。譯碼器接收這些參數(shù)并通過復制由所發(fā)送參數(shù)表示的編碼器條件來重構(gòu)該合成的語音。
1.3GSM-EFR編碼中的誤差隱藏(EC)歐洲電信標準協(xié)會(ETSI)在1997年四月5.1.2版的“DigitalCellular Telecommunications SystemSubstitution and Muting ofLost Frames for Enhanced Full rate(EFR)Speech Trafficchannels(GSM 06.61)(數(shù)字蜂窩電信系統(tǒng)用于增強型全速率(EFR)語音業(yè)務(wù)信道(GSM 06.61)的丟失幀的取代和靜噪)”中建議在GSM-FER中使用誤差隱藏,在這里將其整體上引入作為參考。參考的標準建議具有0到6共七個狀態(tài)的示范性狀態(tài)機。壞幀指示(BFI)標記指示當前語音幀是否包含錯誤(狀態(tài)=0表示沒有錯誤,狀態(tài)=1表示有錯誤)。先前壞幀指示(PrevBFI)標記指示先前語音幀是否包含錯誤(狀態(tài)=0表示沒有錯誤,狀態(tài)=1表示有錯誤)。狀態(tài)0相當于這樣一個狀態(tài),其中當前幀和過去的幀都沒有包含錯誤(即BFI=0,PrevBFI=0)。當在當前幀中檢測到一個錯誤(可以對幀使用8-比特循環(huán)冗余碼校驗檢測錯誤)時狀態(tài)機前進到狀態(tài)1。狀態(tài)機在后來的幀中檢測到更多的錯誤后會連續(xù)地前進到更高的狀態(tài)(直到最大狀態(tài)6)。若狀態(tài)機當前在狀態(tài)6,當檢測到一個好(即無錯誤)幀時它回到狀態(tài)5,除此之外當檢測到一個好幀時狀態(tài)機回到狀態(tài)0。
取決于標記BFI和PrevBFI的狀態(tài)以及數(shù)值,譯碼器執(zhí)行不同的誤差隱藏操作。BFI=0和PrevBFI=0(在狀態(tài)0中)狀況與接收到兩個連續(xù)的無錯誤幀有關(guān)。在這種狀況下,譯碼器以在GSM-FER 6.60標準中提出的典型的方式處理語音參數(shù)。然后,譯碼器保存語音參數(shù)的當前幀。
BFI=0和PrevBFI=1(在狀態(tài)0或5中)狀況與在接收到一個“壞”幀之后接收到一個無錯誤幀有關(guān)。在這種狀況下,譯碼器將LTP增益和固定的碼本增益限制為用于該最近接收到的好子幀的數(shù)值。換句話說,如果當前LTP增益(gp)的數(shù)值等于或小于最近接收的好的LTP增益,那么就使用當前LTP增益。然而,如果當前LTP增益的數(shù)值大于最近接收的好的LTP增益,那么就使用最近的LTP增益數(shù)值來代替當前LTP增益。固定碼本的增益數(shù)值以相似的方式調(diào)整。
BFI=1(在狀態(tài)1到6的任何狀態(tài)中,且PrevBFI=0或1)狀況指示在當前幀中檢測到一個錯誤。在這種狀況下,當前LTP增益由下列增益代替gp=αstate(n)·gp(-1)如果gp(-1)≤median,否則(式8)gp=αstate(n)·median如果gp(-1)>median,其中g(shù)p表示LTP濾波器的增益,αstate(n)表示衰減系數(shù),αstate(n)隨狀態(tài)n的增加而有連續(xù)地更大的衰減效應(例如αstate(1)=0.98,而αstate(6)=0.20),“median”表示最近五個子幀的gp數(shù)值的中值,且gp(-1)表示先前的子幀。固定碼本的增益數(shù)值以相似的方式調(diào)整。
在上面描述的狀態(tài)(即當BFI=1時)中,譯碼器也通過使用存儲器中最近四個數(shù)值的平均值更新存儲器中的碼本增益。此外,譯碼器使過去的LSF移向它們的均值,即LSF_q1(i)=LSF_q2(i)=β·past_LSF_q(i)+(1-β)·mean_LSF(i)(式9)其中LSF_q1(i)和LSF_q2(i)是來自當前幀的兩個矢量,β是一個常數(shù)(例如0.95),past_LSF_q(i)是來自先前幀的LSF_q2的數(shù)值,且mean_LSF(i)是平均LSF數(shù)值。更進一步,譯碼器用過去的來自第四個子幀的滯后數(shù)值代替LTP-滯后數(shù)值。并且最后,譯碼器接收到的固定碼本激勵脈沖與來自錯誤幀的同樣地使用。
1.4聲碼器圖4示出另一類型的語音譯碼器基于LPC的聲碼器400。在這種譯碼器中,從噪聲矢量404(用于非濁音)或靜態(tài)脈沖波形402(用于濁音語音)創(chuàng)建LPC殘余。增益模塊406按比例調(diào)整該殘余到期望的電平。增益模塊的輸出供應給包括LPC濾波器408的LPC濾波器塊,有下式定義的示范性的函數(shù)A(z)=Σi=1naiz-i]]>(式10)其中ai表示可以通過最小化預測器誤差的均方來計算的濾波器系數(shù)。一種已知的聲碼器稱為“LPC-10”。這種譯碼器為美國軍方開發(fā)以提供低比特速率的通信。LPC-10聲碼器使用22.5ms幀,相當于均等的54比特/幀以及2.4k比特/秒。
在操作中,LPC-10編碼器(沒有示出)做出發(fā)音判決以使用該脈沖串或噪聲信號。在LPC-10中,這可以通過形成采樣的輸入信號的低通濾波的版本來執(zhí)行。該判決基于信號的能量、信號的最大最小比和信號的過零點數(shù)目。發(fā)音判決是為當前幀的每一半做出的,并且最終的發(fā)音判決基于這些兩半幀判決和來自下兩個幀的判決。
從低通且反向濾波的信號確定音調(diào)。從信號的均方根值(RMS)確定音調(diào)增益。相關(guān)的、表征該編碼的參數(shù)被量化、發(fā)送到該譯碼器并在譯碼器中用于產(chǎn)生合成的信號。更準確地說,這種編碼技術(shù)提供具有十個系數(shù)的編碼。
聲碼器400使用的合成模型比GSM-EFR技術(shù)更簡單,且因此比GSM-EFR技術(shù)使用較少的比特表示語音,然而這卻導致較次的質(zhì)量。低比特速率使聲碼器象冗余的編碼器一樣適合于語音(將在下面描述)。聲碼器模擬濁音和非濁音時工作良好,但不能精確地處理爆破音(表示聲道阻塞的完全閉合和隨后的釋放)和非語音信息(例如音樂)。
關(guān)于常規(guī)語音編碼的進一步的細節(jié)可以從這本書中找到,即Digital SpeechCoding for Low Bit Rate Communication Systems(數(shù)字語音用于低比特速率通信系統(tǒng)的編碼),A.M.Kondoz,1994,John Wiley和Sons,在這里將其整體引入作為參考。
2.前向糾錯(FEC)一旦被編碼,通信系統(tǒng)就可以以多種格式傳送語音?;诜纸M的網(wǎng)絡(luò)在一系列的離散分組中傳送聲頻數(shù)據(jù)。
基于分組的業(yè)務(wù)可能受到高分組丟失率、抖動和再排序的影響。前向糾錯(FEC)是致力于丟失分組問題的一種技術(shù)。通常,F(xiàn)EC涉及到隨同編碼的語音一起發(fā)送冗余的信息。譯碼器試圖使用該冗余信息重構(gòu)丟失的分組。媒質(zhì)無關(guān)的FEC技術(shù)基于該聲頻流中的比特添加冗余信息(與語音流的特征的更高級知識無關(guān))。換句話說,與媒質(zhì)相關(guān)的FEC技術(shù)基于該語音流的特征添加冗余信息。
Schuster等人的美國專利No.5,870,412描述了一種獨立于媒質(zhì)的技術(shù)。這種方法給一連串有效負載分組中的每一個有效負載分組附加單個前向糾錯碼。通過取前面指定數(shù)目的有效負載分組的XOR(異或)和來定義該糾錯碼。接收機可以由后繼分組攜帶的冗余糾錯碼來重構(gòu)丟失的有效負載,并且也可以糾正在一行中丟失的多個分組。這種技術(shù)的缺點是它使用可變的延遲。另外,XOR結(jié)果的尺寸必須與在計算中使用的最大有效負載的尺寸相同。
圖5示出一個基于媒質(zhì)的FEC技術(shù)的概述。編碼器模塊502包括主編碼器508和冗余編碼器510。分組器516接收主編碼器508和冗余編碼器510的輸出,并經(jīng)由傳輸媒質(zhì)506發(fā)送它的輸出。譯碼器模塊504包括主譯碼器512和冗余譯碼器514。主譯碼器512和冗余譯碼器514的輸出由控制邏輯518控制。
在操作中,主編碼器508使用主合成模型產(chǎn)生主編碼的數(shù)據(jù)。冗余編碼器510使用冗余合成模型產(chǎn)生冗余編碼的數(shù)據(jù)。與主合成模型相比較,冗余合成模型典型地提供語音的更強地壓縮的版本(例如,其結(jié)果是更小的帶寬和更低的質(zhì)量)。例如,一個已知的方法使用PCM-編碼的數(shù)據(jù)作為主編碼的語音,并使用LPC-編碼的數(shù)據(jù)作為冗余編碼的語音(注意,例如,V.Hardman等人的“Reliable Audio for Use Over theInternet(在因特網(wǎng)上使用的可靠聲頻)”,1995,Proc.INET’95)。LPC-編碼的數(shù)據(jù)具有比PCM-編碼的數(shù)據(jù)低得多的比特速率。
圖6示出冗余數(shù)據(jù)(由陰影的塊表示)如何附加到主數(shù)據(jù)(由非陰影的塊表示)上。例如,參考最上面的行的分組,第一個分組包含幀n的主數(shù)據(jù)。先前幀即幀n-1的冗余數(shù)據(jù)附加到這個主數(shù)據(jù)上。以這種方式,分組中的冗余數(shù)據(jù)始終是涉及先前發(fā)送的主數(shù)據(jù)。這種技術(shù)提供單級別冗余度,但可能提供附加的級別(通過發(fā)送冗余數(shù)據(jù)的附加的副本)。
具體的格式已被提出以用于附加冗余數(shù)據(jù)到主數(shù)據(jù)有效負載上。例如,Perkins等人已提出具體的格式用于在實時傳送協(xié)議(RTP)中附加LPC-編碼的冗余數(shù)據(jù)到主有效負載數(shù)據(jù)上(例如注意,C.Perkins等人的“RTP Payload for Redundant Audio Data(用于冗余聲頻數(shù)據(jù)的RTP有效負載)”,1997年9月,RFC 2198)。分組頭標包括關(guān)于主數(shù)據(jù)的信息和關(guān)于冗余數(shù)據(jù)的信息。例如,頭標包括用于提供主編碼的時間標記的域,該域指示數(shù)據(jù)主編碼的時間。這個頭標也包括偏移時間標記,該偏移時間標記指示在分組中表示的主編碼和冗余編碼之間的時差。
參考圖5和圖6,譯碼器模塊504接收既包含主數(shù)據(jù)又包含冗余數(shù)據(jù)的分組。譯碼器模塊504包括用于分離主數(shù)據(jù)和冗余數(shù)據(jù)的邏輯(沒有示出)。主譯碼器512譯碼主數(shù)據(jù),而冗余譯碼器514譯碼冗余數(shù)據(jù)。更具體地說,當包含幀n的冗余數(shù)據(jù)的下一個分組到達時,譯碼器模塊504譯碼幀n的主數(shù)據(jù)。這個延遲增加到再現(xiàn)(playback)上,在圖6中用圖表表示法由圖例“額外延遲”表示。
在現(xiàn)有技術(shù)中,當接收到包含主編碼數(shù)據(jù)的分組時,控制邏輯518命令譯碼器模塊504使用由主譯碼器512生成的合成的語音。另一方面,當包含主數(shù)據(jù)的分組“丟失”時,控制邏輯518命令譯碼器模塊504使用由冗余譯碼器514生成的合成的語音。在這樣的情況下,控制邏輯518僅僅用于用冗余編碼的幀填充接收到的主編碼的幀流中的間隙。例如,在上面參考的Hardman等人的文章中描述的技術(shù)中,當在PCM-編碼的流中檢測到分組丟失后,譯碼器將譯碼LPC-編碼的數(shù)據(jù)而不是PCM-編碼的數(shù)據(jù)。
使用常規(guī)FEC來改善基于分組的聲頻傳輸?shù)馁|(zhì)量并不完全令人滿意。例如,語音合成模型使用過去操作狀態(tài)的參數(shù)在當前操作狀態(tài)中生成精確的語音合成。在這種意義上,這種模型是“依賴于歷史的”。例如,代數(shù)碼激勵線性預測(ACELP)語音模型使用以前產(chǎn)生的合成來更新它的自適應碼本。LPC濾波器、誤差隱藏歷史和多種量化預測器也使用先前的狀態(tài)以在當前狀態(tài)中精確地生成語音。因此,由于主數(shù)據(jù)的丟失,即使譯碼器能夠使用冗余的數(shù)據(jù)重構(gòu)丟失的幀,主合成模型的“存儲器”也是不完善的。這可能在語音合成質(zhì)量中造成“拖延”問題。例如,更新不足的自適應碼本可能造成多于十幀的失真波形。常規(guī)的FEC技術(shù)沒有解決這些類型的拖延問題。
此外,基于FEC的語音編碼技術(shù)可能遭受FEC技術(shù)至今沒有解決的許多其他問題的影響。例如,在使用線性預測器的綜合分析技術(shù)中,相位的不連續(xù)性可能是非常容易聽見的。在使用自適應碼本的技術(shù)中,位于反饋環(huán)中的相位誤差可能會保持很多幀。另外,在使用編碼時預測的LP系數(shù)的語音編碼器中,LPC參數(shù)的丟失會降低預測器的精度。在LPC語音編碼技術(shù)中這將會把誤差引入到最重要的參數(shù)中去。
發(fā)明概述因此,本發(fā)明的總的目的是改善使用FEC技術(shù)產(chǎn)生的語音的質(zhì)量。
本發(fā)明通過改善的用于編碼語音數(shù)據(jù)的FEC技術(shù)達到這個和其他目的。在該技術(shù)中,編碼器模塊使用主合成模型主編碼輸入語音信號以生成主編碼的數(shù)據(jù),并使用冗余合成模型冗余編碼該輸入語音信號以生成冗余編碼的數(shù)據(jù)。分組器合并主編碼的數(shù)據(jù)和冗余編碼的數(shù)據(jù)成為一連串的分組,并經(jīng)由基于分組的網(wǎng)絡(luò)例如互聯(lián)網(wǎng)協(xié)議(IP)網(wǎng)絡(luò)發(fā)送該分組。譯碼模塊使用主合成模型主譯碼該分組,并使用冗余合成模型冗余譯碼該分組。該技術(shù)在譯碼期間和譯碼之后提供在主合成模型和冗余合成模型之間的交互作用以改善合成的輸出語音信號的質(zhì)量。例如,這樣的“交互作用”可以采取在一個模型中使用其他模型更新狀態(tài)的形式。
另外,本技術(shù)利用主幀和冗余幀的FEC交叉耦合(即把幀n的主數(shù)據(jù)和幀n-1的冗余數(shù)據(jù)耦合在一起)以在編碼器模塊和譯碼器模塊處提供超前的處理。超前處理補充關(guān)于語音信號的可用信息并因此改善輸出的合成語音的質(zhì)量。
兩個模型進行交互式協(xié)作以編碼語音信號,這大大地擴展常規(guī)系統(tǒng)在此以前所預期的冗余編碼的使用。
附圖簡述本發(fā)明前述的和其它的目的、特性和優(yōu)點在結(jié)合附圖閱讀下列更詳盡描述后將更容易理解,其中圖1示出常規(guī)碼激勵線性預測(CELP)編碼器;圖2說明由圖1的CELP編碼器生成的殘余;圖3示出使用自適應碼本的另一種CELP編碼器;圖4示出常規(guī)的聲碼器;圖5示出在分組化的網(wǎng)絡(luò)中執(zhí)行前向糾錯的常規(guī)系統(tǒng);圖6示出在圖5的系統(tǒng)中合并主信息和冗余信息的實例;圖7示出依照本發(fā)明的一個實例在分組化的網(wǎng)絡(luò)中執(zhí)行前向糾錯的系統(tǒng);圖8示出在本發(fā)明中使用的編碼器模塊的實例;圖9示出在本發(fā)明的一個實例中冗余編碼器子幀的劃分;以及圖10示出在圖7示出的譯碼器模塊控制邏輯中使用的狀態(tài)機的實例。
發(fā)明詳述在下列的描述中,為了解釋而并非為了限制,闡明具體的細節(jié)以便提供對本發(fā)明的全面理解。然而,一個本領(lǐng)域的技術(shù)人員將很清楚,本發(fā)明可以在脫離這些具體的細節(jié)的其他實施方案中實行。在其他實例中,省略眾所周知的方法、裝置和電路以免用不必要的細節(jié)使本發(fā)明的描述模糊不清。在附圖中,相似的數(shù)字表示相似的特征。
本發(fā)明總地應用于使用前向糾錯技術(shù)來處理聲頻數(shù)據(jù)。然而為便于討論,下列的解釋將在語音信號編碼的具體上下文中進行組織。
1.概述圖7示出用于實施本發(fā)明的示范性系統(tǒng)700的概述,包括編碼器模塊702和譯碼器模塊704。編碼器模塊702包括用于產(chǎn)生主編碼的數(shù)據(jù)的主編碼器708和用于產(chǎn)生冗余編碼的數(shù)據(jù)的冗余編碼器710。在編碼器模塊702中的控制邏輯720控制主編碼器708和冗余編碼器710的操作狀況。分組器716接收來自主編碼器708和冗余編碼器710的輸出,并進而經(jīng)由傳輸媒質(zhì)706發(fā)送主編碼的數(shù)據(jù)和冗余編碼的數(shù)據(jù)。譯碼器模塊704包括由控制邏輯718控制的主譯碼器712和冗余譯碼器714。另外,譯碼器模塊704包括接收緩沖器(沒有示出),以用于至少在接收到的分組的冗余數(shù)據(jù)在隨后的分組中到達之前臨時存儲該接收到的分組。
在操作中,主編碼器708使用主編碼技術(shù)編碼輸入語音(基于主合成模型),而冗余編碼器710使用冗余編碼技術(shù)編碼輸入語音(基于冗余合成模型)。與主編碼技術(shù)相比較,盡管冗余編碼技術(shù)不是必需的,但它典型地提供較小的帶寬。分組器716合并主編碼的數(shù)據(jù)和冗余編碼的數(shù)據(jù)成為一連串的分組,其中每個分組包括主數(shù)據(jù)和冗余數(shù)據(jù)。更準確地說,分組器716能夠使用圖6說明的FEC技術(shù)。在這種技術(shù)中,包含當前幀即幀n的主數(shù)據(jù)的分組與屬于前一個幀即幀n-1的冗余數(shù)據(jù)相合并。這種技術(shù)提供單級冗余度。分組器716能夠使用任何已知的分組格式合并主數(shù)據(jù)和冗余數(shù)據(jù),例如在發(fā)明背景部分討論的由Perkins等人提出的格式(例如其中,分組頭標包括關(guān)于主有效負載和冗余有效負載的信息,包括關(guān)于兩個有效負載的時間標記信息)。
分組器716在分組裝配之后經(jīng)由傳輸媒質(zhì)706轉(zhuǎn)發(fā)分組。傳輸媒質(zhì)706可以表示任何基于分組的傳輸系統(tǒng)例如互聯(lián)網(wǎng)協(xié)議(IP)網(wǎng)絡(luò)??商娲兀到y(tǒng)700可以不傳輸分組而是簡單地在存儲媒質(zhì)中存儲分組以用于以后的檢索。
譯碼器模塊704接收分組并使用主譯碼器712和冗余譯碼器714重構(gòu)語音信息。通常,譯碼器模塊704使用主譯碼器712譯碼主數(shù)據(jù),并且當主數(shù)據(jù)不可用時使用冗余譯碼器714譯碼冗余數(shù)據(jù)。更準確地說,控制邏輯718可以使用狀態(tài)機支配主譯碼器712和冗余譯碼器714的操作。狀態(tài)機中的每個狀態(tài)反映譯碼器模塊704經(jīng)歷的不同錯誤狀況。每個狀態(tài)也定義用于譯碼當前數(shù)據(jù)幀的指令。就是說,該指令規(guī)定適于不同錯誤狀況的不同譯碼策略以譯碼當前幀。更準確地說,該策略包括使用主合成模型、使用冗余合成模型和/或使用誤差隱藏算法。錯誤狀況取決于在先前幀中使用的編碼策略、在當前幀中主數(shù)據(jù)和冗余數(shù)據(jù)的可用性以及下一分組收到或沒有收到。分組收到或沒有收到會觸發(fā)狀態(tài)間的轉(zhuǎn)移。
不同于常規(guī)的系統(tǒng),系統(tǒng)700提供若干機制以提供主合成模型和冗余合成模型之間的交互作用。更準確地說,編碼器模塊控制邏輯720包括控制機制,以用于提供分別由主編碼器和冗余編碼器(即編碼器708和710)使用的主合成模型和冗余合成模型之間的交互作用。同樣,譯碼器模塊控制邏輯718包括控制機制,以用于提供分別由主譯碼器和冗余譯碼器(即譯碼器712和714)使用的主合成模型和冗余合成模型之間的交互作用。圖7用圖表形式使用箭頭750示出主編碼器708和冗余編碼器710之間的交互作用,使用箭頭752示出主譯碼器712和冗余譯碼器714之間的交互作用。
下列部分給出在系統(tǒng)700中使用的、提供上述在主合成模型和冗余合成模型之間交互作用的特征以及其他新FEC語音編碼特征的概述。
1.1在譯碼器模塊中更新狀態(tài)如在發(fā)明背景部分討論的,常規(guī)的FEC技術(shù)通過基本地用冗余編碼的數(shù)據(jù)替代丟失的主編碼的數(shù)據(jù)來運行其功能,但是沒有更新主合成模型的“存儲器”以反映該主數(shù)據(jù)的丟失。為解決這個問題,本發(fā)明使用從冗余合成模型搜集的信息以更新該主合成模型的狀態(tài)。類似地,譯碼器模塊704可以使用從主合成模型獲得的參數(shù)信息補救在冗余合成模型中“存儲器”的不足。因此,一般而言,兩個模型“互相幫助”以供給丟失的信息。相比較而言,在常規(guī)FEC中,兩個模型沒有共享信息。
當然,用于更新模型的具體策略取決于模型的要求。一些模型可能比其他模型對過去的狀態(tài)有更多的需求相關(guān)性。它也取決于在譯碼器模塊704給出的主要的錯誤狀況。重復一遍,錯誤狀況由在先前幀中使用的譯碼語音(例如主數(shù)據(jù)、冗余數(shù)據(jù)、誤差隱藏)的策略、在當前幀中數(shù)據(jù)(例如主數(shù)據(jù)或冗余數(shù)據(jù))的可用性以及下一幀收到或沒有收到來表征。于是,譯碼指令與狀態(tài)機的各個狀態(tài)有聯(lián)系,它們對誤差狀況是特定的,且優(yōu)選地也定義用于更新合成模型的方法。以這種方式,譯碼器模塊704為主要的誤差狀況設(shè)計合適的更新策略。
幾個實例將用于說明本發(fā)明的更新特征。例如,考慮這種狀態(tài),其中,譯碼器模塊704還沒有接收到當前幀的主數(shù)據(jù)(即主數(shù)據(jù)丟失),但已接收到攜帶當前幀冗余數(shù)據(jù)的下一幀的分組。在這個狀態(tài)下,譯碼器模塊704基于當前幀的冗余數(shù)據(jù)來譯碼語音。然后,用譯碼的數(shù)值更新主合成模型。例如,基于CELP的模型可以需要更新它的自適應碼本、LPC濾波器、誤差隱藏歷史和多種量化預測器。冗余參數(shù)可能需要某種形式的轉(zhuǎn)換以適應于在主譯碼器中使用的參數(shù)格式。
考慮具體情況,其中,譯碼器模塊704使用基于GSM-EFR編碼的主合成模型。如在發(fā)明背景部分討論的,GSM-EFR模型使用量化預測器以在量化前減小LPC參數(shù)的動態(tài)范圍。在這種情況下,譯碼器模塊704也使用冗余合成模型,該冗余合成模型沒有使用量化預測器,因此譯碼器模塊704提供“絕對的”編碼的LPC。在這種方法中,主合成模型提供與LSF殘余(即LSFres)有關(guān)的信息,而冗余模型提供與這些系數(shù)(即LSFred)的絕對LSF數(shù)值有關(guān)的信息。譯碼器模塊704使用該殘余和絕對數(shù)值用下面的式11計算預測器狀態(tài),因此可很快地更新預測器LSFprev,res=(LSFred-LSFmean-LSFres)/predFactor(式11)其中,項LSFmean定義平均LSF數(shù)值,項predFactor是指預測因數(shù)常數(shù),且LSFprev,res是指來自過去的幀(即幀n-1)的殘余LSF。譯碼器模塊704使用更新的預測器狀態(tài)把LSF殘余譯碼為LPC系數(shù)(例如使用上面的式7)。
當預測器狀態(tài)已由于分組的丟失而變得不可靠時,使用式11將特別有利。
1.2譯碼器模塊超前如在圖6中說明,譯碼器模塊704必須延遲包含在分組中的主數(shù)據(jù)的譯碼直到它接收到下一個分組為止。在主數(shù)據(jù)的接收和譯碼之間的延遲允許譯碼器模塊704使用主數(shù)據(jù)用于任何形式的預譯碼處理以改善語音合成的質(zhì)量。此處這被稱為“譯碼器超前”。例如,考慮這種情況,其中,譯碼器模塊704未能接收到包含主編碼的幀n的分組,但隨后接收到包含幀n+1的主編碼的數(shù)據(jù)的分組,該分組包括幀n的冗余編碼的數(shù)據(jù)。據(jù)此,譯碼器模塊704將使用冗余數(shù)據(jù)譯碼幀n的數(shù)據(jù)。同時,譯碼器模塊704可以使用幀n+1(尚未譯碼)的主數(shù)據(jù)用于超前處理。例如,幀n+1的主數(shù)據(jù)可以用于改善能量電平的插值以在幀n和幀n+1之間提供更平滑的轉(zhuǎn)移。超前也可以在LPC插值中使用以在靠近幀末端處提供更精確的插值結(jié)果。
1.3編碼器模塊超前如前面解釋的,編碼器模塊702的分組器716把屬于當前幀的主數(shù)據(jù)和屬于先前幀的冗余數(shù)據(jù)合并起來;例如,分組器把屬于幀n的主數(shù)據(jù)和屬于幀n-1的冗余數(shù)據(jù)合并起來。據(jù)此,譯碼器模塊702必須延遲一幀去傳輸冗余編碼的數(shù)據(jù)。由于這一幀的延遲,冗余編碼器710也可以延遲它對冗余數(shù)據(jù)的編碼,以便合并在一個分組中的所有數(shù)據(jù)(主數(shù)據(jù)和冗余數(shù)據(jù))同時譯碼。例如,編碼器模塊702可以在編碼幀n的主數(shù)據(jù)的同時編碼幀n-1的冗余數(shù)據(jù)。因此,在譯碼之前的短暫時間內(nèi)冗余數(shù)據(jù)是可用的。冗余數(shù)據(jù)(例如冗余幀n-1)的預先可用性為超前處理提供機會。超前處理的結(jié)果可以用于改善幀的后續(xù)冗余處理。例如,聲碼器合成模型(用于冗余合成模型)中的發(fā)音判決可以通過在它的計算中使用超前數(shù)據(jù)而改善。當濁音段實際開始時,這將導致較少的相關(guān)錯誤判決。
譯碼器模塊702中的超前可以以多種方式實施,例如通過使用控制邏輯720以協(xié)調(diào)主編碼器708和冗余編碼器710之間的交互作用。
1.4維護音調(diào)脈沖相位音調(diào)相位(即音調(diào)脈沖位置)提供有用信息以用于執(zhí)行FEC技術(shù)。在第一種情況下,譯碼器模塊704識別在與先前幀有關(guān)的自適應碼本中的最近脈沖的位置。更準確地說,模塊704可以通過計算自適應碼本和預先確定的音調(diào)脈沖之間的相關(guān)以定位音調(diào)脈沖位置。然后,可以通過定位該相關(guān)的一個或多個尖峰而確定該音調(diào)脈沖相位。然后,譯碼器模塊704基于最近脈沖的位置和音調(diào)滯后的知識來識別在當前幀中隨后的脈沖應該放置的位置。它通過把一個或多個基音周期從最近脈沖的位置向前移動到新幀中而實現(xiàn)該功能。這種技術(shù)的一種具體應用是,GSM-EFR用作主譯碼器,并且基于聲碼器的模型用作冗余譯碼器。當未能接收主數(shù)據(jù)時,譯碼器模塊704將使用冗余數(shù)據(jù)。在這種環(huán)境下,譯碼器模塊704使用該技術(shù)、基于從自適應碼本提取的相位信息來放置該聲碼器音調(diào)脈沖。這有助于確保不會把聲碼器音調(diào)脈沖放置在完全錯誤的周期內(nèi)。
在第二種情況下,編碼器模塊702在冗余編碼中確定且發(fā)送與原始語音信號的音調(diào)相位有關(guān)的信息(例如音調(diào)脈沖位置和音調(diào)脈沖符號)。此外,可以通過計算自適應碼本和預先確定的音調(diào)脈沖之間的相關(guān)而獲得該信息。在接收到音調(diào)相位信息后,譯碼器模塊704可以比較接收到的音調(diào)相位信息和使用自適應碼本檢測的音調(diào)相位信息(以上面描述的方式計算)。冗余編碼的音調(diào)相位信息和自適應碼本音調(diào)相位信息之間的差值構(gòu)成相位不連續(xù)性。為解決這個影響,該技術(shù)可以為了在幀的末端提供正確的相位而在當前幀期間調(diào)整基音周期。因而,當自適應碼本更新時它將接收到正確的相位信息。這種技術(shù)的一種具體應用是,GSM-EFR技術(shù)用作主譯碼器,并且基于聲碼器的模型用作冗余譯碼器。此外,當未能接收到主數(shù)據(jù)時,譯碼器模塊704將使用冗余數(shù)據(jù)。在這種景況下,聲碼器從冗余編碼器接收關(guān)于脈沖位置和符號的信息。然后,它以上面描述的方式從自適應碼本計算脈沖應該出現(xiàn)的位置。接收的位置和計算的位置之間的任何相位差值在幀上平滑,以致于在幀的末端相位將是正確的。這將確保譯碼器模塊704在下一幀中返回去使用主譯碼(例如GSM-EFR譯碼)之后將有存儲在自適應碼本中的正確相位信息。
作為第二種情況的替代情況,冗余譯碼器沒有從編碼器地點接收關(guān)于脈沖位置的信息。相反地,它從下一幀中的譯碼的主數(shù)據(jù)計算脈沖位置。這通過從下一主幀提取脈沖相位信息并且然后后退入當前幀以在當前幀中確定正確的脈沖位置來完成。然后該信息與按照上面描述的方法從先前幀計算的另一個脈沖位置指示相比較。任何位置差異可以按照上面描述的方法糾正(例如通過在當前幀期間平滑相位誤差以使下一幀將有如自適應碼本中反映的正確相位)。
1.5冗余參數(shù)的可替代選擇圖8示出在FEC技術(shù)中使用的可替代的編碼器模塊800。編碼器800包括連接到分組器808的主編碼器802。提取器804從主編碼器802提取參數(shù)信息。延遲模塊806延遲提取的參數(shù),例如延遲一幀時間。延遲模塊806把延遲的冗余參數(shù)轉(zhuǎn)發(fā)到分組器808。
在操作中,提取器804從主編碼的參數(shù)選擇一個參數(shù)子集。該子集的選擇應該允許從冗余參數(shù)創(chuàng)建合成的語音,并且當需要時允許主合成模型中狀態(tài)的更新。例如,LPC、LTP滯后和增益數(shù)值將適合于在一種綜合分析編碼技術(shù)中復制。在一種情況下,提取器提取由主編碼器生成的所有參數(shù)。這些參數(shù)可以轉(zhuǎn)換為不同格式以用減少的帶寬表示這些參數(shù)(例如,通過使用與主編碼器802使用的主合成模型相比需要較少比特的一種方法來量化這些參數(shù))。延遲模塊806把冗余參數(shù)延遲一幀,且分組器把延遲的冗余參數(shù)與主編碼的參數(shù)使用例如圖6中說明的FEC協(xié)議合并在一起。
2.實例2.1與FEC一起使用的主編碼器和冗余編碼器在發(fā)明背景部分中討論的GSM-EFR語音編碼標準可以用于編碼主語音數(shù)據(jù)流。GSM-EFR標準在1996年十一月的“Global System for MobileCommunicationsDigital Cellular Telecommunications SystemsEnhanced Full Rate(EFR)Speech Transcoding(GSM 06.60)(全球移動通信系統(tǒng)數(shù)字蜂窩電信系統(tǒng)增強型全速率(EFR)語音代碼轉(zhuǎn)換(GSM 06.60))”中進一步描述。如上面描述,GSM-EFR語音編碼標準使用代數(shù)碼激勵線性預測(ACELP)編碼器。GSM-EFR的ACELP編碼包含160個樣本的20ms幀,相當于244比特/幀以及12.2kb/s的編碼的比特流。另外,主編碼器使用在1997年四月5.1.2版的“DigitalCellular Telecommunications SystemSubstitution and Muting ofLost Frames for Enhanced Full Rate(EFR) Speech Trafficchannels(GSM 06.61)(數(shù)字蜂窩電信系統(tǒng)用于增強型全速率(EFR)語音業(yè)務(wù)信道(GSM 06.61)的丟失幀的取代和靜噪)”中描述的誤差隱藏技術(shù)(也在上面作了概括)。
聲碼器可以用于編碼語音數(shù)據(jù)的冗余流。在這個實例中使用的聲碼器引入在發(fā)明背景部分討論的LPC-10聲碼器的某些特征以及GSM-EFR系統(tǒng)的其他特征。基于GSM-EFR的特征使聲碼器的輸出更容易與由GSM-EFR主編碼器生成的主數(shù)據(jù)兼容。例如,LPC-10聲碼器使用22.5ms幀,而GSM-EFR編碼器使用20ms幀。因此,混合設(shè)計引入20ms幀的使用。為這種FEC應用設(shè)計的混合聲碼器稱為“GSM-VOC”聲碼器。
GSM-VOC聲碼器包括圖4示出的基本的概念上的配置。換句話說,GSM-VOC包括用于應用激勵信號的功能性,該激勵信號包含噪聲矢量(用于非濁音)或靜態(tài)脈沖波形(用于濁音語音)。然后,LPC濾波器塊處理該激勵以產(chǎn)生合成的信號。
在操作中,GSM-VOC編碼器把輸入語音分割為20ms幀,并使用具有80Hz截止頻率的濾波器對語音作高通濾波。然后計算語音的均方根(RMS)能量值。之后,GSM-VOC使用GSM-EFR標準中提出的方法計算并量化單組LP系數(shù)(然而,與此相反,上面描述的GSM-EFR標準計算兩組系數(shù))。GSM-VOC編碼器基于如GSM-EFR 06.60標準中的、在最近樣本上有更大權(quán)重的窗口導出該單組系數(shù)。編碼器在發(fā)現(xiàn)LP系數(shù)之后計算殘余。
然后編碼器在每半個幀上執(zhí)行開環(huán)音調(diào)搜索。更準確地說,編碼器通過計算80個樣本上的自相關(guān)來執(zhí)行該搜索以找到在18到143個樣本范圍內(nèi)的滯后。然后,編碼器以有利于小滯后的方式加權(quán)該計算的相關(guān)值。這種加權(quán)通過把18到143個樣本的跨距分成三段來完成,也就是第一個跨距為18-35樣本、第二個跨距為36-71樣本以及第三個跨距為72-143樣本。然后,譯碼器確定并加權(quán)來自各段的最大值(以有利于小滯后)并選擇最大的一個。之后,譯碼器比較與兩個半幀有關(guān)的最大值并選擇具有最大相關(guān)值的半幀的LTP滯后。當有多個滯后值在相關(guān)中給出時,小滯后的有利加權(quán)對選擇主(基本)滯后值是有用的。
編碼器基于來自開環(huán)搜索的未加權(quán)的最大相關(guān)值計算該發(fā)音。更準確地說,如圖9中示出,編碼器基于跨越兩個先前的半幀、當前的半幀以及下面的兩個半幀(總計五個相關(guān))的樣本范圍做出發(fā)音判決。編碼器需要20ms的超前以計算下一幀的相關(guān)。FEC技術(shù)提供超前而沒有給編碼器增加額外的延遲。也就是,編碼器模塊把屬于幀n的主數(shù)據(jù)和屬于較早的幀即幀n-1的冗余數(shù)據(jù)合并起來。通過在編碼主幀n的同時編碼冗余幀n-1,冗余編碼器可以訪問該超前幀。換句話說,冗余編碼器在它的冗余編碼之前有機會“研究”冗余幀n-1。
為確定語音是否為濁音,編碼器把示出的五個相關(guān)與三個不同的門限相比較。首先,編碼器從當前幀和下面的兩個半幀計算一個中值,并把該中值與第一個門限相比較。編碼器使用第一個門限迅速地對濁音段的開始做出反應。第二,編碼器計算從所有的五個相關(guān)形成的另一個中值,然后把這個中值與第二個門限相比較。第二個門限低于第一個門限,并用于在濁音段期間檢測發(fā)音。第三,編碼器確定先前的半幀是否為濁音。如果這樣,則編碼器也把從所有的五個相關(guān)形成的中值與第三個門限相比較。第三個門限在這三個門限中是最低的。編碼器使用第三個門限擴展?jié)嵋舳蔚睫D(zhuǎn)移的真點(true point)或越過轉(zhuǎn)移的真點(例如,創(chuàng)建一個“釋放延遲(hang-over)”)。第三個門限將確保編碼器會將發(fā)生從濁音語音到非濁音語音轉(zhuǎn)移的半幀標記為濁音。發(fā)送到譯碼器的信息包括上面計算的兩個半幀的發(fā)音。
編碼器使用改進的GSM-EFR 06.60語音編碼技術(shù)(或改進的IS-641技術(shù))來量化LP系數(shù)。如對GSM-EFR 06.60的描述,它描述了一種預測器,該預測器使用基于先前幀的線譜頻率LSF的預測因數(shù)。與此相反,本技術(shù)的預測器使用平均LSF數(shù)值(其中平均數(shù)值按照GSM-EFR 06.60標準計算)。這去除在量化LPC中對先前幀的依賴性。該技術(shù)聚合基于來自預測的殘余(例如,10殘余)的三個矢量。然后,該技術(shù)把該矢量與統(tǒng)計地產(chǎn)生的表相比較以確定最好的匹配。返回代表最好匹配的表索引。對應于三個矢量的三個索引使用26比特。
另外,編碼器把RMS值轉(zhuǎn)換為dB,然后,盡管可以使用較少的比特(例如五比特或六比特),但編碼器使用七比特線性量化它。發(fā)音狀態(tài)使用兩比特表示在各個半幀中的發(fā)音。音調(diào)有一定范圍(18到143)的樣本。減去數(shù)值18以便使有效的數(shù)值適合于七比特(即提供0到125范圍內(nèi)的樣本)表示。
下面的表1概括上面討論的GSM-VOC中的比特分配。
表1
音調(diào)脈沖位置和它的符號提供用于執(zhí)行FEC技術(shù)的有用信息。這些參數(shù)以一個樣本的分辨率指示一幀中音調(diào)脈沖的起始位置。該信息的使用允許該技術(shù)保持該激勵及其合成與該原始語音同相。通過首先把殘余和一個固定的脈沖波形相關(guān)可以找到這些參數(shù)。然后,在發(fā)音判決的幫助下,在相關(guān)曲線中定位該位置和符號以用于識別正確的半幀(例如,發(fā)音判決可以在非濁音半幀中用于排除已檢測到的“錯誤”脈沖)。與之相對照,獨立的編碼器(即沒有與另一個編碼器耦合以執(zhí)行FEC的編碼器)并沒有規(guī)定任何與脈沖位置(即脈沖相位)有關(guān)的信息。這是因為在一個獨立的聲碼器中只要音調(diào)時期(epoch)具有給定的音調(diào)滯后距離,脈沖相位就是不相關(guān)的。
現(xiàn)在轉(zhuǎn)向譯碼器,GSM-VOC譯碼器從發(fā)音判決和音調(diào)創(chuàng)建激勵矢量。發(fā)音有六個不同的狀態(tài),包括兩個穩(wěn)定狀態(tài)和四個轉(zhuǎn)移狀態(tài)。穩(wěn)定狀態(tài)包括濁音狀態(tài)和非濁音狀態(tài)。轉(zhuǎn)移狀態(tài)包括與從非濁音狀態(tài)到濁音狀態(tài)轉(zhuǎn)移有關(guān)的狀態(tài)以及與從濁音狀態(tài)到非濁音狀態(tài)轉(zhuǎn)移有關(guān)的狀態(tài)。這些轉(zhuǎn)移狀態(tài)發(fā)生在任何一個半幀中,因此定義了四個不同的狀態(tài)。對于幀的濁音部分,譯碼器使用給定的音調(diào)以確定計算的時期(其中,術(shù)語“時期”是指對應于例如一個基音周期的樣本跨度)。另一方面,譯碼器把非濁音幀劃分為各為40樣本的四個時期以用于插值目的。
對于每個音調(diào)時期,譯碼器插值RMS和音調(diào)的新舊數(shù)值(即分別從先前幀和當前幀)以提供更軟的轉(zhuǎn)移。此外,對于濁音,該譯碼技術(shù)從25樣本長的脈沖和低強度噪聲創(chuàng)建激勵。對于非濁音,激勵信號只包括噪聲。更準確地說,在濁音音調(diào)時期內(nèi),譯碼器對脈沖做低通濾波且對噪聲做高通濾波。然后,由1+0.7αA(z)定義的濾波器對創(chuàng)建的激勵進行濾波,其中α是A(z)的增益。如在1982年四月《Speech Technology(語音技術(shù))》40-48頁Tremain.T.的“The Government StandardLinear Predictive Coding(國標線性預測編碼算法LPC-10)”中討論的,這減少合成語音的峰值特性。在RMS數(shù)值比先前幀的RMS數(shù)值增加大于八倍的非濁音幀中,譯碼器增加爆破音。爆破音的位置在第一個非濁音音調(diào)時期中是隨機的,且由連續(xù)的正(增加的)脈沖和負(減去的)脈沖形成的雙脈沖組成。雙脈沖提供來自濾波器的最大響應。然后,該技術(shù)調(diào)整該時期的RMS數(shù)值以與插值的數(shù)值(例如,從過去幀、當前幀以及如果可用的話從下一幀的RMS數(shù)值形成的插值RMS數(shù)值)相匹配。這通過計算合成濾波的激勵的當前RMS數(shù)值來實現(xiàn)。
然后,譯碼器在LSF域內(nèi)為每個40樣本子幀作LPC插值,并且接著把結(jié)果應用于該激勵。用于濁音激勵的脈沖包括偏置。高通濾波器使用80Hz的截止頻率去除該偏置。
現(xiàn)已闡明GSM-VOC冗余編碼器和譯碼器的特征,將描述使用GSM-EFR(用于主編譯碼)和GSM-VOC(用于冗余編譯碼)的全面的FEC技術(shù)的操作。
2.2在FEC中利用主編碼器和冗余編碼器圖10示出在控制邏輯718(圖7)中提供的狀態(tài)機的狀態(tài)圖。每個分組的到達或不到達促使狀態(tài)機在狀態(tài)之間轉(zhuǎn)移(或保留在相同的狀態(tài)中)。更準確地說,下一分組的到達定義了在圖中標記為“0”的轉(zhuǎn)移。下一幀的不到達(即分組丟失)定義了在圖中標記為“1”的轉(zhuǎn)移。下面將標識圖10示出的狀態(tài)的特性。
狀態(tài)EFR Norm狀態(tài)“EFR Norm”指示譯碼器模塊已接收到當前分組和下一分組。
譯碼器模塊依照在例如GSM-EFR 06.60中提出的標準協(xié)議使用主譯碼器來譯碼語音。
狀態(tài)EFR Nxt E狀態(tài)“EFR Nxt E”指示譯碼器模塊已接收到當前分組,但沒有接收到下一分組(注意,圖10中的狀態(tài)圖把從狀態(tài)“EFR Norm”到狀態(tài)“EFR Nxt E”的轉(zhuǎn)移標記為“1”,指示一個分組已丟失)。
在該狀態(tài)下,譯碼器模塊與在狀態(tài)“EFR Norm”中一樣譯碼語音。但是因為該幀的冗余數(shù)據(jù)丟失,故沒有提供RMS參數(shù)數(shù)值。因此,譯碼器模塊計算RMS數(shù)值并把它輸入歷史記錄。相似地,因為發(fā)音狀態(tài)參數(shù)不可用,故譯碼器模塊通過取自相關(guān)的最大值并把它饋給在編碼器中使用的發(fā)音判決模塊來計算該幀的發(fā)音(例如從生成的合成語音)。由于沒有使用超前,導致判決精度較低。
狀態(tài)Red Single Error狀態(tài)“Red Single Error(Red單個錯誤)”指示譯碼器模塊沒有接收到當前幀的主數(shù)據(jù)(即主數(shù)據(jù)丟失),但已接收到攜帶當前幀冗余數(shù)據(jù)的下一幀的分組。
在該狀態(tài)下,譯碼器模塊使用當前幀的冗余數(shù)據(jù)和下一幀的主數(shù)據(jù)譯碼該語音。更準確地說,譯碼器模塊根據(jù)冗余幀為當前幀的四個子幀譯碼LPC。然后用譯碼的數(shù)值更新主LPC譯碼器的預測器(即用于量化LPC數(shù)值的預測器)。譯碼器模塊基于先前幀的LSF殘余(將在下面參照狀態(tài)“ERF R+C”進一步詳細討論)進行該更新計算。使用冗余數(shù)據(jù)(而不是主數(shù)據(jù))可能引入量化誤差。譯碼器模塊通過在LSF域中在當前幀中譯碼的數(shù)值和先前幀的LPC之間插值來計算其他子幀的LPC數(shù)值。
該編碼技術(shù)提取LTP滯后、RMS數(shù)值、音調(diào)脈沖位置和音調(diào)脈沖符號,并把提取的數(shù)值譯碼為譯碼的參數(shù)數(shù)值。該技術(shù)也從幀中提取發(fā)音判決以用于創(chuàng)建發(fā)音狀態(tài)。發(fā)音狀態(tài)取決于在先前半幀中做出的發(fā)音判決以及在兩個當前半幀中的判決。該發(fā)音狀態(tài)控制在構(gòu)造該激勵中采取的行動。
在該狀態(tài)下,譯碼也利用預取主數(shù)據(jù)的可能性。更準確地說,譯碼器模塊把糾錯(EC)應用于當前幀的LTP增益和代數(shù)碼本(Alg CB)增益(包含按照上面討論的GSM 06.61標準平均且衰減這些增益)。然后,當預測器和歷史記錄已對當前幀作出反應時,譯碼器模塊譯碼下一幀的參數(shù)。這些數(shù)值用于預測下一幀的RMS。更準確地說,該技術(shù)通過依照下式使用平均LTP增益(即LTPgain,mean)、先前RMS數(shù)值(即prevRMS)和應用增益的Alg CB矢量的能量(即RMS(AlgCB·Alggain))來執(zhí)行預測RM^S=[LTPgain,mean·prevRMS2+(RMS(AlgCB·Alggain))2]1/2]]>(式12)在具有代表穩(wěn)態(tài)濁音的發(fā)音狀態(tài)的幀中,譯碼器模塊以一種不同于其他狀態(tài)的方式創(chuàng)建激勵。也就是,譯碼器模塊以在GSM-EFR標準中提出的方式創(chuàng)建激勵。該模塊通過在來自冗余數(shù)據(jù)和先前幀的數(shù)值之間插值LTP滯后并把該結(jié)果復制到激勵歷史記錄中來創(chuàng)建LTP矢量。只有當來自冗余數(shù)據(jù)和先前幀的數(shù)值之間的差值低于規(guī)定的門限例如低于八時,才執(zhí)行這個過程。否則,譯碼模塊使用在所有子幀中的新滯后(來自冗余數(shù)據(jù))。該模塊執(zhí)行門限檢驗以避免插值一個間隙,該間隙由編碼器選擇一個雙周期長的LTP滯后而產(chǎn)生。該技術(shù)隨機化Alg CB以避免阻尼振蕩,且計算增益以使Alg CB矢量具有LTP矢量的增益數(shù)值的十分之一。
譯碼器模塊通過對LTP矢量和Alg CB矢量求和來形成該激勵。然后,譯碼器模塊用每個子幀的RMS數(shù)值調(diào)整該激勵矢量的幅度。因為音調(diào)脈沖能量不是平均分布,故在子幀基礎(chǔ)上的這樣的調(diào)整可能不代表最好的選擇。例如,在子幀中音調(diào)脈沖的兩個高能量部分與子幀中的一個高能量部分相比較將接收較小的幅度。為了避免這種非最佳結(jié)果,譯碼器模塊可以改為執(zhí)行在音調(diào)脈沖基礎(chǔ)上的調(diào)整。該技術(shù)在首先的三個子幀中在先前幀的最后子幀中的RMS數(shù)值和當前幀的RMS數(shù)值之間插值RMS數(shù)值。在當前幀的最后子幀中,該技術(shù)在當前幀的數(shù)值和預測的下一幀數(shù)值之間插值RMS數(shù)值。這導致更軟地轉(zhuǎn)移進入下一幀。
在具有不同于穩(wěn)態(tài)濁音狀態(tài)的其他發(fā)音狀態(tài)的幀中,譯碼器模塊以GSM-VOC特有的方式創(chuàng)建激勵。也就是,在一個穩(wěn)態(tài)非濁音狀態(tài)中,激勵構(gòu)成噪聲。譯碼器模塊調(diào)整噪聲的幅度以便使子幀接收正確的RMS。在向非濁音狀態(tài)的轉(zhuǎn)移中,該編碼技術(shù)通過使先前幀的合成和脈沖波形相關(guān)來確定最后音調(diào)脈沖的位置。換句話說,該技術(shù)連續(xù)地使用有LTP滯后大小的步長來從該相關(guān)最大值定位下一個局部脈沖最大值,直到它發(fā)現(xiàn)最近的可能的最大值為止。然后,該技術(shù)更新聲碼器激勵模塊以在當前幀某處的最近脈沖的末端起動。另外,該編碼技術(shù)從剛好在最近脈沖起始之前的位置復制該丟失的樣本。如果該位置沒有超出濁音段起始的位置,則譯碼器模塊增加一個或多個聲碼器脈沖且朝幀的數(shù)值方向插值RMS數(shù)值。譯碼器模塊從最近的濁音脈沖末端產(chǎn)生噪聲到幀邊界。譯碼器模塊也插值噪聲RMS以便使該技術(shù)提供到非濁音狀況的軟轉(zhuǎn)移。
如果發(fā)音狀態(tài)代表到濁音狀態(tài)的轉(zhuǎn)移,則該編碼技術(shù)決定性地依賴于脈沖位置和符號。激勵由直到該給定的音調(diào)脈沖位置的噪聲組成。譯碼器模塊朝接收的數(shù)值方向插值這個噪聲的RMS(從冗余數(shù)據(jù))。該技術(shù)用插值的RMS數(shù)值在音調(diào)脈沖位置放置聲碼器脈沖。所有的脈沖使用接收的滯后。該技術(shù)在先前幀的最后子幀的數(shù)值和在上半幀中接收的數(shù)值之間以及在接收的數(shù)值和在第二半幀中預測的數(shù)值之間形成RMS插值。
當為激勵計算RMS數(shù)值時,譯碼器模塊用正確的濾波器狀態(tài)合成濾波該激勵以計及濾波器增益。在能量調(diào)整之后,該技術(shù)高通濾波該激勵以去除聲碼器脈沖的偏倚部分。另外,譯碼器模塊把創(chuàng)建的激勵輸入激勵歷史記錄以給LTP某些東西來對后面的幀作用。
然后,譯碼器模塊把最終的時間應用于合成模塊以創(chuàng)建該合成。來自穩(wěn)態(tài)濁音狀態(tài)的合成也是后置濾波的。
狀態(tài)EFR After Red在狀態(tài)“EFR After Red(EFR在Red之后)”中,盡管譯碼器模塊僅僅使用冗余數(shù)據(jù)譯碼先前幀,但譯碼器模塊已接收到當前幀和下一幀的分組。
在這種狀態(tài)下,該技術(shù)使用常規(guī)的GSM-EFR譯碼。然而,譯碼器模塊使用已經(jīng)譯碼的增益參數(shù)。創(chuàng)建的合成調(diào)整它的幅度以便使整個幀的RMS數(shù)值符合從冗余數(shù)據(jù)接收的數(shù)值。為避免合成中可能產(chǎn)生高頻噪聲的不連續(xù)性,譯碼器模塊對該激勵執(zhí)行調(diào)整。然后,該模塊把激勵饋入激勵歷史記錄以與下一幀一致。另外,該模塊將合成濾波器重置為它在當前幀中最初有的狀態(tài),且然后再次對該激勵信號使用該濾波器。
狀態(tài)EFR Red Nxt E在狀態(tài)“EFR Red Nxt E”中,譯碼器模塊已接收到當前幀的主數(shù)據(jù),但還沒有接收到下一幀的分組(即下一分組丟失)。另外,譯碼器模塊使用冗余數(shù)據(jù)譯碼先前幀。
這個狀態(tài)缺乏用于校正該合成的能量電平的冗余數(shù)據(jù)。代之以,譯碼器模塊使用式12執(zhí)行預測。
狀態(tài)EFR EC在狀態(tài)“EFR EC”中,譯碼器模塊未能按順序接收多個分組。從而,在當前幀中,既不存在用于譯碼語音的主數(shù)據(jù),也不存在用于譯碼語音的冗余數(shù)據(jù)。
這個狀態(tài)試圖使用GSM-EFR誤差隱藏技術(shù)(例如在發(fā)明背景部分描述的)來補救數(shù)據(jù)的缺乏。這包括取增益歷史記錄(LTP和Alg CB)的平均、衰減該平均值且把該平均值反饋給歷史記錄。因為數(shù)據(jù)是被丟失而不是由于比特錯誤而失真,所以譯碼器模塊不能將代數(shù)碼本矢量用作接收到的。據(jù)此,譯碼器模塊隨機化一個新碼本矢量。這個方法在適于基于分組網(wǎng)絡(luò)的GSM-EFR中使用。如果與此相反,譯碼器模塊從最近的幀復制該矢量,則可能在語音中出現(xiàn)阻尼振蕩。該編碼技術(shù)象在狀態(tài)“EFR Nxt E”中一樣從合成的語音計算RMS數(shù)值和發(fā)音狀態(tài)。使用最后好幀的音調(diào)可能在激勵歷史記錄中導致大的脈沖位置的相位漂移。
狀態(tài)Red after EC在狀態(tài)“Red after EC(Red在EC之后)”中,譯碼器模塊已接收到包含當前幀的冗余數(shù)據(jù)的下一幀的分組。譯碼器模塊把糾錯應用于一個或多個在先的幀(并且這個狀態(tài)基于此而區(qū)別于狀態(tài)“Red Single Error”)。
在這個狀態(tài)中,激勵歷史記錄非常不確定并且不應該使用。編碼器模塊在穩(wěn)態(tài)濁音狀態(tài)中從聲碼器音調(diào)脈沖創(chuàng)建該激勵,并且譯碼器模塊從先前幀的數(shù)值、當前數(shù)值和下一幀的預測來插值該RMS能量。譯碼器模塊從接收的(冗余)數(shù)據(jù)取脈沖的位置和符號以使激勵歷史記錄的相位盡可能精確。譯碼器模塊從激勵歷史記錄復制該給定位置之前的點,在某種意義上這涉及到“Red Single Error”狀態(tài)的穩(wěn)態(tài)濁音狀態(tài)的處理。(如果冗余數(shù)據(jù)缺乏音調(diào)脈沖相位信息,則可以使用首先提到的在上面1.4節(jié)討論的技術(shù)確定音調(diào)脈沖的放置)。
狀態(tài)EFR R+EC Nxt E在狀態(tài)“EFR R+EC Nxt E”中,譯碼器模塊未能接收到下一幀的分組。另外,譯碼器模塊僅僅使用冗余數(shù)據(jù)譯碼先前幀,且使用EC譯碼在那個幀以前的幀。
譯碼器模塊使用主數(shù)據(jù)譯碼當前幀。但這個狀態(tài)表示譯碼主數(shù)據(jù)的狀態(tài)類中最壞的狀態(tài)。例如,LSF-預測器在這種情況下可能很差地執(zhí)行(例如預測器是“不符合的”)且不能用可用的數(shù)據(jù)糾正。因此,譯碼器模塊以標準的方式譯碼GSM-EFR LPC并因而略微地擴展LPC的帶寬。更準確地說,這以GSM-EFR糾錯的標準方式執(zhí)行,但只是到較小程度以避免引起另一種類型的不穩(wěn)定性(例如濾波器將由于過多地使用平均而變得不穩(wěn)定)。譯碼器模塊例如參照式12相對于預測的數(shù)值執(zhí)行激勵和合成的能量調(diào)整。然后,譯碼器模塊從該合成計算當前幀的RMS和發(fā)音。
狀態(tài)ERF R+EC在狀態(tài)“ERF R+EC”中,譯碼器模塊已接收到下一幀的分組,但僅僅使用冗余數(shù)據(jù)譯碼先前幀,且使用EC譯碼在那個幀以前的幀。
在這個狀態(tài)中,譯碼器模塊通常使用主數(shù)據(jù)和冗余數(shù)據(jù)譯碼當前幀。更準確地說,在EC應用于LP系數(shù)之后,預測器失去它的提供精確預測的能力。在這個狀態(tài)中,譯碼器模塊可以用冗余數(shù)據(jù)糾正。換句話說,譯碼器模塊譯碼冗余LPC系數(shù)。這些系數(shù)與GSM-EFR標準提供的第二系列LPC系數(shù)表示相同的數(shù)值。該編碼技術(shù)使用二者為當前幀計算預測器的估計,例如可以使用下式。(式13與式11相同,為方便起見復制在這兒)LSFprev,res=(LSFred-LSFmean-LSFres)/predFactor(式13)LSF=LSFres+LSFmean+predFactor·LSFprev,res(式14)在本方法中,主合成模型提供與LSF殘余(即LSFres)有關(guān)的信息,而冗余模型提供與這些系數(shù)的冗余LSF數(shù)值(即LSFred)有關(guān)的信息。譯碼器模塊用式13使用這些數(shù)值來計算預測器狀態(tài)以提供快速的預測器更新。在式13中,項LSFmean定義平均的LSF數(shù)值,項predFactor是指預測器因數(shù)常數(shù),以及LSFprev,res是指來自過去幀的殘余LSF。然后,譯碼器模塊用上面的式14使用更新的預測器狀態(tài)將LSF殘余譯碼為LPC系數(shù)。這種估計有利地確保當前幀的LP系數(shù)具有等于冗余LPC量化誤差的誤差。否則,當預測器已使用當前幀的LSF殘余更新時,它將在下一幀中是正確的。
GSM-EFR標準提供另一種用于代數(shù)碼本增益的預測器。GSM-EFR增益的數(shù)值表示相當隨機的信息。沒有可用的冗余參數(shù)匹配于這樣的信息,這阻止了Alg CB增益的估計。在幀丟失之后當預測器變穩(wěn)定前,預測器近似地取一幀??梢曰趲g給出的能量變化來更新該預測器。編碼器模塊可以測量LTP增益和代數(shù)增益之間的分布(例如比率)并使用很少例如二或三比特發(fā)送它。更新預測器的技術(shù)也應該考慮發(fā)音狀態(tài)。在到濁音的轉(zhuǎn)移中,代數(shù)增益經(jīng)常太大以至于不能建立在后面幀中使用的LTP的歷史記錄。在穩(wěn)態(tài)中,該增益更加適中,且對于非濁音狀態(tài)來說,它產(chǎn)生在非濁音狀態(tài)中發(fā)現(xiàn)的大部分隨機性。
2.4變化想象上面描述的實例的許多變化。例如,在最近子幀中的RMS測量可以改變?yōu)闇y量最近的完整音調(diào)時期以便只測量一個音調(diào)脈沖。使用在最近子幀上的當前測量,可能取決于脈沖的位置和音調(diào)滯后而給出零個、一個或兩個高能量部分。在狀態(tài)“Red Single Error”和穩(wěn)態(tài)濁音狀態(tài)中一種相似的對能量分布的修改是可能的。在這些情況下,能量插值可以基于音調(diào)脈沖的數(shù)量調(diào)整。
可以修改編碼器模塊中的脈沖位置搜索以便它使用基于超前的發(fā)音判決。
當在錯誤狀態(tài)“Red After EC”中時,該技術(shù)可以調(diào)整第一個音調(diào)脈沖的放置。這種調(diào)整應該既考慮接收的脈沖位置,又考慮在先前幀的合成中的相位信息。為最小化相位不連續(xù)性,該技術(shù)應該使用整個幀來糾正相位誤差。這假定先前幀的合成由濁音組成。
使用多項式技術(shù)的插值可以取代線性插值。該技術(shù)應該使多項式匹配于下列數(shù)值先前幀的總RMS、先前幀的最近脈沖的RMS、當前幀的RMS和下一幀的預測的RMS。
該技術(shù)可以使用更先進的能量預測。例如,存在足夠的數(shù)據(jù)來確定下一幀的能量包絡(luò)??梢孕薷脑摷夹g(shù)以在下一幀的開始從該包絡(luò)預測能量和它的導數(shù)。該技術(shù)可以使用此信息來改善能量插值以提供甚至更軟的幀邊界。如果該技術(shù)提供略微不精確的預測,則該技術(shù)可以在下一幀中調(diào)整能量電平。為避免不連續(xù)性,該技術(shù)可以使用某些種類的不均勻調(diào)整。例如,該技術(shù)可以在幀的開始把增益調(diào)整設(shè)置為幾乎是零,并在幀的中部期間增加該調(diào)整到需要的數(shù)值。
為減少經(jīng)由網(wǎng)絡(luò)發(fā)送的冗余數(shù)據(jù)(開銷)的數(shù)量,該編碼技術(shù)可以刪除某些參數(shù)。更準確地說,該技術(shù)可以取決于發(fā)音狀態(tài)而丟棄不同的參數(shù)。
例如,表2確定用于非濁音語音的適當參數(shù)。該技術(shù)需要LPC來整形該噪聲的頻譜特性。該技術(shù)需要RMS數(shù)值來傳達該噪聲的能量。該表列出發(fā)音狀態(tài),但這個參數(shù)可以被丟棄。在它的位置,該技術(shù)可以使用數(shù)據(jù)尺寸作為非濁音語音的指示器。就是說,沒有發(fā)音狀態(tài)的情況下,表2中的參數(shù)集提供33比特的幀尺寸和1650b/s的比特速率。這個數(shù)據(jù)尺寸(33比特)可以用作非濁音語音的指示器(在這種情況下,其中,分組化技術(shù)規(guī)定這個尺寸信息,例如在分組頭標中)。另外,該編碼技術(shù)可能不需要精確的數(shù)值用于噪聲的頻譜整形(與濁音段相比較)。從它的角度看來,該技術(shù)可以使用較差精度類型的量化以進一步減小帶寬。然而,這樣的修改可能損害主LPC譯碼器的預測器更新操作的有效性。
表2
在從非濁音到濁音語音的轉(zhuǎn)移中,該技術(shù)需要在表1(上面)中的所有參數(shù)。這是因為LPC參數(shù)在這種情況下典型地以一種急劇的方式變化。濁音語音包括音調(diào),且在幀中存在一個新的能量電平。于是該技術(shù)使用音調(diào)脈沖和符號以生成用于該激勵的正確相位。
在穩(wěn)態(tài)濁音狀態(tài)中以及在到非濁音狀態(tài)的轉(zhuǎn)移中,該技術(shù)可以去除音調(diào)脈沖位置和符號,因而將總比特數(shù)減小至42比特(即2100b/s)。因此在這些幀中譯碼器模塊沒有接收到相位信息,這可能對它的輸出的質(zhì)量會有負面影響。這將迫使譯碼器在先前幀中搜索相位,這樣又會因為該算法由于分組突發(fā)的丟失不能檢測該相位,而可以導致更大的相位誤差。它也使得不可能糾正出現(xiàn)在誤差隱藏周期期間的任何相位漂移。
上面描述的冗余譯碼器可以使用多脈沖編碼而不是上面描述的GSM-VOC。在多脈沖譯碼中,該編碼技術(shù)編碼來自殘余的最重要的脈沖。這種解決方案將更好地對從非濁音到濁音狀態(tài)的轉(zhuǎn)移中的變化作出反應。另外,當合并這種編碼技術(shù)與GSM-EFR時,將不會引起相位復雜化。另一方面,這種技術(shù)比上面描述的GSM-VOC使用更高的帶寬。
上面描述的實例提供單級的冗余度。然而,該技術(shù)可以使用多級冗余度。另外,上面描述的實例優(yōu)選地合并在同一幀中的主數(shù)據(jù)和冗余數(shù)據(jù)。然而,該技術(shù)可以在分開的分組中或以其他的可替代的格式傳送主數(shù)據(jù)和冗余數(shù)據(jù)。
上面描述的原理的其他變化對本領(lǐng)域的技術(shù)人員來說將是明顯的。所有這樣的變化和修改被認為是包含于下列權(quán)利要求定義的本發(fā)明的范圍和精神內(nèi)。
權(quán)利要求
1.一種用于譯碼聲頻數(shù)據(jù)的譯碼器模塊,該聲頻數(shù)據(jù)被格式化成包含主編碼數(shù)據(jù)和冗余編碼數(shù)據(jù)的分組,該譯碼器模塊包含使用主合成模型譯碼該分組的主譯碼器;使用冗余合成模型譯碼該分組的冗余譯碼器;以及取決于該譯碼器模塊經(jīng)歷的誤差狀況,為每個分組選擇多個譯碼策略中的一個策略以用于譯碼該分組的控制邏輯,其中,在一個策略中,冗余合成模型用于更新在主合成模型中的狀態(tài),和/或主合成模型用于更新在冗余合成模型中的狀態(tài)。
2.依照權(quán)利要求1用于譯碼聲頻數(shù)據(jù)的譯碼器模塊,其中,狀態(tài)屬于下面狀態(tài)中的至少一個自適應碼本狀態(tài);LPC濾波器狀態(tài);誤差隱藏歷史狀態(tài);以及量化預測器狀態(tài)。
3.依照權(quán)利要求1用于譯碼聲頻數(shù)據(jù)的譯碼器模塊,其中,該狀態(tài)與在主合成模型中的LSF預測器狀態(tài)有關(guān),該狀態(tài)使用下式更新LSFprev,res=(LSFred-LSFmean-LSFres)/predFactor其中,LSFprev,res是指先前幀的LSF殘余,LSFred是指從冗余數(shù)據(jù)提供的當前幀的LSF,LSFmean是指當前幀的平均LSF,LSFres是指當前幀的LSF殘余,以及predFactor是指預測因數(shù)。
4.依照權(quán)利要求1用于譯碼聲頻數(shù)據(jù)的譯碼器模塊,其中,誤差狀況與先前分組的接收或沒有接收、當前分組的接收或沒有接收以及下一分組的接收或沒有接收有關(guān)。
5.一種用于譯碼包含主編碼數(shù)據(jù)和冗余編碼數(shù)據(jù)的聲頻數(shù)據(jù)的譯碼器模塊,其中,主編碼數(shù)據(jù)和冗余編碼數(shù)據(jù)合并入一系列的分組,這樣使得在各個分組中屬于當前幀的主編碼數(shù)據(jù)與屬于先前幀的冗余編碼數(shù)據(jù)合并起來,該譯碼器模塊包含使用主合成模型譯碼該分組的主譯碼器;使用冗余合成模型譯碼該分組的冗余譯碼器;以及當譯碼該分組中的冗余數(shù)據(jù)時,用于處理也包含在那個分組中的主編碼數(shù)據(jù)的超前裝置。
6.依照權(quán)利要求5用于譯碼聲頻數(shù)據(jù)的譯碼器模塊還包括裝置,該裝置用于使用超前處理裝置的結(jié)果預測下一幀中的能量以及平滑幀間的能量轉(zhuǎn)移。
7.一種用于譯碼聲頻數(shù)據(jù)的譯碼器模塊,該聲頻數(shù)據(jù)被格式化成包含主編碼數(shù)據(jù)和冗余編碼數(shù)據(jù)的分組,該譯碼器模塊包含使用主合成模型譯碼該分組的主譯碼器;使用冗余合成模型譯碼該分組的冗余譯碼器;以及用于在當前幀中定位音調(diào)脈沖位置的裝置,該裝置通過在先前幀中定位最近的已知脈沖位置并然后從該最近的已知脈沖位置前進一個或多個音調(diào)滯后數(shù)值以在當前幀中定位該脈沖位置,其中在當前幀中定位的音調(diào)脈沖位置用于減小相位不連續(xù)性。
8.依照權(quán)利要求7用于譯碼聲頻數(shù)據(jù)的譯碼器模塊,其中,用于定位音調(diào)脈沖的裝置還配置為從編碼地點接收音調(diào)脈沖位置數(shù)值、比較該接收的數(shù)值和定位的音調(diào)脈沖位置并隨后在當前幀期間平滑任何檢測到的相位差異。
9.一種用于編碼聲頻數(shù)據(jù)的編碼器模塊包含使用主合成模型編碼輸入聲頻信號以產(chǎn)生主編碼數(shù)據(jù)的主編碼器;使用冗余合成模型編碼輸入聲頻信號以產(chǎn)生冗余編碼數(shù)據(jù)的冗余編碼器;用于把主編碼數(shù)據(jù)和冗余編碼數(shù)據(jù)合并入一系列分組中的分組器,其中,該分組器在單個分組中合并屬于當前幀的主編碼數(shù)據(jù)和屬于先前幀的冗余編碼數(shù)據(jù),并且,其中主編碼器在冗余編碼器編碼先前幀的同時編碼當前幀;以及用于在編碼之前處理將由冗余編碼器編碼的數(shù)據(jù)的超前裝置。
10.依照權(quán)利要求9用于編碼聲頻數(shù)據(jù)的編碼器模塊,其中超前裝置使用它的處理結(jié)果以改善關(guān)于冗余編碼數(shù)據(jù)的發(fā)音判決。
11.一種用于譯碼聲頻數(shù)據(jù)的方法,該聲頻數(shù)據(jù)被格式化成包含主編碼數(shù)據(jù)和冗余編碼數(shù)據(jù)的分組,該方法包含以下步驟在譯碼地點接收該分組;使用主合成模型主譯碼該接收的分組;使用冗余合成模型冗余譯碼該接收的分組;以及取決于在譯碼器地點經(jīng)歷的誤差狀況,為每個分組選擇多個譯碼策略中的一個策略以用于譯碼該分組,其中,在一個策略中,冗余合成模型用于更新在主合成模型中的狀態(tài),和/或主合成模型用于更新在冗余合成模型中的狀態(tài)。
12.依照權(quán)利要求11用于譯碼聲頻數(shù)據(jù)的方法,其中,該狀態(tài)屬于下面狀態(tài)中的至少一個自適應碼本狀態(tài);LPC濾波器狀態(tài);誤差隱藏歷史狀態(tài);以及量化預測器狀態(tài)。
13.依照權(quán)利要求11用于譯碼聲頻數(shù)據(jù)的方法,其中,該狀態(tài)與主合成模型中的LSF預測器狀態(tài)有關(guān),該狀態(tài)使用下式更新LSFprev,res=(LSFred-LSFmean-LSFres)/predFactor其中,LSFprev,res是指先前幀的LSF殘余,LSFred是指從冗余數(shù)據(jù)提供的當前幀的LSF,LSFmean是指當前幀的平均LSF,LSFres是指當前幀的LSF殘余,以及predFactor是指預測因數(shù)。
14.依照權(quán)利要求11用于譯碼聲頻數(shù)據(jù)的方法,其中,誤差狀況與先前分組的接收或沒有接收、當前分組的接收或沒有接收以及下一分組的接收或沒有接收有關(guān)。
15.一種用于譯碼包含主編碼數(shù)據(jù)和冗余編碼數(shù)據(jù)的聲頻數(shù)據(jù)的方法,其中,主編碼數(shù)據(jù)和冗余編碼數(shù)據(jù)合并入一系列的分組,這樣使得在各個分組中屬于當前幀的主編碼數(shù)據(jù)與屬于先前幀的冗余編碼數(shù)據(jù)合并起來,該方法包含以下步驟在譯碼地點接收該分組;使用主合成模型主譯碼該接收的分組;使用冗余合成模型冗余譯碼該接收的分組;以及當譯碼一個分組中的冗余數(shù)據(jù)時,超前處理也包含在那個分組中的主編碼數(shù)據(jù)。
16.依照權(quán)利要求15用于譯碼聲頻數(shù)據(jù)的方法,包括使用超前處理的結(jié)果預測下一幀的能量以及平滑幀間的能量轉(zhuǎn)移。
17.一種用于譯碼聲頻數(shù)據(jù)的方法,該聲頻數(shù)據(jù)被格式化成包含主編碼數(shù)據(jù)和冗余編碼數(shù)據(jù)的分組,該方法包含使用主合成模型主譯碼該分組;使用冗余合成模型冗余譯碼該分組;其中,主譯碼或冗余譯碼包含在當前幀中定位音調(diào)脈沖位置的步驟,該步驟通過在先前幀中定位最近的已知脈沖位置并然后從該最近的已知脈沖位置前進一個或多個音調(diào)滯后數(shù)值以在當前幀中定位脈沖位置,其中該定位的音調(diào)脈沖位置用于減小相位不連續(xù)性。
18.依照權(quán)利要求17用于譯碼聲頻數(shù)據(jù)的方法,其中,定位音調(diào)脈沖位置的步驟還包含從編碼地點接收音調(diào)脈沖位置數(shù)值、比較該接收的數(shù)值和定位的音調(diào)脈沖位置并隨后在當前幀期間平滑任何檢測到的相位差異。
19.一種用于編碼聲頻數(shù)據(jù)的方法包含使用主合成模型主編碼輸入聲頻信號以產(chǎn)生主編碼數(shù)據(jù);使用冗余合成模型冗余編碼該輸入聲頻信號以產(chǎn)生冗余編碼數(shù)據(jù);把主編碼數(shù)據(jù)和冗余編碼數(shù)據(jù)合并入一系列分組中,其中,分組器在單個分組中合并屬于當前幀的主編碼數(shù)據(jù)和屬于先前幀的冗余編碼數(shù)據(jù),并且其中,當前幀的主編碼與先前幀的冗余編碼同時發(fā)生;以及在編碼之前超前處理將由冗余編碼器編碼的數(shù)據(jù)。
20.依照權(quán)利要求19用于編碼聲頻數(shù)據(jù)的方法,還包括使用超前處理的結(jié)果以改善關(guān)于冗余編碼數(shù)據(jù)的發(fā)音判決。
全文摘要
一種用于編碼語音數(shù)據(jù)的改進的前向糾錯(FEC)技術(shù)提供一種編碼器模塊,該編碼器模塊使用主合成模型主編碼輸入語音信號以產(chǎn)生主編碼數(shù)據(jù),并使用冗余合成模型冗余編碼該輸入語音信號以產(chǎn)生冗余編碼數(shù)據(jù)。分組器把主編碼數(shù)據(jù)和冗余編碼數(shù)據(jù)合并入一系列分組中并經(jīng)由基于分組的網(wǎng)絡(luò)例如互聯(lián)網(wǎng)協(xié)議(IP)網(wǎng)絡(luò)發(fā)送這些分組。譯碼模塊使用主合成模型主譯碼該分組,并使用冗余合成模型冗余譯碼該分組。該技術(shù)在譯碼期間和譯碼后在主合成模型和冗余合成模型之間提供交互作用以改善合成輸出的語音信號的質(zhì)量。例如,這樣的“交互作用”可以采取在一個模型中使用其他模型更新狀態(tài)的形式。
文檔編號G10L19/00GK1441949SQ0181260
公開日2003年9月10日 申請日期2001年5月10日 優(yōu)先權(quán)日2000年5月11日
發(fā)明者J·斯維貝里, J·松德奎斯特, A·烏夫利登, A·諾爾格倫, M·維斯特倫德 申請人:艾利森電話股份有限公司