專利名稱:抗信道惡劣丟包伴隨誤碼的語音編碼傳輸方法
技術(shù)領(lǐng)域:
本發(fā)明屬于語音編碼傳輸技術(shù)領(lǐng)域,特別涉及語音編碼傳輸抗差錯(cuò)技術(shù)背景技術(shù)在包交換信道環(huán)境下進(jìn)行實(shí)時(shí)、可靠、高質(zhì)量的語音通信具有強(qiáng)烈的應(yīng)用需求和廣闊的應(yīng)用背景。而在惡劣的無線包交換信道環(huán)境中進(jìn)行語音通信,不僅有較高信道丟包率,而且沒有丟失的數(shù)據(jù)包也同時(shí)伴隨有較高的信道誤碼率。極端惡劣的無線包交換信道丟包率高達(dá)55%,未丟失的數(shù)據(jù)包中信道誤碼率也高達(dá)15%。另一方面,語音編碼算法特別是低速率語音編碼中廣泛采用預(yù)測、矢量量化、超幀等技術(shù),導(dǎo)致每個(gè)參數(shù)或比特所承載的信息量加大,魯棒性能差,一旦傳輸信道中產(chǎn)生誤碼或丟包,就會(huì)引起信息的差錯(cuò)和損失。清則產(chǎn)生難聽的沖擊噪聲,重則導(dǎo)致重建話音完全不可懂。因此在惡劣的無線包交換信道中進(jìn)行語音通信,合成語音質(zhì)量會(huì)受到上述兩方面原因的影響而大幅度下降。
傳統(tǒng)方法采用緩存多幀語音數(shù)據(jù)后進(jìn)行RS(Reed Solomon)編碼加深度交織,或者采用RS碼與Turbo碼級(jí)聯(lián)加深度交織的方法,或者采用RS碼與LDPC(Low Density Parity Check)碼級(jí)聯(lián)的方法以抵抗惡劣丟包伴隨誤碼的影響,但上述這些方法需要延遲多幀的語音數(shù)據(jù)進(jìn)行編碼,延時(shí)過大,運(yùn)算復(fù)雜,不適于實(shí)時(shí)的語音通信的要求;且在較高的丟包率和信道誤碼率的條件下由于受到惡劣信道的嚴(yán)重干擾,上述方法糾錯(cuò)能力有限,合成語音質(zhì)量已經(jīng)完全不能滿足語音通信的要求。另外“包替代”的方法也廣泛被采用,即用接收到的數(shù)據(jù)包直接去替代被干擾的相鄰數(shù)據(jù)包。但該方法僅適用于較小丟包率和誤碼率的情況,當(dāng)丟包率和誤碼率加大時(shí),發(fā)生錯(cuò)誤的包就會(huì)被連續(xù)替代,產(chǎn)生類似于“誤碼擴(kuò)散”的嚴(yán)重后果。而且上述這些方法僅是被動(dòng)地去適應(yīng)惡劣的信道環(huán)境,沒有充分利用語音信源自身的特性,損失了一定的性能。因此需要針對(duì)語音信號(hào)的特點(diǎn)設(shè)計(jì)新的編碼傳輸算法以提高惡劣丟包伴隨高誤碼率無線信道條件下的端到端的合成語音質(zhì)量。
發(fā)明內(nèi)容
本發(fā)明的目的是保證在惡劣丟包伴隨高誤碼率的無線信道上進(jìn)行實(shí)時(shí)、高質(zhì)量的語音通信,并提高端到端的合成語音質(zhì)量。提出了一種基于信源信道聯(lián)合特性的“桶形移位聯(lián)合疊加多數(shù)判決”語音編碼傳輸算法,在無任何算法延時(shí)且消耗較小帶寬的條件下抗丟包性能、糾錯(cuò)性能和端到端合成語音質(zhì)量均優(yōu)于傳統(tǒng)“RS編碼加深度交織”、“RS碼與Turbo碼級(jí)聯(lián)編碼加深度交織”、“RS碼與LDPC碼級(jí)聯(lián)編碼加深度交織”的算法。能在丟包率為55%、信道誤碼率為15%的極端惡劣的無線信道上實(shí)現(xiàn)實(shí)時(shí),高質(zhì)量的語音通信。
本發(fā)明提出的抗信道惡劣丟包伴隨誤碼的語音編碼傳輸方法,其特征在于,所述方法是在數(shù)字集成電路芯片編碼器中依次按以下步驟實(shí)現(xiàn)(1)語音編碼輸出的語音參數(shù)碼流進(jìn)行分組;結(jié)合語音參數(shù)的重要性級(jí)別對(duì)語音線譜對(duì)參數(shù)和清濁音參數(shù)進(jìn)行非等重保護(hù),對(duì)于清濁音參數(shù)增加1個(gè)保護(hù)比特位,若當(dāng)前幀為清音幀,則置保護(hù)比特位為0,否則置為1;另外增加2比特分別對(duì)線譜對(duì)參數(shù)矢量量化后的第一級(jí)和第二級(jí)進(jìn)行偶校驗(yàn),以提高端到端合成語音質(zhì)量;(2)采用BCH碼組對(duì)各個(gè)語音參數(shù)分組分別編碼,形成信道編碼后數(shù)據(jù)分組;(3)對(duì)BCH編碼后的各數(shù)據(jù)分組進(jìn)行“桶形移位聯(lián)合疊加”處理;即設(shè)定固定傳輸塊長度為M,塊起始指針指向第一個(gè)編碼后數(shù)據(jù)分組;從第一個(gè)編碼后數(shù)據(jù)分組開始,對(duì)BCH編碼后的分組數(shù)據(jù)分割出M組數(shù)據(jù)組成傳輸塊,然后將塊起始指針指向后一組數(shù)據(jù);若當(dāng)前塊已分割到信道編碼后的最后一組數(shù)據(jù),則進(jìn)行桶形移位,下一傳輸塊的最后一組數(shù)據(jù)移位到第一個(gè)分組的位置進(jìn)行分割;判斷當(dāng)前起始指針是否到達(dá)最后一組數(shù)據(jù),若是則將所有分割出的所有傳輸塊首尾銜接合路;否則繼續(xù)進(jìn)行分割;“桶形移位聯(lián)合疊加”處理后,保持了每一個(gè)傳輸塊保持與相鄰傳輸塊有M-1組數(shù)據(jù)的疊加;(4)所有分割出的數(shù)據(jù)分塊順序疊加,打包合路送信道傳輸。
所述方法是在數(shù)字集成電路芯片解碼器中依次按以下步驟實(shí)現(xiàn)(1)接收到受信道干擾后的語音數(shù)據(jù)包,依次從中提取出每組數(shù)據(jù)并進(jìn)行與編碼端對(duì)應(yīng)的Berlekamp譯碼;(2)依次判斷每個(gè)數(shù)據(jù)分組是否在譯碼能力范圍之內(nèi),若當(dāng)前分組數(shù)據(jù)在BCH譯碼能力范圍之內(nèi)則將該分組譯碼結(jié)果寫入緩存數(shù)組Di,j,1≤i≤M,1≤j≤N對(duì)應(yīng)位中,同時(shí)置當(dāng)前分組譯碼狀態(tài)Fi,j,1≤i≤M,1≤j≤N為1,其中i指示重復(fù)分組數(shù),j指示分組標(biāo)號(hào),N為數(shù)據(jù)分組數(shù)。否則置當(dāng)前分組譯碼狀態(tài)Fi,j為0;循環(huán)直至所有數(shù)據(jù)分組均譯碼結(jié)束;
(3)譯碼緩存數(shù)組Di,j進(jìn)行重排;遍歷Di,j進(jìn)行解碼端“疊加多數(shù)判決”,具體過程如下,設(shè)Rj,1≤j≤N為解碼端恢復(fù)的數(shù)據(jù)分組,則Rj=Dl,jSt.1≤k,l≤N,st Dk,j=Dl,j,F(xiàn)l,j≠0(4)結(jié)合語音特性對(duì)線譜對(duì)參數(shù)和清濁音參數(shù)進(jìn)行差錯(cuò)后處理,對(duì)于清濁音參數(shù),將增加的1比特保護(hù)位與清濁音參數(shù)按比特逐位加和得到sum,若加和結(jié)果sum等于0,且當(dāng)前幀增益小于17,則判決當(dāng)前幀為清音幀;若加和結(jié)果sum大于2,且當(dāng)前幀增益大于17,則判決當(dāng)前幀為濁音幀;若加和結(jié)果sum等于1,則送后續(xù)語音解碼器進(jìn)一步判決清濁音;對(duì)于線譜對(duì)參數(shù)采用與編碼器相對(duì)應(yīng)的偶校驗(yàn),若校驗(yàn)失敗,則說明線譜對(duì)參數(shù)出現(xiàn)了誤碼;對(duì)于校驗(yàn)失敗的線譜對(duì)參數(shù),首先翻參數(shù)各個(gè)比特位加上接收到得線譜對(duì)參數(shù)形成共T+1個(gè)候選線譜對(duì)參數(shù)Lt,k^,t∈
,]]>k為幀序號(hào);前一個(gè)子幀和當(dāng)前子幀均非為濁音幀時(shí)將候選參數(shù)的權(quán)重WDim,k置為1,Dim為參數(shù)的矢量維數(shù);前一個(gè)子幀和當(dāng)前子幀均為濁音幀時(shí),計(jì)算矢量差值D=ΣDim(Lk,Dim^-Lk-1,Dim^)2-ΣDim(Lk-1,Dim^-Lk-2,Dim^)2,]]>若大于0.11,則將當(dāng)前子幀的權(quán)重WDim,k置為0,不參與最后的合成恢復(fù)過程,否則置為1;得到線譜對(duì)參數(shù)恢復(fù)值LSPt,k,Dim^=ΣDimΣtΣkLt,k,Dim^×Pt,k(Lt,k,Dim,s)^P(s)×WDim,k,t∈
,]]>其中 P(s)為前向統(tǒng)計(jì)概率由標(biāo)準(zhǔn)語音庫統(tǒng)計(jì)得到,WDim,k通過上述判決得到;對(duì)于線譜對(duì)參數(shù)矢量量化后的第一級(jí)、第二級(jí)均進(jìn)行如上所述的操作;最后所有語音參數(shù)合路,送語音解碼。
本發(fā)明的特點(diǎn)是引入了信源信道聯(lián)合編碼的思想,在編碼端對(duì)輸入語音信號(hào)進(jìn)行語音編碼,將編碼后的語音參數(shù)碼流分組??紤]到不同語音參數(shù)對(duì)端到端合成語音質(zhì)量的影響是不一樣的,因此選擇對(duì)合成語音質(zhì)量最重要的語音參數(shù)進(jìn)行非等重保護(hù)。然后對(duì)每個(gè)數(shù)據(jù)分組分別進(jìn)行BCH編碼,以保護(hù)語音參數(shù)??紤]到惡劣丟包伴隨高誤碼率無線信道環(huán)境,為了使受信道干擾的數(shù)據(jù)盡可能地在解碼端得到恢復(fù),應(yīng)當(dāng)使編碼后的每個(gè)分組所包含的信息盡可能地在更多的傳輸分組中得以體現(xiàn),且前后傳輸分組之間保持一定的相關(guān)性。因此,對(duì)BCH編碼后的分組數(shù)據(jù)進(jìn)行“桶形移位聯(lián)合疊加”處理,最后打包合路送信道傳輸。在解碼端接收到受信道干擾后的語音數(shù)據(jù)包后,首先從中依次提取出每組數(shù)據(jù)并進(jìn)行與編碼段對(duì)應(yīng)的Berlekamp譯碼,分別判斷每個(gè)數(shù)據(jù)分組是否在譯碼能力之內(nèi),并相應(yīng)置當(dāng)前組狀態(tài),記錄譯碼結(jié)果,循環(huán)直至全部包譯碼結(jié)束。然后遍歷各組譯碼數(shù)據(jù),進(jìn)行疊加多數(shù)判決,結(jié)合語音特性對(duì)線譜對(duì)參數(shù)進(jìn)行差錯(cuò)后處理,進(jìn)一步提高了聲碼器在無誤碼和高誤碼率下的合成語音質(zhì)量。最后所有參數(shù)合路送語音解碼。
本發(fā)明在無任何算法延時(shí)且消耗較小帶寬的條件下抗丟包性能、糾錯(cuò)性能和端到端合成語音質(zhì)量均優(yōu)于傳統(tǒng)“RS編碼加深度交織”、“RS級(jí)聯(lián)Turbo編碼加深度交織”、“RS級(jí)聯(lián)LDPC編碼加深度交織”的算法。剩余誤碼率平均降低84.36%,合成語音平均意見得分(MeanOpinion Score,MOS)平均提高38.86%以上。本發(fā)明能在丟包率高達(dá)55%且信道誤碼率高達(dá)15%的極端惡劣的無線信道上實(shí)現(xiàn)實(shí)時(shí),高質(zhì)量的語音通信。以0.6kb/s SELP聲碼器為例,表1給出了在不同信道丟包率和誤碼率下,本發(fā)明的合成語音平均意見得分。采用ITU標(biāo)準(zhǔn)P.862軟件測試客觀的平均意見得分,該軟件模擬人耳聽覺原理,能夠反映合成語音的質(zhì)量。測試語音采用標(biāo)準(zhǔn)中文語音庫中的語音文件,共6組,每個(gè)MOS分點(diǎn)均采用大于18M Byte的6組標(biāo)準(zhǔn)測試語音平均得到,輸出帶寬為16.5kb/s。
表1各種丟包率和誤碼率下本發(fā)明方法合成語音客觀MOS分
圖1發(fā)明算法方案整體框圖。
圖2編碼發(fā)送端算法框圖;圖中
為前后傳輸分塊疊加的數(shù)據(jù)分組。
圖3解碼接收端譯碼緩存多數(shù)判決框圖;圖中
為出錯(cuò)數(shù)據(jù)分組。
具體實(shí)施例方式
本發(fā)明提出的抗信道惡劣丟包伴隨誤碼的語音編碼傳輸方法結(jié)合附圖及實(shí)施例進(jìn)一步說明如下本發(fā)明的方法是在數(shù)字集成電路芯片編碼器中依次按以下步驟實(shí)現(xiàn)
(1)語音編碼輸出的語音參數(shù)碼流進(jìn)行分組;結(jié)合語音參數(shù)的重要性級(jí)別對(duì)語音線譜對(duì)參數(shù)和清濁音參數(shù)進(jìn)行非等重保護(hù),對(duì)于清濁音參數(shù)增加1個(gè)保護(hù)比特位,若當(dāng)前幀為清音幀,則置保護(hù)比特位為0,否則置為1;另外增加2比特分別對(duì)線譜對(duì)參數(shù)矢量量化后的第一級(jí)和第二級(jí)進(jìn)行偶校驗(yàn),以提高端到端合成語音質(zhì)量;(2)采用BCH碼組對(duì)各個(gè)語音參數(shù)分組分別編碼,形成信道編碼后數(shù)據(jù)分組;(3)對(duì)BCH編碼后的各數(shù)據(jù)分組進(jìn)行“桶形移位聯(lián)合疊加”處理;即設(shè)定固定傳輸塊長度為M,塊起始指針指向第一個(gè)編碼后數(shù)據(jù)分組;從第一個(gè)編碼后數(shù)據(jù)分組開始,對(duì)BCH編碼后的分組數(shù)據(jù)分割出M組數(shù)據(jù)組成傳輸塊,然后將塊起始指針指向后一組數(shù)據(jù);若當(dāng)前塊已分割到信道編碼后的最后一組數(shù)據(jù),則進(jìn)行桶形移位,下一傳輸塊的最后一組數(shù)據(jù)移位到第一個(gè)分組的位置進(jìn)行分割;判斷當(dāng)前起始指針是否到達(dá)最后一組數(shù)據(jù),若是則將所有分割出的所有傳輸塊首尾銜接合路;否則繼續(xù)進(jìn)行分割;“桶形移位聯(lián)合疊加”處理后,保持了每一個(gè)傳輸塊保持與相鄰傳輸塊有M-1組數(shù)據(jù)的疊加;(4)所有分割出的數(shù)據(jù)分塊順序疊加,打包合路送信道傳輸。
本發(fā)明上述方法各步驟的具體實(shí)施例分別詳細(xì)說明如下上述方法步驟(1)的實(shí)施例為語音信號(hào)具有短時(shí)平穩(wěn)性,即在一段時(shí)間之內(nèi)的語音信號(hào)特性基本不變,因此將語音信號(hào)按時(shí)間劃分成幀,并對(duì)一幀數(shù)據(jù)進(jìn)行語音編碼。在低速率語音編碼算法中原始語音經(jīng)過編碼器編碼后產(chǎn)生一組參數(shù)。典型的量化參數(shù)有線譜對(duì)參數(shù)、基音周期、增益、清濁音參數(shù)、余量譜幅度。這些參數(shù)的正確傳輸與否直接決定了接收端合成語音質(zhì)量。而各個(gè)語音參數(shù)對(duì)于合成語音質(zhì)量的影響是不同的,對(duì)于LPC結(jié)構(gòu)的語音編碼器,經(jīng)過超過104MByte大規(guī)模標(biāo)準(zhǔn)語音庫測試,其線譜對(duì)參數(shù)特別是它矢量量化后的第一級(jí)是對(duì)合成語音質(zhì)量影響最大的。因此針對(duì)線譜對(duì)參數(shù)的保護(hù)和差錯(cuò)后處理是能利用最少比特最大限度地提高語音合成質(zhì)量的方法。同時(shí)語音清濁音參數(shù)對(duì)于合成語音質(zhì)量的影響也至關(guān)重要,是語音中作為模式信息的參數(shù),因此也需要給予特別的保護(hù)。考慮到帶寬和糾錯(cuò)性能的權(quán)衡,采用奇偶校驗(yàn)保護(hù)線譜對(duì)參數(shù),并在解碼端采用基于信源信道聯(lián)合特性的線譜對(duì)參數(shù)抗誤碼算法恢復(fù)。
對(duì)線譜對(duì)參數(shù)矢量量化后的第一級(jí),第二級(jí)參數(shù)分別進(jìn)行奇偶校驗(yàn),得到校驗(yàn)結(jié)果為a1、a2。對(duì)于清濁音參數(shù),若當(dāng)前幀為清音幀,則將增加保護(hù)比特a3置為0,否則置為1。以SELP(Sinusoidal Excited Linear Prediction)聲碼器或北約標(biāo)準(zhǔn)MELPe(Multi Excited Linear PredictionEnhancement)聲碼器為例,由于在1.2kb/s或2.4kb/s SELP和MELPe聲碼器中清濁音參數(shù)在清音幀時(shí)為3比特全零狀態(tài),因此經(jīng)過該擴(kuò)展操作后,拉大了清濁音幀的BPVC參數(shù)的漢明距離,可以使解碼端的清濁音判決更加準(zhǔn)確。
選取語音編碼的輸出參數(shù)碼流,加上a1、a2、a33比特,將其分割為N個(gè)參數(shù)分組。
上述方法步驟(2)的實(shí)施例為考慮到語音通信不允許有任何延時(shí),因此不能緩存多幀進(jìn)行編碼而需要當(dāng)幀編碼。分別對(duì)每個(gè)參數(shù)分組進(jìn)行BCH編碼。BCH碼糾錯(cuò)能力強(qiáng),且構(gòu)造方便,編碼簡單,具有嚴(yán)格的代數(shù)結(jié)構(gòu)。由于參數(shù)分組長度有限。對(duì)比BCH,RS,RCPC碼組,從糾錯(cuò)性能的角度選擇了BCH碼組,其糾錯(cuò)性能在較短碼長時(shí)優(yōu)于其他兩種。且當(dāng)信道錯(cuò)誤在BCH譯碼范圍以外時(shí),采用Berlekamp譯碼算法能給出指示,提供解碼端對(duì)接收數(shù)據(jù)包進(jìn)行多數(shù)判決恢復(fù)處理。例如對(duì)于0.6kb/s SELP聲碼器,采用BCH(31,6)碼組對(duì)每個(gè)數(shù)據(jù)分組進(jìn)行信道編碼。
上述方法步驟(3)的實(shí)施例為考慮到惡劣丟包伴隨高誤碼率無線信道環(huán)境,為了使受信道干擾的數(shù)據(jù)盡可能地在解碼端得到恢復(fù),應(yīng)當(dāng)使編碼后的每個(gè)分組所包含的信息盡可能地在更多的傳輸分組中得以體現(xiàn),且前后傳輸分組之間保持一定的相關(guān)性。因此,對(duì)BCH編碼后的分組數(shù)據(jù)進(jìn)行“桶形移位聯(lián)合疊加”處理。算法流程如下1)設(shè)定固定傳輸塊長度為M,塊起始指針指向第1組;2)從塊起始指針位置開始對(duì)BCH編碼后的分組數(shù)據(jù)分割出M組數(shù)據(jù)組成傳輸塊。然后將塊起始指針指向后一組數(shù)據(jù);3)若當(dāng)前塊已分割到信道編碼后的最后一組數(shù)據(jù),則進(jìn)行桶形移位,下一傳輸塊的最后一組數(shù)據(jù)移位到第一分組的位置進(jìn)行分割;4)判斷當(dāng)前起始指針是否到達(dá)最后一組數(shù)據(jù),若是則將所有分割出的所有傳輸塊首尾銜接合路;否則繼續(xù)進(jìn)行第2)步;編碼發(fā)送端算法如圖2所示,當(dāng)前傳輸塊與前一傳輸塊疊加的部分用斜線框注明。編碼分組總數(shù)為N,傳輸塊長度為M組數(shù)據(jù),則從第N-M+2塊開始,需要進(jìn)行“桶形移位”將最末的Ki,i>N個(gè)分組移位指向Kimod(N),i>N分組,以保持每一個(gè)傳輸塊保持與相鄰傳輸塊有M-1組數(shù)據(jù)的疊加。待發(fā)送的每一個(gè)數(shù)據(jù)分組在M個(gè)傳輸塊中分別傳輸了一次,因此共重復(fù)發(fā)送了M次,在解碼端共可以得到M個(gè)多描述副本用于以抵抗信道傳輸中的丟包和誤碼。
上述方法步驟(4)的實(shí)施例為對(duì)所有N個(gè)傳輸塊按照如圖2中序號(hào)順序依次疊加,組成發(fā)送數(shù)據(jù)分組。經(jīng)過打包后送信道進(jìn)行傳輸。
本發(fā)明在數(shù)字集成電路芯片解碼器中依次按以下步驟實(shí)現(xiàn)(1)接收到受信道干擾后的語音數(shù)據(jù)包,依次從中提取出每組數(shù)據(jù)并進(jìn)行與編碼端對(duì)應(yīng)的Berlekamp譯碼;(2)依次判斷每個(gè)數(shù)據(jù)分組是否在譯碼能力范圍之內(nèi),若當(dāng)前分組數(shù)據(jù)在BCH譯碼能力范圍之內(nèi)則將該分組譯碼結(jié)果寫入緩存數(shù)組Di,j,1≤i≤M,1≤j≤N對(duì)應(yīng)位中,同時(shí)置當(dāng)前分組譯碼狀態(tài)Fi,j,1≤i≤M,1≤j≤N為1,其中i指示重復(fù)分組數(shù),j指示分組標(biāo)號(hào),N為數(shù)據(jù)分組數(shù)。否則置當(dāng)前分組譯碼狀態(tài)Fi,j為0;循環(huán)直至所有數(shù)據(jù)分組均譯碼結(jié)束;(3)譯碼緩存數(shù)組Di,j進(jìn)行重排;遍歷Di,j進(jìn)行解碼端“疊加多數(shù)判決”,具體過程如下,設(shè)Rj,1≤j≤N為解碼端恢復(fù)的數(shù)據(jù)分組,則Rj=Dl,jSt.1≤k,l≤N,st Dk,j=Dl,j,F(xiàn)l,j≠0(4)結(jié)合語音特性對(duì)線譜對(duì)參數(shù)和清濁音參數(shù)進(jìn)行差錯(cuò)后處理,對(duì)于清濁音參數(shù),將增加的1比特保護(hù)位與清濁音參數(shù)按比特逐位加和得到sum,若加和結(jié)果sum等于0,且當(dāng)前幀增益小于17,則判決當(dāng)前幀為清音幀;若加和結(jié)果sum大于2,且當(dāng)前幀增益大于17,則判決當(dāng)前幀為濁音幀;若加和結(jié)果sum等于1,則送后續(xù)語音解碼器進(jìn)一步判決清濁音;對(duì)于線譜對(duì)參數(shù)采用與編碼器相對(duì)應(yīng)的偶校驗(yàn),若校驗(yàn)失敗,則說明線譜對(duì)參數(shù)出現(xiàn)了誤碼;對(duì)于校驗(yàn)失敗的線譜對(duì)參數(shù),首先翻參數(shù)各個(gè)比特位加上接收到得線譜對(duì)參數(shù)形成共T+1個(gè)候選線譜對(duì)參數(shù)Lt,k,t^∈
,]]>k為幀序號(hào);前一個(gè)子幀和當(dāng)前子幀均非為濁音幀時(shí)將候選參數(shù)的權(quán)重WDim,k置為1,Dim為參數(shù)的矢量維數(shù);前一個(gè)子幀和當(dāng)前子幀均為濁音幀時(shí),計(jì)算矢量差值D=ΣDim(Lk,Dim^-Lk-1,Dim^)2-ΣDim(Lk-1,Dim^-Lk-2,Dim^)2,]]>若大于0.11,則將當(dāng)前子幀的權(quán)重WDim,k置為0,不參與最后的合成恢復(fù)過程,否則置為1;得到線譜對(duì)參數(shù)恢復(fù)值LSPt,k,Dim^=ΣDimΣtΣkLt,k,Dim^×Pt,k(Lt,k,Dim,s)^P(s)×WDim,k,t∈
,]]>其中 P(s)為前向統(tǒng)計(jì)概率由標(biāo)準(zhǔn)語音庫統(tǒng)計(jì)得到,WDim,k通過上述判決得到;對(duì)于線譜對(duì)參數(shù)矢量量化后的第一級(jí)、第二級(jí)均進(jìn)行如上所述的操作;最后所有語音參數(shù)合路,送語音解碼。
本發(fā)明上述方法各步驟的具體實(shí)施例分別詳細(xì)說明如下上述方法步驟(1)的實(shí)施例為解碼端接收經(jīng)過信道丟包和誤碼干擾后的語音數(shù)據(jù)包后,首先重組N個(gè)傳輸塊,然后析出每個(gè)傳輸塊中的數(shù)據(jù)分組依次送BCH解碼。解碼采用Berlekamp譯碼算法,該譯碼算法能指示出譯碼數(shù)據(jù)是否在譯碼能力范圍之內(nèi)的信息,以提供給后續(xù)多數(shù)判決操作。
上述方法步驟(2)的實(shí)施例為依次根據(jù)Berlekamp譯碼算法判斷每個(gè)數(shù)據(jù)分組是否在譯碼能力,若當(dāng)前分組數(shù)據(jù)在譯碼能力范圍之內(nèi),則將該分組譯碼結(jié)果寫入緩存數(shù)組Di,j,1≤i≤M,1≤j≤N對(duì)應(yīng)位中,同時(shí)置當(dāng)前分組譯碼狀態(tài)Fi,j,1≤i≤M,1≤j≤N為1,其中i指示重復(fù)分組數(shù),j指示分組標(biāo)號(hào);否則置當(dāng)前分組譯碼狀態(tài)Fi,j為0。直至所有數(shù)據(jù)分組均譯碼結(jié)束。
上述方法步驟(3)的實(shí)施例為對(duì)譯碼緩存數(shù)組Di,j進(jìn)行重排和“疊加多數(shù)判決”如圖3所示。因?yàn)樵诎l(fā)送端采用“桶形移位疊加”算法使待發(fā)送的每一個(gè)數(shù)據(jù)分組在M個(gè)傳輸塊中分別傳輸了一次,所以在解碼端譯碼恢復(fù)后每組譯碼后數(shù)據(jù)均有M個(gè)可用的描述副本。其中某些副本因?yàn)樾诺缾簛G包和高誤碼率干擾而導(dǎo)致譯碼出錯(cuò),因此需要遍歷Di,j進(jìn)行解碼端“疊加多數(shù)判決”。設(shè)Rj,1≤j≤N為解碼端恢復(fù)的數(shù)據(jù)分組,Ploss-αα+β]]>為信道丟包率,則Rj=Dl,j(1)St.1≤k,l≤N,st Dk,j=Dl,j,(2)Fl,j≠0 (3)經(jīng)過解碼端疊加多數(shù)判決后數(shù)據(jù)分組能正確恢復(fù)的概率Precover其上限為Pupper=1-(Ploss)M-CM1(1-Ploss)(Ploss)M-1---(4)]]>帶入式(1)可進(jìn)一步得
Precover≤Pupper=1-(αα+β)M-1[(βα+β)M+αα+β]---(5)]]>可見采用桶形移位聯(lián)合疊加多數(shù)判決編碼傳輸算法后,隨著傳輸塊M的增加,數(shù)據(jù)分組正確恢復(fù)的概率以指數(shù)速度逼近1,即從理論上證明了該算法能以較小的帶寬擴(kuò)展的代價(jià)在極端惡劣的丟包和誤碼信道上以較大概率正確恢復(fù)出所有語音傳輸分組,且該算法隨M的增加,能以指數(shù)的速度提高正確恢復(fù)的概率。而考慮到實(shí)際無線語音通信的帶寬要求,M不能無限制增大,因此實(shí)際通信環(huán)境下需要在帶寬和質(zhì)量之間進(jìn)行權(quán)衡。
上述方法步驟(4)的實(shí)施例為對(duì)于清濁音參數(shù),在編碼端用a3進(jìn)行擴(kuò)展操作。在解碼端結(jié)合語音信號(hào)的特點(diǎn)對(duì)作為模式信息的清濁音參數(shù)首先進(jìn)行判決。將a3與3比特清濁音參數(shù)按比特逐位加和得到sum,若加和結(jié)果sum等于0,且當(dāng)前幀增益小于17,則判決當(dāng)前幀為清音幀;若加和結(jié)果sum大于2,且當(dāng)前幀增益大于17,則判決當(dāng)前幀為濁音幀;若加和結(jié)果sum等于1,則送語音解碼器進(jìn)一步判決清濁音。
對(duì)于線譜對(duì)參數(shù),在編碼端用a1、a2比特分別進(jìn)行了奇偶校驗(yàn)。在解碼端采用與編碼端相對(duì)應(yīng)的奇偶校驗(yàn);若校驗(yàn)失敗,則說明線譜對(duì)參數(shù)出錯(cuò),采用基于信源信道聯(lián)合特性的線譜對(duì)參數(shù)抗誤碼算法恢復(fù)。線譜對(duì)參數(shù)矢量在穩(wěn)定的濁音幀時(shí)變化較為平緩,而且清濁音參數(shù)作為狀態(tài)信息在前面已經(jīng)經(jīng)過抗誤碼恢復(fù)得到了較準(zhǔn)確的估計(jì)值,因此穩(wěn)定濁音幀時(shí)變化較大的線譜對(duì)矢量則是受到信道誤碼后發(fā)生錯(cuò)誤的。這個(gè)信源特性可以結(jié)合信道特性更好地恢復(fù)線譜對(duì)參數(shù)。
設(shè)接收端接收到的線譜對(duì)參數(shù)為 是一個(gè)矢量,k為幀序號(hào)。基于前向統(tǒng)計(jì)概率和分模式加權(quán)的最小均方誤差準(zhǔn)則下的線譜對(duì)參數(shù)差錯(cuò)后處理具體方法如下若奇偶校驗(yàn)失敗有兩種可能,線譜對(duì)參數(shù)第一級(jí)發(fā)生了奇數(shù)個(gè)錯(cuò)誤或者校驗(yàn)位本身受信道誤碼影響出錯(cuò)。在5×10-2量級(jí)的信道誤碼率下,線譜對(duì)參數(shù)比特序列發(fā)生3比特錯(cuò)誤的概率是發(fā)生1比特錯(cuò)誤的概率的400倍以上,因此對(duì)于大規(guī)模語音來說,只考慮殘留1比特出錯(cuò)的情況。翻轉(zhuǎn)線譜對(duì)參數(shù)比特序列的各個(gè)比特位形成線譜對(duì)的候選參數(shù)集合 其中t為對(duì)應(yīng)的翻轉(zhuǎn)比特位,t∈[1,T],T為當(dāng)前線譜對(duì)參數(shù)矢量量化所用的比特?cái)?shù)。對(duì)于校驗(yàn)位出錯(cuò)的情況,接收到的線譜對(duì)參數(shù) 也是候選參數(shù)之一,因此共有T+1個(gè)候選線譜對(duì)參數(shù)Lt,k,t^∈
]]>對(duì)T+1個(gè)候選參數(shù)給于不同的權(quán)重,權(quán)重的分配由參數(shù)的前向出現(xiàn)概率決定。由于聲碼器中穩(wěn)定的濁音幀中線譜對(duì)參數(shù)矢量的變化范圍一般不大。前兩子幀、前一子幀和當(dāng)前子幀解碼后線譜對(duì)參數(shù)分別為 Dim為參數(shù)的矢量維數(shù)。線譜對(duì)參數(shù)各維矢量嚴(yán)格按大小順序排列。連續(xù)穩(wěn)定濁音幀之間的矢量差值為D=ΣDim(Lk,Dim^-Lk-1,Dim^)2-ΣDim(Lk-1,Dim^-Lk-2,Dim^)2---(6)]]>通過超過104M的標(biāo)準(zhǔn)語音庫統(tǒng)計(jì),選取差值的閾值為0.11。當(dāng)前一個(gè)子幀和當(dāng)前子幀均非為濁音幀時(shí)將候選參數(shù)的權(quán)重WDim,k置為1。當(dāng)前一個(gè)子幀和當(dāng)前子幀均為濁音幀時(shí),計(jì)算當(dāng)前矢量差值,若大于給定閾值,則將當(dāng)前子幀的權(quán)重WDim,k置為0,即不參與最后的合成恢復(fù)過程。否則置為1。受到信道隨機(jī)誤碼影響時(shí)各個(gè)候選參數(shù)的出現(xiàn)概率是一樣的,因此前向轉(zhuǎn)移概率Pk(r|s)歸一化為1,其中s為編碼端發(fā)送的參數(shù)比特序列。設(shè)Pt,k(Lt,k,Dim^|r,s)]]>為收到當(dāng)前參數(shù)序列的情況下各個(gè)候選參數(shù)出現(xiàn)的后驗(yàn)概率。當(dāng)前線譜對(duì)參數(shù)估計(jì)的誤差期望為DLSP=ΣDimΣtΣk(Lt,k,Dim^-SLSPt,k,Dim^)2×WDim,k×Pt,k(Lt,k,Dim^|r,s),t∈
---(7)]]> 為發(fā)送端發(fā)送的線譜對(duì)參數(shù)矢量。則基于前向統(tǒng)計(jì)概率和最小均方誤差準(zhǔn)則的加權(quán)線譜對(duì)參數(shù)最佳恢復(fù)值 的計(jì)算公式為LSPt,k,Dim^=ΣDimΣtΣkLt,k,Dim^×Pt,k(Lt,k,Dim,s)^P(s)×WDim,k,t∈
---(8)]]>其中 P(s)為前向統(tǒng)計(jì)概率由標(biāo)準(zhǔn)語音庫離線統(tǒng)計(jì)得到。WDim,k通過判決閾值得到。由此得到了受信道誤碼影響后基于前向統(tǒng)計(jì)概率和分模式加權(quán)的最小均方誤差準(zhǔn)則下的線譜對(duì)參數(shù)恢復(fù)值。
對(duì)于線譜對(duì)參數(shù)矢量量化后的第一、第二級(jí)參數(shù)均采用如上所述的基于信源信道聯(lián)合特性的線譜對(duì)參數(shù)抗誤碼算法進(jìn)行恢復(fù)。
權(quán)利要求
1.抗信道惡劣丟包伴隨誤碼的語音編碼傳輸方法,其特征在于,所述方法是在數(shù)字集成電路芯片編碼器中依次按以下步驟實(shí)現(xiàn)(1)語音編碼輸出的語音參數(shù)碼流進(jìn)行分組;結(jié)合語音參數(shù)的重要性級(jí)別對(duì)語音線譜對(duì)參數(shù)和清濁音參數(shù)進(jìn)行非等重保護(hù),即對(duì)于清濁音參數(shù)增加1個(gè)保護(hù)比特位,若當(dāng)前幀為清音幀,則置保護(hù)比特位為0,否則置為1;另外增加2比特分別對(duì)線譜對(duì)參數(shù)矢量量化后的第一級(jí)和第二級(jí)進(jìn)行偶校驗(yàn),以提高惡劣信道條件下的合成語音質(zhì)量;(2)采用BCH碼組對(duì)各個(gè)語音參數(shù)分組分別編碼,形成信道編碼后數(shù)據(jù)分組;(3)對(duì)BCH編碼后的各數(shù)據(jù)分組進(jìn)行“桶形移位聯(lián)合疊加”處理;即設(shè)定固定傳輸塊長度為M,塊起始指針指向第一個(gè)編碼后數(shù)據(jù)分組;從第一個(gè)編碼后數(shù)據(jù)分組開始,對(duì)BCH編碼后的分組數(shù)據(jù)分割出M組數(shù)據(jù)組成傳輸塊,然后將塊起始指針指向后一組數(shù)據(jù);若當(dāng)前塊已分割到信道編碼后的最后一組數(shù)據(jù),則進(jìn)行桶形移位,下一傳輸塊的最后一組數(shù)據(jù)移位到第一個(gè)分組的位置進(jìn)行分割;判斷當(dāng)前起始指針是否到達(dá)最后一組數(shù)據(jù),若是則將所有分割出的所有傳輸塊首尾銜接合路;否則繼續(xù)進(jìn)行分割;“桶形移位聯(lián)合疊加”處理后,保持了每一個(gè)傳輸塊保持與相鄰傳輸塊有M-1組數(shù)據(jù)的疊加;(4)所有分割出的數(shù)據(jù)分塊順序疊加,打包合路送信道傳輸。
2.抗信道惡劣丟包伴隨誤碼的語音編碼傳輸方法,其特征在于,所述方法是在數(shù)字集成電路芯片解碼器中依次按以下步驟實(shí)現(xiàn)(1)接收到受信道干擾后的語音數(shù)據(jù)包,依次從中提取出每組數(shù)據(jù)并進(jìn)行與編碼端對(duì)應(yīng)的Berlekamp譯碼;(2)依次判斷每個(gè)數(shù)據(jù)分組是否在譯碼能力范圍之內(nèi),若當(dāng)前分組數(shù)據(jù)在BCH譯碼能力范圍之內(nèi)則將該分組譯碼結(jié)果寫入緩存數(shù)組Di,j,1≤i≤M,1≤j≤N對(duì)應(yīng)位中,同時(shí)置當(dāng)前分組譯碼狀態(tài)Fi,j,1≤i≤M,1≤j≤N為1,其中i指示重復(fù)分組數(shù),j指示分組標(biāo)號(hào),N為數(shù)據(jù)分組數(shù)。否則置當(dāng)前分組譯碼狀態(tài)Fi,j為0;循環(huán)直至所有數(shù)據(jù)分組均譯碼結(jié)束;(3)譯碼緩存數(shù)組Di,j進(jìn)行重排;遍歷Di,j進(jìn)行解碼端“疊加多數(shù)判決”,具體過程如下,設(shè)Rj,1≤j≤N為解碼端恢復(fù)的數(shù)據(jù)分組,則Rj=Dl,jSt.1≤k,l≤N,st Dk,j=Dl,j,F(xiàn)l,j≠0(4)結(jié)合語音特性對(duì)線譜對(duì)參數(shù)和清濁音參數(shù)進(jìn)行差錯(cuò)后處理,對(duì)于清濁音參數(shù),將增加的1比特保護(hù)位與清濁音參數(shù)按比特逐位加和得到sum,若加和結(jié)果sum等于0,且當(dāng)前幀增益小于17,則判決當(dāng)前幀為清音幀;若加和結(jié)果sum大于2,且當(dāng)前幀增益大于17,則判決當(dāng)前幀為濁音幀;若加和結(jié)果sum等于1,則送后續(xù)語音解碼器進(jìn)一步判決清濁音;對(duì)于線譜對(duì)參數(shù)采用與編碼器相對(duì)應(yīng)的偶校驗(yàn),若校驗(yàn)失敗,則說明線譜對(duì)參數(shù)出現(xiàn)了誤碼;對(duì)于校驗(yàn)失敗的線譜對(duì)參數(shù),首先翻參數(shù)各個(gè)比特位加上接收到得線譜對(duì)參數(shù)形成共T+1個(gè)候選線譜對(duì)參數(shù) ,t∈
,k為幀序號(hào);前一個(gè)子幀和當(dāng)前子幀均非為濁音幀時(shí)將候選參數(shù)的權(quán)重WDim,k置為1,Dim為參數(shù)的矢量維數(shù);前一個(gè)子幀和當(dāng)前子幀均為濁音幀時(shí),計(jì)算矢量差值D=ΣDim(Lk,Dim^-Lk-1,Dim^)2-ΣDim(Lk-1,Dim^-Lk-2,Dim^)2,]]>若大于0.11,則將當(dāng)前子幀的權(quán)重WDim,k置為0,不參與最后的合成恢復(fù)過程,否則置為1;得到線譜對(duì)參數(shù)恢復(fù)值LSPt,k,Dim^=ΣDimΣtΣkLt,k,Dim^×Pt,k(Lt,k,Dim,s^)P(s)×WDim,k,t∈
,]]>其中 ,P(s)為前向統(tǒng)計(jì)概率由標(biāo)準(zhǔn)語音庫統(tǒng)計(jì)得到,WDim,k通過上述判決得到;對(duì)于線譜對(duì)參數(shù)矢量量化后的第一級(jí)、第二級(jí)均進(jìn)行如上所述的操作;最后所有語音參數(shù)合路,送語音解碼。
3.按權(quán)利要求1所述的方法,其特征在于,所述編碼端步驟(1)中結(jié)合語音參數(shù)的重要性級(jí)別對(duì)語音線譜對(duì)參數(shù)和清濁音參數(shù)進(jìn)行非等重保護(hù),保護(hù)語音參數(shù)為線譜對(duì)參數(shù)和清濁音參數(shù),或增益參數(shù)和基音周期參數(shù),在解碼端相應(yīng)進(jìn)行解碼保護(hù)即可。
4.按權(quán)利要求2所述的方法,其特征在于,所述解碼端步驟(3)中采用“疊加多數(shù)判決”算法對(duì)解碼后數(shù)據(jù)分組進(jìn)行恢復(fù),若遍歷所有數(shù)據(jù)分組依然不滿足所需條件,則從M個(gè)疊加數(shù)據(jù)分組中選擇第一組譯碼成功的數(shù)據(jù)分組作為恢復(fù)結(jié)果。
全文摘要
抗信道惡劣丟包伴隨誤碼的語音編碼傳輸方法屬于語音編碼傳輸抗差錯(cuò)技術(shù)領(lǐng)域,其特征在于,該方法在編碼端對(duì)語音參數(shù)碼流分組并對(duì)每個(gè)分組進(jìn)行BCH編碼,然后對(duì)信道編碼后的數(shù)據(jù)分組進(jìn)行桶形移位聯(lián)合疊加,打包合路送信道傳輸。在解碼端,接收到受信道干擾后的語音數(shù)據(jù)包從中依次提取出每組數(shù)據(jù)進(jìn)行Berlekamp譯碼,并根據(jù)是否在譯碼能力之內(nèi)相應(yīng)置組狀態(tài),記錄譯碼結(jié)果,循環(huán)直至全部包譯碼結(jié)束。遍歷各組譯碼數(shù)據(jù),進(jìn)行疊加多數(shù)判決結(jié)合語音參數(shù)差錯(cuò)后處理,最后合路送語音解碼。該方法在無任何算法延時(shí)且消耗較小帶寬的條件下提高了惡劣丟包伴隨高誤碼率無線信道條件下的端到端的合成語音質(zhì)量,實(shí)現(xiàn)了實(shí)時(shí)、高質(zhì)量的語音通信。
文檔編號(hào)G10L19/00GK101086844SQ20071011927
公開日2007年12月12日 申請日期2007年7月19日 優(yōu)先權(quán)日2007年7月19日
發(fā)明者彭坦, 崔慧娟, 唐昆 申請人:清華大學(xué)