欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

健壯解碼器的制作方法

文檔序號(hào):6121968閱讀:160來源:國知局

專利名稱::健壯解碼器的制作方法健壯解碼器
技術(shù)領(lǐng)域
所述工具和技術(shù)涉及音頻編解碼器,尤其涉及用于處理延遲或或丟失的已編碼音頻信息的技術(shù)。些旦冃足隨著數(shù)字無線電話網(wǎng)絡(luò)、因特網(wǎng)上的流音頻以及因特網(wǎng)電話的出現(xiàn),語音的數(shù)字處理和傳遞變得常見。工程師使用各種技術(shù)來高效地處理語音,同時(shí)仍保持其質(zhì)量。為了理解這些技術(shù),理解計(jì)算機(jī)中如何表示和處理音頻信息是有幫助的。I.計(jì)算機(jī)中音頻信息的表示計(jì)算機(jī)將音頻信息處理為表示音頻的一連串?dāng)?shù)字。單個(gè)數(shù)字可表示一音頻樣本,它是特定時(shí)刻的幅值。若干因素會(huì)影響音頻的質(zhì)量,包括樣本深度和采樣速率。樣本深度(或精度)指示用于表示樣本的數(shù)字的范圍。每一樣本可能的值越多,一般產(chǎn)生的輸出質(zhì)量越高,因?yàn)榭杀硎痉戎性轿⒚畹淖兓?。八位樣本?56個(gè)可能的值,而十六位樣本有65,536個(gè)可能的值。采樣速率(通常被測量為每秒的樣本數(shù))也影響質(zhì)量。采樣速率越高,質(zhì)量越高,因?yàn)榭杀硎靖嗟穆曇纛l率。一些常見的采樣速率有8,000、11,025、22,050、32,000、44,100、48,000和96,000樣本/秒(Hz)。表1示出不同質(zhì)量水平的若干音頻格式,以及相應(yīng)的原始比特率代價(jià)。<table>tableseeoriginaldocumentpage5</column></row><table>表l:不同質(zhì)量音頻的比特率如表1所示,高質(zhì)量音頻的代價(jià)是高比特率。高質(zhì)量音頻信息消耗大量計(jì)算機(jī)存儲(chǔ)和傳輸容量。眾多計(jì)算機(jī)和計(jì)算機(jī)網(wǎng)絡(luò)缺乏處理原始數(shù)字音頻的資源。壓縮(也被稱為編碼)通過將信息轉(zhuǎn)換成較低比特率的形式降低了存儲(chǔ)和傳輸音頻信息的成本。壓縮可以是無損的(其中質(zhì)量不會(huì)受損)或有損的(其中質(zhì)量受損,但與相應(yīng)的無損壓縮相比比特率減少更顯著)。解壓(也被稱為解碼)從壓縮后的形式中提取原始信息的重構(gòu)版本。編解碼器是編碼器/解碼器系統(tǒng)。II.語音編碼器和解碼器音頻壓縮的一個(gè)目標(biāo)在于數(shù)字地表示音頻信號(hào)以提供給定數(shù)量的位的最高信號(hào)質(zhì)量。換言之,該目標(biāo)在于以最少的位表示給定質(zhì)量水平的音頻信號(hào)。在某些場景中適用其它的目標(biāo),諸如從傳輸差錯(cuò)的回彈力和限制因編碼/傳輸/解碼而造成的總體延遲。不同種類的音頻信號(hào)具有不同的特征。音樂的特征在于大范圍的頻率和幅度,且通常包括兩個(gè)或更多的聲道。另一方面,語音的特征在于較小范圍的頻率和幅度,且通常在單聲道中表示。某些編解碼器和處理技術(shù)適用于音樂和一般音頻;其它編解碼器和處理技術(shù)適用于語音。一種類型的常規(guī)語音編解碼器使用線性預(yù)測來實(shí)現(xiàn)壓縮。語音編碼包括若干階段。編碼器找到并量化線性預(yù)測濾波器的系數(shù),該濾波器被用來將樣本值預(yù)測為之前的樣本值的線性組合。殘留信號(hào)(表示為"激勵(lì)"信號(hào))指示原始信號(hào)中未通過濾波來準(zhǔn)確預(yù)測的部分。在某些階段,語音編解碼器為有話音片段(特征在于聲音和弦振動(dòng))、無話音片段、和安靜片段使用不同的壓縮技術(shù),因?yàn)椴煌N類的語音具有不同的特征。有話音片段一般展示高度重復(fù)的發(fā)音模式,即使在殘留域中也如此。對(duì)有話音片段,編碼器通過將當(dāng)前的殘留信號(hào)與之前的殘留周期進(jìn)行比較并按照與之前的周期相關(guān)的延遲或滯后信息編碼當(dāng)前的殘留信號(hào)來實(shí)現(xiàn)進(jìn)一步的壓縮。編碼器使用特別設(shè)計(jì)的碼本來處理原始信號(hào)與所預(yù)測的、已編碼的表示(來自線性預(yù)測和延遲信息)之間的差異。盡管上述某些語音編解碼器對(duì)眾多應(yīng)用具有良好的總體性能,但它們具有若干缺點(diǎn)。具體地,當(dāng)結(jié)合動(dòng)態(tài)網(wǎng)絡(luò)資源使用語音編解碼器時(shí),就有若干缺點(diǎn)浮出表面。在這樣的場景中,已編碼語音可能因臨時(shí)性的帶寬短缺或其它問題而被丟失。A.無效的掩蓋技術(shù)當(dāng)遺漏一個(gè)或多個(gè)已編碼語音的分組,諸如它們被丟失、延遲、破壞或以其它方式在傳輸中或在別處不可使用時(shí),解碼器通常試圖以某種方式掩蓋遺漏的分組。例如,某些解碼器僅重復(fù)己經(jīng)接收的分組。然而,如果有顯著的分組丟失,該技術(shù)可能迅速導(dǎo)致已解碼語音輸出的質(zhì)量的降級(jí)。某些編解碼器使用更復(fù)雜的掩蓋技術(shù),諸如波形相似性疊加法("WSOLA")。該技術(shù)通過經(jīng)現(xiàn)有基音周期(pitchcycle)的加權(quán)平均生成新基音周期來擴(kuò)展已解碼音頻信號(hào)以掩蓋遺漏的分組。該方法比僅重復(fù)先前的分組可更有效地掩蓋丟失的分組。然而,它不是對(duì)所有情況都是理想的。而且,如果它用于將信號(hào)擴(kuò)展得過長,它可能產(chǎn)生不期望的聲音效果(諸如機(jī)械或振鳴聲)。此外,眾多幀依賴于之前的幀的已解碼特征的記憶(諸如激勵(lì)信號(hào)歷史)來解碼。當(dāng)這樣的記憶不存在時(shí)(如原本用于產(chǎn)生記憶的分組丟失、延遲等),甚至隨遺漏幀之后接收的幀的信號(hào)質(zhì)量也可能降級(jí)。B.低效或無效的所需分組延遲計(jì)算隨著己編碼音頻信息的分組被傳送給解碼器應(yīng)用程序,每一分組可能經(jīng)歷因例如網(wǎng)絡(luò)變化而造成的不同的延遲。這也可導(dǎo)致分組以不同于其發(fā)送的順序到達(dá)。應(yīng)用程序或解碼器可計(jì)算延遲統(tǒng)計(jì)數(shù)據(jù)以確定所需解碼器緩沖延遲,期望該延遲足夠長以允許足夠數(shù)目的分組及時(shí)到達(dá)解碼器以被解碼和使用。當(dāng)然,一個(gè)抵消的考慮有系統(tǒng)中的總體延遲,尤其對(duì)諸如電話等實(shí)時(shí)、交互式應(yīng)用。計(jì)算最優(yōu)延遲的一種方式是査看先前分組的最大延遲并以該延遲值為指南。分組的延遲一般通過計(jì)算當(dāng)發(fā)送分組時(shí)施加在編碼器側(cè)的發(fā)送時(shí)戳與當(dāng)接收分組時(shí)施加在解碼器側(cè)的接收時(shí)戳之差來確定。然而,有時(shí)存在異常,使系統(tǒng)要適應(yīng)沒有代表性的分組。此外,有時(shí)令少數(shù)分組晚到(且被遺漏)好過強(qiáng)加足夠長的延遲來接收這些異常、晚到的分組。一種替換方式是基于諸如游動(dòng)平均和游動(dòng)方差計(jì)算等公式來計(jì)算所需延遲。然而,在這樣的計(jì)算中需要優(yōu)化眾多參數(shù),且難以找到一方面計(jì)算和響應(yīng)速度與另一方面將計(jì)算基于大量代表性歷史值之間的合適的折衷。另一方法是直接分析分組延遲分布。例如,可維護(hù)分組延遲的柱狀圖。延遲時(shí)間柱狀圖中的柱的寬度代表將計(jì)算最優(yōu)延遲的所需準(zhǔn)確度。減少柱大小將改善準(zhǔn)確度。柱狀圖的形狀近似反映出基本的分組延遲分布。當(dāng)新分組到達(dá)時(shí),將分組延遲映射到相應(yīng)的柱,且落入該柱的分組的計(jì)數(shù)遞增。為了反映某些老分組的時(shí)效,所有其它柱中的計(jì)數(shù)在被稱為"老化(aging)"的過程中按比例縮小。為了找到所需的新延遲,解碼器設(shè)置所需的丟失率。典型的值范圍在百分之一到百分之五之間。分析柱狀圖來確定實(shí)現(xiàn)所需丟失所必要的所需延遲的值。該方法的一個(gè)問題在于需要調(diào)諧某些參數(shù),諸如柱寬度、和老化因子。此外,在老化過程中類似地對(duì)待所有老分組,且老化方法本身在該技術(shù)的總體性能上扮演了過分重要的角色。此外,可能會(huì)發(fā)生時(shí)鐘漂移情況。當(dāng)不同設(shè)備的時(shí)鐘速率不同時(shí)會(huì)發(fā)生時(shí)鐘漂移。如果在施加發(fā)送時(shí)戳的編碼器側(cè)設(shè)備與施加接收時(shí)戳的解碼器側(cè)設(shè)備之間發(fā)生時(shí)鐘漂移,則總體延遲將具有正向或負(fù)向的趨勢。即使當(dāng)柱狀圖應(yīng)為靜態(tài)時(shí),這也可使柱狀圖沿延遲時(shí)間線漂移。概述概括來說,該詳細(xì)描述針對(duì)用于音頻編解碼器的各種技術(shù)和工具,尤其針對(duì)與處理因任何原因而遺漏的音頻信息的技術(shù)相關(guān)的工具和技術(shù)。所述實(shí)施例實(shí)現(xiàn)一個(gè)或多個(gè)所述技術(shù)和工具,包括但不限于以下在一個(gè)方面中,如果當(dāng)處理音頻信號(hào)的比特流時(shí)遇到了一個(gè)或多個(gè)遺漏的幀,則至少部分基于一個(gè)或多個(gè)因素從多個(gè)可用的信號(hào)相關(guān)掩蓋技術(shù)中選擇一種掩蓋技術(shù)。執(zhí)行所選掩蓋技術(shù)并輸出結(jié)果。在另一方面中,當(dāng)遇到從音頻信號(hào)的比特流遺漏的一個(gè)或多個(gè)幀時(shí),至少部分基于一個(gè)或多個(gè)先前幀中的基音周期生成掩蓋信號(hào),包括引入基音抖動(dòng)。在另一方面中,遇到從音頻信號(hào)的比特流遺漏的一個(gè)或多個(gè)幀并產(chǎn)生掩蓋信號(hào)。遇到隨后的幀,它至少部分依賴于來自一個(gè)或多個(gè)遺漏幀的信息以便解碼。從掩蓋信號(hào)產(chǎn)生代替信息,且依賴它來代替來自一個(gè)或多個(gè)遺漏幀的信息以對(duì)隨后的幀進(jìn)行解碼。在另一方面中,處理音頻信號(hào)的比特流。當(dāng)遇到從比特流遺漏的一個(gè)或多個(gè)幀時(shí),該處理包括生成包含至少部分基于與可用幀相關(guān)聯(lián)的一個(gè)或多個(gè)值的擴(kuò)展信號(hào)貢獻(xiàn)的掩蓋信號(hào),以及在掩蓋信號(hào)的閾值持續(xù)時(shí)間之后,向掩蓋信號(hào)添加噪聲貢獻(xiàn)。當(dāng)遇到來自比特流的一個(gè)或多個(gè)遺漏的幀時(shí),該處理還可包括沿音頻信號(hào)的至少部分逐漸降低擴(kuò)展信號(hào)貢獻(xiàn)的能量,并沿音頻信號(hào)的至少部分逐漸增加噪聲貢獻(xiàn)的能量。而且,逐漸降低擴(kuò)展信號(hào)貢獻(xiàn)的能量可包括逐漸降低該能量直到擴(kuò)展信號(hào)不可感知。而且,擴(kuò)展信號(hào)貢獻(xiàn)的能量可被逐漸降低,且噪聲貢獻(xiàn)的能量可被逐漸增加,直到掩蓋信號(hào)基本上包括預(yù)定水平的背景噪聲。在另一方面中,處理音頻信號(hào)的比特流。當(dāng)遇到來自比特流的一個(gè)或多個(gè)遺漏幀時(shí),該處理包括標(biāo)識(shí)來自可用幀的多個(gè)可用片段,且對(duì)多個(gè)可用片段中的每一個(gè),使用可用片段的一個(gè)或多個(gè)特征來生成派生片段。使用該多個(gè)可用片段和多個(gè)派生片段來形成合并信號(hào)??捎脦梢允菬o話音幀,一個(gè)或多個(gè)特征可包括可用片段的能量。多個(gè)可用片段可包括第一和第二可用片段,多個(gè)派生片段可包括第一和第二派生片段,形成合并信號(hào)可包括將第一可用片段與第一派生片段合并、將第一派生片段與第二派生片段合并、以及將第二派生片段與第二可用片段合并。多個(gè)可用片段可包括兩個(gè)以上的可用片段,多個(gè)派生片段可包括兩個(gè)以上的派生片段。而且,該處理還可包括使用合并片段來代替可用幀和一個(gè)或多個(gè)遺漏的幀。在另一方面中,維護(hù)一數(shù)據(jù)結(jié)構(gòu)。該數(shù)據(jù)結(jié)構(gòu)包括對(duì)應(yīng)于一組所接收的分組中的分組的一組多個(gè)節(jié)點(diǎn)。該組多個(gè)節(jié)點(diǎn)中的每一節(jié)點(diǎn)包括用于接收該組所接收分組中的相應(yīng)分組的延遲值、指向該組多個(gè)節(jié)點(diǎn)中具有下一較高延遲值的節(jié)點(diǎn)的較高值指針、以及指向該組多個(gè)節(jié)點(diǎn)中具有下一較低延遲值的節(jié)點(diǎn)的較低值指針。至少部分基于該數(shù)據(jù)結(jié)構(gòu)來確定所需解碼器分組延遲值。當(dāng)接收到新分組時(shí),維護(hù)該數(shù)據(jù)結(jié)構(gòu)可包括以新分組的延遲值代替該組所接收的分組中最老分組的延遲值,更新該組多個(gè)節(jié)點(diǎn)中一個(gè)或多個(gè)節(jié)點(diǎn)的高值指針,以及更新該組多個(gè)節(jié)點(diǎn)中一個(gè)或多個(gè)節(jié)點(diǎn)的低值指針。而且,確定該所需解碼器分組延遲值可包括定位一組多個(gè)節(jié)點(diǎn)中包含最大延遲值的節(jié)點(diǎn)、在該組多個(gè)節(jié)點(diǎn)中搜索具有連續(xù)更低延遲值的節(jié)點(diǎn)直到搜索到所需數(shù)目的節(jié)點(diǎn)、以及使用將搜索到的最后一個(gè)節(jié)點(diǎn)的延遲值作為解碼器的所需分組延遲。而且,所需的節(jié)點(diǎn)數(shù)目可對(duì)應(yīng)于預(yù)定的所需分組丟失率??山M合或獨(dú)立使用各種技術(shù)和工具。通過參考附圖進(jìn)行的不同實(shí)施例的以下詳細(xì)描述,附加特征和優(yōu)點(diǎn)將是顯而易見的。附圖簡述圖1是可在其中實(shí)現(xiàn)一個(gè)或多個(gè)所述實(shí)施例的合適計(jì)算環(huán)境的框圖。圖2是可結(jié)合來實(shí)現(xiàn)一個(gè)或多個(gè)所述實(shí)施例的網(wǎng)絡(luò)環(huán)境的框圖。圖3是可結(jié)合來實(shí)現(xiàn)一個(gè)或多個(gè)所述實(shí)施例的實(shí)時(shí)語音幀編碼器的框圖。圖4是描述一種實(shí)現(xiàn)中的碼本參數(shù)的確定的流程圖。圖5是可結(jié)合來實(shí)現(xiàn)一個(gè)或多個(gè)所述實(shí)施例的實(shí)時(shí)語音幀解碼器的框圖。圖6是描述示例解碼器側(cè)VoIP系統(tǒng)中的音頻信息的一般流程的框圖。圖7是描述示例解碼器側(cè)緩沖技術(shù)中對(duì)樣本進(jìn)行緩沖的框圖。圖8是示例分組延遲分布的圖。圖9是示例分組延遲數(shù)據(jù)結(jié)構(gòu)的圖。圖IO是描述確定適當(dāng)?shù)难谏w技術(shù)的示例的流程圖。圖11是示出用于掩蓋遺漏的無話音音頻信息的技術(shù)的示意圖。圖12是描述解碼器記憶恢復(fù)技術(shù)的示例的流程圖。詳細(xì)描述所述實(shí)施例針對(duì)用于編碼和/或解碼時(shí)處理音頻信息的技術(shù)和工具。使用這些技術(shù),改善了從諸如實(shí)時(shí)語音編解碼器等語音編解碼器中得到的語音的質(zhì)量。這樣的改善可得自對(duì)各種技術(shù)和工具的單獨(dú)或組合使用。這樣的技術(shù)和工具可包括基于音頻信號(hào)的特征選擇掩蓋技術(shù)和/或結(jié)合基音擴(kuò)展掩蓋技術(shù)來使用基音抖動(dòng)。該技術(shù)可包括對(duì)從掩蓋技術(shù)得到的信號(hào)中的某一些或全部進(jìn)行編碼并使用己編碼的信息來重新生成用于解碼將來分組的記憶。此外,該技術(shù)可包括使用適用于跟蹤和排序分組延遲的數(shù)據(jù)結(jié)構(gòu)來計(jì)算所需的分組延遲值。盡管為表示起見,以特定的、順序的次序描述了各種技術(shù)的操作,但應(yīng)理解,這種描述方式包含了操作次序的微調(diào),除非需要特定的次序。例如,順序描述的各操作在某些情況中可被重新安排或并發(fā)執(zhí)行。而且,為簡單起見,流程圖可以不示出可結(jié)合其它技術(shù)使用特定技術(shù)的各種方式。盡管以下描述了特定計(jì)算環(huán)境特征和音頻編解碼器特征,但一個(gè)或多個(gè)工具和技術(shù)可用于各種不同類型的計(jì)算環(huán)境和/或各種不同類型的編解碼器。例如,一個(gè)或多個(gè)健壯解碼器技術(shù)可用于不使用CELP編碼模型的編解碼器,諸如自適應(yīng)差分脈碼調(diào)整編解碼器、變換解碼器和/或其它類型的編解碼器。作為另一示例,一個(gè)或多個(gè)編解碼器技術(shù)可用于單頻帶編解碼器或子帶編解碼器。作為另一示例,一個(gè)或多個(gè)健壯解碼器技術(shù)可應(yīng)用于多頻帶編解碼器的單個(gè)頻帶和/或包括多頻帶編解碼器的多個(gè)頻帶的貢獻(xiàn)的合成或未編碼信號(hào)。I.計(jì)算環(huán)境圖1示出了可在其中實(shí)現(xiàn)一個(gè)或多個(gè)所述實(shí)施例的合適計(jì)算環(huán)境(100)的一般示例。計(jì)算環(huán)境(100)不旨在對(duì)本發(fā)明的使用范圍或功能提出任何限制,因?yàn)楸景l(fā)明可在不同的通用或?qū)S糜?jì)算環(huán)境中實(shí)現(xiàn)。參考圖1,計(jì)算環(huán)境(100)包括至少一個(gè)處理單元(110)和存儲(chǔ)器(120)。在圖1中,該最基本配置(130)被包括在虛線內(nèi)。處理單元(110)執(zhí)行計(jì)算機(jī)可執(zhí)行指令,且可以是真實(shí)或虛擬處理器。在多處理系統(tǒng)中,多個(gè)處理單元執(zhí)行計(jì)算機(jī)可執(zhí)行指令以增加處理能力。存儲(chǔ)器(120)可以是易失性存儲(chǔ)器(例如,寄存器、高速緩存、RAM)、非易失性存儲(chǔ)器(例如,ROM、EEPROM、閃存等),或兩者的某種組合。存儲(chǔ)器(120)存儲(chǔ)實(shí)現(xiàn)諸如信號(hào)相關(guān)掩蓋、基音抖動(dòng)、解碼器記憶恢復(fù)、和/或鏈表分組延遲計(jì)算等技術(shù)的軟件(180)。計(jì)算環(huán)境(100)可具有附加特征。在圖1中,計(jì)算環(huán)境(100)包括存儲(chǔ)(140)、一個(gè)或多個(gè)輸入設(shè)備(150)、一個(gè)或多個(gè)輸出設(shè)備(160)和一個(gè)或多個(gè)通信連接(170)。諸如總線、控制器或網(wǎng)絡(luò)等互連機(jī)制(未示出)互連計(jì)算環(huán)境(100)的各個(gè)組件。一般,操作系統(tǒng)軟件(未示出)為在計(jì)算環(huán)境(100)中執(zhí)行的其它軟件提供操作環(huán)境,并協(xié)調(diào)計(jì)算環(huán)境(100)的各個(gè)組件的活動(dòng)。存儲(chǔ)(140)可以是可移動(dòng)或不可移動(dòng)的,且可包括磁盤、磁帶或盒帶、CD-ROM、CD-RW、DVD或可用于存儲(chǔ)信息且可在計(jì)算環(huán)境(100)內(nèi)訪問的任何其它介質(zhì)。存儲(chǔ)(140)為軟件(180)存儲(chǔ)指令。輸入設(shè)備(150)可以是諸如鍵盤、鼠標(biāo)、筆或跟蹤球等觸摸輸入設(shè)備、語音輸入設(shè)備、掃描設(shè)備、網(wǎng)絡(luò)適配器、或向計(jì)算環(huán)境(100)提供輸入的另一設(shè)備。對(duì)音頻而言,輸入設(shè)備(150)可以是聲卡、麥克風(fēng)或接受模擬或數(shù)字形式的音頻輸入的其它設(shè)備、或向計(jì)算環(huán)境(100)提供音頻樣本的CD/DVD讀取器。輸入設(shè)備(160)可以是顯示器、打印機(jī)、揚(yáng)聲器、CD/DVD-寫入器、網(wǎng)絡(luò)適配器、或提供自計(jì)算環(huán)境(100)的輸出的另一設(shè)備。通信連接(170)允許經(jīng)由通信介質(zhì)至另一計(jì)算實(shí)體的通信。通信介質(zhì)傳達(dá)各種信息,諸如計(jì)算機(jī)可執(zhí)行指令、經(jīng)壓縮的語音信息、或已調(diào)制數(shù)據(jù)信號(hào)中的其它數(shù)據(jù)。已調(diào)制數(shù)據(jù)信號(hào)是以編碼信號(hào)中的信息的方式設(shè)置或改變其一個(gè)或多個(gè)特征的信號(hào)。作為示例,而非限制,通信介質(zhì)包括以電氣、光學(xué)、RF、紅外、聲學(xué)或其它載波實(shí)現(xiàn)的有線或無線技術(shù)??稍谟?jì)算機(jī)可讀介質(zhì)的一般上下文中描述本發(fā)明。計(jì)算機(jī)可讀介質(zhì)是可在計(jì)算環(huán)境內(nèi)訪問的任何可用介質(zhì)。作為示例,而非限制,對(duì)于計(jì)算環(huán)境(100),計(jì)算機(jī)可讀介質(zhì)包括存儲(chǔ)器(120)、存儲(chǔ)(140)、通信介質(zhì)、和以上的組合。可在諸如程序模塊中所包括的、在目標(biāo)真實(shí)或虛擬處理器上的計(jì)算環(huán)境中執(zhí)行的計(jì)算機(jī)可讀指令的一般上下文中描述本發(fā)明。一般,程序模塊包括例程、程序、庫、對(duì)象、類、組件、數(shù)據(jù)結(jié)構(gòu)等,它們執(zhí)行特定的任務(wù)或?qū)崿F(xiàn)特定的抽象數(shù)據(jù)類型。在各個(gè)實(shí)施例中,程序模塊的功能可按需在程序模塊之間組合或分割。程序模塊的計(jì)算機(jī)可執(zhí)行指令可在本地或分布式計(jì)算環(huán)境內(nèi)執(zhí)行。為表示起見,該詳細(xì)描述使用如"確定"、"生成"、"調(diào)節(jié)"和"應(yīng)用"等術(shù)語來描述計(jì)算環(huán)境中的計(jì)算機(jī)操作。這些術(shù)語是計(jì)算機(jī)執(zhí)行的操作的高層抽象,而不應(yīng)與人類所執(zhí)行的動(dòng)作混淆。對(duì)應(yīng)于這些術(shù)語的實(shí)際計(jì)算機(jī)操作可取決于實(shí)現(xiàn)而有所不同。II.一般化的網(wǎng)絡(luò)環(huán)境的實(shí)時(shí)語音編解碼器圖2是可結(jié)合來實(shí)現(xiàn)一個(gè)或多個(gè)所述實(shí)施例的一般化網(wǎng)絡(luò)環(huán)境(200)的框圖。網(wǎng)絡(luò)(250)將各個(gè)編碼器側(cè)組件同各個(gè)解碼器側(cè)組件分開。編碼器側(cè)和解碼器側(cè)組件的主要功能分別是語音編碼和解碼。在編碼器側(cè),輸入緩沖器(210)接受并存儲(chǔ)語音輸入(202)。語音解碼器(230)從輸入緩沖器(210)取得語音輸入(202)并對(duì)其編碼。特別地,幀分路器(212)將語音輸入(202)的樣本分成幀。在一種實(shí)現(xiàn)中,幀是統(tǒng)一的20ms長的樣本——對(duì)8kHz的輸入為160個(gè)樣本,對(duì)16kHz的輸入為320個(gè)樣本。在其它實(shí)現(xiàn)中,幀具有不同的持續(xù)時(shí)間、為非統(tǒng)一或重疊的、禾口/或輸入(202)的采樣速率是不同的。可按照超幀/幀、幀/子幀、或其它配置為編碼和解碼的不同階段組織幀。幀分類器(214)根據(jù)一個(gè)或多個(gè)準(zhǔn)則對(duì)幀進(jìn)行分類,這些準(zhǔn)則諸如信號(hào)能量、過零率、長期預(yù)測增益、微分增益和/或子幀或全幀的其它準(zhǔn)則?;跍?zhǔn)則,幀分類器(214)將不同的幀分類成諸如安靜、無話音、有話音和過渡(例如,無話音到有話音)的各類。此外,可根據(jù)對(duì)幀使用的冗余編碼(如有)的類型對(duì)幀進(jìn)行分類。幀類影響將被計(jì)算以對(duì)幀進(jìn)行編碼的參數(shù)。此外,幀分類可影響用于編碼參數(shù)的分辨率和丟失回復(fù)能力,以對(duì)更重要的幀類和參數(shù)提供更高的分辨率和丟失回復(fù)能力。例如,安靜幀一般以非常低的速率來編碼,它們?nèi)绻麃G失能很簡單地通過掩蓋來恢復(fù),且不需針對(duì)丟失進(jìn)行保護(hù)。無話音幀一般以稍高的速率來編碼,它們?nèi)绻麃G失理論上能簡單地通過掩蓋來恢復(fù),且不針對(duì)丟失進(jìn)行重大的保護(hù)。取決于幀的復(fù)雜程度以及過渡是否存在,有話音和過渡幀一般以更多比特來編碼。有話音和過渡幀如果丟失也難以恢復(fù),因此針對(duì)丟失進(jìn)行了更重大的保護(hù)。或者,幀分類器(214)使用其它和/或另外的幀類。在圖2中,每一幀如由幀編碼組件(232)編碼。以下結(jié)合圖3更詳細(xì)地描述這樣的幀編碼。通過多路復(fù)用器("MUX")(236)向一個(gè)或多個(gè)聯(lián)網(wǎng)層(240)的軟件提供得到的已編碼語音。聯(lián)網(wǎng)層(240)處理已編碼語音以便通過網(wǎng)絡(luò)(250)傳輸。例如,網(wǎng)絡(luò)層軟件將已編碼語音信息的幀打包成遵循RTP的、議的分組,這些分組使用UDP、IP和各種物理層協(xié)議通過因特網(wǎng)中繼?;蛘撸褂闷渌?或附加的軟件層或聯(lián)網(wǎng)協(xié)議。網(wǎng)絡(luò)(250)是諸如因特網(wǎng)等廣域、分組交換網(wǎng)絡(luò)。或者,網(wǎng)絡(luò)(250)是局域網(wǎng)或其它種類的網(wǎng)絡(luò)。在解碼器側(cè),一個(gè)或多個(gè)聯(lián)網(wǎng)層(260)的軟件接收并處理所傳輸?shù)臄?shù)據(jù)。網(wǎng)絡(luò)、傳輸、和更高層協(xié)議以及解碼器側(cè)聯(lián)網(wǎng)層(260)中的軟件一般對(duì)應(yīng)于編碼器側(cè)聯(lián)網(wǎng)層(240)中的那些。聯(lián)網(wǎng)層通過多路分解器("DEMUX")(276)將己編碼語音信息提供給語音解碼器(270)。如在解碼模塊(272)中所述,解碼器(270)對(duì)每一幀進(jìn)行解碼。己解碼的語音輸出(292)也可經(jīng)過一個(gè)或多個(gè)后置濾波器(284)以改善得到的經(jīng)濾波的語音輸出的質(zhì)量(294)。以下結(jié)合圖5描述一個(gè)一般化的實(shí)時(shí)語音幀解碼器,但可替代使用其它語音解碼器。或者,所述工具和技術(shù)中的某些或全部可用于其它類型的音頻編碼器和解碼器,諸如音樂編碼器和解碼器、或通用音頻編碼器和解碼器。除這些主要編碼和解碼功能以外,各個(gè)組件也可共享信息(在圖2中以虛線示出)以控制已編碼語音的速率、質(zhì)量和/或丟失回復(fù)能力。速率控制器(220)考慮各種因素,諸如輸入緩沖器(210)中的當(dāng)前輸入的復(fù)雜程度、編碼器(230)中或別處的輸出緩沖器的充滿程度、所需輸出速率、當(dāng)前網(wǎng)絡(luò)帶寬、網(wǎng)絡(luò)擁塞/噪聲狀況和/或解碼器丟失率。解碼器(270)向速率控制器(220)反饋解碼器丟失率信息。聯(lián)網(wǎng)層(240、260)收集或估算關(guān)于當(dāng)前網(wǎng)絡(luò)帶寬和擁塞/噪聲狀況的信息,這些信息被反饋給速率控制器(220)?;蛘?,速率控制器(220)考慮其它和/或附加因素。速率控制器(220)指導(dǎo)語音編碼器(230)改變編碼語音的速率、質(zhì)量和/或丟失回復(fù)能力。編碼器(120)可通過調(diào)節(jié)參數(shù)的量化因子或改變表示參數(shù)的熵碼的分辨率即可改變速率和質(zhì)量。此外,編碼器可通過調(diào)節(jié)速率或冗余編碼的類型來改變丟失回復(fù)能力。因此,編碼器(230)可取決于網(wǎng)絡(luò)狀況來改變主要編碼功能和丟失回復(fù)功能之間的比特分配。或者,以某種其它方式控制速率,諸如在編碼器以固定速率操作之處。圖3是可結(jié)合來實(shí)現(xiàn)一個(gè)或多個(gè)所述實(shí)施例的一般化的語音幀編碼器(300)的框圖。幀編碼器(300)—般對(duì)應(yīng)于圖2中的幀編碼組件(232)。幀編碼器(300)接受來自幀分路器的幀輸入(302)并產(chǎn)生己編碼的幀輸出(392)。LP分析組件(330)計(jì)算線性預(yù)測系數(shù)(332)。在一個(gè)實(shí)現(xiàn)中,LP濾波器為8kHz的輸入使用IO個(gè)系數(shù),為16kHz的輸入使用16個(gè)系數(shù),且LP分析組件(330)為每個(gè)幀計(jì)算一組線性預(yù)測系數(shù)?;蛘撸琇P分析組件(330)為每個(gè)幀計(jì)算兩組系數(shù),對(duì)中心在不同位置的兩個(gè)窗口中的每一個(gè)有一組系數(shù),或?yàn)槊總€(gè)幀計(jì)算不同數(shù)目的系數(shù)。LPC處理組件(335)接收并處理線性預(yù)測系數(shù)(332)。通常,LPC處理組件(335)將LPC值轉(zhuǎn)換成不同的表示以便更高效地量化和編碼。例如,LPC處理組件(335)將LPC值轉(zhuǎn)換成線性頻譜對(duì)(LSP)表示,LSP值被量化(諸如被向量量化)和編碼。LSP值可在內(nèi)部編碼或從其它LSP值預(yù)測。LPC值有各種可能的表示、量化技術(shù)和編碼技術(shù)。以某種形式提供LPC值作為已編碼幀分組(392)的一部分以便分組化和傳輸(與任何量化參數(shù)和重構(gòu)所需的其它信息)一起。為隨后在編碼器(300)中使用,LPC處理組件(335)重構(gòu)了LPC值。LPC處理組件(335)可對(duì)LPC值執(zhí)行內(nèi)插(諸如與LSP表示或另一表示等效地)以平滑不同組LPC系數(shù)之間、或用于幀的不同子幀的LPC系數(shù)之間的過渡。合成(或"短期預(yù)測")濾波器(340)接受重構(gòu)的LPC值(338)并將其并入到濾波器中。合成濾波器(340)接收激勵(lì)信號(hào),并產(chǎn)生原始信號(hào)的逼近。對(duì)給定幀,合成濾波器(340)可緩沖來自前一幀的多個(gè)重構(gòu)樣本(例如,對(duì)十抽頭濾波器有十個(gè))以便開始預(yù)測。感知加權(quán)組件(350、355)向原始信號(hào)和合成濾波器(340)的建模輸出應(yīng)用感知加權(quán)以便選擇性地對(duì)語音信號(hào)的共振峰去加重(deemphasize)以使聽覺系統(tǒng)對(duì)量化差錯(cuò)較不敏感。感知加權(quán)組件(350、355)利用諸如遮蔽等心理聲學(xué)現(xiàn)象。在一種實(shí)現(xiàn)中,感知加權(quán)組件(350、355)基于從LP分析組件(330)接收的原始LPC值(332)來施加權(quán)重?;蛘撸兄訖?quán)組件(350、355)應(yīng)用其它和/或附加權(quán)重。在感知加權(quán)組件(350、355)之后,編碼器(300)計(jì)算經(jīng)感知加權(quán)的原始信號(hào)與合成濾波器(340)的經(jīng)感知加權(quán)的輸出之差以產(chǎn)生差信號(hào)(334)?;蛘?,編碼器(300)使用不同的技術(shù)來計(jì)算語音參數(shù)。激勵(lì)參數(shù)化組件(360)按照最小化經(jīng)感知加權(quán)的原始信號(hào)與合成信號(hào)之差(按照加權(quán)均方誤差或其它準(zhǔn)則)來設(shè)法找到自適應(yīng)碼本索引、固定碼本索引和增益碼本索引的最佳組合。為每個(gè)子幀計(jì)算眾多參數(shù),但更一般而言,參數(shù)可以是用于每個(gè)超幀、幀或子幀的。表2示出一種實(shí)現(xiàn)中不同幀類的可用參數(shù)類型。<table>tableseeoriginaldocumentpage15</column></row><table>表2:不同幀類的參數(shù)在圖3中,激勵(lì)參數(shù)化組件(360)將幀分成子幀并適當(dāng)?shù)貫槊總€(gè)子幀計(jì)算碼本索引和增益。例如,要使用的碼本級(jí)(codebookstage)的數(shù)目和類型以及碼本索引的分辨率最初可由編碼模式確定,其中模式由上述速率控制組件規(guī)定。特定的模式也可規(guī)定除碼本級(jí)的數(shù)目和類型以外的編碼和解碼參數(shù),例如碼本索引的分辨率。每一碼本級(jí)的參數(shù)可通過優(yōu)化參數(shù)以最小化目標(biāo)信號(hào)和該碼本級(jí)對(duì)合成信號(hào)的貢獻(xiàn)之間的誤差來確定。(如此處所使用的,術(shù)語"優(yōu)化"指的是找到諸如畸變減少、參數(shù)搜索時(shí)間、參數(shù)搜索復(fù)雜度、參數(shù)比特率等適用約束下的合適解決方案,而非對(duì)參數(shù)空間執(zhí)行完全搜索。類似地,術(shù)語"最小化"應(yīng)按照找到適用約束下的合適解決方案來理解。)例如,可使用經(jīng)修改的均方誤差技術(shù)來完成優(yōu)化。每一級(jí)的目標(biāo)信號(hào)是殘留信號(hào)與前一碼本級(jí)對(duì)合成信號(hào)的貢獻(xiàn)的總和之差?;蛘?,可使用其它優(yōu)化技術(shù)。圖4示出根據(jù)一種實(shí)現(xiàn)用于確定碼本參數(shù)的技術(shù)。激勵(lì)參數(shù)化組件(360)執(zhí)行該技術(shù),潛在地與諸如速率控制器等其它組件相結(jié)合。或者,編碼器中的另一組件執(zhí)行該技術(shù)。參考圖4,對(duì)有話音或過渡幀中的每一子幀,激勵(lì)量化組件(360)確定(410)是否可為當(dāng)前子幀使用自適應(yīng)碼本。(例如,速率控制可規(guī)定沒有自適應(yīng)碼本將用于特定的一個(gè)幀。)如果不使用自適應(yīng)碼本,則自適應(yīng)碼本開關(guān)將指示將不使用自適應(yīng)碼本(435)。例如,這可通過在幀級(jí)上設(shè)置指示幀中未使用自適應(yīng)碼本的一位標(biāo)志、通過在幀級(jí)上指定特定的編碼模式、或通過為每一子幀設(shè)置指示在該子幀中未使用自適應(yīng)碼本的一位標(biāo)志來完成。仍參考圖4,如果有自適應(yīng)碼本可使用,則組件(360)確定自適應(yīng)碼本參數(shù)。那些參數(shù)包括索引、或基音值,它們指示激勵(lì)信號(hào)歷史所需的片段,以及向所需片段施加的增益。在圖3和4中,組件(360)執(zhí)行閉環(huán)基音搜索(420)。該搜索以圖3中的可任選開環(huán)基音搜索組件(325)確定的基音開始。開環(huán)基音搜索組件(325)分析加權(quán)組件(350)所產(chǎn)生的經(jīng)加權(quán)的信號(hào)以估算其基音。以所估算的基音開始,閉環(huán)基音搜索(420)優(yōu)化基音值以減少目標(biāo)信號(hào)與從激勵(lì)信號(hào)歷史所指示的片段生成的經(jīng)加權(quán)的合成信號(hào)之間的誤差。還優(yōu)化自適應(yīng)碼本增益值(425)。自適應(yīng)碼本增益值指示對(duì)經(jīng)基音預(yù)測的值(來自激勵(lì)信號(hào)歷史所指示的片段的值)施加以調(diào)節(jié)該值的范圍的乘數(shù)。增益乘上經(jīng)基音預(yù)測的值即自適應(yīng)碼本對(duì)當(dāng)前幀或子幀的激勵(lì)信號(hào)的貢獻(xiàn)。增益優(yōu)化(425)和閉環(huán)基音搜索(420)分別產(chǎn)生增益值和索引值,它們最小化目標(biāo)信號(hào)與來自自適應(yīng)碼本貢獻(xiàn)的加權(quán)合成信號(hào)之間的誤差。如果組件(360)確定要使用自適應(yīng)碼本(430),則在比特流中用信號(hào)表示該自適應(yīng)碼本參數(shù)。如果不是,則如上所述諸如通過設(shè)置一位子幀級(jí)標(biāo)志來指示將不為子幀使用自適應(yīng)碼本。該判定(430)可包括確定特定子幀的自適應(yīng)碼本貢獻(xiàn)是否足夠重要來與以信號(hào)表示該自適應(yīng)碼本參數(shù)所需的比特?cái)?shù)等值。或者,可使用其它基準(zhǔn)來進(jìn)行判定。而且,盡管圖4示出在判定之后發(fā)信號(hào),但是替換地,信號(hào)可被批處理直到對(duì)幀或子幀結(jié)束該技術(shù)。激勵(lì)參數(shù)化組件(360)還確定是否使用脈沖碼本(450)。作為當(dāng)前幀的總編碼模式的一部分指示了脈沖碼本的使用與否,或者可按照其它方式來指示或確定。脈沖碼本是指定將對(duì)激勵(lì)信號(hào)作出貢獻(xiàn)的一個(gè)或多個(gè)脈沖的一種類型的固定碼本。脈沖碼本參數(shù)包括索引和符號(hào)(增益可正可負(fù))對(duì)。每一對(duì)指示要在激勵(lì)信號(hào)中包括的脈沖,索引指示脈沖的位置而符號(hào)指示脈沖的極性。取決于編碼模式,脈沖碼本中所包括且用來對(duì)激勵(lì)信號(hào)作出貢獻(xiàn)的脈沖的數(shù)目可有所不同。此外,脈沖的數(shù)目可取決于是否正使用自適應(yīng)碼本。如果使用自適應(yīng)碼本,則優(yōu)化脈沖碼本參數(shù)來最小化所指示的脈沖的貢獻(xiàn)與目標(biāo)信號(hào)之間的誤差(455)。如果未使用自適應(yīng)碼本,則目標(biāo)信號(hào)為加權(quán)的原始信號(hào)。如果使用自適應(yīng)碼本,則目標(biāo)信號(hào)為加權(quán)原始信號(hào)與自適應(yīng)碼本對(duì)加權(quán)合成信號(hào)的貢獻(xiàn)之間的差。在某時(shí)刻(未示出),可在比特流中以信號(hào)表示脈沖碼本參數(shù)。激勵(lì)參數(shù)化組件(360)還確定是否要使用任何隨機(jī)固定碼本級(jí)(465)。作為當(dāng)前幀的總編碼模式的一部分指示隨機(jī)碼本級(jí)(如果有)的數(shù)目,或者可按照其它方式指示或確定。隨機(jī)碼本是為其所編碼的值使用預(yù)定義信號(hào)模型的一種類型的固定碼本。碼本參數(shù)可包括信號(hào)模型所指示的片段的起始點(diǎn)和可正可負(fù)的符號(hào)。所指示片段的長度或范圍一般是固定的,從而一般不以信號(hào)表示,但替代地,可用信號(hào)表示所指示片段的長度或范圍。增益乘上所指示片段中的值以產(chǎn)生隨機(jī)碼本對(duì)激勵(lì)信號(hào)的貢獻(xiàn)。如果使用了至少一個(gè)隨機(jī)碼本級(jí),則優(yōu)化該碼本級(jí)的碼本級(jí)參數(shù)來最小化隨機(jī)碼本的貢獻(xiàn)與目標(biāo)信號(hào)之間的誤差(470)。目標(biāo)信號(hào)是加權(quán)原始信號(hào)與自適應(yīng)碼本(如果有)、脈沖碼本(如果有)以及之前確定的隨機(jī)碼本級(jí)(如果有)對(duì)加權(quán)合成信號(hào)的貢獻(xiàn)的總和之間的差。在某時(shí)刻(未示出),在比特流中然后以信號(hào)表示隨機(jī)碼本參數(shù)。組件(360)然后確定是否還要使用隨機(jī)碼本級(jí)(480)。如果是,則如上所述優(yōu)化下一隨機(jī)碼本級(jí)的參數(shù)并以信號(hào)表示它(470)。這將繼續(xù)直到確定了隨機(jī)碼本級(jí)的所有參數(shù)。所有隨機(jī)碼本級(jí)可使用相同的信號(hào)模型,盡管它們可能指示來自模型的不同片段且具有不同的增益值?;蛘撸蔀椴煌碾S機(jī)碼本級(jí)使用不同的信號(hào)模型。如由速率控制器和/或其它組件所確定的,可獨(dú)立地量化每一激勵(lì)增益,或者可一起量化兩個(gè)或更多的增益。盡管此處描述了用于優(yōu)化各個(gè)碼本參數(shù)的特定次序,但可使用其它次序和優(yōu)化技術(shù)。例如,可同時(shí)優(yōu)化所有的隨機(jī)碼本。因此,盡管圖4示出了不同碼本參數(shù)的順序計(jì)算,但替代地,可聯(lián)合優(yōu)化兩個(gè)或更多不同的碼本參數(shù)(例如,通過根據(jù)某種非線性優(yōu)化技術(shù)來聯(lián)合變化參數(shù)并評(píng)估結(jié)果)。此外,可使用碼本或其它激勵(lì)信號(hào)參數(shù)的其它配置。該實(shí)現(xiàn)中的激勵(lì)信號(hào)是自適應(yīng)碼本、脈沖碼本、和隨機(jī)碼本級(jí)的任何貢獻(xiàn)的總和?;蛘?,組件(360)可為激勵(lì)信號(hào)計(jì)算其它和/或附加的參數(shù)。參考圖3,以信號(hào)表示或以其它方式將激勵(lì)信號(hào)的碼本參數(shù)提供給本地解碼器(365)(圖3中由虛線圍住)以及幀輸出(392)。因此,已編碼的幀輸出(392)包括來自上述LPC處理組件(335)的輸出,以及來自激勵(lì)參數(shù)化組件(360)的輸出。輸出(392)的比特率部分取決于碼本所使用的參數(shù),且編碼器(300)可通過在不同的碼本索引組之間切換、使用嵌入碼、或使用其它技術(shù)來控制比特率和/或質(zhì)量。碼本類型和級(jí)的不同組合可為不同的幀和/或子幀產(chǎn)生不同的編碼模式。例如,無話音幀可使用僅一個(gè)的隨機(jī)碼本級(jí)。自適應(yīng)碼本和脈沖碼本可用于低比特率的有話音幀。高比特率幀可使用自適應(yīng)碼本、脈沖碼本、和一個(gè)或多個(gè)隨機(jī)碼本級(jí)來編碼。速率控制模塊可確定或影響每一幀的模式。仍參考圖3,激勵(lì)參數(shù)化組件(360)的輸出由對(duì)應(yīng)于參數(shù)化組件(360)使用的碼本的碼本重構(gòu)組件(370、372、374、376)和增益應(yīng)用組件(380、382、384、386)接收。碼本級(jí)(370、372、374、376)和相應(yīng)的增益應(yīng)用組件(380、382、384、386)重構(gòu)碼本的貢獻(xiàn)。對(duì)這些貢獻(xiàn)求和以產(chǎn)生激勵(lì)信號(hào)(390),該信號(hào)被合成濾波器(340)接收,在那里它與"所預(yù)測的"樣本一起使用,基于此進(jìn)行隨后的線性預(yù)測。激勵(lì)信號(hào)的延遲部分也被自適應(yīng)碼本重構(gòu)組件(370)用作激勵(lì)歷史信號(hào)以重構(gòu)隨后的自適應(yīng)碼本參數(shù)(例如,基音貢獻(xiàn)),并由參數(shù)化組件(360)在計(jì)算隨后的自適應(yīng)碼本參數(shù)(例如,基音索引和基音增益值)時(shí)使用。回來參考圖2,由MUX(236)接受已編碼幀輸出以及其它參數(shù)。這樣的其它參數(shù)可包括來自幀分類器(214)的幀類信息(222)和幀編碼模式以及其它信息。MUX(236)重構(gòu)應(yīng)用層分組以傳遞給其它軟件,或者M(jìn)UX(236)將數(shù)據(jù)置于遵循諸如RTP等協(xié)議的分組的有效負(fù)載中。MUX可緩沖參數(shù)以便允許選擇性地重復(fù)參數(shù)以便在隨后的分組中進(jìn)行前向糾錯(cuò)。在一種實(shí)現(xiàn)中,MUX(125)將一個(gè)幀的主要己編碼語音信息以及一個(gè)或或多個(gè)先前幀的全部或部分前向糾錯(cuò)信息包進(jìn)單個(gè)分組中。MUX(236)為速率控制起見提供諸如當(dāng)前緩沖器滿等反饋。更一般地,編碼器(230)的各個(gè)組件(包括幀分類器(214)和MUX(236))可將信息提供給諸如圖2中所示的速率控制器(220)。圖2的比特率DEMUX(276)接受已編碼語音信息作為輸入,并分析它來標(biāo)識(shí)和處理參數(shù)。參數(shù)可包括幀類、LPC值的某種表示、和碼本參數(shù)。幀類可指示給定幀存在哪些其它參數(shù)。更一般地,DEMUX(376)使用編碼器(230)所使用的協(xié)議并提取編碼器(230)包進(jìn)分組的參數(shù)。對(duì)通過動(dòng)態(tài)分組交換網(wǎng)絡(luò)接收的分組而言,DEMUX(276)包括抖動(dòng)緩沖器以平滑分組速率在給定的一段時(shí)間上的短期波動(dòng)。在某些情況中,解碼器(270)調(diào)整緩沖器延遲,并管理何時(shí)從緩沖器中讀出分組以將延遲、質(zhì)量控制、遺漏幀的掩蓋等集成到解碼中。在其它情況中,應(yīng)用層組件管理抖動(dòng)緩沖器,抖動(dòng)緩沖器以可變速率填充,并由解碼器(270)以恒定或相對(duì)恒定的速率消耗。DEMUX(276)可接收給定片段的參數(shù)的多個(gè)版本,包括主要的已編碼版本和一個(gè)或多個(gè)輔助的糾錯(cuò)版本。當(dāng)糾錯(cuò)失敗時(shí),解碼器(270)使用諸如下述的掩蓋技術(shù)等掩蓋技術(shù)。圖5是可結(jié)合來實(shí)現(xiàn)一個(gè)或多個(gè)所述實(shí)施例的一般化的實(shí)時(shí)語音幀解碼器(500)的框圖。幀解碼器(500)—般對(duì)應(yīng)于圖2的幀解碼組件(272)。幀解碼器(500)接受己編碼語音信息(592)作為輸入并在解碼之后產(chǎn)生經(jīng)重構(gòu)的輸出(502)。解碼器(500)的組件在編碼器(300)中具有相應(yīng)的組件,但總體上,解碼器(500)更簡單,因?yàn)樗鼪]有用于感知權(quán)重、激勵(lì)處理循環(huán)和速率控制的組件。LPC處理組件(535)以幀編碼器(300)提供的形式接收表示LPC值的信息(以及重構(gòu)所需的任何量化參數(shù)和其它信息)。LPC處理組件(535)使用先前對(duì)LPC值施加的轉(zhuǎn)換、量化、編碼等的逆過程來重構(gòu)LPC值(538)。LPC處理組件(535)也可為LPC值(LPC表示的或諸如LSP等另一表示的)執(zhí)行內(nèi)插以平滑不同組LPC系數(shù)之間的過渡。碼本級(jí)(570、572、574、576)和增益應(yīng)用組件(580、582、584、586)對(duì)用于激勵(lì)信號(hào)的任何相應(yīng)的碼本級(jí)的參數(shù)進(jìn)行解碼并計(jì)算所使用的每一碼本級(jí)的貢獻(xiàn)。更一般地,碼本級(jí)(570、572、574、576)和增益組件(580、582、584、586)的配置和操作對(duì)應(yīng)于編碼器(300)中的碼本級(jí)(370、372、374、376)和增益組件(380、382、384、386)的配置和操作。對(duì)所使用的碼本級(jí)的貢獻(xiàn)求和,且得到的激勵(lì)信號(hào)(590)被饋送給合成濾波器(540)。激勵(lì)信號(hào)(590)的延遲值也由自適應(yīng)碼本(570)在計(jì)算自適應(yīng)碼本對(duì)激勵(lì)信號(hào)的后續(xù)部分的貢獻(xiàn)時(shí)用作激勵(lì)歷史。合成濾波器(540)接受經(jīng)重構(gòu)的LPC值(538),并將其并入濾波器。合成濾波器(540)存儲(chǔ)之前重構(gòu)的樣本以便處理。激勵(lì)信號(hào)(590)經(jīng)過合成濾波器以形成對(duì)原始語音信號(hào)的逼近。圖2-5中所示的關(guān)系指示信息的一般流程;為簡單起見未示出其它關(guān)系。取決于實(shí)現(xiàn)和所需的壓縮類型,組件可增加、略去、分成多個(gè)組件、與其它組件組合、和/或以類似組件替換。例如,在圖2所示的環(huán)境(200)中,速率控制器(220)可與語音編碼器(230)組合??赡茉黾拥慕M件包括多媒體編碼(或回放)應(yīng)用程序,它管理語音編碼器(或解碼器)以及其它編碼器(或解碼器)并收集網(wǎng)絡(luò)和解碼器狀況信息,且執(zhí)行自適應(yīng)糾錯(cuò)功能。在替換實(shí)施例中,組件的不同組合和配置使用如此處所述的技術(shù)來處理語音信息。III.健壯解碼技術(shù)和工具使用各種健壯解碼技術(shù)和工具,改善了從諸如實(shí)時(shí)語音編解碼器等語音編解碼器得到的語音的質(zhì)量。各種健壯解碼技術(shù)和工具可單獨(dú)或組合使用。盡管以上描述了特定的計(jì)算環(huán)境特征和音頻編解碼器特征,但一個(gè)或多個(gè)工具和技術(shù)可用于各種不同類型的計(jì)算環(huán)境和/或各種不同類型的編解碼器。例如,一個(gè)或多個(gè)健壯解碼器技術(shù)可用于不使用CELP編碼模型的編解碼器,諸如自適應(yīng)差分脈碼調(diào)制編解碼器、變換編解碼器和/或其它類型的編解碼器。作為另一示例,一個(gè)或多個(gè)健壯解碼器技術(shù)可用于單頻帶編解碼器或子帶編解碼器。作為另一示例,一個(gè)或多個(gè)健壯解碼器技術(shù)可應(yīng)用于多頻帶編解碼器的單個(gè)頻帶和/或包括多頻帶編解碼器的多個(gè)頻帶的貢獻(xiàn)的合成或未編碼的信號(hào)。A.解碼器側(cè)VoIP因特網(wǎng)協(xié)議上的語音("VoIP")應(yīng)用程序是上述編解碼器的可能用途之一。VoIP應(yīng)用程序一般以稱為"推(push)模式"或稱為"拉(pull)模式"的模式操作。所述技術(shù)可在任一模式中使用,或在某種其它模式中使用。然而,眾多當(dāng)前的VoIP應(yīng)用程序使用拉模式解碼。從而,圖6以一般形式示出了某些解碼器側(cè)拉模式操作的一種可能的安排。一般而言,VoIP應(yīng)用程序(610)將從網(wǎng)絡(luò)源(600)接收到的所有分組立即傳遞給解碼器(620),后者將決定所需的緩沖延遲。在圖6中,解碼器(620)執(zhí)行下述掩蓋技術(shù),而不是將掩蓋信號(hào)遺漏部分的任務(wù)委托給接收方應(yīng)用程序(610)?;蛘?,應(yīng)用程序(610)或某個(gè)其它組件執(zhí)行下述掩蓋技術(shù)。在拉模式中,當(dāng)呈現(xiàn)器(630)(—音頻回放組件)需要附加的己解碼音頻信息來播放時(shí),它請(qǐng)求該信息(650)。VoIP應(yīng)用程序(610)向網(wǎng)絡(luò)源(600)檢索可用的信息(不僅用于所請(qǐng)求的回放時(shí)間段)(655)并將信息推到解碼器(620)(660)。解碼器(620)解碼信息的某一部分(例如,所請(qǐng)求回放時(shí)間段的樣本)并將所解碼的信息返回給VoIP應(yīng)用程序(610)(665),后者將該信息提供給呈現(xiàn)器(630)(670)。如果遺漏了一個(gè)或多個(gè)幀,則解碼器(620)執(zhí)行一個(gè)或多個(gè)掩蓋技術(shù),并將得到的掩蓋信息(例如,作為音頻樣本)返回給VoIP應(yīng)用程序(610)以替換遺漏幀的實(shí)際樣本。因?yàn)槌尸F(xiàn)器(630)在需要時(shí)請(qǐng)求樣本,因此定時(shí)僅依賴于呈現(xiàn)器(630)所使用的本地時(shí)鐘。因此,該設(shè)計(jì)可自動(dòng)處理在諸如依賴于具有稍許不同的時(shí)鐘速率的多個(gè)時(shí)鐘的推模式解碼器的其它設(shè)計(jì)中可能出現(xiàn)的時(shí)鐘漂移問題。如圖7中所示,VoIP應(yīng)用程序從網(wǎng)絡(luò)源(710)接收的分組被立即傳遞給解碼器,后者根據(jù)其(音頻信號(hào)中的)順序次序?qū)⑵渲糜诙秳?dòng)緩沖器(720)中。如圖7中所示,抖動(dòng)緩沖器(720)中的"1"指示存在相應(yīng)的分組,"0"指示不存在相應(yīng)的分組。此外,存在樣本緩沖器(730),它保存回放可用的已解碼輸出樣本(740)。無論何時(shí)呈現(xiàn)器(760)想要播放某個(gè)音頻時(shí),它從解碼器樣本緩沖器(730)中拉出所需樣本(750)。如果樣本緩沖器(730)沒有足夠的樣本來滿足請(qǐng)求,則解碼器查看抖動(dòng)緩沖器(720)來檢查下一分組是否可用。如果下一分組可用,則它被解碼,且己解碼的樣本被置于樣本緩沖器(730)中,且所請(qǐng)求的樣本通過VoIP應(yīng)用程序被傳遞給呈現(xiàn)器(760)。另一方面,如果分組不可用,則調(diào)用掩蓋模塊來生成替代樣本。替代樣本被置于樣本緩沖器(730)中,且請(qǐng)求得到滿足。在任一情況中,抖動(dòng)緩沖器可被移位,并適當(dāng)調(diào)節(jié)抖動(dòng)緩沖器的頭信息(725)。B.分組延遲計(jì)算在某些健壯解碼技術(shù)和工具中,解碼器通過監(jiān)控分組接收時(shí)間來跟蹤分組丟失率并估算網(wǎng)絡(luò)延遲。圖8示出了示例分組延遲分布。所接收分組的歷史可用于確定任何延遲趨勢以及計(jì)算所需延遲(Ddesired820)。如果所需延遲(820)改變或分組延遲分布改變(例如,因網(wǎng)絡(luò)波動(dòng)),則解碼器可動(dòng)態(tài)改變抖動(dòng)緩沖器延遲,并使用時(shí)間壓縮/擴(kuò)展(或可變放出)技術(shù)來解碼,這將改變音頻的回放時(shí)間同時(shí)維持正確的基音。使用這樣的技術(shù),當(dāng)觀察到分組延遲增加時(shí),樣本緩沖器中的樣本可被時(shí)間擴(kuò)展,使得稍后的分組可被調(diào)整到對(duì)回放延遲、交互等可接受的某時(shí)刻。對(duì)有話音幀,這可使用下述WSOLA技術(shù)來完成。類似地,如果觀察到延遲減少,則樣本緩沖器中的樣本可被時(shí)間壓縮(較快播放),使得抖動(dòng)緩沖器不會(huì)變滿。計(jì)算所需延遲的傳統(tǒng)方法包括簡單地使用先前分組的最大延遲作為指南。然而,有時(shí)會(huì)存在異常,使得系統(tǒng)適合于沒有代表性的分組延遲值。此外,有時(shí)讓少數(shù)分組較晚到達(dá)以至于不能被回放要好過強(qiáng)加足夠長的延遲來接收和使用異常的、晚到的分組。某些編解碼器基于諸如游動(dòng)平均和游動(dòng)方差計(jì)算等公式來計(jì)算所需延遲。在R.Ramjee、J.Kurose、D.Towsley和H.Schulzrinne于1994年4月的正EEINFOCOM'94的學(xué)報(bào)第680-688頁上所著的"AdaptivePlayoutMechanismforPacketizedAudioApplicationsinWide-areaNetworks"中描述了一個(gè)示例。然而,在這樣的計(jì)算中眾多參數(shù)需要被優(yōu)化,且難以找到一方面的響應(yīng)速度與另一方面將計(jì)算基于大量代表性歷史值之間的合適的折衷。另一方法是直接分析分組延遲分布(810),諸如通過使用C丄Sreenan、J-C.Chen、P.Agrawal和B.Narendran于2000年6月在IEEETrans.Multimedia學(xué)報(bào)第2巻第2號(hào)第88-100頁所著的"DelayReductionTechniquesforPlayoutBuffering"中所述的Concord算法的實(shí)現(xiàn)。在該方法中,維護(hù)分組延遲的柱狀圖。柱狀圖中柱的寬度表示將用于計(jì)算最優(yōu)延遲的所需準(zhǔn)確度。減少柱大小將改善準(zhǔn)確度,但會(huì)增加跟蹤復(fù)雜度。柱狀圖的形狀近似反映出基本的分組延遲分布。當(dāng)新分組到達(dá)時(shí),將分組延遲映射到相應(yīng)的柱,且遞增落入該柱的分組的計(jì)數(shù)。為了反映某些老分組的時(shí)效,所有其它柱中的計(jì)數(shù)在被稱為"老化"的過程中按比例縮小。為了找到所需的新延遲,解碼器設(shè)置所需的丟失率(Ldesired830)。一般所需丟失率值范圍在1%到5%之間。然后分析柱狀圖來確定何處需要該所需延遲來實(shí)現(xiàn)所需丟失率。該方法的一個(gè)問題在于需要調(diào)節(jié)某些參數(shù),諸如柱寬度和老化因子。此外,所有老分組被類似地對(duì)待,且老化方法在總體性能上扮演了過分重要的角色。此外,當(dāng)發(fā)生時(shí)鐘漂移情況時(shí),則總體延遲將具有或正或負(fù)的趨勢,這將進(jìn)一步使算法復(fù)雜化,尤其是當(dāng)柱狀圖旨在在時(shí)間延遲時(shí)間線內(nèi)保持靜態(tài)時(shí)。在此處提供的一種健壯解碼技術(shù)中,維護(hù)設(shè)定數(shù)目的分組的延遲的歷史。例如,歷史中所包括的分組的數(shù)目可以是500、1000或某個(gè)其它合適的數(shù)目。隨著每一分組的傳入,以最新分組的延遲代替最老分組的延遲,或以歷史中的最新分組代替最老分組。使用這種方式,從計(jì)算中僅去除了最老分組。參考圖8,基于記錄上的所有分組延遲的歷史,根據(jù)所需柱寬度生成分組延遲分布柱狀圖(810)。最優(yōu)所需延遲(820)被確定為對(duì)應(yīng)于所需丟失(830)的柱延遲值。該技術(shù)不依賴于老化方法。從而,減少了因時(shí)鐘漂移情況而產(chǎn)生的問題。然而,以每一新分組重新生成新柱狀圖的計(jì)算要求通常較高。例如,在一個(gè)實(shí)現(xiàn)中,柱狀圖計(jì)算消耗總解碼器復(fù)雜程度的約10%。有可能通過重用之前的柱狀圖,而不是從頭開始重建來減少這種復(fù)雜性,但如果發(fā)生時(shí)鐘漂移情況,這將使得延遲柱狀圖沿延遲時(shí)間軸移動(dòng),即使當(dāng)它應(yīng)保持靜態(tài)時(shí)。在另一健壯解碼技術(shù)中,使用一種數(shù)據(jù)結(jié)構(gòu)來確定適于變化的分組延遲的最優(yōu)緩沖延遲。在一個(gè)特定實(shí)現(xiàn)中,使用存儲(chǔ)器中線性放置(例如,以數(shù)組)的延遲節(jié)點(diǎn)的雙向鏈表用于更新,以及用于確定所需延遲。所接收的第n個(gè)分組處的歷史由歷Woo;/^=fZ),Aw,....,A^+J定義,其中歷史的大小為W個(gè)分組。歷史中所表示的分組的延遲值被置于雙向鏈表類型的數(shù)據(jù)結(jié)構(gòu)中。在圖9中示出了具有數(shù)組中四個(gè)節(jié)點(diǎn)(920、922、924、926)的這一數(shù)據(jù)結(jié)構(gòu)(910)的示例。當(dāng)然,數(shù)據(jù)結(jié)構(gòu)可包括多得多的節(jié)點(diǎn),諸如500到1000個(gè)節(jié)點(diǎn)。然而,為解釋該數(shù)據(jù)結(jié)構(gòu)時(shí)簡單起見,示出了4個(gè)節(jié)點(diǎn)。每一節(jié)點(diǎn)包括對(duì)應(yīng)于所接收分組的延遲的延遲值(940)。節(jié)點(diǎn)(920、922、924、926)可線性地置于存儲(chǔ)器中,且對(duì)所有節(jié)點(diǎn)循環(huán)使用索引尸(930)。因此,索引尸(1030)跟蹤數(shù)組中當(dāng)前最老的分組。每一節(jié)點(diǎn)(920、922、924、926)具有下一項(xiàng)指針(950)(此處,僅為節(jié)點(diǎn)字段)和前一項(xiàng)指針(960)(此處,僅為節(jié)點(diǎn)字段)。每一下一項(xiàng)指針(950)引用具有下一較高延遲值的節(jié)點(diǎn)。每一前一項(xiàng)指針(960)引用具有下一較低延遲值的節(jié)點(diǎn)。因此,在圖9中所示的數(shù)據(jù)結(jié)構(gòu)(910)中,Aw(尸3處)〉"(/%處)>^-2(尸2處)〉A(chǔ)^(尸,處)。最老的分組(尸/)最初位于列表的起始處。當(dāng)接收到每一新分組時(shí),將該分組添加到該結(jié)構(gòu)(910)直到歷史被填滿(例如,500個(gè)分組被跟蹤)。此時(shí),當(dāng)接收到新分組時(shí),包括關(guān)于最老分組的信息的節(jié)點(diǎn)被替換(例如,以分組501替換分組1,最老的分組現(xiàn)在是分組2,然后以分組502替換分組2,最老的分組現(xiàn)在是分組3)。當(dāng)替換老節(jié)點(diǎn)信息時(shí),更新前一項(xiàng)和下一項(xiàng)指針。對(duì)于新延遲值,通過循環(huán)下一項(xiàng)指針來找到延遲值有序列表中的正確位置,然后通過更新下一項(xiàng)和前一項(xiàng)指針來將延遲值"插入"到延遲值次序中。鏈表還維護(hù)對(duì)列表中最高延遲的引用。當(dāng)期望找到相應(yīng)所需丟失率的最優(yōu)所需延遲時(shí),解碼器以最高延遲開始,并跟隨指向較低延遲的前一項(xiàng)指針直到找到對(duì)應(yīng)于所需丟失率的節(jié)點(diǎn)的計(jì)數(shù)。這可在每當(dāng)接收到新分組時(shí)或以某種其它間隔來完成。因此,找到所需延遲是簡單的過程,因?yàn)閮H遍歷少數(shù)節(jié)點(diǎn)(例如,1%到5。X的節(jié)點(diǎn)用于1%到5%的所需丟失值)。而且,這可對(duì)時(shí)鐘漂移問題提供自然的解決方案,因?yàn)槲葱纬蓪?shí)際上的柱狀圖。因此,可自動(dòng)處理漂移柱狀圖的現(xiàn)象。此外,計(jì)算不限于由柱寬度指定的準(zhǔn)確程度。從而,計(jì)算可比典型的柱狀圖技術(shù)更精細(xì)和準(zhǔn)確?;蛘?,代替被實(shí)現(xiàn)為線性存儲(chǔ)器中的數(shù)組,雙向鏈表可被實(shí)現(xiàn)為某種其它類型的動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu)。C.信號(hào)相關(guān)的掩蓋當(dāng)遺漏了一個(gè)或多個(gè)分組時(shí),可使用若干不同方法之一來產(chǎn)生掩蓋丟失的信號(hào)。可根據(jù)信號(hào)的本質(zhì)和遺漏分組或幀的數(shù)目來選擇適當(dāng)?shù)难谏w技術(shù)。在圖IO中示出信號(hào)技術(shù)判斷的一個(gè)示例?;蛘呖墒褂闷渌袛唷⒖紙DIO,遇到一個(gè)或多個(gè)遺漏幀(1010)?;谥T如一個(gè)或多個(gè)相鄰幀的本質(zhì)和遺漏幀的數(shù)目等一個(gè)或多個(gè)因素選擇掩蓋技術(shù)(1020)?;蛘?,使用其它和/或附加的因素來進(jìn)行選擇。使用所選技術(shù)產(chǎn)生掩蓋信號(hào)(1030)。以下示出若干示例信號(hào)相關(guān)的掩蓋技術(shù)。根據(jù)第一種信號(hào)相關(guān)的掩蓋技術(shù),當(dāng)對(duì)遺漏的有話音幀有以往的信息可用且之前可用的幀被分類為有話音幀時(shí),使用有話音語音的單向掩蓋。如果可用音頻信息之間的間隙太長或出于其它原因而以致于實(shí)際上不能使用雙向掩蓋或維護(hù)低復(fù)雜度,則當(dāng)有將來信息可用時(shí),也可使用單向掩蓋??蓪?duì)單向掩蓋使用波形相似性疊加掩蓋技術(shù)("WSOLA")。在Y.J.Liang、N.Fiirber禾口B.Girod在2003年12月的IEEETransactionsonMultimedia巻5第4號(hào)第532-543頁的"AdaptivePlayoutSchedulingandLossConcealmentforVoiceCommunicationoverIPNetworks"中描述了WSOLA。WSOLA技術(shù)通過經(jīng)現(xiàn)有基音周期的加權(quán)平均生成新基音周期來擴(kuò)展之前的信號(hào)??墒褂迷摲椒ㄉ扇魏嗡璧拈L度,直到接收到下一分組。然而,如果基音擴(kuò)展過度,諸如當(dāng)丟失了許多分組時(shí),WSOLA方法可導(dǎo)致機(jī)械聲。因此,在現(xiàn)有的健壯解碼技術(shù)中,如果基音擴(kuò)展過度,則可添加噪聲。例如可使用通過為最近接收的音頻信號(hào)進(jìn)行優(yōu)化的線性預(yù)測系數(shù)濾波器的隨機(jī)白噪聲來生成噪聲。噪聲的能量可隨擴(kuò)展的增加而增加。如下所述,基音擴(kuò)展的能量也可逐漸降低直到所有剩下的都是所生成的背景噪聲。將擴(kuò)展信號(hào)與從稍后接收的分組中產(chǎn)生的稍后信號(hào)合并。這可包括最大化兩信號(hào)之間的相關(guān)的信號(hào)匹配例程。該信號(hào)匹配例程可以是簡單的相關(guān)例程,諸如使重疊信號(hào)的相應(yīng)樣本幅度相乘并對(duì)得到的乘積求和以產(chǎn)生相關(guān)值的相關(guān)例程。可調(diào)節(jié)稍后信號(hào)的時(shí)滯以最大化相關(guān)值?;蛘?,可使用其它信號(hào)匹配例程。信號(hào)可使用加權(quán)窗口來合并,諸如被設(shè)計(jì)成對(duì)合并區(qū)上的信號(hào)能量有恒定效應(yīng)的加權(quán)窗口。根據(jù)第二種類型的信號(hào)相關(guān)掩蓋技術(shù),如果要擴(kuò)展的信號(hào)本質(zhì)上是無話音的(即,在信號(hào)中不能找到清楚的話音或基音信息),則使用不同的算法來擴(kuò)展信號(hào)。在這樣的情況中,對(duì)要擴(kuò)展的信號(hào)分析相應(yīng)的線性預(yù)測系數(shù),且使用這些系數(shù)來使隨機(jī)噪聲通過線性預(yù)測系數(shù)濾波器以生成將與要擴(kuò)展的信號(hào)合并的合成無話音信號(hào)。合成信號(hào)的能量派生自用于擴(kuò)展的信號(hào)。一般而言,這種派生可包括將無話音語音幀分成兩半,并對(duì)每一半進(jìn)行擴(kuò)展和合并。在圖11中示出這一派生的示例。在所示示例中,對(duì)一個(gè)幀有無話音語音信號(hào)(1110)可用,且下一幀遺漏了信號(hào)(1120)。將無話音語音信號(hào)分成兩個(gè)重疊的可用樣本信號(hào)或片段(1130、1140)。左側(cè)的可用樣本(1130)包括可用信號(hào)(1110)的左邊一半加上來自右邊一半的少數(shù)后續(xù)樣本以便進(jìn)行平滑。例如,可使用40或80個(gè)后續(xù)樣本。同樣地,右側(cè)的可用樣本包括可用信號(hào)(iiio)的右邊一半加上少數(shù)先前的樣本以便進(jìn)行平滑?;谧髠?cè)可用樣本(1130)的能量創(chuàng)建左側(cè)派生樣本(1150)。具體地,分析左側(cè)可用樣本(1130)來產(chǎn)生相應(yīng)的線性預(yù)測系數(shù)。使用這些相應(yīng)的系數(shù)生成隨機(jī)噪聲并使之通過線性預(yù)測系數(shù)濾波器??s放得到的信號(hào)使得它的信號(hào)能量等于可用樣本(1130)的信號(hào)能量,從而生成合成無話音信號(hào),即左側(cè)派生樣本(1150)。同樣地,基于右側(cè)可用樣本(1140)的能量創(chuàng)建右側(cè)派生樣本(1160)。具體地,分析右側(cè)可用樣本(1140)來產(chǎn)生相應(yīng)的線性預(yù)測系數(shù)。使用這些相應(yīng)的系數(shù)生成隨機(jī)噪聲并使之通過線性預(yù)測系數(shù)濾波器??s放得到的信號(hào)使得它的信號(hào)能量等于可用樣本(1140)的信號(hào)能量,從而生成合成無話音信號(hào),即右側(cè)派生樣本(1160)。如圖11中所示,四組采樣如下從左到右排序左側(cè)可用樣本(1130)、左側(cè)派生樣本(1150)、右側(cè)派生樣本(1160)和右側(cè)可用樣本(1140)。使用加權(quán)窗口(1170)合并重疊信號(hào)(1130、1140、1150、1160)以產(chǎn)生結(jié)果信號(hào)(1180)。結(jié)果信號(hào)(1180)的持續(xù)時(shí)間足以覆蓋可用信號(hào)(1110)和遺漏信號(hào)(1120)的播放時(shí)間。如果后續(xù)幀也遺漏,則也可重復(fù)結(jié)果信號(hào)(1180)以進(jìn)一步擴(kuò)展信號(hào)。相信該技術(shù)能夠在其中可用無話音幀內(nèi)的能量在幀內(nèi)顯著上升或下降的眾多情況中執(zhí)行良好?;蛘?,解碼器將可用信號(hào)分成更多片段以便派生、合并等。根據(jù)第三種類型的信號(hào)相關(guān)掩蓋技術(shù),如果以往和將來的有話音音頻信息均可用,則使用雙向掩蓋。特別地,如果可用音頻信號(hào)之間的間隙不太長(例如,三個(gè)遺漏幀或更少),則可使用來自兩側(cè)的信息來填滿該間隙。將以往的信息擴(kuò)展到越過以往和將來可用幀之間的中點(diǎn)一個(gè)比特,并將將來的信息擴(kuò)展到往回越過該中點(diǎn)一個(gè)比特。例如,可為有話音音頻將以往和將來的信息擴(kuò)展到越過中點(diǎn)約一個(gè)基音長度,或可將它們各自擴(kuò)展某個(gè)預(yù)定的量,諸如越過中點(diǎn)40或80個(gè)樣本??墒褂肳SOLA法、上述無話音掩蓋技術(shù)、和/或某種其它方法來擴(kuò)展這兩個(gè)信號(hào)之一或兩者。例如,如果以往的信息是有話音的,而將來的信息是無話音的,則可使用上述第一技術(shù)來擴(kuò)展以往的信息,并使用第二技術(shù)來擴(kuò)展將來的信息。對(duì)有話音信號(hào),可使用諸如上述的信號(hào)匹配例程來確保信號(hào)在以往和將來的端點(diǎn)和中點(diǎn)的最佳位置處合并。無論信號(hào)是有話音、無話音還是兩者,然后可使用諸如被設(shè)計(jì)成使信號(hào)能量在合并區(qū)中保持近乎恒定的加權(quán)窗口等加權(quán)窗口來合并信號(hào)。當(dāng)使用這樣的雙向掩蓋時(shí),一般不將噪聲添加到信號(hào)。在第一和第二前述類型的信號(hào)相關(guān)掩蓋技術(shù)中,當(dāng)存在沒有接收到分組的延長的一段時(shí)間時(shí),使用上述技術(shù)之一創(chuàng)建的擴(kuò)展的有話音或無話音信號(hào)的能量逐漸降低,且所生成的背景噪聲逐漸增大直到結(jié)果信號(hào)達(dá)到背景噪聲的預(yù)定能量級(jí)。這有助于減少諸如可因信號(hào)被長時(shí)間擴(kuò)展而導(dǎo)致的鈴聲和機(jī)械聲等人工聲音。該技術(shù)對(duì)使用話音活動(dòng)檢測而未生成任何舒適噪聲的應(yīng)用尤其有用。在這樣的應(yīng)用中,當(dāng)話音活動(dòng)停止(例如,語句之間的暫停、或當(dāng)其他說話人在說話)時(shí),發(fā)送方應(yīng)用程序只需在安靜時(shí)間段內(nèi)停止發(fā)送分組。在這樣的情況中,盡管解碼器可能在這樣的時(shí)間段內(nèi)遇到遺漏幀,但解碼器可還原成背景噪聲,這是安靜時(shí)間段內(nèi)所需的響應(yīng)。在一種實(shí)現(xiàn)中,在將信號(hào)擴(kuò)展約兩個(gè)幀之后開始逐漸引入噪聲,且噪聲一般在約4個(gè)幀之后能為聽者所感知。當(dāng)將信號(hào)擴(kuò)展約6個(gè)或7幀時(shí),僅留下背景噪聲。可基于不同環(huán)境中聽者感知的音頻質(zhì)量來調(diào)節(jié)這些時(shí)間。D.基音抖動(dòng)使用WSOLA技術(shù)或其它有話音語音擴(kuò)展技術(shù),可使用諸如先前的一個(gè)或多個(gè)幀的先前信號(hào)的片段的基音特征來產(chǎn)生信號(hào)。通常重用得到的信號(hào)片段來擴(kuò)展信號(hào),有時(shí)用于掩蓋許多分組的丟失。這樣的通過基音重復(fù)來重復(fù)信號(hào)的擴(kuò)展(諸如使用WSOLA技術(shù))可導(dǎo)致鈴聲或機(jī)械聲。WSOLA技術(shù)中所使用的加權(quán)本身可有助于減少這些影響。諸如上述的噪聲添加技術(shù)可進(jìn)一步減少這些影響。鈴聲或機(jī)械聲也可通過在擴(kuò)展信號(hào)時(shí)向后續(xù)樣本中的基音大小/偏移量添加隨機(jī)、偽隨機(jī)、或其它調(diào)節(jié)因子來減少。從而,代替以精確大小的基音周期來擴(kuò)展信號(hào),向基音大小添加一因子,使得信號(hào)更類似于自然語音,而自然語音很少具有完全固定的基音速率。隨著擴(kuò)展的長度增加,因子的大小可增加。這種技術(shù)可通過使用包括一因子序列的因子表來實(shí)現(xiàn),其中因子的大小逐漸增加。作為一示例,偏移量調(diào)節(jié)因子對(duì)第一基音周期可以是零樣本,對(duì)第二周期是負(fù)一,對(duì)第三基音周期是正一,對(duì)第四周期是正二,對(duì)第五周期是負(fù)一等?;蛘?,可在解碼期間從適用范圍中隨機(jī)/偽隨機(jī)選擇調(diào)節(jié)因子。在一種實(shí)現(xiàn)中,隨機(jī)因子的最大范圍是從負(fù)三個(gè)樣本到正三個(gè)樣本。然而,范圍大小可基于收聽測試來調(diào)節(jié)?;蛘撸墒褂闷渌夹g(shù)來產(chǎn)生調(diào)節(jié)因子和/或可使用其它調(diào)節(jié)因子范圍??蓡为?dú)或組合使用上述用于減少因重復(fù)基音周期而產(chǎn)生的不期望聲音效果的三種技術(shù)(WSOLA加權(quán)、噪聲添加、和基音抖動(dòng))??芍貜?fù)進(jìn)行對(duì)這些技術(shù)的參數(shù)的調(diào)節(jié)來產(chǎn)生特定實(shí)現(xiàn)中的更期望的結(jié)果。E.解碼器記憶恢復(fù)具有有限內(nèi)部存儲(chǔ)器或沒有內(nèi)部存儲(chǔ)器的解碼器相當(dāng)易于在VoIP應(yīng)用中使用。在這樣的情況中,分組丟失不會(huì)使編碼器和解碼器不同步,因?yàn)楫?dāng)解碼當(dāng)前信息時(shí)沒有對(duì)先前信息的重要的記憶(以往歷史)的依賴性。然而,這樣的話音編解碼器就比特率而言通常不是非常高效。在其中比特率較低的編解碼器中,通常引入強(qiáng)記憶依賴性以便改善這些較低比特率下的質(zhì)量。這在某些應(yīng)用中不是問題,諸如為歸檔起見而進(jìn)行壓縮。然而,當(dāng)在諸如VoIP應(yīng)用等其它應(yīng)用中使用這樣的編解碼器時(shí),經(jīng)常丟失分組。記憶依賴性,諸如對(duì)用于產(chǎn)生激勵(lì)信號(hào)的自適應(yīng)碼本的記憶依賴性可使解碼器中擴(kuò)展的失真超出丟失的分組。在圖12中一般描述了可用于產(chǎn)生由后續(xù)分組用作歷史信號(hào)的替代信息的以下技術(shù)。或者,使用其它和/或附加的技術(shù)。首先,解碼器為一個(gè)或多個(gè)遺漏幀生成掩蓋信號(hào)(1210)。以此方式,掩蓋了遺漏的幀直到可從下一接收的分組獲得的信號(hào)部分。例如,以上信號(hào)相關(guān)技術(shù)可用于這樣的掩蓋。或者,其它掩蓋技術(shù)可用于掩蓋。解碼器然后對(duì)掩蓋信號(hào)執(zhí)行至少部分的編碼(和重構(gòu))(1220)。例如,解碼器通過簡化的假編碼器(駐留在解碼器中)傳遞一個(gè)或多個(gè)掩蓋技術(shù)產(chǎn)生的掩蓋信號(hào)以重新生成解碼器內(nèi)部狀態(tài)。這一般加快了后續(xù)解碼中從遺漏幀的恢復(fù)。在一種特定實(shí)現(xiàn)中,處理掩蓋信號(hào)以產(chǎn)生可代替遺漏的激勵(lì)信號(hào)歷史的相應(yīng)的殘留信號(hào)。這可通過使掩蓋信號(hào)通過線性預(yù)測合成濾波器(換言之即線性預(yù)測分析濾波器)的逆過程來完成。在合成濾波器技術(shù)(諸如上述組件(540)中),濾波器使用重構(gòu)的線性預(yù)測系數(shù)來處理重構(gòu)的殘留信號(hào)以產(chǎn)生組合或合成的信號(hào)。與此相對(duì),這種技術(shù)的線性預(yù)測分析濾波器使用己知的線性預(yù)測系數(shù)來處理解碼器生成的信號(hào)(此處是掩蓋信號(hào))以產(chǎn)生替代殘留信號(hào)。先前幀的線性預(yù)測系數(shù)可在線性預(yù)測分析濾波器中使用?;蛘撸赏ㄟ^分析掩蓋信號(hào)來計(jì)算新的線性預(yù)測系數(shù)。這可參考線性預(yù)測分析組件(330)使用上述技術(shù)來完成。相信通過為掩蓋信號(hào)計(jì)算新線性預(yù)測系數(shù)會(huì)達(dá)到更好的結(jié)果。然而,使用來自先前幀的線性預(yù)測系數(shù)更簡單?;蛘?,解碼器使用這些線性預(yù)測系數(shù)的某種組合或諸如帶寬擴(kuò)展等某種其它方法。從這種技術(shù)得到的信號(hào)可由解碼器用作隨后的自適應(yīng)碼本計(jì)算的記憶,來代替使用遺漏幀的激勵(lì)歷史。因?yàn)檠谏w信號(hào)通常不是完美的,因此解碼器產(chǎn)生的替代殘留信號(hào)仍僅近似于如果對(duì)遺漏幀進(jìn)行解碼則將創(chuàng)建的實(shí)際的記憶或歷史。然而,即使這樣,解碼器能夠在遺漏幀的激勵(lì)歷史不存在的情況中快得多地收斂回到正確的狀態(tài)。因此,相信該技術(shù)可顯著地改善丟失分組之后的已解碼信號(hào)的質(zhì)量。如果遺漏幀之后的下一幀具有顯著的記憶依賴性,則該技術(shù)也可用于雙向掩蓋的目的。在這種情況中,可如下實(shí)現(xiàn)雙向掩蓋首先,為遺漏幀執(zhí)行單向掩蓋;第二,使用該掩蓋來重新生成下一幀的近似記憶;第三,使用重新生成的記憶來對(duì)下一幀解碼;第四,使用下一幀和遺漏幀的前一幀來執(zhí)行遺漏幀的雙向掩蓋。相信這樣的雙向掩蓋將比僅使用單向掩蓋或沒有下一幀的記憶的雙向掩蓋產(chǎn)生更好的結(jié)果。在參考所述實(shí)施例描述和示出了本發(fā)明的原理之后,可以認(rèn)識(shí)到,可在安排和細(xì)節(jié)上修改所述實(shí)施例而不背離這樣的原理。應(yīng)理解,除非以其它方式指示,否則此處描述的程序、過程或方法不相關(guān)于或限于任何特定類型的計(jì)算環(huán)境。可使用各種類型的通用或?qū)S糜?jì)算環(huán)境或它們可執(zhí)行根據(jù)此處所述的教導(dǎo)的操作。以軟件示出的所述實(shí)施例中的要素可使用硬件實(shí)現(xiàn),反之亦然。考慮可應(yīng)用本發(fā)明的眾多可能的實(shí)施例,本發(fā)明要求保護(hù)可落入所附權(quán)利要求書及其等效實(shí)施方式的范圍和精神內(nèi)的所有這樣的實(shí)施例。權(quán)利要求1.一種計(jì)算機(jī)實(shí)現(xiàn)的方法,包括處理音頻信號(hào)的比特流,包括如果當(dāng)處理所述比特流時(shí)遇到了一個(gè)或多個(gè)遺漏幀,則至少部分基于一個(gè)或多個(gè)因素,從多個(gè)可用的信號(hào)相關(guān)掩蓋技術(shù)中選擇一種掩蓋技術(shù);以及執(zhí)行所選掩蓋技術(shù);以及輸出結(jié)果。2.如權(quán)利要求l所述的方法,其特征在于,所述一個(gè)或多個(gè)因素包括對(duì)所述音頻信號(hào)中所述一個(gè)或多個(gè)遺漏幀之前的可用幀的分類,且所述分類是包括有話音和無話音的一組可能的分類之一。3.如權(quán)利要求2所述的方法,其特征在于如果對(duì)所述之前的可用幀的分類為有話音,則所選掩蓋技術(shù)包括使用基音擴(kuò)展技術(shù)來生成掩蓋信號(hào);以及如果對(duì)所述之前的可用幀的分類為無話音,則所選掩蓋技術(shù)包括至少部分基于所述之前的可用幀的能量來生成所述掩蓋信號(hào)。4.如權(quán)利要求2所述的方法,其特征在于,所述一個(gè)或多個(gè)因素還包括對(duì)所述一個(gè)或多個(gè)遺漏幀的計(jì)數(shù),所述計(jì)數(shù)指示遺漏了多少連續(xù)的幀。5.如權(quán)利要求4所述的方法,其特征在于如果對(duì)所述之前的可用幀的分類和對(duì)所述音頻信號(hào)中所述一個(gè)或多個(gè)遺漏幀之后的可用幀的分類均為有話音,且所述一個(gè)或多個(gè)遺漏幀的計(jì)數(shù)小于一閾值,則所選掩蓋技術(shù)包括雙向掩蓋;以及如果對(duì)所述之前的可用幀的分類是有話音,且所述一個(gè)或多個(gè)遺漏幀的計(jì)數(shù)大于一閾值,則所選掩蓋技術(shù)包括單向掩蓋。6.如權(quán)利要求2所述的方法,其特征在于,如果對(duì)所述之前的可用幀的分類是有話音,則所選掩蓋技術(shù)包括如果一掩蓋信號(hào)長于一閾值持續(xù)時(shí)間則向所述掩蓋信號(hào)添加噪聲。7.如權(quán)利要求2所述的方法,其特征在于,如果對(duì)所述之前的可用幀的分類是無話音,則所選掩蓋技術(shù)包括標(biāo)識(shí)所述之前的可用幀的多個(gè)片段;使用所述多個(gè)之前的幀的片段來生成多個(gè)掩蓋信號(hào)片段;以及將所述多個(gè)之前的幀片段與所述多個(gè)掩蓋片段合并在一起以生成掩蓋信號(hào)。8.如權(quán)利要求l所述的方法,其特征在于,所選掩蓋技術(shù)包括生成擴(kuò)展信號(hào);以及向所述擴(kuò)展信號(hào)添加噪聲以產(chǎn)生掩蓋信號(hào)。9.如權(quán)利要求8所述的方法,其特征在于,所選掩蓋技術(shù)還包括沿所述音頻信號(hào)的至少一部分逐漸降低所述擴(kuò)展信號(hào)的能量;以及沿所述音頻信號(hào)的至少一部分逐漸增加所述噪聲的能量。10.如權(quán)利要求1所述的方法,其特征在于,所述多個(gè)可用的信號(hào)相關(guān)掩蓋技術(shù)包括用于有話音內(nèi)容的單向掩蓋技術(shù)、用于無話音內(nèi)容的單向掩蓋技術(shù)、雙向掩蓋技術(shù)和漸弱掩蓋技術(shù)。11.如權(quán)利要求1所述的方法,其特征在于,所述一個(gè)或多個(gè)因素包括對(duì)之前的可用幀的分類、對(duì)之后的可用幀的分類、對(duì)所述音頻信號(hào)中的所述之前的可用幀與所述之后的可用幀之間的遺漏幀的計(jì)數(shù)。12.—種計(jì)算機(jī)實(shí)現(xiàn)的方法,包括當(dāng)遇到從音頻信號(hào)的比特流遺漏的一個(gè)或多個(gè)幀時(shí),至少部分基于一個(gè)或多個(gè)先前幀中的基音周期生成掩蓋信號(hào),包括引入基音抖動(dòng);以及輸出結(jié)果。13.如權(quán)利要求12所述的方法,其特征在于,所述引入基音抖動(dòng)包括向所述掩蓋信號(hào)的基音添加隨機(jī)或偽隨機(jī)因子。14.如權(quán)利要求13所述的方法,其特征在于,所述隨機(jī)或偽隨機(jī)因子包括正值和負(fù)值。15.如權(quán)利要求13所述的方法,其特征在于,將一單獨(dú)的隨機(jī)或偽隨機(jī)因子應(yīng)用于所述掩蓋信號(hào)的多個(gè)部分中的每一個(gè)。16.如權(quán)利要求12所述的方法,其特征在于,所述引入包括隨著離所述一個(gè)或多個(gè)先前幀的距離增加而增加所述基音抖動(dòng)。17.—種計(jì)算機(jī)實(shí)現(xiàn)的方法,包括遇到從音頻信號(hào)的比特流遺漏的一個(gè)或多個(gè)幀;產(chǎn)生掩蓋信號(hào);遇到至少部分依賴于來自所述一個(gè)或多個(gè)遺漏幀的信息以便解碼的后續(xù)幀;從所述掩蓋信號(hào)產(chǎn)生替代信息,以及依賴于所述替代信息來代替來自所述一個(gè)或多個(gè)遺漏幀的所述信息以對(duì)所述后續(xù)幀進(jìn)行解碼。18.如權(quán)利要求17所述的方法,其特征在于,所述后續(xù)幀的自適應(yīng)碼本索引指示當(dāng)計(jì)算對(duì)所述后續(xù)幀的激勵(lì)信號(hào)的至少一部分的自適應(yīng)碼本計(jì)算時(shí)要使用的所述一個(gè)或多個(gè)遺漏幀的片段。19.如權(quán)利要求17所述的方法,其特征在于,所述產(chǎn)生替代信息包括至少部分地編碼所述掩蓋信號(hào)的至少一部分。20.如權(quán)利要求17所述的方法,其特征在于,所述產(chǎn)生替代信息包括基于所述掩蓋信號(hào)構(gòu)造表示殘留信號(hào)的信息。全文摘要描述了涉及延遲或丟失的已編碼音頻信息的技術(shù)和工具。例如,基于包括對(duì)一個(gè)或多個(gè)遺漏幀附近的一個(gè)或多個(gè)可用幀中的每一個(gè)的分類在內(nèi)的一個(gè)或多個(gè)因素來選擇用于一個(gè)或多個(gè)遺漏幀的掩蓋技術(shù)。作為另一示例,使用來自掩蓋信號(hào)的信息來產(chǎn)生替代信息,依賴于該替代信息對(duì)后續(xù)幀進(jìn)行解碼。作為又一示例,使用具有對(duì)應(yīng)于所接收的分組延遲的節(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)來確定所需的解碼器分組延遲值。文檔編號(hào)G01L21/00GK101268351SQ200680018465公開日2008年9月17日申請(qǐng)日期2006年4月5日優(yōu)先權(quán)日2005年5月31日發(fā)明者H·A·海莉爾,K·科什達(dá),T·王,W-G·陳,X·孫申請(qǐng)人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
衡阳市| 阿荣旗| 龙门县| 南和县| 诏安县| 襄樊市| 安泽县| 临猗县| 同江市| 西乌| 临沂市| 巴楚县| 安溪县| 江津市| 环江| 五寨县| 隆化县| 车致| 额尔古纳市| 迁西县| 灌南县| 土默特右旗| 上蔡县| 清新县| 嘉兴市| 饶阳县| 咸宁市| 十堰市| 平安县| 二连浩特市| 米易县| 河津市| 邹城市| 论坛| 绥芬河市| 定陶县| 冕宁县| 中牟县| 邯郸县| 玉环县| 洛隆县|