新四季網

解碼語音信號的方法

2023-07-20 16:10:16 1

專利名稱:解碼語音信號的方法
技術領域:
本發明涉及數字通信系統,更具體地說,涉及當數字通信系統語境內表示語音信號的比特流部分丟失時語音質量的增強。
背景技術:
在語音編碼中(又是稱作「音頻壓縮」),編碼器將輸入語音或音頻信號編碼為數字比特流以便傳輸。解碼器將比特流解碼為輸出語音信號。編碼器和解碼器的組合稱作多媒體數位訊號編解碼器。傳輸的比特流通常被分割為幀,並且在分組傳輸網絡中,每個傳輸的數據包包含有一個或多個壓縮比特流組成的幀。在無線網絡或分組網絡中,有時傳輸的幀或數據包被擦除或丟失。這種情況在無線網絡中稱為幀擦除,在分組網絡中稱為數據包丟失。當這種情況發生,為了避免輸出語音質量的大幅度降低,解碼器需要執行幀擦除隱匿(FEC)或數據包丟失隱匿(PLC)以嘗試隱藏因丟失幀的降低質量的影響。因為FEC和PLC通常指相同類型的技術,因而可替交地使用。因此,方便起見,術語「幀擦除隱匿」或FEC,在此處代表FEC和PLC兩者。
最早的FEC技術之一是基於模式匹配的波形替換,由Goodman等人在「Waveform Substitution Techniques for Recovering Missing Speech Segments inVoice Communications」,IEEE Transaction on Acoustics,Speech and SignalProcessing,December 1986,pp.1440-1448中提出。該技術被應用於執行直接對語音波形每個採樣瞬時量化的脈衝編碼調製(PCM)語音編解碼器。該FEC技術在丟失幀之前使用解碼語音波形的一部分作為模板,然後及時將該模板與之前的波形對比,以找出恰當的能最大化某種波形近似測量值(或最小化波形差測量值)的解碼語音波形。
隨後,Goodman的FEC技術在最匹配波形片段之後立即使用該波形片段作為丟失幀的替換波形。為了擦除幀邊界的不連續性,所述技術還使用升餘弦窗在正確解碼的波形和替代波形間執行疊加操作。該疊加技術增加了編碼的延時。在每個幀的末端有很多需要被疊加的語音採樣,並且最終值直到下一語音幀被解碼才能確定,因此產生延時。
基於上述Goodman的成果,David Kapilow開發了用於G.711 PCM編解碼器的一種更複雜版本的FEC技術。該FEC技術在ITU-T推薦G.711的附錄I中有描述。
Goodman的FEC技術和Kapilow的FEC技術均限於使用瞬時量化的PCM編解碼器(CODEC)。這種PCM編解碼器是塊獨立的,即沒有幀間或塊間編解碼存儲器,因此語音採樣的一個塊的解碼操作不依賴於其它塊的解碼語音信號或語音參數。
所有的PCM編解碼器都是塊獨立的編解碼器,但是塊獨立的編解碼器不一定是PCM編解碼器。例如,一個編解碼器可具有20ms大小的幀,並且在這20ms的幀中可能存在某些編解碼存儲器,使該幀中某些語音採樣的解碼需要依賴於該幀中其他部分的解碼語音採樣或語音參數。然而,只要每個20ms幀的解碼操作不依賴於其它幀的解碼語音採樣或語音參數,那麼編解碼器仍然是塊獨立的。
塊獨立的編解碼器的一個優點是幀到幀之間沒有錯誤傳播。在一幀擦除後,傳輸的語音數據的下一個好幀的解碼操作完全不受前一幀擦除的影響。換句話說,幀擦除後的第一個好幀可以馬上被解碼為輸出語音的好幀。
對於語音編碼,最常用的語音編解碼器的類型是基於預測編碼。可能第一個發表的用於預測編解碼器的FEC技術是北美數字蜂窩無線電協會的最初的TIA IS-54 VSELP標準(1996年9月廢除)內的「錯誤幀屏蔽」技術。第一個在激發域(excitation domain)中執行波形外推的用於預測編解碼器的FEC技術可能是由Chen為ITU-T推薦G.728低延時激勵線性預測器(CELP)編解碼器開發的FEC系統,在Chen的美國專利NO.5,615,298「幀擦除或數據包丟失過程中激勵信號合成(Excitation Signal Synthesis During Frame Erasure or PacketLoss)」中給出了相關的描述。在這些早期的用於預測編解碼器的FEC技術公布後,又提出了許多許多用於預測編解碼器的FEC技術,其中某些技術相當複雜。
儘管過去15年內大多數標準化的語音編解碼器都是預測編解碼器,仍然還有一些應用,如網絡電話(VoIP)還使用G.711(8位對數PCM)編解碼器或甚至16位線性PCM編解碼器,以確保非常高的信號保真度。在該應用中,沒有使用用於預測編解碼器的高級FEC技術,相反,使用了典型的G.711附錄I(Kapilow的FEC技術)。然而,G.711附錄I具有下面的缺點(1)因為疊加,其需要3.75ms的額外延時,(2)因為使用了長度為最大間距周期的3.5倍的長期緩存,其具有相當大的狀態存儲器要求,(3)其性能沒有其能做到的那麼好。
因此,需要一種能避免關於G.711附錄I提到的不足的用於塊獨立的語音編解碼器的FEC技術。更具體地說,需要不增加額外延時的FEC,還需要有儘可能小的狀態存儲器,並進一步需要達到比G.711附錄I更好的語音質量。

發明內容
本發明提出了一種FEC技術,包括通過分析之前的解碼語音推導出濾波器,合適的設置所述濾波器的內部狀態(存儲器),計算所述濾波器的「鈴音」信號(ringing signal),並使用外推的波形對生成的濾波器鈴音信號執行疊加操作,以確保幀邊界附近的平滑波形轉換而不需要G.711附錄I中的額外延時。在本發明中,當給濾波器的輸入信號為零時,所述濾波器的「鈴音」信號便是所述濾波器的輸出信號。選擇的所述濾波器使得在對應丟失幀之前的最後一個好幀的最後幾個採樣的時間周期內,濾波器的輸出信號與所述解碼語音信號相同。因為在丟失幀開始時濾波器具有非0內部「狀態」(存儲器),所述輸出信號通常是非0的,即使從丟失幀開始時開始所述濾波器輸入信號被設為0。以此方法得到的濾波器鈴音信號具有以平滑方式延續上一個好幀的末端的波形至當前丟失幀的趨勢(即,幀邊界沒有明顯的波形不連續)。在一個實施例中,所述濾波器包括長期預測濾波器和短期預測濾波器。
長期預測濾波器一般需要有長信號緩存作為其濾波器存儲器,因此明顯的增加了總存儲器需求量。本發明的一個實施例通過不維持長期預測濾波器的存儲器的長期緩存,而當需要時實時計算必要的濾波器存儲器,來實現非常低的存儲器大小要求,達到很低的內存要求。這可以使用長度僅為最大間距周期的1倍加上預定義分析窗的長度的語音歷史緩存(history buffer)(而不是G.711附錄I的3.5倍)來完成。
在本發明的一個實施例中,長期和短期預測濾波器用於在每個壞幀(即,丟失幀)的開始以及幀擦除後的第一個好幀(如,接收到的幀)的開始生成用於疊加操作的所述鈴音信號。
在本發明的另一個實施例中,長期和短期預測濾波器用於僅在幀擦除每次出現的第一錯誤幀開始時生成疊加操作用的鈴音信號。從第二個連續的錯誤幀直到出現振擦除後的第一個好幀,代替濾波器鈴音信號,系統繼續前一幀的波形外推以獲得從前一幀到當前幀的語音波形的平滑擴展,並使用所述擴展波形與由當前壞幀獲得的新外推波形或針對幀擦除後第一個好幀的解碼好波形進行疊加操作。
根據本發明的一個特徵,對於壞幀以及對於幀擦除後的第一個好幀,疊加的長度是分別進行調諧的,並且兩個最優疊加長度通常是不同的。
根據本發明的另一個特徵,針對幀擦除後的第一個好幀的疊加長度可自適應地在用於無聲語音(unvoiced speech)的較短長度和用於有聲語音(voicedspeech)的較長長度之間進行轉換。
根據本發明的另一個特徵,如果正在重建的語音的當前幀為純語音(接近周期性的),那麼執行周期性波形外推;如果語音的當前幀為純無聲的,則通過傳送一合適比例的隨機白噪音序列給短期預測濾波器(通常稱作「LPC合成濾波器」)來執行波形外推;如果語音當前幀位於上述兩個極端之間,則通過使用混合上述周期性部分和隨機部分的混合模型來執行波形外推,且周期性部分所佔比例大致與周期性的程度成比例。
根據本發明的另一個特徵,可使用一種計算有效且存儲器有效的方法來生成上述的隨機白噪音序列。所述方法基於對由N個隨機白噪音樣本組成的存儲表的等間距採樣和按模數索引來進行,其中各樣本之間的間距取決於幀索引(frame index),並且N是比需要在擦除幀中產生的隨機白噪音樣本的數量大的最小素數。
根據本發明的一個方面,提供一種解碼語音信號的方法,包括解碼語音信號的一個或多個非擦除幀;檢測所述語音信號的第一個擦除幀;對檢測所述第一擦除幀作出如下響應基於所述語音信號的之前解碼的部分推導出濾波器;使用所述濾波器計算鈴音信號片段;生成所述第一擦除幀的替代幀,其中生成所述替代幀包括將所述鈴音信號片段疊加至外推波形。
優選地,推導出所述濾波器包括推導出長期濾波器和短期濾波器,且使用所述濾波器計算所述鈴音信號片段包括使用長期和短期濾波器計算所述鈴音信號片段。
優選地,推導出所述長期濾波器包括基於所述語音信號之前解碼的部分計算長期濾波器存儲器。
優選地,基於所述語音信號之前解碼的部分計算所述長期濾波器存儲器包括對所述語音信號之前解碼的部分進行反向短期濾波。
優選地,所述方法進一步包括檢測所述語音信號的一個或多個隨後的擦除幀,所述一個或多個隨後的擦除幀及時緊跟在所述第一個擦除幀後;使用所述濾波器為每個所述隨後的擦除幀計算鈴音信號片段。
優選地,所述方法進一步包括檢測所述語音信號的一個或多個隨後的擦除幀,所述一個或多個隨後的擦除幀及時緊跟在所述第一個擦除幀後;為所述一個或多個隨後的擦除幀中的每一個生成替代幀,其中生成替代幀包括將對之前解碼的幀外推獲得的波形的延續與對所述擦除幀外推獲得的波形疊加。
優選地,所述方法進一步包括
檢測所述第一個擦除幀後的所述語音信號的第一個非擦除幀;使用所述濾波器為所述第一非擦除幀計算鈴音信號片段。
優選地,所述方法進一步包括檢測所述第一個擦除幀後的所述語音信號的第一個非擦除幀;將對之前解碼的幀外推獲得的波形的延續與所述第一個非擦除幀的一部分疊加。
優選地,所述將對之前解碼的幀外推獲得的波形的延續與所述第一個非擦除幀的一部分疊加包括選擇疊加窗的長度。
優選地,所述選擇疊加窗的長度包括基於所述語音信號的之前解碼幀是否為無聲幀選擇疊加窗的長度。
優選地,解碼所述語音信號的一個或多個非擦除幀包括以塊獨立的方式解碼所述語音信號的一個或多個非擦除幀。
根據本發明的一個方面,提供一種解碼語音信號的方法,包括解碼所述語音信號的一個或多個非擦除幀;檢測所述語音信號的擦除幀;對檢測所述擦除幀作出如下響應基於所述語音信號之前解碼的部分導出短期濾波器;生成偽隨機白噪音採樣序列;通過所述短期濾波器對所述偽隨機白噪音採樣序列進行濾波,生成外推波形;基於所述外推波形生成所述擦除幀的替代幀。
優選地,對於每個將要生成的樣本,所述生成偽隨機白噪音採樣序列包括通過統一概率分布函數計算偽隨機數;將偽隨機數映射為彎曲的縮放比例(warped scale)。
優選地,所述生成偽隨機白噪音採樣序列包括順序地從預先計算的白高斯噪音樣本陣列中讀取樣本。
優選地,所述生成偽隨機白噪音採樣序列包括將N個偽隨機高斯白噪音樣本存儲在表內,其中N是比t大的最小素數,且t表示將要生成的樣本的總數量;從所述表中獲取t個樣本組成的序列,其中所述序列中的第n個樣本使用基於下面函數的索引獲得cn以N為模,且其中c是所述語音信號內連續擦除幀的當前數量;基於所述語音信號的前一解碼部分的周期性,調整所述周期性波形部分和隨機波形部分;將所述調整後的周期性波形部分和調整後的隨機波形部分相加。
優選地,基於所述語音信號的前一解碼部分的周期性調整所述周期性波形部分和隨機波形部分包括通過比例因子Gp調整所述周期性波形部分;通過比例因子Gr調整所述隨機波形部分;其中Gr按照所述語音信號的前一解碼部分的周期性的函數進行計算,且Gp=Gr-1。
優選地,推導出所述長期濾波器包括基於所述語音信號的之前解碼的部分計算長期濾波器存儲器。
優選地,所述基於所述語音信號的之前解碼的部分計算長期濾波器存儲器包括反向短期濾波所述語音信號的前一解碼部分。
優選地,使用所述短期濾波器和長期濾波器生成周期性波形部分包括使用所述長期和短期濾波器計算鈴音信號片段;將所述鈴音信號片段疊加至外推波形。
優選地,使用所述短期濾波器生成隨機波形部分包括生成偽隨機白噪音採樣序列;通過所述短期濾波器對所述偽隨機白噪音採樣序列進行濾波以生成所述隨機波形部分。
優選地,所述方法進一步包括在通過所述短期濾波器對所述序列濾波之前,比例調整所述偽隨機白噪音採樣序列。
優選地,調整所述偽隨機白噪音採樣序列包括通過與對語音信號的之前解碼的非擦除幀計算出的短期預測餘量相對應的增益測量,調整所述偽隨機白噪音採樣序列。
優選地,解碼所述語音信號的一個或多個非擦除幀包括以塊獨立的形式解碼所述語音信號的一個或多個非擦除幀。
根據本發明的一個方面,提供一種解碼語音信號的方法,包括解碼所述語音信號的一個或多個非擦除幀;檢測所述語音信號的擦除幀;對檢測所述擦除幀作出如下響應基於所述語音信號的之前解碼的部分推導出短期濾波器和長期濾波器;使用所述短期濾波器和長期濾波器生成周期性波形部分;使用所述短期濾波器生成隨機波形部分;生成所述擦除幀的替代幀,其中生成替代幀包括將所述周期性波形部分和隨機波形部分混合。
優選地,混合所述周期性波形部分和隨機波形部分包括基於所述語音信號的之前解碼部分的周期性按比例調整所述周期性波形部分和隨機波形部分;將調整後的周期性波形部分和調整後的隨機波形部分相加。
優選地,基於所述語音信號的之前解碼部分的周期性按比例調整所述周期性波形部分和隨機波形部分包括通過比例因子Gp調整所述周期性波形部分;通過比例因子Gr調整所述隨機波形部分;其中,Gr按所述語音信號的之前解碼部分的周期性的函數進行計算,且Gp=Gr-1。
優選地,推導出所述長期濾波器包括基於所述語音信號的之前解碼部分計算長期濾波器存儲器。
優選地,基於所述語音信號的之前解碼部分計算長期濾波器存儲器包括反向短期過濾所述語音信號的之前解碼部分。
優選地,使用所述短期濾波器和長期濾波器生成周期性波形部分包括使用所述長期和短期濾波器計算鈴音信號片段;將所述鈴音信號片段疊加至外推波形。
優選地,使用所述短期濾波器生成隨機波形部分包括生成偽隨機白噪音採樣序列;通過所述短期濾波器對所述偽隨機白噪音採樣序列進行濾波以生成所述隨機波形部分。
優選地,對於每個將要生成的樣本,所述生成偽隨機白噪音採樣序列包括使用統一概率分布函數計算偽隨機數;將所述偽隨機數映射為彎曲的縮放比例。
優選地,生成偽隨機白噪音採樣序列包括從預先計算的白高斯噪音採樣陣列中順序地讀取樣本。
優選地,生成偽隨機白噪音採樣序列包括將N個偽隨機高斯白噪音樣本存儲在表內,其中N是比t大的最小素數,且t表示將要生成的樣本的總數量;從所述表中獲取t個樣本組成的序列,其中所述序列中的第n個樣本使用基於下面函數的索引獲得cn以N為模,且其中c是所述語音信號內連續擦除幀的當前數量。
優選地,所述方法進一步包括在通過所述短期濾波器對所述序列進行濾波之前,按比例調整所述偽隨機白噪音採樣序列。
本發明的優點、目的和新特性以及本發明各個實施例的結構和操作,將在後續結合附圖給出詳細的介紹。需要注意的是,本發明並不限於這些具體實施例,這些實施例僅僅是出於解釋的目的。本領域的普通技術人員基於本申請的教導顯然還可以獲得其他各種實施例。


下面將結合附圖及實施例對本發明作進一步說明,附圖中第一次出現的部件由對應的引用標號中最左邊的數位表示圖1是本發明一個優選實施例的框圖;圖2是本發明一個實施例中所區別的不同類別的幀的示意圖;圖3是實現本發明的一個優選方法的第一部分的流程圖;圖4是圖3所示的優選方法中第二部分的流程圖;圖5是在其內實現本發明一個實施例的計算機系統的示意圖。
具體實施例方式
以下結合附圖和實施例對本發明進行詳細描述。在不脫離本發明的精神實質和範圍情況下,可以提出其它的實施例和對本申請書中的實施例進行修改。因此,以下的詳細描述不是對本發明的限制,本發明的範圍由權利要求來定義。
對本領域技術人員顯而易見的是,如下所述,本發明可實現於許多硬體、軟體、固件和/或圖示的實體構成的實施例中。實現本發明的任何實際的軟家代碼以及專用的控制硬體均不是對本發明的限制。因此,本發明的操作和動作將基於以下理解進行描述,即可以對本申請中的實施例進行各種修改和變更。在詳細描述本發明之前,先介紹實現本發明的環境將有助於理解本發明。
A.本發明一個實施例的語音解碼器的實現本發明可用於塊獨立的語音編解碼器的解碼器環境中隱匿幀擦除或數據包丟失產生的質量降低影響。本發明的通用原理可以應用於任何塊獨立的編解碼器中。然而,本發明的應用不僅限於塊獨立的編解碼器,下面描述的技術也可應用於其他類型的編解碼器,如預測編解碼器。圖1是本發明優選實施例100的框圖。
在該優選實施例中,解碼器接收的語音信號的每個幀分為以下5個不同的級別(1)一串連續的擦除幀中的第一個擦除(壞)幀;如果一次擦除僅包括一個壞幀,那麼該壞幀屬於此類;
(2)一次擦除中有兩個或多個幀的情況下,一串連續的擦除幀中的第二個壞幀;(3)不是一次擦除中的上述第一個或第二個壞幀的壞幀;(4)擦除後立即接收到的第一個(好)幀,(5)非擦除後立即接收到的第一個好幀的好幀。
圖2是由本發明優選實施例所區分的5個不同類別的一系列幀200的示意圖。在圖2中,長的水平軸是時間軸,每個垂直的記號表示2個臨近的幀的邊界位置。圖2中的幀越靠右,幀就越新(隨後出現)。陰影的幀是「好」幀,或者是那些由語音解碼器接收的無傳輸錯誤的幀。無陰影的幀是「壞」幀,或者是那些未由解碼器接收的或在解碼器處被嚴重破壞的幀,因此認為「被擦除」。一串兩個或多個連續的壞幀在此稱為單次「擦除」。
本發明的該優選實施例為不同類別的幀執行不同的任務;此外,為某一類別的幀執行的任務的計算結果可隨後用於其它類別的幀。因此,很難通過傳統的框圖展示該FEC技術的一幀接一幀的操作。
為了克服這個問題,圖1所示為本發明實施例100的特殊類型的框圖。圖1的目標是為了說明本發明的基本概念,而不是一步接一步、一個模塊接一個模塊的操作。圖1中的各個功能塊可處於非無用狀態或被旁路,這依賴於當前幀所屬的類別。下面的描述將會解釋清楚在哪個類別的幀中哪個功能塊為激活狀態。同樣,為了更清楚的描述操作順序和控制流程,在圖3和圖4中示出了實現本發明的優選方法的流程圖。
首先對圖1中的框圖100進行描述,隨後詳細介紹圖3和4的流程圖。
參照圖1,實心箭頭表示語音信號流或其它相關的信號。虛線箭頭表示涉及濾波器參數、濾波存儲器等等的更新的控制流。
以下將描述當前幀為好幀的情況。對於好幀,模塊105將輸入比特流解碼為解碼語音信號的當前幀,並傳送至模塊110以存儲在解碼語音緩存器中;隨後,模塊115、125和130被激活。在優選實施例中,解碼語音緩存器的大小是最大間距周期(pitch period)的一倍加上預定義分析窗的大小。最大間距周期可以為,例如17和20ms之間,而分析窗的大小可以在5和10ms之間。
使用存儲於緩存器內的解碼語音信號,模塊115執行長期預測分析以導出長期濾波器參數(間距周期、抽頭權重(tap weight)等等)。同樣地,模塊130執行短期預測分析以導出短期濾波器參數並計算當前幀中短期預測殘留信號的平均幅度。短期濾波器和短期預測殘留在語音編碼文獻中也被稱作LPC(線性預測編碼)濾波器和LPC預測殘留。模塊125取出當前幀中解碼語音的最後幾個採樣樣本,顛倒其順序並將其存儲在短期濾波存儲器中。
如果當前幀是好幀但不是擦除後的第一個好幀(即第五類幀),那麼模塊135、155、160、165和170不被激活,模塊140、145、150、175、180和185被繞開。換句話說,解碼語音的當前幀被作為輸出語音信號直接播出。
另一方面,如果當前幀是擦除後的第一個好幀(即第四類幀),那麼在緊靠的最後幀(即最後一次擦除的最後一個壞幀)內,應該有已經計算出並存儲在模塊135內的鈴音信號片段(稍後作解釋)。在這種情況下,模塊155、160、165和170也不被激活,並且模塊140被繞開。模塊145執行存儲於模塊135中的鈴音信號片段與存儲於模塊110中的解碼語音信號之間的疊加操作以得到從存儲的鈴音信號至解碼語音的平滑轉換。這是為了避免當前幀開始時的波形不連續性。疊加長度一般短於幀的大小。在疊加操作之後,模塊145使用存儲於模塊110內的解碼語音信號中對應的採樣填充當前幀的剩餘部分。模塊150、175、180和185被繞開。即,解碼語音的疊加後的當前幀作為輸出語音信號被直接播出。
如果當前幀是一次擦除中的第一個壞幀(即第一類幀),模塊115不提取間距距離或抽頭權重(它僅使用為上一個好幀提取的值),但它將計算語音測量值以確定存儲於模塊110內的解碼語音信號的周期性如何。所述語音測量值隨後用於分別控制模塊175和170的增益值Gp和Gr。此外,模塊115也對最後幾個幀求平均值計算每個幀的間距周期改變。模塊120通過使用短期濾波器僅對比當前幀開始時的疊加周期早的一個間距周期內的片段進行解碼語音的反向濾波,來計算長期濾波器存儲器。如語音編碼文獻中提到的,反向濾波的結果是「LPC預測殘留」。隨後,模塊135對由長期濾波器抽頭權重計算的長期濾波存儲器片段進行比例調整,然後將生成的信號通過短期合成濾波器傳送,該短期合成濾波器的係數由模塊130在前一幀中更新,並且其濾波存儲器也在前一幀中由模塊125設置。所述短期合成濾波器的輸出信號是將在當前幀的開始時使用的鈴音信號(一次擦除中第一個壞幀)。
接下來,模塊140使用模塊115在前一個好幀期間確定的間距周期和外推比例因子執行解碼語音的第一階段周期波形外推,直到疊加周期結束。具體地,模塊140將比當前疊加周期早一個間距周期的解碼語音波形片段乘以外推比例因子,並將生成的信號片段存儲在對應當前疊加周期的地址中。隨後,模塊145執行疊加操作以獲得從模塊135計算的鈴音信號到模塊140產生的外推語音信號的平滑轉換。接下來,模塊150接收並執行第二階段周期波形外推,從當前幀的疊加周期末直至下一個幀的疊加周期末(即當前幀的末尾加上疊加長度)。然後,在發送給加法器180之前,在模塊175內通過增益值Gp對外推波形的當前幀部分以及模塊150內下一幀的疊加周期進行比例調整。
模塊155分別為當前幀加上下一幀的疊加周期生成隨機白噪音序列。(稍後給出詳細描述。)所述白噪音序列通過模塊160使用增益值avm進行比例調整,avm為前一幀的LPC預測殘留信號的平均幅度,在前一幀過程中由模塊130計算得到。隨後,模塊165對比例調整後的白噪音信號進行濾波以生成該調整後白噪音的濾波後版本。模塊165的輸出在被發送至加法器180之前,在模塊170中進一步由增益值Gr進行比例調整。
比例因子Gp和Gr分別是周期性部分的增益和隨機部分的增益。Gp和Gr的值由模塊115中計算的語音測量值來控制。如果語音測量值表示存儲於模塊110的緩存器內的解碼語音信號本質上是周期性的,那麼Gp=1且Gr=0。另一方面,如果語音測量值表示解碼語音本質上是無聲音頻或呈現非周期性,那麼Gp=0且Gr=1。如果該語音測量值在所述兩個極限之間,那麼Bp和Gr均非0,Gp大致與解碼語音的周期度成比例,且Gp+Gr=1。
周期信號部分(模塊150的輸出)和隨機信號部分(模塊165的輸出)分別由Gp和Gr進行比例調整,並且生成的2個調整後信號由加法器180相加。所述加法操作用於在下一幀開始時將當前幀加上疊加長度。超出當前幀末端的額外的採樣對於生成當前幀的輸出樣本來說是不需要的。因而此時對其進行計算並存儲為模塊145為下一幀進行疊加操作用的鈴音信號。
如果當前幀在一次擦除內不是很「深」,即,如果它離當前的一串連續擦除幀的開始(onset)不是太遠,那麼模塊185被繞開,加法器180的輸出作為輸出語音直接播出。如果當前幀超出了從當前擦除的開始(onset)開始的特定距離閥值,那麼模塊185對加法器180的輸出波進行增益衰減,這樣的話,當前幀離當前擦除的開始越遠,應用的增益衰減就越多,直到波形幅度達到0。
需要注意的是,上面的闡述假設周期信號部分(模塊150的輸出)和隨機信號部分(模塊165的輸出)均被計算。這可使程序控制更簡單。然而,這可能會導致計算的浪費。計算上更有效的方法是首先檢驗語音測量值,隨後,如果根據語音測量值Gp將被設置為0,那麼跳過周期信號部分的計算,而如果根據語音測量值Gr設置為0,則跳過隨機信號部分的計算。
如果當前幀是一次擦除中的第二個壞幀(即第二類幀),模塊120、125、130和135不被激活。模塊115通過將在前一幀(第一類幀)期間計算每幀的平均間距周期改變與前一幀的間距周期相加,推導出新的間距周期。模塊140使用由模塊115計算的新間距周期以與第一類幀中同樣的方式工作。模塊145同樣以與第一類幀同樣的方式工作,除了其使用的鈴音信號不同之外。具體地,此時模塊145不使用模塊135的輸出,而使用存儲於前一幀的鈴音信號作為超出前一幀(第一類幀)末端的模塊180的額外輸出樣本。模塊150、155、160、165、170、175、180和185均以與第一類幀內相同的方式工作。
如果當前幀是壞幀,並且不是一次擦除的第一個壞和第二個壞幀(第三類幀),那麼圖1中所有模塊均以與第二類幀中相同的方式工作,除了模塊115不將每個幀的平均間距周期改變與前一幀的間距周期相加。相反,模塊115簡單地再使用前一幀的間距周期作為給模塊140的輸出間距周期。
B.根據本發明一個實施例的幀擦除隱匿方法接下來將介紹實現本發明的優選方法的流程圖,如圖3和4所示。圖3和4對應一個流程,介紹了處理語音信號的一個幀的步驟。然而,由於所述流程圖太大,不能夠在一頁紙中表示出來,因此,流程圖被分為圖3和4,節點「A」是連接兩部分的連接點。
在所述流程圖中,圖3的左邊的1/3部分(步驟306至步驟316)對應於僅在好幀期間執行的處理,圖3右邊的2/3部分(步驟318至348)對應於僅在壞幀期間執行的處理。
參照圖3,每個幀的處理開始於左上角的節點302,標記為「開始」。第一處理步驟是在判斷步驟304中確定當前幀是否被擦除或未被擦除。如果結果是「否」(即當前幀是好幀),那麼,判斷步驟306進一步確定當前幀是否為一次擦除後的第一個好幀。如果結果是」否」(即當前幀為第5類幀),處理308中將當前幀中的解碼語音樣本複製至輸出緩存器中對應的地址。
如果判斷步驟306的結果為「是」(即當前幀為第4類幀),那麼,判斷步驟310進一步確定輸出解碼語音信號的前一幀是否為「無聲音頻」。如果結果為「是」,那麼,處理312中使用短疊加窗執行疊加(OLA)操作。該OLA在兩個信號間執行(1)解碼語音的當前幀,(2)在前一幀中為當前幀的開始部分計算的鈴音信號,這樣的話,OLA操作的輸出逐漸地從鈴音信號轉換至當前幀的解碼語音。具體地,該鈴音信號被從1至0「向下傾斜」的窗口「加權」(即相乘),而該解碼語音被從0至1「向上傾斜」的窗口加權。然後將這兩個窗口加權的信號相加在一起,生成的信號放在輸出緩存器內對應當前幀開始部分的一部分中。向下傾斜窗口和向上傾斜窗口的和在任何給定時間均為1。因而可使用典型的窗口如三角窗或升餘弦窗。所述OLA操作是本領域技術人員所熟知的。一個示例中,處理312中使用的短窗口的長度(或者疊加長度)約等於1ms,是8KHz電話帶寬語音的8個採樣,以及16KHz帶寬語音的16個採樣。無聲語音的OLA長度相對較短以避免OLA輸出信號的幅度中的偶然出現的偏角。從疊加周期的末端到當前幀的末端,處理312中簡單地將當前幀中解碼語音採樣的對應部分複製至輸出緩存器器中對應的部分內。
如果判斷步驟310的結果是」否」,那麼處理314中使用長疊加窗執行近似地疊加操作。處理314本質上與處理312相同。唯一的區別是處理314中使用了至少2.5ms的較長的疊加窗。
處理308、312或314完成後,控制流程跳至處理316,執行「LPC分析」(LPC分析為本領域技術人員熟知的技術),以更新短期預測器係數。設M是短期預測器的濾波器階數(filter order),那麼短期預測器可表示為傳遞函數P(z)=i=1Maiz-i,]]>其中ai,i=1,2,...,M是短期預測器係數。
在處理316完成後,控制流程跳至標記為「A」的節點350,其與圖4中的節點402一致。至此完成對好幀期間執行的處理步驟的描述,接下來介紹僅在壞幀期間執行的處理步驟。
如果判斷步驟304的結果為「是」(如當前幀被擦除),那麼判斷步驟318進一步確定當前幀是否為當前擦除數據流中第一個幀。如果結果為「是」,當前幀是第一類幀,那麼將執行處理步驟320、322和324。這三個處理步驟可以任何順序執行,不限於圖3中所示的特定步驟順序。
處理320對解碼語音的當前幀計算「語音測量值」。語音測量值是值依賴於語音信號的聲音強度大小的一個優值。如果解碼語音波形的當前幀聲音強度很強且具有很高的周期性(如元音區域),則處理320計算的語音測量值將很高。如果語音是無聲的(隨機和類似噪音的,如摩擦輔音),語音測量值將較低。如果語音不屬於上述兩者任何一種情況,如混合音或過渡區,那麼語音測量值將為中間值。估算語音測量值有很多種技術,多使用間距預測增益、標準化自相關、零相交率或其各種組合。這些技術為本領域技術人員所熟知的技術。處理步驟320中可以使用任何合理的音頻測量估計器。
如果最後幾個幀內的間距周期均位於一個小範圍內(即語音的有聲區內的情況),處理322中將計算最後幾個幀期間內間距周期的平均改變。幀到幀間距周期改變的平均值通常是分數(即非整數),其被隨後用於處理第二類幀。如果間距周期改變很大,那麼間距周期的平均改變被人為的設為0,以便隨後在處理328中不會產生預期外的結果。
處理步驟324中,計算級聯長期合成濾波器和短期合成濾波器的鈴音信號。對於有聲語音,該鈴音信號趨向於自然的以平滑的方式將前一幀的語音波形「延伸」至當前幀。因此,在處理步驟332中(隨後描述)將該鈴音信號與周期性的外推語音波形疊加是有用的,可以確保從前一幀到當前丟失幀的平滑過渡。
長期合成濾波器可以是單抽頭的或多抽頭的。為簡便起見,可使用單抽頭長期合成濾波器。實現單抽頭全極長期合成濾波器的常用方法是維持長的延遲線(即濾波器存儲器),且延遲元件的數量等於最大可能的間距周期。因為該濾波器是全極濾波器,存儲於這一延遲線內的採樣樣本與長期合成濾波器輸出中的採樣樣本相同。為了節省該長延遲線所需的數據RAM的存儲空間,在本發明的一個優選實施例中,該延遲線被刪除,而長期濾波器操作所需的延遲線部分近似於並從解碼語音緩存器計算得到。
為了描述方便,使用向量符號來展示此方案如何工作。設符號x(1:N)表示包含有陣列x的第一至第N個元素的N維向量。換句話說,如果x(1:N)是行向量,則x(1:N)是向量[x(1)x(2)x(3)...x(N)]的縮寫。設xq為輸出語音緩存。並設F是採樣中幀的大小,Q為xq緩存中之前的輸出語音採樣的數量,以及,設L是圖3的處理步驟332中使用的疊加操作的長度。隨後,向量xq(1:Q)對應於之前的輸出語音採樣,直至最後一幀的最後一個採樣,向量xq(Q+1:Q+F)對應於當前幀,處理步驟324的目的是計算對應於xq(Q+1:Q+L)的濾波器鈴音信號。
為了計算對應xq(Q+1:Q+L)的時間周期的濾波器鈴音信號,該操作所需的長期濾波器存儲器的一部分比xq(Q+1:Q+L)的時間周期早一個間距周期。設e(1:L)是長期合成濾波存儲器的一部分(即長期合成濾波器輸出),當通過短期合成濾波器時,將產生需要的對應xq(Q+1:Q+L)的時間周期的濾波器鈴音信號。此外,設pp為用於當前幀的間距周期。那麼,向量e(1:L)可通過xq(Q+1-pp:Q+L-pp)的反向短期濾波逼近。
所述反向短期濾波的實現如下首先指定xq(Q+1-pp-M:Q-pp)為表示為A(z)=1-P(z)的短期預測器錯誤濾波器的初始存儲器(或「狀態」),然後使用這一合適的初始化濾波器A(z)對向量xq(Q+1-pp:Q+L-pp)進行濾波。對應的濾波輸出向量便是向量e(1:L)的期望近似值。我們可稱該近似向量為(1:L),其可用於處理步驟332。(1:L)僅僅是一個近似值,這是因為如果pp很大,用於當前幀的A(z)的係數將與對應於xq(Q+1-pp:Q+L-pp)的時間周期的A(z)的一組係數不同。
如果需要,可將之前的多組A(z)係數儲存起來,依據間距周期pp,可重新獲取適合的一組或多組A(z)係數並用於上述的反向短期濾波中。那麼,該操作將與長期合成濾波器的維持長延遲線完全相同。然而,這樣做將需要額外的存儲器存儲多組A(z)係數,並且決定何時使用哪組A(z)係數會很複雜和麻煩。在實踐中發現,不存儲之前的A(z)係數組而僅使用當前的A(z)係數組,可省下更多的存儲器並可以達到同樣滿意的結果。因此,本發明的一個優選實施例中使用這種簡單的方法。
需要注意的是,向量xq(Q+1-pp:Q+L-pp)簡單地包含有將被濾波的向量xq(Q+1-pp:Q+L-pp)之前的M個採樣樣本,因此它可用於初始化全零濾波器A(z)的存儲器,這樣的話,在其達到這個點之前,全零濾波器A(z)就好像正對xq信號進行濾波。
在使用A(z)對向量xq(Q+1-pp:Q+L-pp)進行反向短期濾波之後,將產生的輸出向量(1:L)乘以長期濾波器存儲器比例因子β,β是用於生成鈴音信號的單抽頭長期合成濾波器的抽頭權重的近似值。比例調整後的長期濾波器存儲器β(1:L)是xq(Q+1-pp:Q+L-pp)的時間周期內的長期合成濾波器輸出的近似值。該比例因子β(1:L)進一步傳送通過表示為1/A(z)的全極短期合成濾波器以獲得想得到的濾波器鈴音信號,表示為r(1:L)。在1/A(z)濾波操作開始前,所述全極濾波器1/A(z)的濾波器存儲器被初始化為xq(Q-M+1:Q),即最後幀的輸出語音的最後M個採樣。濾波器存儲器的初始化使得對應ai的延遲元件被初始化為xq(Q+1-i),其中i=1,2,...,M。
短期合成濾波器1/A(z)的所述濾波器存儲器初始化基本上設置濾波器1/A(z)為好像已被用於濾波操作以生成xq(Q-M+1:Q),或者前一幀內輸出語音的最後M個採樣,並已準備好濾波下一個採樣樣本xq(Q+1)。通過以這種方式設置短期合成濾波器1/A(z)的初始存儲器(濾波器狀態),並隨後通過這樣一個合適的經初始化的短期合成濾波器傳送β(1:L),便可生成濾波器鈴音信號,趨向於自然地平滑地將前一幀中的語音波形「延伸」至當前幀。
處理步驟324中計算出濾波器鈴音信號向量r(1:L)後,將其存儲以便隨後用於處理步驟332中。然後處理繼續至判斷步驟330,詳細介紹將在下面給出。
如果判斷步驟318中確定當前幀不是當前擦除數據流中的第一幀,那麼前述步驟320、322和324被繞過,流程跳至判斷步驟326。判斷步驟326確定當前幀是否是當前擦除中的第二幀。如果結果為「是」,那麼處理步驟328中改變間距周期,通過將之前在步驟322中計算得到的平均間距周期改變值與前一幀的間距周期相加,並使用生成的值作為這一幀的新間距周期。然後控制流程進行至判斷步驟330。另一方面,如果步驟326中結果是」否」,控制流程跳過步驟328而直接進入判斷步驟330。
需要注意的是,步驟322中計算的平均間距周期改變值通常是分數。因此,如果本發明的實施例僅使用整數間距周期用於周期性波形外推,那麼處理步驟328中會將更新後的間距周期四捨五入為最接近的整數值。
判斷步驟330中確定步驟320中計算的語音測量值是否大於第一閥值T1。如果結果為「否」,則認為前一幀的波形不具有任何周期性,不能進行任何周期波形外推,則跳過處理步驟332而進入判斷步驟334。另一方面,如果結果為「是」,則認為前一幀的波形具有至少某些程度的周期性,那麼,處理步驟332中通過疊加波形平滑法執行周期波形外推。
處理步驟332中主要執行圖1中模塊140、145和150的操作。具體地,設t為外推比例因子,並假設間距周期大於疊加周期(即pp≥L),那麼處理步驟332中首先計算xq(Q+1:Q+L)=t×xq(Q+1-pp:Q+L-pp)。接下來,xq(Q+1:Q+L)與r(1:L)疊加。即xq(Q+n)=wu(n)×xq(Q+n)+wd(n)×r(n),n=1,2,...,L,其中wu(n)和wd(n)分別是向上傾斜窗和向下傾斜窗的第n個採樣,且wu(n)+wd(n)=1。這是通過疊加實現的第一階段的外推。
最後,處理步驟332中,在當前幀的末端後,進一步外推語音信號至K個採樣樣本,其中K可與L相等,但是通常情況下兩者不相同。所述第二階段的外推實現為xq(Q+L+1:Q+F+K)=t×xq(Q+L+1-pp:Q+F+K-pp)。K的值是用於擦除後第一個好幀的長疊加窗的長度,即用於處理步驟314中的疊加長度。當前幀後的外推語音的額外的K個採樣,即xq(Q+F+1:Q+F+K)內的樣本,被視為下一幀開始時用於疊加操作的「鈴音信號」。
如果間距周期小於疊加周期(pp<L),第一階段的外推以一個採樣接一個採樣的形式執行以避免複製波形從所述幀的開始到疊加操作執行前的一個間距周期後的不連續。具體地,使用疊加操作的第一階段的外推應通過下面的算法執行對於N=1,2,3,...,L,xq(Q+n)=wu(n)×t×xq(Q+n-pp)+wd(n)×r(n)事實上,該算法的執行不考慮pp和L之間的關係;因此,一個實施例中,其可廣泛用於避免檢查pp和L之間的關係。
執行完判斷步驟330或處理步驟332後,在判斷步驟334中確定在處理步驟320中計算的語音測量值是否小於第二閥值T2。如果結果為「否」,則認為前一幀的波形具有很高的周期性,不需要在輸出語音中混入任何隨機噪音成分;因此,跳過處理步驟336到344,控制流程進入判斷步驟346。
另一方面,如果判斷步驟344的結果為「是」,那麼處理步驟336到344將生成白噪音序列,使用短期合成濾波器對該噪音進行濾波,並將濾波後的噪音與處理步驟322中產生的周期性外推語音混合。
處理步驟336類似於圖1中所示的模塊155,生成偽隨機白噪音序列。理想情況下,該噪音不應均勻分布,相反,其應為高斯或近似高斯的分布。有很多方法可以實現該模塊。例如,該噪音序列可以在工作中一個採樣接一個採樣的進行計算,首先使用已知的算法通過統一概率分布函數(PDF)計算偽隨機數,隨後使用映射器將該偽隨機數映射為彎曲的縮放比例,這樣生成的數字具有高斯PDF。然而,這種方法需要很複雜的計算量。
另一種方法是存儲預先計算的白高斯噪音採樣陣列,並順序地讀取所述陣列以獲得想要數量的噪音採樣。這種方法存在的潛在問題是,如果有許多丟失幀的擴展幀擦除需要比存儲於預先計算的噪音陣列中的噪音採樣更多的噪音採樣,那麼輸出噪音序列會以固定形式重複,可能產生不想要的周期性,聽起來像嗡嗡聲。為了避免這種情況,需要在陣列中存儲相當大量的噪音採樣。例如,如果最差的情況是在輸出語音由處理步驟348衰減為0之前,產生60ms的白噪音,那麼對於16KHz寬帶的信號,該預先計算的噪音陣列將不得不存儲16×60=960個預先計算的白高斯噪音採樣。
在本發明的一個優選實施例中,處理步驟336中使用特定的表格查找和模數索引(modulo indexing)方法產生所述偽隨機高斯白噪音序列。這種方法避免了實時計算方法的計算複雜度和普通表格查找方法的高存儲量要求。以下舉一個例子介紹該方法。
假設採樣率是16KHz,幀的大小是F=80個樣本(5ms),超出當前幀的末端外推得出的額外採樣樣本的數量是K=40個樣本。那麼,處理步驟336中需要每次生成F+K=120個白噪音樣本。該方法首先找出比120大的最小素數。該素數是127。然後,該方法將離線預計算偽隨機高斯白噪音的127個採樣樣本並將其存儲在表格中。設wn(1:127)為包含所述127個噪音採樣的向量。設c為當前壞幀所在的一次擦除中的壞幀的數量。例如,如果當前幀是一次擦除中的第一個壞幀,那麼c=1;如果當前幀是當次擦除的第二個連續的壞幀,那麼c=2,依此類推。那麼,該方法生成的噪音序列的第n個採樣樣本通過w(n)=m×wn(mod(cn,127)),n=1,2,3,...,120獲得,其中m是期望的比例因子或「增益」,將w(n)序列帶入適當的信號級。模索引「mod(cn,127)」表示cn除以127後的餘數,可定義為mod(cn,127)=cn-[cn/127]×127,其中符號[x]表示小於或等於x的最大整數。
例如,對於進入擦除的第一幀,存儲的白噪音表格wn(1:127)的前120個採樣樣本用作輸出白噪音。對於進入擦除的第二幀,wn(2)、wn(4)、wn(6)、wn(8)、...、wn(126)、wn(1)、wn(3)、wn(5)、...、wn(113)用作輸出白噪音的120個採樣。對於進入擦除的第三幀,輸出白噪音序列為wn(3)、wn(6)、wn(9)、wn(12)、...、wn(123)、wn(126)、wn(2)、wn(5)、wn(8)、...、wn(122)wn(125)、wn(1)、wn(4)、wn(7)、...、wn(106)。同樣地,對於進入擦除的第四幀,輸出白噪音序列為wn(4)、wn(8)、wn(12)、wn(16)、...、wn(120)、wn(124)、wn(1)、wn(5)、wn(9)、...、wn(121)wn(125)、wn(2)、wn(6)、wn(10)、...、wn(122)、wn(126)、wn(3)、wn(7)、wn(11)、...、wn(99)。
從上面的四個例子中可以看出,對於進入擦除的每個新幀,以沒有任何重複的不同方式從存儲的白噪音表格wn(1:127)中提取出102個採樣樣本。當然,如果c非常大,那麼最終噪音提取形式將會出現重複。但是實踐中,如果在50至100ms或更長的擦除之後,輸出語音衰減至0,則只需要12至20個非重複噪音形式的幀。上述模索引方法不會出現12至12幀的噪音形式重複。通過僅有的127個存儲的噪音樣本,所述方法可生成噪音形式不重複的幾千個噪音樣本。
在所述方法的一個實施例中,為了節省計算指令周期,不執行除法操作cn/127。相反地,將一計數器初始化為0,並且在每次從白噪音表格中提取新樣本之前,所述計數器以c遞增,並與素數127進行比較。如果計數器值比127小,則將該計數器的值用作從白噪音表格中提取噪音樣本的地址。如果計數器的值大於127,則將計數器值減去127,得到的餘數用作從白噪音表格中提取噪音樣本的地址。通過這種實現方法,僅需要簡單的加法、減法和比較操作。事實上,多數數位訊號處理器(DSP)均具有模索引的硬體支持。
處理步驟336中產生F+K個偽隨機高斯白噪音的樣本後,處理步驟338隨後將這些噪音樣本傳送給全極短期合成濾波器1/A(z),該全極短期合成濾波器以與處理步驟324中初始化全極短期合成濾波器相同的方式將初始濾波器存儲器設置為前一幀的最後M個輸出語音採樣。在噪音序列通過該短期合成濾波器濾波後,產生的濾波後噪音信號將大致具有與前一幀輸出語音相同的頻譜包絡(spectral envelope)。然後將所述濾波後噪音信號的F+K個樣本存儲以供隨後處理步驟342中使用。
接下來,判斷步驟340確定處理步驟320中計算的語音測量值是否大於閥值T1。如果結果是「否」,則認為前一幀的波形不具有任何周期性,因此不需要將該濾波後噪音信號和處理步驟332中計算的周期性外推語音信號混合。因此,該濾波後噪音信號的前F個採樣樣本將用作輸出語音信號xq(Q+1:Q+F)。
如果判斷步驟340的結果為「是」,那麼由於判斷步驟340位於判斷步驟334的「是」分支內,可以推出語音測量值位於閥值T1和T2之間。在這種情況下,處理步驟342將處理步驟338產生的濾波後噪音信號和處理步驟332產生的周期性外推語音信號混合。在混合之前,需要為此兩個信號部分推導出適合的比例因子Gr和Gp,且Gr+Gp=1。如果語音測量值接近T1,則用於濾波後噪音的比例因子Gr接近1,且用於周期性外推語音的比例因子應接近0。相反地,如果語音測量值接近T2,那麼Gr應接近0,且Gp應接近1。簡單起見,用於濾波後噪音的比例因子Gr可計算為Gr=(T2-v)/(T2-T1),其中v是語音測量值。計算出Gr之後,Gp可根據Gp=1-Gr計算得出。
假設處理步驟332中計算得到的周期性外推語音存儲在xq(Q+1:Q+F+K)內,而處理步驟338中計算出的濾波後噪音存儲於fn(1:F+K)內。那麼,一旦計算出比例因子Gr和Gp後,處理步驟342中將兩個信號混合為xq(Q+n)=Gr×fn(n)+Gp×xq(Q+n),n=1,2,...,F+K,並將混合信號存儲於輸出信號緩存器中。
接下來,判斷步驟346中檢查當前擦除是否太長,即當前幀是否在此次擦除中位於太「深」位置。合理的閥值是20至30ms之間。如果當前擦除的長度未超過所述閥值,那麼控制流程將進入圖3中的節點350(標為「A」),也即圖4中節點402。如果當前擦除的長度超過了所述閥值,那麼在處理步驟348中應用增益衰減,逐漸將輸出信號幅度降低至0,隨後控制流程進入節點350。將增益衰減至0是非常必要的,因為外推波形太長會導致輸出信號聽起來不自然,像嗡嗡聲,這將被認為是非常差的偽信號(artifacts)。為了避免出現不自然的音調和嗡嗡聲,在大約60ms至80ms之後將輸出信號衰減至0是合理的。本領域的技術人員能夠理解,執行所述增益衰減的方法有很多種,因此在此不作討論。至此完成了圖3中的幀擦除細節處理的描述。
參照圖4,在圖3中的處理完成後,處理步驟404通過數模轉換器播放包含在向量xq(Q+1:Q+F)中的輸出信號樣本。隨後處理步驟406中計算當前幀的短期預測殘留信號,將該輸出信號向量xq(Q+1:Q+F)傳遞通過短期預測誤差濾波器A(z),且初始濾波存儲器保持在前一幀進行處理步驟406中的濾波後的狀態。處理步驟406針對每一幀執行。
處理步驟408計算在處理步驟406中計算的短期預測殘留信號的「增益」。然後存儲該增益,並用作白噪音生成過程中處理步驟336對下一幀使用的平均增益m,使用等式w(n)=m×wn(mod(cn,127))進行計算。所述「增益」可以是多個表示信號級高度的可能量之一。例如,其可以是當前幀中短期預測殘留信號的平均幅度,也可以是短期預測殘留信號或其他增益測量值的均方根(RMS)。只要以與處理步驟336產生白噪音序列一致的形式使用,任何量均可被選擇為「增益」。
接下來,判斷步驟410確定當前幀是否被擦除。如果結果為「是」,那麼跳過處理步驟412、414和416,並進入步驟418。如果結果為「否」,表示當前幀是好幀,那麼執行處理步驟412、414和416。
處理步驟412可使用大量可能的間距估計器中的任何一個生成估計的間距周期pp,該間距周期pp可由處理步驟320、322、324、328和332在下一幀中使用。因為間距估計是本領域技術人員熟知的技術,本申請在此不進行詳細介紹。然而,因為處理步驟412僅在好幀期間執行,需要注意的是,如果處理步驟412中使用的間距估計器算法要求某些處理步驟對語音信號的每個幀均執行,那麼這些處理步驟可作為附加處理插入處理步驟408和判斷步驟410之間。
處理步驟414計算可由處理步驟332在下一幀中使用的外推比例因子t。這一步驟也有很多方法可以完成所述計算。一種方法是為單抽頭長期預測器計算最優抽頭權重,所述單抽頭長期預測器通過加權後的xq(Q+1-pp:Q+F-pp)預測xq(Q+1:Q+F)。該最優權重的推導是本領域技術人員熟知的技術,該最優權重可用作外推比例因子t。這個方法的一個潛在問題是,如果兩個波形向量xq(Q+1:Q+F)和xq(Q+1-pp:Q+F-pp)不是非常相關的(即標準化相關度不接近1),那麼處理步驟332中計算的周期性外推波形將很快地衰減到0。一種避免這個問題的方法是將向量xq(Q+1:Q+F)的平均幅度除以向量xq(Q+1-pp:Q+F-pp)的平均幅度,並將生成的商用作外推比例因子t。在當向量xq(Q+1-pp:Q+F-pp)的平均幅度為0的特殊情況下,t可設為0。此外,如果xq(Q+1:Q+F)和xq(Q+1-pp:Q+F-pp)之間的相關度是負數,則可對上面計算的商值求反並將結果用作t。最後,為了防止外推波形「過大(blowing up)」,可對t的值進行限制以使其幅度不超過1。
處理步驟416計算可用於下一幀的處理步驟324中的長期濾波存儲器比例因子β。獲得該β值的一種現有方法是首先計算短期預測殘留信號,然後在間距周期pp內為所述短期預測殘留信號計算單抽頭長期預測器的最優抽頭權重。生成的最優抽頭權重可用作β。然而,這樣作需要對短期預測殘留信號使用一個長的緩存器。為了降低計算的複雜程度和存儲器使用量,通過以小於1的正值調整外推比例因子t也可以獲得合理的性能。而且按照β=0.75×t計算長期濾波存儲器比例因子可以得出很好的結果。
處理步驟418更新將在下一幀中由處理步驟322使用的間距周期歷史緩存。這通過如下方法實現;首先將用於之前幀的之前的間距周期值(已經存儲於間距周期歷史緩存中)移一個位置,然後將當前幀的新間距周期pp寫入由上述移位操作清空的間距周期歷史緩存中的該位置處。如果對於當前幀,判斷步驟410的結果為「否」,那麼處理步驟412中獲得的間距周期值pp便是當前幀的間距周期。如果判斷步驟410的結果為「是」,那麼前一幀的間距周期被重新用作當前幀的間距周期。兩種方法中,當前幀的間距周期均被寫入通過上述移位操作清空的間距周期歷史緩存內的該位置。
處理步驟420更新可在下一幀中用於處理步驟324和338的短期合成濾波器存儲器。所述濾波器存儲器更新操作的目的是為了在下一幀內處理步驟324和338的濾波操作開始前,初始化短期合成濾波器1/A(z)的存儲器。當然,如果處理步驟324和338分別將該濾波器存儲器初始化作為處理的一部分執行,那麼可以跳過處理步驟420。或者,短期濾波器存儲器可在處理步驟420中更新,隨後對於下一幀,處理步驟324和338可直接使用該已更新的濾波器存儲器。在這種情況下,所述濾波器存儲器初始化的執行使得對應ai的延遲元件被初始化為xq(Q+F+1-i),i=1,2,...,M。需要注意的是,當前幀的xq(Q+F+1-i)與下一幀的xq(Q+1-i)相同,因為xq緩存在處理進行至下一幀之前移位F個採樣樣本。
處理步驟422執行輸出語音緩存的移位和更新。基本上,該步驟中將向量xq(1+F:Q+F)複製到xq(1:Q)佔據的向量位置。換句話說,輸出語音緩存的內容將移位F個採樣樣本。
處理步驟424將超出當前幀的末端的外推語音信號的額外的樣本存儲為下一幀的鈴音信號。換句話說,xq(Q+F+1:Q+F+L)被存儲為鈴音信號r(1:L)。需要注意的是,如果下一幀是第一類幀(即一次擦除中的第一個壞幀),所述鈴音信號r(1:L)將被由處理步驟324計算得到的新的濾波器鈴音信號r(1:L)所替代。如果下一幀是除第一類之外的其它任何類的幀,那麼按照r(1:L)=xq(Q+F+1:Q+F+L)計算的所述鈴音信號將用作處理步驟332中的鈴音信號。
在處理步驟424執行完後,控制流程進入節點426,在圖4中表示為「結束」。節點426表示幀處理環路的結束。隨後,控制流程返回至標記為「開始」的節點302,以開始下一幀的幀處理。然後再次執行圖3和4中所示的整個流程,直到再次達到節點426「結束」。所述處理流程針對每個新的幀進行重複。
C.硬體和軟體實現為了完整介紹本發明,下面描述一個通用計算機系統。本發明可通過硬體或硬體與軟體的結合來實現。因此,本發明可實現於計算機系統或其它處理系統內。圖5是本發明計算機系統的一個示例500的示意圖。在本發明中,圖1-4所示的所有處理模塊或步驟可在例如一個或多個不同的計算機系統500上執行以實現本發明的各種方法。所述計算機系統500包括一個或多個處理器,如處理器504。處理器504可以是專用的或通用的數位訊號處理器。處理器504與通信設施502(如總線或網絡)連接。各種軟體實現均基於該示例計算機系統進行描述。根據本申請的介紹,本領域的技術人員能夠理解如何使用其它計算機系統和/或計算機架構實現本發明。
計算機系統500還包括有主存儲器506,優選為隨機訪問存儲器(RAM),並還可包括有次存儲器520。次存儲器520可包括例如硬碟驅動器522和/或可移動存儲驅動器524,例如軟盤驅動器、磁帶驅動器、光碟驅動器等等。可移動存儲驅動器524以熟知的方式讀寫可移動存儲單元528。可移動存儲單元528可以是軟盤、磁帶、光碟等等,由可移動存儲驅動器524進行讀寫。能夠理解的是,所述可移動存儲單元528包括已存儲有計算機軟體和數據的計算機可用存儲介質。
在另一個實施例中,次存儲器520可包括有其它類似的裝置以允許電腦程式或其它指令裝載入計算機系統500內。所述裝置包括例如可移動存儲單元530和接口526。所述裝置還包括盒式磁帶和盒式磁帶接口(視頻遊戲設備中可以找到)、可移動存儲晶片(如EPROM或PROM)和相關的插口,以及其它可移動存儲單元530和允許軟體和數據從可移動存儲單元530傳輸至計算機系統500的接口526。
計算機系統500還包括有通信接口540。通信接口540實現軟體和數據在計算機系統500和外部設備之間傳輸。通信接口540的例子包括數據機、網絡接口(如乙太網卡)、通信埠、PCMCIA槽和卡等等。通過通信接口540傳輸的軟體和數據以信號的形式傳輸,可為電子信號、電磁信號、光信號或其它能夠被通信接口540接收的信號。這些信號通過通信路徑542提供給通信接口540。通信路徑542傳送信號,可使用電線或電纜、光纖、電話線、蜂窩電話鏈路、RF鏈路和其它通信信道實現。
本申請中所使用的術語「電腦程式介質」和「計算機可用介質」用於指各種媒介,如可移動存儲單元528和530、硬碟驅動器522中安裝的硬碟,以及通信接口540接收的信號。所述電腦程式產品是提供軟體給計算機系統500的裝置。
電腦程式(也稱作計算機控制邏輯)存儲於主存儲器506和/或次存儲器520內。電腦程式也可通過通信接口540接收。執行所述電腦程式時,可激活計算機系統500實現本發明。具體來說,執行所述電腦程式可激活處理器500執行本發明的處理流程,例如圖3和4所示的方法。因此,所述電腦程式代表計算機系統500的控制器。若本發明使用軟體實現,所述軟體可存儲於電腦程式產品內,並使用可移動存儲驅動器524、接口526或通信接口540載入計算機系統500內。
在本發明的另一個實施例中,本發明的特徵主要在使用例如硬體部件(例如專用集成電路(ASICs)和門陣列)的硬體內實現。通過硬體狀態機來實現本發明也是本領域技術人員熟知的。
D.總結以上介紹了本發明的各種具體實施例,但是上述各種具體實施例不是對本發明的限制。本領域的普通技術人員可知,可以對本發明的形式或細節做出各種改變而不脫離本發明的範圍和精神實質。例如,儘管本發明的優選實施例中使用長期預測濾波器和短期預測濾波器生成鈴音信號,本領域的技術人員能夠理解,該鈴音信號能夠僅使用長期預測濾波器或僅使用短期預測濾波器來生成。此外,本發明並不限於預測濾波器的使用,本領域的技術人員能夠理解,長期和短期濾波器一般均可用於實現本發明。
本發明通過功能模塊和方法步驟對其中的特定功能和關係進行了描述。這些功能模塊和方法步驟的邊界,為了描述方便起見,在說明書中任意地給出了定義。只要特定的功能和關係被正確執行,本發明還可以定義其它的邊界而不脫離本發明的範圍和精神實質。本領域的技術人員可知,這些功能模塊可通過獨立的部件、專用集成電路、執行適當軟體的處理器及其各種組合來實現。因此,本發明的範圍不限於任何上述的具體實施例,而應由本發明的權利要求及其等效替換來定義。
權利要求
1.一種解碼語音信號的方法,包括解碼語音信號的一個或多個非擦除幀;檢測所述語音信號的第一個擦除幀;對檢測所述第一擦除幀作出如下響應基於所述語音信號的之前解碼的部分推導出濾波器;使用所述濾波器計算鈴音信號片段;生成所述第一擦除幀的替代幀,其中生成所述替代幀包括將所述鈴音信號片段疊加至外推波形。
2.如權利要求1所述的方法,其特徵在於,推導出所述濾波器包括推導出長期濾波器和短期濾波器,且使用所述濾波器計算所述鈴音信號片段包括使用長期和短期濾波器計算所述鈴音信號片段。
3.如權利要求2所述的方法,其特徵在於,推導出所述長期濾波器包括基於所述語音信號之前解碼的部分計算長期濾波器存儲器。
4.如權利要求3所述的方法,其特徵在於,基於所述語音信號之前解碼的部分計算所述長期濾波器存儲器包括對所述語音信號之前解碼的部分進行反向短期濾波。
5.如權利要求1所述的方法,其特徵在於,所述方法進一步包括;檢測所述語音信號的一個或多個隨後的擦除幀,所述一個或多個隨後的擦除幀及時緊跟在所述第一個擦除幀後;使用所述濾波器為每個所述隨後的擦除幀計算鈴音信號片段。
6.一種解碼語音信號的方法,包括解碼所述語音信號的一個或多個非擦除幀;檢測所述語音信號的擦除幀;對檢測所述擦除幀作出如下響應基於所述語音信號之前解碼的部分導出短期濾波器;生成偽隨機白噪音採樣序列;通過所述短期濾波器對所述偽隨機白噪音採樣序列進行濾波,生成外推波形;基於所述外推波形生成所述擦除幀的替代幀。
7.如權利要求6所述的方法,其特徵在於,對於每個將要生成的樣本,所述生成偽隨機白噪音採樣序列包括通過統一概率分布函數計算偽隨機數;將偽隨機數映射為彎曲的縮放比例。
8.如權利要求6所述的方法,其特徵在於,所述生成偽隨機白噪音採樣序列包括順序地從預先計算的白高斯噪音樣本陣列中讀取樣本。
9.一種解碼語音信號的方法,包括解碼所述語音信號的一個或多個非擦除幀;檢測所述語音信號的擦除幀;對檢測所述擦除幀作出如下響應基於所述語音信號的之前解碼的部分推導出短期濾波器和長期濾波器;使用所述短期濾波器和長期濾波器生成周期性波形部分;使用所述短期濾波器生成隨機波形部分;生成所述擦除幀的替代幀,其中生成替代幀包括將所述周期性波形部分和隨機波形部分混合。
10.如權利要求9所述的方法,其特徵在於,混合所述周期性波形部分和隨機波形部分包括基於所述語音信號的之前解碼部分的周期性按比例調整所述周期性波形部分和隨機波形部分;將調整後的周期性波形部分和調整後的隨機波形部分相加。
全文摘要
本發明公開了一種解碼語音信號的方法。語音信號的一個或多個非擦除幀以獨立塊的方式解碼。當檢測到被擦除的幀時,基於語音信號的之前解碼部分推導出短期預測濾波器和長期預測濾波器。周期性波形部分使用短期預測濾波器和長期預測濾波器產生。隨機波形部分使用短期預測濾波器產生。所述方法生成替代幀以代替被擦除的幀。所述替代幀可基於周期性波形部分、隨機波形部分或兩者的混合生成。
文檔編號G10L21/02GK1873778SQ20061008407
公開日2006年12月6日 申請日期2006年5月19日 優先權日2005年5月20日
發明者朱因韋·陳 申請人:美國博通公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀