專(zhuān)利名稱(chēng)::傳輸誤差的隱蔽的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及無(wú)線(xiàn)電通信系統(tǒng)中傳輸誤差的隱蔽,更具體地說(shuō),涉及改進(jìn)這類(lèi)系統(tǒng)中背景音解碼過(guò)程的一種設(shè)備和方法。
背景技術(shù):
:瑞典專(zhuān)利申請(qǐng)9300290-5和9301798-6中介紹過(guò)改進(jìn)背景音的編碼/解碼、主要供數(shù)字蜂房式電話(huà)系統(tǒng)用的裝置。這些裝置主要是為處理語(yǔ)音編碼器和語(yǔ)音解碼器之間的聯(lián)系接近理想的情況而設(shè)計(jì)的,其意義在于,經(jīng)信道解碼之后,只剩下小量的誤碼或傳輸誤差。但由于聯(lián)系是通過(guò)無(wú)線(xiàn)電信道建立起來(lái)的,因而收到的信號(hào)可能含有某些誤碼或傳輸誤差。在此情況下,可能需要修改上述瑞典專(zhuān)利申請(qǐng)中所述的方法。本發(fā)明的目標(biāo)是一種將所謂誤差隱蔽應(yīng)用到所收到信號(hào)以便使語(yǔ)音解碼過(guò)程便能不受傳輸誤差的影響或?qū)鬏斦`差不敏感的設(shè)備和方法。發(fā)明簡(jiǎn)介按照本發(fā)明,上述目標(biāo)是通過(guò)以幀為基本傳輸單元的無(wú)線(xiàn)電通信系統(tǒng)的接收機(jī)中的一種用以隱蔽語(yǔ)音解碼器中因通信信道引起的傳輸誤差的設(shè)備達(dá)到的,所述語(yǔ)音解碼器是源濾波式解碼器,由包含逐幀加以更新用以調(diào)節(jié)所收到的表示在所述通信信道上傳輸?shù)谋尘耙舻臑V波參數(shù)的內(nèi)狀態(tài)變量的裝置控制,所述設(shè)備的特征在于,它包括下列裝置(a)幀檢測(cè)裝置,用以檢測(cè)含有傳輸誤差的幀;(b)判定裝置,用以判定所檢測(cè)出有傳輸誤差的幀是否可以接受;(c)傳輸誤差隱蔽裝置,用以在所述判定裝置宣判所述檢測(cè)出的幀為不可接受時(shí)通過(guò)限定對(duì)起碼其中一個(gè)所述內(nèi)狀態(tài)變量的更新過(guò)程將所述檢測(cè)出的傳輸誤差隱蔽起來(lái)。此外,按照本發(fā)明,上述目的是還通過(guò)以幀為基本傳輸單元的無(wú)線(xiàn)電通信系統(tǒng)的接收機(jī)中用以隱蔽語(yǔ)音解碼器中因通信信道引起的傳輸誤差的一種方法達(dá)到的,所述語(yǔ)音解碼器是源濾波式的,且有一個(gè)包含逐幀加以更用以調(diào)節(jié)所收到的表示在所述通信信道上傳輸?shù)谋尘耙舻臑V波參數(shù)的內(nèi)狀態(tài)變量的裝置,所述方法的特征在于,它包括下列步驟(a)檢測(cè)含傳輸誤差的幀;(b)判定所檢測(cè)出有傳輸誤差的幀是否可以接受;(c)在所述判定步驟中所述檢測(cè)出的幀被宣判為不可接受時(shí),通過(guò)限定對(duì)至少其中一個(gè)所述內(nèi)狀態(tài)變量的更新過(guò)程將所述檢測(cè)出的傳輸誤差隱蔽起來(lái)。參看附圖閱讀下面的說(shuō)明可以最清楚地了解本發(fā)明連同其它目的和優(yōu)點(diǎn)。附圖是無(wú)線(xiàn)電通信系統(tǒng)中裝有本發(fā)明的設(shè)備的接收機(jī)各有關(guān)部分的原理方框圖。最佳實(shí)施例的詳細(xì)說(shuō)明為理解本發(fā)明的工作情況,簡(jiǎn)單復(fù)習(xí)一下一般數(shù)字蜂房式無(wú)線(xiàn)電聯(lián)系過(guò)程、一般誤差隱蔽方法并參閱一下上述瑞典專(zhuān)利申請(qǐng)的一些算法還是有好處的。在數(shù)字蜂房式電話(huà)系統(tǒng)的通信鏈路中,通常是先將聲信號(hào)數(shù)字化,然后應(yīng)用語(yǔ)音編碼算法(參看例如B.S.Aral,V.Cuperman和A.Gersho,等人著的Kluwer學(xué)術(shù)出版社1991年出版的《語(yǔ)音編碼進(jìn)展》一書(shū))。該算法將語(yǔ)音信號(hào)壓縮并變換成一系列經(jīng)量化的參數(shù)(通常以幀為基本單元進(jìn)憲)。這之后用信道編碼法加上編碼冗余碼保護(hù)得出的二進(jìn)制位(參看例如G.C.Clark和J.B.Cain著的Penim出版社1981年出版的《數(shù)字通信的糾錯(cuò)編碼》一書(shū)加以保護(hù)。接著對(duì)得出的位流進(jìn)行調(diào)制(參看例如J.G.Proakis著的McGraw-Hill1989年第二版的《數(shù)字通信》一書(shū))并用例如TDMA(時(shí)分多址聯(lián)接)方法傳輸。信號(hào)在接收處經(jīng)過(guò)解調(diào)??赡苡械臅r(shí)間或多經(jīng)擴(kuò)散可用各種不同的均衡法抵消,例如維持比均衡法或判定反包饋均衡法(參看例如上述J.G.Proakis著的書(shū))。然后用信道解碼(參看例如上述G.C.Clark和J.B.Cain寫(xiě)的書(shū))對(duì)形成語(yǔ)音解碼器重現(xiàn)所傳輸?shù)恼Z(yǔ)音信號(hào)所需的經(jīng)量化的參數(shù)的各二進(jìn)制位進(jìn)行解調(diào)。顯然從以上的論述可知,傳輸信道上的干擾會(huì)影響再現(xiàn)的語(yǔ)音信號(hào),從而降低信號(hào)的質(zhì)量。雖然信道編/解碼法可大大減小對(duì)干擾的敏感程度,但通常在數(shù)字蜂房式系統(tǒng)中只應(yīng)用信道編碼是不夠的。相反,極普遍的作法是還采用所謂誤差隱蔽法進(jìn)一步隱蔽殘留在語(yǔ)音解碼器輸入端處誤碼感覺(jué)得出的影響。這些方法都依靠一些關(guān)于傳輸信道質(zhì)量的信息,這些信息可在接收端得出或估出。當(dāng)這種信息表明傳輸信道的質(zhì)量差時(shí),誤差隱蔽法就在語(yǔ)音解碼器中作發(fā)特殊處理,其目的在于減小誤碼對(duì)再生語(yǔ)音信號(hào)的負(fù)面影響。誤差隱蔽法的成功程度取決于關(guān)于傳輸信道質(zhì)量的信息的性質(zhì)?,F(xiàn)在談?wù)劔@取這種信息的方法。有關(guān)信道質(zhì)量的直接信息可以通過(guò)測(cè)定信號(hào)強(qiáng)度獲取。信號(hào)強(qiáng)度值低表明信噪比低,從而可以預(yù)料信道的質(zhì)量差。信道編碼法還有其更高的先進(jìn)性。其中一種方法采用冗余信道編碼,例如,循環(huán)冗余碼檢驗(yàn)(CRC)(參看例如上述G.C.lark和J.B.Cain的參考文獻(xiàn)),特別是用編碼檢錯(cuò)時(shí)。此外,還可以從卷積解碼器(在采用卷積碼的情況下)、解調(diào)器、均衡器、和/或分組碼解碼器(參看例如上述J.G.Proakis的參考文獻(xiàn))獲取“軟”(非二進(jìn)制量化的)信息。經(jīng)常使用的一個(gè)方法是將來(lái)自語(yǔ)音編碼器的信息位分成幾種不同的類(lèi)別,各類(lèi)別都有不同的糾錯(cuò)/檢錯(cuò)方法,從而反映出了不同二進(jìn)制位的重要程度(參看例如“TR-45全價(jià)編碼器兼容性標(biāo)準(zhǔn)PN-2972”電子工業(yè)協(xié)會(huì),1990(IS-54)。這樣就可以用信息加有檢錯(cuò)/糾錯(cuò)誤的各部分作為語(yǔ)音幀中可能出現(xiàn)誤碼的指示。現(xiàn)在簡(jiǎn)單介紹在一般語(yǔ)音解碼器運(yùn)用誤差隱蔽以隱藏被認(rèn)為含有誤碼的語(yǔ)音幀的一些方法。檢測(cè)出壞幀時(shí),通常是使用上一個(gè)已被接受的語(yǔ)音幀的信息。萬(wàn)一壞幀情況持續(xù)若干幀之久,則這種方法往往與噪聲抑制(降低輸出電平)結(jié)合起來(lái)使用(參看例如“TR-45全價(jià)語(yǔ)音編解碼器兼容性標(biāo)準(zhǔn)PN-2972”,電子工業(yè)協(xié)會(huì),1990(IS-54))。這種情況在移動(dòng)電話(huà)系統(tǒng)中并非罕見(jiàn),在移動(dòng)速度低時(shí),波動(dòng)衰落現(xiàn)象會(huì)持續(xù)相當(dāng)長(zhǎng)的一段時(shí)間。噪聲抑制的效果是干擾被隱藏到再現(xiàn)信號(hào)中。特別是避免了響亮的“喀嚦”聲??色@得更詳細(xì)的有關(guān)各收到的輸入二進(jìn)制位質(zhì)量的信息時(shí),就可以從可能出現(xiàn)的傳輸誤差追究到語(yǔ)音解碼器的某些參數(shù)。鑒于所述諸參數(shù)模擬出各種不同的語(yǔ)音現(xiàn)象,因而可以研究出最適合各持定參數(shù)物理意義的誤差隱蔽法。這方面的一個(gè)具體實(shí)施例有所謂音調(diào)增益(參看例如T.B.minde等人寫(xiě)的《采用長(zhǎng)分析幀的低位速率語(yǔ)音編碼技術(shù)》美國(guó)明尼阿波利斯ICASSP,1993年版)。在語(yǔ)音瞬態(tài)期期間,這個(gè)參數(shù)有時(shí)需要大于1的值。但這個(gè)值確實(shí)對(duì)應(yīng)于不穩(wěn)定的濾波器模型,就是說(shuō)用它可能有點(diǎn)危險(xiǎn)。特別是以運(yùn)用每當(dāng)檢測(cè)出該參數(shù)中可能的誤碼時(shí)限定音調(diào)增益的誤差隱蔽法為宜。另一個(gè)實(shí)例是現(xiàn)代語(yǔ)音編碼算法中常用的頻譜濾波模型(參看例如上述T.B.minde等人的參考文獻(xiàn))。在該情況下,誤碼差隱蔽法可用來(lái)在相應(yīng)的頻譜信息中表現(xiàn)出有誤碼存在時(shí)避免使用不穩(wěn)定的濾波器。倒過(guò)來(lái)說(shuō)也是成立的,即每當(dāng)檢測(cè)出濾波器不穩(wěn)定時(shí),可以表明幀是壞的,因而可以使用誤差隱蔽法。在上述背景資料的基礎(chǔ)上,現(xiàn)在參看圖1說(shuō)明本發(fā)明的內(nèi)容。圖1示出說(shuō)明本發(fā)明時(shí)需要的移動(dòng)無(wú)線(xiàn)電通信系統(tǒng)中接收機(jī)的各組成部分。天線(xiàn)10接收傳來(lái)的信號(hào),將其傳送到解調(diào)器12。解調(diào)器12將收到的信號(hào)解調(diào),將其傳送到均衡器13(例如維持比均衡器),由均衡器13將所述收到經(jīng)解調(diào)的信號(hào)轉(zhuǎn)換成一個(gè)或若干位流,傳送到信道解碼器14。解調(diào)器12和均衡器13還將關(guān)于所收到的二進(jìn)制位或符號(hào)的“軟”信息傳送給判定裝置16。信道解碼器14將二進(jìn)制流轉(zhuǎn)換成語(yǔ)音解碼用的濾波參數(shù)流和激勵(lì)參數(shù)流。此外,信道解碼器14還對(duì)起碼一部分收到的各幀進(jìn)行循環(huán)字冗余碼校驗(yàn)(CRC)。校驗(yàn)結(jié)果傳送給判定裝置16。接收機(jī)還裝有語(yǔ)音檢測(cè)器20(也叫做話(huà)音活動(dòng)檢測(cè)器或VAD)。語(yǔ)音檢測(cè)器20根據(jù)所述濾波和激勵(lì)參數(shù)確定收到的幀中主要含語(yǔ)音聲抑或背景音。語(yǔ)音檢測(cè)器20的判斷結(jié)果傳送給信號(hào)鑒別器22,由該鑒別器應(yīng)用某些激勵(lì)參數(shù)確定所收到的表示背景音的信號(hào)是否靜止。若幀被宣稱(chēng)為含有靜止背景音,則信號(hào)鑒別器22的輸出控制參數(shù)調(diào)節(jié)器24調(diào)節(jié)所收到的濾波參數(shù)。瑞典專(zhuān)利申請(qǐng)9300290-5詳細(xì)介紹了這種調(diào)節(jié)過(guò)程,這里也把該專(zhuān)利包括進(jìn)來(lái),以供參考。此外,瑞典專(zhuān)利申請(qǐng)9301798-6中介紹了信號(hào)鑒別器22的靜止性檢測(cè)過(guò)程以及語(yǔ)音檢測(cè)器20、信號(hào)鑒別器22和參數(shù)調(diào)節(jié)器24三者之間的相互作用,這里也把該專(zhuān)利包括進(jìn)來(lái)以供參考??赡苡械慕?jīng)調(diào)節(jié)的濾波參數(shù)(若收到的信號(hào)表示靜止背景音)和激勵(lì)參數(shù)都傳送到語(yǔ)音解碼器26,由語(yǔ)音解碼器26在輸出線(xiàn)路28上輸出聲信號(hào)。為了說(shuō)明本發(fā)明的誤差隱蔽法,需要簡(jiǎn)單介紹一下誤碼對(duì)上述兩個(gè)瑞典專(zhuān)利申請(qǐng)中的所謂反混亂(anit-swirling)算法的影響。這些影響大致可劃分如下1.用來(lái)控制反混亂算法的話(huà)音活動(dòng)或語(yǔ)音檢測(cè)器20通常是自適應(yīng)性的(“話(huà)音活動(dòng)檢測(cè)”GSM06.32建議,F(xiàn)TSI/,1991)。這就是說(shuō),有一些閾值和相應(yīng)的狀態(tài)能在話(huà)音活動(dòng)檢測(cè)器中用測(cè)出的語(yǔ)音信號(hào)或應(yīng)用到這里提到的接收機(jī)時(shí)為來(lái)自信道解碼器、經(jīng)解碼的參數(shù)自動(dòng)內(nèi)部更新。進(jìn)來(lái)的參數(shù)中有誤差時(shí)會(huì)產(chǎn)生不適當(dāng)更新的閾值或內(nèi)狀態(tài)參數(shù),這些閾值或參數(shù)可能會(huì)導(dǎo)致判定錯(cuò)誤。其后果可能是降低再現(xiàn)信號(hào)的質(zhì)量。2.話(huà)音活動(dòng)或誤音檢測(cè)器20應(yīng)用進(jìn)來(lái)的濾波和激勵(lì)參數(shù)并應(yīng)用內(nèi)部更新?tīng)顟B(tài)(即舊的進(jìn)來(lái)的參數(shù)和另外的先驗(yàn)信息)來(lái)判定語(yǔ)音/背景音。于是錯(cuò)碼就可能會(huì)導(dǎo)致該接收機(jī)內(nèi)即刻作出錯(cuò)誤的判定,從而使再現(xiàn)聲信號(hào)的質(zhì)量下降。此外,由于當(dāng)前的判定也取決于舊的進(jìn)來(lái)的參數(shù),因而誤差也可能影響未來(lái)的判定結(jié)果。3.信號(hào)鑒別器22(這在本發(fā)明的最佳實(shí)施例中是系統(tǒng)的一部分)探查進(jìn)來(lái)的統(tǒng)計(jì)瞬時(shí),最好是表示各幀平均信號(hào)能的能量值。給一個(gè)或若干個(gè)緩沖器中的現(xiàn)行幀和舊幀都需要存儲(chǔ)這些大量的能量(詳細(xì)情況上述瑞典專(zhuān)利申請(qǐng)9301798-6中有介紹)。若這些進(jìn)來(lái)的能量中有誤差,這些誤差也會(huì)存入各緩沖器中。從而使錯(cuò)誤判定持續(xù)很長(zhǎng)一段時(shí)間。其后果可能會(huì)使再現(xiàn)背景音信號(hào)的質(zhì)量下降。4.一些用來(lái)在背景音信號(hào)靜止的情況下反混亂措施在發(fā)生因誤碼而導(dǎo)致的錯(cuò)誤判定時(shí)在若干方面受損。由此帶來(lái)的其中一個(gè)影響是語(yǔ)音在錯(cuò)檢靜止背景音且開(kāi)始采取反混亂措施時(shí)遭破壞。這時(shí)也會(huì)產(chǎn)生相反的錯(cuò)誤判定(在當(dāng)真有靜止背景音出現(xiàn)時(shí)為語(yǔ)音),從而使背景音的性能瞬時(shí)改變,這是有點(diǎn)令人困擾的。此外,在表示語(yǔ)音/靜止背景音的判定之間反復(fù)轉(zhuǎn)換也是我們所不希望有的,因?yàn)闀r(shí)間常數(shù)在該兩狀態(tài)之間的轉(zhuǎn)移過(guò)程中卻是在起作用的。若由于誤碼而產(chǎn)生過(guò)度轉(zhuǎn)換的情況。則將是令人感到非常困擾的。5.參數(shù)調(diào)節(jié)器24中的實(shí)際反混亂行動(dòng)(主要是頻譜低通濾波和帶寬擴(kuò)展的混合作用,如上述瑞典專(zhuān)利申請(qǐng)9300290-5中所詳述的那樣)受誤碼的損害。其中一個(gè)影響是因語(yǔ)音或話(huà)音活動(dòng)檢測(cè)器20或信號(hào)鑒別器22作出的錯(cuò)誤判定引起的。在這些情況下,可能會(huì)開(kāi)始進(jìn)行或中止對(duì)低通濾波器的更新。從而與完善信道的情況相比會(huì)多了一個(gè)偏差。另一個(gè)影響是在有影響著饋給低通濾波器的頻譜信息和帶寬擴(kuò)展的誤碼時(shí)間生的。這兩個(gè)影響都會(huì)使質(zhì)量下降。6.語(yǔ)音解碼器26(只要有的話(huà))具有與上述第5項(xiàng)所述類(lèi)似的問(wèn)題。此外,所謂頻譜波動(dòng)在感覺(jué)上也是極其敏感的問(wèn)題,且由于它可通過(guò)反混亂加以控制,因而誤會(huì)使再現(xiàn)的語(yǔ)音信號(hào)的質(zhì)量大幅度下降。7.上述諸影響可能會(huì)同時(shí)起作用且彼此相互影響。舉例說(shuō),語(yǔ)音檢測(cè)器20中錯(cuò)誤的判定可能會(huì)促使緩沖器停止對(duì)信號(hào)鑒別器22進(jìn)行的更新。這反過(guò)來(lái)又會(huì)影響信號(hào)鑒別器22一段很長(zhǎng)的時(shí)間,從而降低反回蕩作用的質(zhì)量。從上面的討論可知,傳輸誤差會(huì)導(dǎo)致對(duì)語(yǔ)音檢測(cè)器20、信號(hào)鑒別器22、參數(shù)調(diào)節(jié)器24或這些器件組合在一起的內(nèi)部變量的不正確更新。按照本發(fā)明,這些問(wèn)題是通過(guò)修正在檢測(cè)出傳輸誤差的各幀期間的更新過(guò)程加以減少或解決的?,F(xiàn)在更詳細(xì)地說(shuō)明這個(gè)經(jīng)修正的更新過(guò)程。判定裝置16接收來(lái)自解調(diào)器12和均衡器13關(guān)于二進(jìn)制位可靠性的“軟”信息和來(lái)自信道解碼器14的CRC檢驗(yàn)結(jié)果。于是判定裝置16(根據(jù)“軟信息”)確定已產(chǎn)生或可能產(chǎn)生誤碼。此外還判定可能有的誤碼會(huì)影響濾波或激勵(lì)參數(shù)。若情況果真如此,且若這些誤碼出現(xiàn)在大大影響誤音檢測(cè)器20、信號(hào)鑒別器22或參數(shù)調(diào)節(jié)器24的各參數(shù),由相應(yīng)的信號(hào)就傳送到隱蔽裝置18。這可能是對(duì)應(yīng)于幀能量的參數(shù)含有一個(gè)或多個(gè)誤碼的情況。視乎含誤碼的該參數(shù)而定,隱蔽裝置18能控制對(duì)應(yīng)于語(yǔ)音檢測(cè)器20、信號(hào)鑒別器22和參數(shù)調(diào)節(jié)器24中各內(nèi)部狀態(tài)變量的更新過(guò)程,如圖中控制線(xiàn)30、32和34分別示出的那樣。這些修正包括-檢測(cè)出壞幀時(shí),停止更新語(yǔ)音檢測(cè)器20的內(nèi)部狀態(tài)變量(例如閾值)。這意味著,語(yǔ)音檢測(cè)器20的內(nèi)部變量鎖定到與上一幀相同的值上,或者這些狀態(tài)變量的更新受到限制(狀態(tài)變量只能按小于一般量的量更新)。-另一項(xiàng)措施是在檢測(cè)出含傳輸誤差、不能加以接受的幀時(shí),將語(yǔ)音檢測(cè)器20中作出的判定鎖定到根據(jù)上一幀作出的判定上。-若檢測(cè)出在與靜止性判定有關(guān)的激勵(lì)參數(shù)中含傳輸誤差、不能加以接收的幀,則停止或限制對(duì)信號(hào)鑒別器22中各緩沖器的更新。-另一個(gè)可能的作法是將信號(hào)鑒別器22的判定鎖定到對(duì)上一幀的判定上。-若所收到的幀含有以含頻譜信息的二進(jìn)制位傳輸誤差,則可以停止或限制對(duì)控制著低通濾波和/或帶寬擴(kuò)展的參數(shù)調(diào)節(jié)器24的內(nèi)濾波系數(shù)的更新過(guò)程。-可能有的后置濾波器的頻譜波動(dòng)可鎖定到上一幀的波動(dòng)上。-鑒于收到的參數(shù)不同,其所影響的圖1中的方框(語(yǔ)音檢測(cè)器20、信號(hào)鑒別器22、參數(shù)調(diào)節(jié)器24和可能有的后置濾波器)也同,因而可以理解,根據(jù)誤碼是在所收到幀的何部件檢測(cè)出可以采取的一個(gè)或若干個(gè)這些措施。從上述討論中還可以知道,若傳輸誤差出現(xiàn)在連續(xù)各幀的某些收到的參數(shù)中,則接收機(jī)相應(yīng)方框的相應(yīng)內(nèi)部狀態(tài)變量會(huì)鎖定到(或基本上鎖定到)其在最遲收到的相應(yīng)參數(shù)在其中正確收到的幀中的值上。本說(shuō)明書(shū)附錄中的兩個(gè)PASCAL程序模塊詳細(xì)舉例說(shuō)明了本發(fā)明方法的一個(gè)最佳實(shí)施例。本
技術(shù)領(lǐng)域:
的行家們都知道,在不脫離本發(fā)明精神實(shí)質(zhì)和本說(shuō)明書(shū)所附權(quán)利要求書(shū)中所述的本發(fā)明范圍的前提下,是可以對(duì)本發(fā)明作種種修改和更改的。附錄[INHERIT("spdSdef")]MODULEvad_dtx_rx(input,output);CONSTnr_sub_blocks=4;nr_acf_lags_in=10;nr_acf_lags_used=8;burstconst=3;bangconst=5;frames_av0=4;VARadaptcount:[STATIC]INTEGER;{Forthreshold}thvad:[STATIC]DOUBLE;{Forthreshold}rvad:[STATIC]ARRAYOFREAL;burstcount:[STATIC]INTEGER;{Foroverhang}hangcount:[STATIC]INTEGER;{Foroverhang}n:[STATIC]ARRAY[-1__nr_sub_blocks-1]OFINTEGER;last_dm:[STATIC]REAL;{ForVAD}old_lag_count:[STATIC]INTEGER;very_old_lag_count:[STATIC]INTEGER;thresh:[STATIC]REAL;lthresh:[STATIC]INTEGER;nthresh:[STATIC]INTEGER;acf_old,av0:[STATIC]ARRAY[-frames_av0__0,0__nr_acf_lags_used]OFREAL;aavl,ravl,avl:[STATIC]ARRAYOFREAL;elapsed_frames:[STATIC]INTEGER;sp_hangover:[STATIC]INTEGER;speech_dtx:[STATIC]BOOLEAN;sp_old:[STATIC]BOOLEAN;PROCEDUREschur_pas(acf:ARRAY[A1..A2:INTEGER]OFREAL;VARrc:ARRAY[B1..B2:INTEGER]OFREAL;mdim:INTEGER);EXTERNAL;PROCEDUREstepup_pas(rc:ARRAY[A1..A2:INTEGER]OFREAL;VARa:ARRAY[B1..B2:INTEGER]OFREAL;mdim:INTEGER);EXTERNAL;PROCEDUREFlstat_det_rx(pow:REAL;sp_1:BOOLEAN;VARsp:BOOLEAN);EXTERNAL;PROCEDUREFlstat_det_rx_init;EXTERNAL;PROCEDUREFLvad_init;{MUSTbecalledfromstart}VARi,j:INTEGER;BEGIN{threshold}adaptcount:=0;thvad:=1000000;rvad:=6;rvad[1]:=-4;rvad[2]:=1;FORi:=3TOnr_acf_lags_usedDOBEGINrvad[i]:=0;END;{endthreshold}{vad}old_lag_count:=0;very_old_lag_count:=0;n[3]:=19;hangcount:=-1;burstcount:=0;last_dm:=0;thresh:=0.05;lthresh:=2;nthresh:=4;FORi:=-frames_av0TO-1DOBEGINFORj:=0TOnr_acf_lags_usedDOBEGINacf_old[i,j]:=0;avO[i,j]:=0;END;END;{endvad}elapsed_frames:=24;sp_hangover:=0;speech_dtx:=TRUE;sp_old:=TRUE;Flstat_det_rx_init;END;{init_vad_dtx}PROCEDUREvad_thresh(acf0:REAL;{Input}rav1:ARRAY[A1..A2:INTEGER]OFREAL;{Input}stat:BOOLEAN;{Input}ptch:BOOLEAN;{Input}pvad:DOUBLE{Output});{Commonvariablesused:(alloutput)adaptcountinitiallysetto0thvadinitiallysetto1000000rvadinitiallysettorvad:6rvad[1]:-4rvad[2]:1rvad[3-8]:0}CONSTpth=300000;plev=800000;fac=3;adp=8;inc=16;dec=32;margin=80000000;VARi:INTEGER;BEGINIFacf0<pthTHENBEGINthvad:=plev;ENDELSEBEGINIFNOT(statANDNOTptch)THENBEGINadaptcount:=0;ENDELSEBEGINadaptcount:=adaptcount+1;IFadaptcount>adpTHENBEGINthvad:=thvad-thvad/dec;IFthvad<pvad*facTHENBEGINthvad:=MIN(thvad+thvad/inc,pvad*fac);END;IFthvad>pvad+marginTHENBEGINthvad:=pvad+margin;END;FORi:=0TOnr_acf_lags_usedDOBEGINrvad[i]:=ravl[i];END;adaptcount:=adp+1;END;END;END;END;{Procedure}PROCEDUREFLvad_rx_l(acf_in:realACFType;{Input}ltp_lags:integersubframeltptype;{Input}VARvad:BOOLEAN);{Output}{Commonvariablesused:n[-1..3]:ltp_lagsInput/Outputoldlagcount:input/Outputveryoldlagcount:Input/Outputthvad:threshold}VARptch,vvad,stat:BOOLEAN;lag_count,smallag,i,j,k:INTEGER;acf0,dm,difference:REAL;pvad:DOUBLE;rc:ARRAY[1..nr_acf_lags_used]OFREAL;BEGINn[-1]:=n[3];FORi:=0TO3DOBEGINn[i]:=ltp_lags[i];END;FORi:=-frames_av0TO-1DOBEGINFORk:=0TOnr_acf_lags_usedDOBEGINacf_old[i,k]:=acf_old[i+1,k];av0[i,k]:=av0[i+1,k];END;END;FORk:=0TOnr_acf_lags_usedDOBEGINacf_old:=acf_in[k];END;{Adaptivefilteringandenergycomputation.}pvad:=rvad*acf_old;FORk:=1TOnr_acf_lags_usedDOBEGINpvad:=pvad+2.0*rvad[k]*acf_old;END;{ACFaveraging}FORk:=0TOnr_acf_lags_usedDOBEGINav0:=0;FORj:=0TOframes_av0-1DOBEGINav0:=av0+acf_old[-j,k];END;av1[k]:=av0[-frames_av0,k];END;{Solvetheequationssystem}schur_pas(av1,rc,nr_acf_lags_used);stepup_pas(rc,aav1,nr_acf_lags_used);FORi:=0TOnr_acf_lags_usedDOBEGINrav1[i]:=0;FORk:=0TOnr_acf_lags_used-iDOBEGINrav1[i]:=rav1[i]+aav1[k]*aav1[k+i];END;END;IFav0[O,O]<=0THENBEGINdm:=0;ENDELSEBEGINdm:=rav1[O]*av0[O,O];FORi:=1TOnr_acf_lags_usedDOBEGINdm:=dm+2*ravl[i]*av0[O,i];END;dm:=dm/av0[O,O];END;difference:=dm-last_dm;stat:=ABS(difference)<thresh;last_dm:=dm;ptch:=((old_lag_count+very_old_lag_count)>=nthresh);acf0:=acf_in;vad_thresh(acf0,ravl,stat,ptch,pvad);vvad:=(pvad>thvad);IFvvadTHENBEGINburstcount:=burstcount+1;ENDELSEBEGINburstcount:=0;END;IFburstcount>=burstconstTHENBEGINhangcount:=hangconst;burstcount:=burstconst;END;vad:=vvadOR(hangcount>=0);IFhangcount>=0THENBEGINhangcount:=hangcount-1;END;lag_count:=0;FORj:=0TO3DOBEGINIFn[j]>19THENBEGINsmallag:=MAX(n[j],n[j-1])MODMIN(n[j],n[j-1]);IFMIN(smallag,MIN(n[j],n[j-1])-smallag)<lthreshTHENBEGINlag_count:=lag_count+1;END;END;END;very_old_lag_count:=old_lag_count;old_lag_count:=lag_count;END;PROCEDUREFLdtx_hand_rx_1(vad:BOOLEAN;{Input}VARsp:BOOLEAN);{Output}BEGINIFelapsed_frames<24THENBEGINelapsed_frames:=elapsed_frames+1;END;IFspeech_dtxTHENBEGINIFvadTHENBEGINsp:=TRUE;ENDELSEBEGINsp_hangover:=1;IFelapsed_frames=23THENBEGINelapsed_frames:=22;END;sp:=(elapsed_frames>23);speech_dtx:=FALSE;END;ENDELSEBEGINIFvadTHENBEGINsp:=TRUE;speech_dtx:=TRUE;ENDELSEBEGINIFsp_hangover<5THENBEGINsp_hangover:=sp_hangover+1;IFelapsed_frames=23THENBEGINelapsed_frames:=22;END;END;IFsp_hangover>4THENBEGINelapsed_frames:=0;sp:=FALSE;ENDELSEBEGINsp:=(elapsed_frames>23);END;END;END;END;PROCEDUREFLvad_rx(acf_in:realACFType;{Input}ltp_lags:integersubframeltptype;{Input}FlbadQuality:BOOLEAN;{Input}VARsp:BOOLEAN);{Output}VARvad:BOOLEAN;sp1:BOOLEAN;BEGINIFNOTFLbadQualityTHENBEGINFLvad_rx_1(acf_in,ltp_lags,vad);FLdtx_hand_rx_1(vad,sp1);FLstat_det_rx(acf_in[O],sp1,sp);IFNOTuse_stat_detTHENBEGINsp:=sp1;END;sp_old:=sp;ENDELSEBEGINsp:=sp_old;END;END;END.MODULEas_actions_rx(input,output);{"Global"(forthemodule)variables}VARFLfilter_filter_state:[STATIC]realArray10Type;FLfilter_filter_coeff:[STATIC]REAL;FLfilter_filter_gain:[STATIC]REAL;FLfilter_post_state:[STATIC]realArray10Type;FLfilter_post_coeff:[STATIC]REAL;FLfilter_post_gain:[STATIC]REAL;FLfilter_my_state:[STATIC]REAL;FLfilter_my_coeff:[STATIC]REAL;FLfilter_my_gain:[STATIC]REAL;FLexpand_factor:[STATIC]REAL;first_sp:[STATIC]BOOLEAN;{Externalroutines}PROCEDUREstepdn_unstable_special_pas(a:realArray10Type;{Input}VARrc:RealArray10Type;{Output}VARunstable:BOOLEAN);{Output}EXTERNAL;PROCEDUREstepdn_special_pas(a:realArray10Type;{Input}VARrc:RealArray10Type);{Output}EXTERNAL;PROCEDUREFLpostCoeffCalculation(ZFLacfW:realACFType;VARZFLetaCurr:realArray10Type);EXTERNAL;PROCEDUREFLcalculateACF(FLalphaCurr:realArray10Type;VARFLacfW:realACFType);EXTERNAL;PROCEDUREFLcalculateautocorrfunction(FLalphaCurr:realArray10Type;VARFLacfW:realACFType);EXTERNAL;PROCEDUREFLas_actions_rx_init;{MUSTbecalledfirsttoinitilize}{somethings.}VARm:INTEGER;{NOTEFLbw_expistransferredasCOMMON}BEGINFORm:=1TOnrCoeffDOBEGINFLfilter_filter_state[m]:=0;FLfilter_post_state[m]:=0;END;FLfilter_my_state:=0;first_sp:=TRUE;{ThefollowingcouldbeplacedinROM}FLfilter_filter_coeff:=EXP(-1.0/(4.0*50.0));FLfilter_my_coeff:=EXP(-1.0/(0.25*50.0));FLfilter_post_coeff:=FLfilter_my_coeff;FLfilter_filter_gain:=1-FLfilter_filter_coeff;FLfilter_post_gain:=1-FLfilter_post_coeff;FLfilter_my_gain:=1-FLfilter_my_coeff;IFFLbw_exp>=0THENBEGINFLexpand_factor:=EXP(-FLpi*FLbw_exp/8000.0);ENDELSEBEGINFLexpand_factor:=1;END;{FLexpand_factor:=EXP(-FLpi*100.0/8000.0);}{FLexpand_factor:=EXP(-FLpi*400.0/8000.0);}{###}{###}WRITELN('FLfilter_filter_coeff:',FLfilter_filter_coeff);WRITELN('FLfilter_filter_gain:',FLfilter_filter_gain);WRITELN('FLfilter_my_coeff:',FLfilter_my_coeff);WRITELN('FLfilter_my_gain:',FLfilter_my_gain);WRITELN('FLfilter_post_coeff:',FLfilter_post_coeff);WRITELN('FLfilter_post_gain:',FLfilter_post_gain);WRITELN('FLbw_exp:',FLbw_exp);WRITELN('FLexpand_factor:',FLexpand_factor);WRITELN('FLv_post:',FLv_post);{###}END;PROCEDUREFLas_actions_rx(sp:BOOLEAN;{In}FLa_in:realArray10Type;{In}FLrc_in:realArray10Type;{In}FLbadQuality:BOOLEAN;{In}VARFLa_pres:realArray10Type;{Out}VARFLrc_pres:realArray10Type;{Out}VARFLa_post_pres:realArray10Type;{Out}VARFLetacurr:realArray10Type;{In/Out}VARFLmy_use:REAL);{Out}VARm:INTEGER;FLdum:REAL;FLRC_temp:realArray10Type;unstable:BOOLEAN;FLacfw:realACFType;i_ab:INTEGER;{###}eta_temp:realArray10Type;{###}BEGINFORm:=1TOnrCoeffDOBEGINFLa_post_pres[m]:=FLa_in[m]*FLnyweight[m];END;IFspTHENBEGIN{FLfilter_my_state:=FLfilter_my_coeff*FLfilter_my_state+FLfilter_my_gain*FLmy;}{###}FLmy_use:=FLmy;FORm:=1TOnrCoeffDOBEGINFLa_pres[m]:=FLa_in[m];FLrc_pres[m]:=FLrc_in[m];END;IFfirst_spTHENBEGINFLdum:=FLexpand_factor;FORm:=1TOnrCoeffDOBEGINFlfilter_filter_state[m]:=FLa_in[m]*FLdum;FLfilter_post_state[m]:=FLa_post_pres[m]*FLdum;FLdum:=FLdum*Flexpand_factor;END;END;ENDELSEBEGINIFNOTFLbadQualityTHENBEGINFLfilter_my_state:=FLfilter_my_coeff*FLfilter_my_state+FLfilter_my_gain*FLmy_off;END;FLmy_use:=FLfilter_my_state;FLdum:=FLexpand_factor;FORm:=1TOnrCoeffDOBEGINIFNOTFLbadQualityTHENBEGINFLfilter_filter_state[m]:=FLfilter_filter_state[m]*FLfilter_filter_coeff+FLfilter_filter_gain*FLa_in[m]*FLdum;FLfilter_post_state[m]:=FLfilter_post_state[m]*FLfilter_post_coeff+FLfilter_post_gain*FLa_post_pres[m]*FLdum;END;FLa_pres[m]:=FLfilter_filter_state[m];FLa_post_pres[m]:=FLfilter_post_state[m];FLdum:=FLdum*FLexpand_factor;END;{Checkforstability}stepdn_unstable_special_pas(FLa_pres,{In}FLRC_pres,{Out}unstable);{Out}IFunstableTHENBEGINWRITELN('Unstablea-parameter(as_actions_rx)');FORm:=1tonrCoeffDOBEGINFLa_pres[m]:=FLa_in[m];FLrc_pres[m]:=FLrc_in[m];END;END;stepdn_unstable_special_pas(FLa_post_pres,{In}FLRC_temp,{Out}unstable);{Out}IFunstableTHENBEGINWRITELN('Unstablepost_filter(as_actions_rx)');FLdum:=FLexpand_factor;FORm:=1TOnrCoeffDOBEGINFLa_post_pres[m]:=FLa_in[m]*FLnyweight[m]*Fldum;FLdum:=FLdum*FLexpand_factor;END;END;FLcalculateACF(FLa_post_pres,FLACFw);{Flcalculateautocorrfunction(FLa_pres,FLACFw);}FLpostCoeffCalculation(FLACFw,FLetaCurr);END;first_sp:=(spANDfirst_sp);END;END.權(quán)利要求1.以幀為傳輸單元的無(wú)線(xiàn)電通信系統(tǒng)的接收機(jī)中的一種設(shè)備,用以隱蔽語(yǔ)音解碼器(24)中因通信信道引起的傳輸誤差,所述語(yǔ)音解碼器是源濾波器式的,由裝置(20,22,24)控制,裝置(20,22,24)的內(nèi)狀態(tài)變量逐幀加以更新,供調(diào)節(jié)所收到的表示在所述通信信道上傳輸?shù)谋尘耙舻臑V波參數(shù),所述設(shè)備的特征在于(a)幀檢測(cè)裝置(12,13,14),用以檢測(cè)含傳輸誤差的幀;(b)判定裝置(16),用以判定經(jīng)檢測(cè)其中有傳輸誤差的幀是否可接受的;(c)傳輸誤差隱蔽裝置,用以在所述判定裝置宣判所述經(jīng)檢測(cè)的幀為不可接收時(shí)通過(guò)限制起碼其中一個(gè)所述內(nèi)狀態(tài)變量的更新過(guò)程隱蔽所述檢測(cè)出的傳輸誤差。2.如權(quán)利要求1所述的設(shè)備,其特征在于,所述濾波參數(shù)調(diào)節(jié)裝置有一個(gè)至少有一個(gè)判定語(yǔ)音/背景音用的閾值的話(huà)音活動(dòng)檢測(cè)器(20),所述隱蔽裝置(18)在所述判定裝置(16)宣布所述檢測(cè)出的幀為不可接受的時(shí)限制對(duì)所述閾值的更新過(guò)程。3.如權(quán)利要求1所述的設(shè)備,其特征在于,所述濾波參數(shù)調(diào)節(jié)裝置有一個(gè)話(huà)音活動(dòng)檢測(cè)器(20)用以逐幀判定語(yǔ)音/背景音,所述隱蔽裝置(18)在所述檢測(cè)出的幀被所述判定裝置(16)宣判為不可接受時(shí)阻止更新從上一幀獲得的語(yǔ)音/背景音判定結(jié)果。4.如權(quán)利要求2或3所述的設(shè)備,其特征在于,所述濾波參數(shù)調(diào)節(jié)裝置還有一個(gè)與所述話(huà)音活動(dòng)檢測(cè)器(20)相連接的靜止性檢測(cè)器(22),所述隱蔽裝置(18)在所述判定裝置(16)宣判所述檢測(cè)出的幀為不可接受時(shí)限制所述緩沖器的更新過(guò)程。5.如權(quán)利要求2或3所述的設(shè)備,其特征在于,所述濾波參數(shù)調(diào)節(jié)裝置還有一個(gè)與所述話(huà)音活動(dòng)檢測(cè)(20)的輸出端相連接的靜止性檢測(cè)器(22),所述隱蔽裝置(18)在所述判定裝置(16)宣判所述檢測(cè)出的幀為不可接受時(shí)阻止更新根據(jù)上一幀作出靜止/非靜止判定結(jié)果。6.如權(quán)利要求2、3、4或5所述的設(shè)備,其特征在于,所述濾波參數(shù)調(diào)節(jié)裝置有一個(gè)用以低通濾波波參數(shù)的裝置(24),所述隱蔽裝置(18)在所述判定裝置(16)宣布所述檢測(cè)出的幀為不可接受時(shí)限對(duì)低通濾波過(guò)程的濾波系數(shù)的更新。7.如權(quán)利要求2、3、4、5或6所述的設(shè)備,其特征在于,所述濾波參數(shù)調(diào)節(jié)裝置有一用于擴(kuò)展用濾波參數(shù)所表示的濾波器的帶寬的裝置,所述隱蔽裝置(18)在所述判定裝置宣判所述檢測(cè)出的幀為不可接受時(shí)限制對(duì)濾波系統(tǒng)的更新過(guò)程。8.如權(quán)利要求6或7所述的設(shè)備,其特征在于一個(gè)用以調(diào)節(jié)解碼信號(hào)頻譜波動(dòng)的后置濾波器,所述隱蔽裝置(18)在所述判定裝置宣判所述檢測(cè)出的幀為不可接受時(shí)限制對(duì)波動(dòng)信息的更新過(guò)程。9.一種在以幀為基本傳輸單元的無(wú)線(xiàn)電通信系統(tǒng)的接收機(jī)中隱蔽語(yǔ)音解碼器中因通信信道引起的傳輸誤差的一種方法,所述語(yǔ)音解碼器是源濾波器式的,且具有一具逐幀更新的內(nèi)狀態(tài)變量的裝置,供調(diào)節(jié)所收到的表示在所述通信信道上傳輸?shù)谋尘耙舻臑V波參數(shù),所述方法的特征在于,它包括下列步驟(a)檢測(cè)含傳輸誤差的幀;(b)判定檢測(cè)步驟中宣判所述檢測(cè)出的幀為不可接受時(shí)通過(guò)限制至少其中一個(gè)所述內(nèi)狀態(tài)變量的更新過(guò)程將所述檢測(cè)出的傳輸誤差隱蔽起來(lái)。(c)在所述判定步驟中宣判所述檢測(cè)出的幀為不可接受時(shí)通過(guò)限制對(duì)至少其中一個(gè)所述內(nèi)狀態(tài)變量的更新過(guò)程所述檢測(cè)出的傳輸誤差隱蔽起來(lái)。10.如權(quán)利要求9所述的方法,所述濾波參數(shù)調(diào)節(jié)裝置有一個(gè)具至少一個(gè)供判定語(yǔ)音/背景音用的閾值的話(huà)音活動(dòng)檢測(cè)器(20),所述方法的特征在于,所述隱蔽步驟包括所述判定步驟中宣判所述檢測(cè)出的幀為不可接受時(shí)限制對(duì)所述閾值的更新過(guò)程的步驟。11.如權(quán)利要求9所述的方法,所述濾波參數(shù)調(diào)節(jié)裝置有一個(gè)話(huà)音活動(dòng)檢測(cè)器(20)。用以逐幀判定語(yǔ)音/背景音,所述方法的特征在于,所述陷蔽步驟包括所述判定步驟中宣判所述檢測(cè)出的幀為不可接受時(shí)阻止更新根據(jù)上一幀獲得的語(yǔ)音/背景音判定結(jié)果的步驟。12.如權(quán)利要求10或11所述的方法,所述濾波參數(shù)調(diào)節(jié)裝置還包括一個(gè)與所述語(yǔ)音活動(dòng)檢測(cè)器(20)的輸出端相連接的用以鑒別靜止和非靜止背景音的靜止性檢測(cè)裝置(22),所述靜止性檢測(cè)器有至少一個(gè)存儲(chǔ)著最新背景音占優(yōu)勢(shì)的幀用以對(duì)靜止性進(jìn)行判定的統(tǒng)計(jì)瞬時(shí)估計(jì)值的緩沖器,所述方法的特征在于,所述隱蔽步驟包括所述判定步驟中宣判所述檢測(cè)出的幀為不可接受時(shí)限制對(duì)所述緩沖器進(jìn)行更新的步驟。13.如權(quán)利要求10或11所述的方法,所述濾波參數(shù)調(diào)節(jié)裝置還包括一個(gè)與所述話(huà)音活動(dòng)檢測(cè)器(20)的輸出端相連接用以鑒別靜止和非靜止背景音的靜止性檢測(cè)器(22),所述方法的特征在于,所述隱蔽步驟包括所述判定步驟中宣判所述檢測(cè)出的幀為不可接受時(shí)阻止更新根據(jù)上的一幀作出的靜止性/非靜止性的判定的步驟。14.如權(quán)利要求10、11、12或13所述的方法,所述濾波參數(shù)調(diào)節(jié)裝置包括用以低通濾波各濾波參數(shù)的裝置(24),所述方法的特征在于,在所述判定步驟中宣判所述檢測(cè)出的幀為不可接受時(shí)限制對(duì)低通濾波過(guò)程的濾波系統(tǒng)的更新過(guò)程。15.如權(quán)利要求10、11、12、13或14所述的方法,所述濾波參數(shù)調(diào)節(jié)裝置包括用以擴(kuò)展這些參數(shù)所表示的濾波器的帶寬,所述方法的特征在于,在所述判定步驟中宣判所述檢測(cè)出的幀為不可接受時(shí)限制更新濾波系數(shù)。16.如權(quán)利要求14或15所述的方法,其中由后置濾波器調(diào)節(jié)解碼信號(hào)頻譜的波動(dòng),所述方法的特征在于,在所述判定步驟中宣判所述檢測(cè)出的幀為不可接受時(shí)限制對(duì)波動(dòng)的信息的更新。全文摘要以幀為基本傳輸單元的無(wú)線(xiàn)電通系統(tǒng)的一種接收機(jī),具有一個(gè)源濾波器式的語(yǔ)音解碼器,該解碼器由一個(gè)內(nèi)部狀態(tài)變量逐幀加以更新用以調(diào)節(jié)所收到的表示在通信信道上傳輸?shù)谋尘耙舻臑V波參數(shù)的裝置(20,22,24)。接收機(jī)包括用以檢測(cè)含傳輸誤差的幀的裝置(12,13,14),用以判定檢測(cè)出有傳輸誤差的幀是否可以接受的裝置(16)和用以通過(guò)在判定裝置宣判所檢測(cè)出的幀為不可接受時(shí)限制對(duì)至少一個(gè)內(nèi)部狀態(tài)變量更新將檢測(cè)出的傳輸誤差隱蔽起來(lái)的裝置(18)。文檔編號(hào)G10L19/005GK1110486SQ9419035公開(kāi)日1995年10月18日申請(qǐng)日期1994年6月2日優(yōu)先權(quán)日1993年6月11日發(fā)明者K·T·韋格倫,R·A·伯格斯特龍申請(qǐng)人:艾利森電話(huà)股份有限公司