<kbd id="ia2e8"><input id="ia2e8"></input></kbd><u id="ia2e8"></u>
  • <blockquote id="ia2e8"></blockquote>
  • <blockquote id="ia2e8"></blockquote>
  • <samp id="ia2e8"><label id="ia2e8"></label></samp>
  • 語音編碼器中的相位量化的制作方法

    文檔序號:26102449發布日期:2021-07-30 18:13
    語音編碼器中的相位量化的制作方法



    背景技術:

    隨著數字無線電話網絡、互聯網上語音流式傳輸和互聯網電話的出現,語音的數字處理已變得司空見慣。工程師使用壓縮來高效處理語音,同時仍保持質量。語音壓縮的一個目標是以一種針對給定數量的比特提供最大信號質量的方式表示語音信號。換句話說,該目標是,對于給定的質量水平,用最少的比特表示語音信號。在一些場景中,還可以應用其他目標,例如對傳輸錯誤的彈性以及限制由于編碼/傳輸/解碼導致的整體延遲。

    一種類型的常規語音編碼器/解碼器(“編解碼器”)使用線性預測(“lp”)來實現壓縮。語音編碼器針對預測濾波器找到并量化lp系數,所述lp系數用于將樣本值預測為先前樣本值的線性組合。殘差信號(也稱為“激勵”信號)指示原始信號的未通過濾波準確預測的部分。由于不同種類的語音具有不同的特性,因此語音編碼器通常對濁音段(通過聲帶振動表征)、清音段和無聲段使用不同的壓縮技術來壓縮殘差信號。對應的語音解碼器重構殘差信號,恢復在合成濾波器中使用的lp系數,并用合成濾波器處理殘差信號。

    考慮到壓縮對在計算機系統中表示語音的重要性,語音壓縮吸引了大量的研究和開發活動。盡管以前的語音編解碼器在許多情況下都提供良好的性能,但是它們也有一些缺點。特別是,在非常低的比特率情況下使用以前的語音編解碼器時,可能會出現問題。在這樣的情況下,無線電話網絡或其他網絡可能沒有足夠的帶寬(例如,由于擁塞或分組丟失)或者可能有傳輸質量問題(例如,由于傳輸噪聲或間歇性延遲),這阻止了在適用于實時通信的質量約束和時間約束下的編碼語音的遞送。



    技術實現要素:

    總之,詳細描述提出了語音編碼和語音解碼方面的創新。一些創新涉及語音編碼期間的相位量化。其他創新涉及語音解碼期間的相位重構。在許多情況下,即使在帶寬不足或有傳輸質量問題的網絡上傳輸編碼數據時,這些創新也可以提高低比特率場景中語音編解碼器的性能。

    根據本文中描述的第一組創新,語音編碼器接收語音輸入(例如,在輸入緩沖器中),對語音輸入進行編碼以產生編碼數據,并將編碼數據存儲(例如,在輸出緩沖器中)以作為比特流的一部分輸出。作為編碼的一部分,語音編碼器會根據線性預測(“lp”)系數對基于語音輸入的輸入值進行濾波,從而產生殘差值。語音編碼器對殘差值進行編碼。特別地,語音編碼器確定相位值集合并對相位值集合進行編碼。例如,可以通過以下方式來確定相位值:對當前幀的子幀應用頻率變換,這會產生子幀的復幅度值,并基于復幅度值計算相位值(以及對應的幅度值)。為了提高性能,語音編碼器在對相位值集合進行編碼時可以執行各種操作。

    例如,當語音編碼器對相位值集合進行編碼時,語音編碼器使用基函數(例如,正弦函數)的加權和以及線性分量,來表示相位值集合中的至少一些相位值。語音編碼器可以使用延遲決策方法或其他方法來確定對基函數加權的系數集合。系數的計數可以不同,具體取決于編碼數據的目標比特率和/或其他標準。當找到合適的系數時,語音編碼器可以使用基于線性相位度量的成本函數或其他成本函數,從而基函數的加權和與線性分量一起類似于所表示的相位值。語音編碼器可以使用偏移值和斜率值對線性分量進行參數化,然后將其與加權和相結合。使用基函數的加權和以及線性分量,語音編碼器可以以緊湊而靈活的方式準確表示相位值,這可以改善低比特率場景下的速率失真性能(即,對于給定比特率提供更好的質量,或等效地,針對給定的質量水平提供較低的比特率)。

    作為另一個示例,當語音編碼器對相位值集合進行編碼時,它會忽略具有高于截止頻率的頻率的相位值集合中的任何相位值。語音編碼器可以至少部分地基于編碼數據的目標比特率、基音循環信息和/或其他標準來選擇截止頻率。省略的高頻相位值可以在解碼期間基于作為編碼數據一部分用信號發送的低頻相位值進行合成。通過省略高頻相位值(并基于低頻相位值在解碼期間對其進行合成),語音編碼器可以高效地表示整個范圍的相位值,這可以改善低比特率場景下的速率失真性能。

    根據本文中描述的第二組創新,語音解碼器接收編碼數據(例如,在輸入緩沖器中)作為比特流的一部分,解碼編碼數據以重構語音,并存儲重構后的語音(例如,在輸出緩沖器中)以用于輸出。作為解碼的一部分,語音解碼器會解碼殘差值并根據lp系數對殘差值進行濾波。特別地,語音解碼器對相位值集合進行解碼并至少部分地基于該相位值集合重構殘差值。為了提高性能,語音解碼器在解碼相位值集合時可以執行各種操作。

    例如,當語音解碼器解碼相位值集合時,它會使用基函數(例如,正弦函數)的加權和以及線性分量,來重構相位值集合中的至少一些相位值。線性分量可以通過偏移值和斜率值進行參數化。語音解碼器可以解碼系數集合(其對基函數加權)、偏移值和斜率值,然后將系數集合、偏移值和斜率值用作重構相位值的一部分。對基函數加權的系數的計數可以根據編碼數據的目標比特率和/或其他標準而不同。使用基函數的加權和以及線性分量,可以以緊湊而靈活的方式準確表示相位值,這可以提高低比特率場景下的速率失真性能。

    作為另一個示例,當語音解碼器解碼相位值集合時,語音解碼器重構該相位值集合的第一子集,然后使用第一子集中的至少一些相位值來合成該相位值集合的第二子集,其中,第二個子集中的每個相位值都具有高于截止頻率的頻率。語音解碼器可以至少部分地基于編碼數據的目標比特率、基音循環信息和/或其他標準來確定截止頻率。為了合成第二子集的相位值,語音解碼器可以識別第一子集的范圍,確定(作為模式)第一子集的范圍內的相鄰相位值之間的差,在截止頻率之上重復該模式,并且然后對相鄰相位值之間的差進行集成(integrate)以確定第二子集。通過基于比特流中用信號發送的低頻相位值合成省略的高頻相位值,語音解碼器可以高效地重構整個范圍的相位值,這可以改善低比特率場景下的速率失真性能。

    本文中描述的創新包括但不限于權利要求書涵蓋的創新??梢詫⑦@些創新實現為:方法的一部分,配置為執行該方法的計算機系統的一部分,或存儲用于使計算機系統中的一個或多個處理器執行該方法的計算機可執行指令的計算機可讀介質的一部分。各種創新可以組合使用,也可以單獨使用。提供本發明內容以簡化形式介紹一些概念,這些概念將在下面的詳細描述中被進一步描述。本發明內容既不旨在標識所要求保護的主題的關鍵特征或必要特征,也不旨在用于限制所要求保護的主題的范圍。通過下面的詳細描述,本發明的前述和其他目的、特征和優點將變得更加明顯,下面的詳細描述參考附圖進行并說明了許多示例。示例也可以能夠具有其他和不同的應用,并且可以在各個方面對一些細節進行修改,而不脫離所公開的創新的精神和范圍。

    附圖說明

    以下附圖示出了所公開的創新的一些特征。

    圖1是示出其中可以實現一些所描述的示例的示例計算機系統的圖。

    圖2a和2b是其中可以實現一些所描述的實施例的示例網絡環境的圖。

    圖3是示出示例語音編碼器系統的圖。

    圖4是示出圖3的示例語音編碼器系統中的殘差值的編碼階段的圖。

    圖5是示出了示例延遲決策方法的圖,該延遲決策方法用于尋找將相位值表示為基函數的加權和的系數。

    圖6a-6d是示出用于語音編碼的技術的流程圖,該技術包括將相位值表示為基函數的加權和,和/或省略具有高于截止頻率的頻率的相位值。

    圖7是示出示例語音解碼器系統的圖。

    圖8是示出圖7的示例語音解碼器系統中的殘差值的解碼階段的圖。

    圖9a-9c是示出具有高于截止頻率的頻率的相位值的合成的示例方法的圖。

    圖10a-10d是示出用于語音解碼的技術的流程圖,該技術包括重構被表示為基函數的加權和的相位值和/或具有高于截止頻率的相位值的合成。

    具體實施方式

    詳細描述提出了語音編碼和語音解碼方面的創新。一些創新涉及語音編碼期間的相位量化。其他創新涉及語音解碼期間的相位重構。在許多情況下,即使在帶寬不足或有傳輸質量問題的網絡上遞送編碼數據時,這些創新也可以提高低比特率場景中語音編解碼器的性能。

    在本文中所描述的示例中,不同附圖中的相同附圖標記表示相同的組件、模塊或操作。更一般地,本文描述的示例的各種替代是可能的。例如,可以通過改變所描述的方法動作的順序,通過分割、重復或省略某些方法動作等來改變本文所描述的一些方法。所公開技術的各個方面可以組合使用或單獨使用。本文描述的一些創新解決了背景技術中提到的一個或多個問題。通常,給定的技術/工具沒有解決所有這些問題。應當理解,在不脫離本公開的范圍的情況下,可以利用其他示例,并且可以進行結構、邏輯、軟件、硬件和電氣改變。因此,以下描述不應被認為是限制性的。相反,本發明的范圍由所附權利要求書限定。

    i.示例計算機系統。

    圖1示出了合適的計算機系統(100)的一般示例,其中可以實現所描述的一些創新。本文所述的創新涉及語音編碼和/或語音解碼。除了其在語音編碼和/或語音解碼中的使用之外,計算機系統(100)并不旨在暗示對使用范圍或功能的任何限制,因為可以在包括適于語音編碼和/或語音解碼中的操作的專用計算機系統的各種計算機系統中實現創新。

    參考圖1,計算機系統(100)包括中央處理單元(“cpu”)的一個或多個處理核(110...11x)和本地片上存儲器(118)。處理核(110...1xx)執行計算機可執行指令。處理核(110...11x)的數量取決于實現方式,并且可以是例如4或8。本地存儲器(118)可以是易失性存儲器(例如,寄存器、高速緩存、ram)、非易失性存儲器(例如,rom、eeprom、閃存等)或二者的某種組合,其可通過相應的處理核(110...11x)訪問。

    本地存儲器(118)可以存儲軟件(180),該軟件(180)以計算機可執行指令的形式實現用于語音編碼器中的相位量化和/或語音解碼器中的相位重構的一種或多種創新的工具,以用于由相應處理核(110...11x)執行的操作。在圖1中,本地存儲器(118)是片上存儲器,例如一個或多個高速緩存,利用處理核(110...11x)對其的訪問操作、傳輸操作等是快速的。

    計算機系統(100)可以包括圖形處理單元(“gpu”)的處理核(未示出)和本地存儲器(未示出)??商娲?,計算機系統(100)包括片上系統(“soc”)、專用集成電路(“asic”)或其他集成電路的一個或多個處理核(未示出),以及相關聯的存儲器(未顯示)。處理核可以執行用于語音編碼器中的相位量化和/或語音解碼器中的相位重構的一種或多種創新的計算機可執行指令。

    更一般地,術語“處理器”可以泛指可以處理計算機可執行指令的任何設備,并且可以包括微處理器、微控制器、可編程邏輯設備、數字信號處理器和/或其他計算設備。處理器可以是cpu或其他通用單元,然而,使用例如asic或現場可編程門陣列(“fpga”)來提供專用處理器也是眾所周知的。

    術語“控制邏輯”可以指控制器,或更一般地,一個或多個處理器,其可操作以處理計算機可執行指令,確定結果,并生成輸出。取決于實現方式,控制邏輯可以通過在cpu上可執行的軟件,通過控制專用硬件(例如,gpu或其他圖形硬件)的軟件,或通過專用硬件(例如,在asic中)來實現。

    計算機系統(100)包括共享存儲器(120),其可以是處理核可訪問的易失性存儲器(例如,ram)、非易失性存儲器(例如,rom、eeprom、閃存等),或兩者的某種組合。存儲器(120)以計算機可執行指令的形式存儲針對所執行的操作實現用于語音編碼器中的相位量化和/或語音解碼器中的相位重構的一種或多種創新的工具的軟件(180)。在圖1中,共享存儲器(120)是片外存儲器,利用處理核對于其的訪問操作、傳輸操作等較慢。

    該計算機系統(100)包括一個或多個網絡適配器(140)。如本文所用,術語網絡適配器表示任何網絡接口卡(“nic”)、網絡接口、網絡接口控制器或網絡接口設備。網絡適配器(140)使得能夠通過網絡與另一計算實體(例如,服務器、其他計算機系統)進行通信。該網絡可以是電話網絡、廣域網、局域網、存儲區域網或其他網絡。網絡適配器(140)可以支持用于電話網絡、廣域網、局域網、存儲區域網絡或其他網絡的有線連接和/或無線連接。網絡適配器(140)通過網絡連接以調制數據信號傳送數據(例如,計算機可執行指令、語音/音頻或視頻輸入或輸出或其他數據)。調制數據信號是一種信號,其以將信息編碼在信號中的方式設置或更改其一個或多個特性。作為示例而非限制,網絡連接可以使用電、光、rf或其他載波。

    計算機系統(100)還包括一個或多個輸入設備(150)。輸入設備可以是:諸如鍵盤、鼠標、筆或軌跡球之類的觸摸輸入設備,掃描設備,或向計算機系統(100)提供輸入的另一設備。對于語音/音頻輸入,計算機系統(100)的輸入設備(150)包括一個或多個麥克風。計算機系統(100)還可以包括視頻輸入、另一音頻輸入、運動傳感器/跟蹤器輸入和/或游戲控制器輸入。

    該計算機系統(100)包括一個或多個輸出設備(160),例如顯示器。對于語音/音頻輸出,計算機系統(100)的輸出設備(160)包括一個或多個揚聲器。輸出設備(160)還可以包括打印機、cd刻錄機、視頻輸出、另一音頻輸出或提供來自計算機系統(100)的輸出的另一設備。

    存儲裝置(170)可以是可移動的或不可移動的,并且包括磁介質(例如,磁盤、磁帶或盒式磁帶)、光盤介質和/或任何其他可用于存儲信息且可在計算機系統(100)內被訪問的介質。存儲裝置(170)存儲用于軟件(180)的指令,該軟件實現用于語音編碼器中的相位量化和/或語音解碼器中的相位重構的一種或多種創新的工具。

    諸如總線、控制器或網絡之類的互連機制(未示出)將計算機系統(100)的組件互連。通常,操作系統軟件(未示出)為在計算機系統(100)中執行的其他軟件提供操作環境,并協調計算機系統(100)的組件的活動。

    圖1的計算機系統(100)是物理計算機系統。虛擬機可以包括如圖1所示組織的組件。

    術語“應用”或“程序”可以指代諸如用于提供功能的任何用戶模式指令之類的軟件。應用(或程序)的軟件可以還包括用于操作系統和/或設備驅動程序的指令。該軟件可以存儲在相關聯的存儲器中。軟件可以是例如固件。盡管考慮了使用適當編程的通用計算機或計算設備來執行這種軟件,但是也考慮了可以使用硬接線電路或定制硬件(例如,asic)代替軟件指令使用或與軟件指令結合使用。因此,示例不限于硬件和軟件的任何特定組合。

    術語“計算機可讀介質”是指參與提供可由處理器讀取并在計算環境內訪問的數據(例如,指令)的任何介質。計算機可讀介質可以采用許多形式,包括但不限于非易失性介質和易失性介質。非易失性介質包括例如光盤或磁盤以及其他永久性存儲器。易失性介質包括動態隨機存取存儲器(“dram”)。計算機可讀介質的常見形式包括例如固態驅動器、閃存驅動器、硬盤、任何其他磁性介質、cd-rom、數字多功能光盤(“dvd”)、任何其他光學介質、ram、可編程只讀存儲器(“prom”)、可擦可編程只讀存儲器(“eprom”)、usb記憶棒、任何其他存儲器芯片或盒式磁帶或計算機可以讀取的任何其他介質。術語“計算機可讀存儲器”特別地排除了暫時性傳播信號、載波和波形或其他無形或暫時性介質,雖然它們也可被計算機讀取。術語“載波”可以指在幅度或頻率上調制以傳送信號的電磁波。

    可以在目標真實或虛擬處理器上的計算機系統中執行的計算機可執行指令的一般上下文中描述本發明。所述計算機可執行指令可包括:可在通用處理器的處理核上執行以提供本文描述的功能的指令,可執行以控制gpu或專用硬件以提供本文描述的功能的指令,可在gpu的處理核上執行以提供本文描述的功能的指令,和/或可在專用處理器的處理核上執行以提供本文描述的功能的指令。在一些實現方式中,可以在程序模塊中組織計算機可執行指令。通常,程序模塊包括執行特定任務或實現特定抽象數據類型的例程、程序、庫、對象、類、組件、數據結構等。程序模塊的功能可以如各個實施例中所期望的在程序模塊之間進行組合或拆分。用于程序模塊的計算機可執行指令可以在本地或分布式計算機系統內執行。

    在本公開中描述了許多示例,并且僅出于說明性目的而給出了許多示例。所描述的示例在任何意義上都不是限制性的,并且也不旨在是限制性的。如從本公開中顯而易見的,當前公開的創新可廣泛地應用于多種上下文。本領域普通技術人員將認識到,可以在各種修改和變更(例如,結構、邏輯、軟件和電氣修改)的情況下實踐所公開的創新。盡管可以參考一個或多個特定示例來描述所公開的創新的特定特征,但是應當理解,除非另外明確說明,否則這些特征不限于參考其描述的一個或多個特定示例中的用法。本公開既不是所有示例的字面描述,也不是所有示例中必須存在的本發明的特征的列表。

    當在術語之前使用序數(例如,“第一”、“第二”、“第三”等)作為形容詞時,該序數僅用于表示特定特征(除非另有明確說明),例如,以將該特定特征與由相同術語或相似術語描述的另一特征區分開。僅使用序數“第一”、“第二”、“第三”等并不表示任何物理順序或位置、任何時間順序或重要性、質量或其他方面的排名。另外,僅使用序數并沒有定義對用序數標識的特征的數值限制。

    在介紹元素時,詞語“一”、“一個”、“該”和“所述”旨在表示存在一個或多個元素。術語“包括”、“包含”和“具有”旨在是包括性的,并且意味著除了所列元素之外,可能還有附加元素。

    當描述單個設備、組件、模塊或結構時,可以替代地使用多個設備、組件、模塊或結構(無論它們是否協作)來代替單個設備、組件、模塊或結構。被描述為由單個設備擁有的功能可以替代地由多個設備擁有,無論它們是否協作。類似地,在本文中描述多個設備、組件、模塊或結構之處(無論它們是否協作),都可以替代地使用單個設備、組件、模塊或結構來代替多個設備、組件、模塊或結構。被描述為由多個設備擁有的功能可以替代地由單個設備擁有。通常,計算機系統或設備可以是本地的,也可以是分布式的,并且可以包括專用硬件和/或具有實現上述功能的軟件的硬件的任意組合。

    此外,本文中所述的技術和工具不限于本文中所述的特定示例。相反,相應技術和工具可以與本文中描述的其他技術和工具獨立地和分開地使用。

    彼此通信的設備、組件、模塊或結構不需要彼此持續通信,除非另有明確說明。相反,這樣的設備、組件、模塊或結構僅需要在必要或期望時向彼此發送,并且實際上可以在大多數時間避免交換數據。例如,經由互聯網與另一設備通信的設備可能都無法數周一次將數據發送到另一設備。另外,彼此通信的設備、組件、模塊或結構可以直接通信或通過一個或多個中介間接地通信。

    如本文所使用的,術語“發送”表示將信息從一個設備、組件、模塊或結構傳遞到另一設備、組件、模塊或結構的任何方式。術語“接收”表示在一個設備、組件、模塊或結構處從另一設備、組件、模塊或結構獲取信息的任何方式。設備、組件、模塊或結構可以是同一計算機系統或不同計算機系統的一部分。信息可以以值傳遞(例如,作為消息或函數調用的參數)或者以引用傳遞(例如,在緩沖器中)。取決于上下文,信息可以直接傳遞或通過一個或多個中間設備、組件、模塊或結構傳送。如本文中所使用的,術語“連接”表示設備、組件、模塊或結構(其可以是同一計算機系統或不同計算機系統的一部分)之間的可操作的通信鏈路??刹僮鞯耐ㄐ沛溌房梢允怯芯€或無線網絡連接,其可以是直接的或經過(例如,網絡的)一個或多個中介。

    對具有多個特征的示例的描述并不意味著所有或甚至任何此類特征都是必需的。相反,描述了各種可選特征,以說明本文中描述的創新的各種可能示例。除非另有明確說明,否則沒有任何特征是必不可少的或必需的。

    此外,盡管可以按順序描述處理步驟和階段,但是可以將這樣的處理配置為以不同的順序工作。對特定序列或順序的描述并不一定表示要求按該順序執行步驟/階段??梢砸匀魏螌嶋H順序執行步驟或階段。此外,盡管被描述或暗示為非同時發生,但是一些步驟或階段可以同時執行。將過程描述為包括多個步驟或階段并不暗示所有或甚至任何步驟或階段都是必不可少的或必需的。各種其他示例可以省略所描述的一些或全部步驟或階段。除非另有明確說明,否則任何步驟或階段都不是必不可少的或必需的。類似地,盡管可以將產品描述為包括多個方面、質量或特性,但這并不意味著所有方面都是必不可少的或必需的。各種其他示例可以省略方面、質量或特性中的一些或全部。

    參考語音編解碼器說明了本文中描述的許多技術和工具??商娲?,可以在音頻編解碼器、視頻編解碼器、靜止圖像編解碼器或其他媒體編解碼器(對于它們,編碼器和解碼器使用相位值集合來表示殘差值)中實現本文中描述的技術和工具。

    列舉的項目列表并不暗示任何或所有項目是互斥的,除非另有明確說明。同樣,除非另有明確說明,否則列舉的項目列表并不暗示任何項目或所有項目是任何類別的綜合。

    為了呈現的目的,詳細描述使用諸如“確定”和“選擇”之類的術語來描述計算機系統中的計算機操作。這些術語表示由計算機系統中的一個或多個處理器或其他組件執行的操作,并且不應與人類執行的動作混淆。與這些術語相對應的實際計算機操作因實現方式而異。

    ii.示例網絡環境。

    圖2a和2b示出了示例網絡環境(201、202),其包括語音編碼器(220)和語音解碼器(270)。編碼器(220)和解碼器(270)使用適當的通信協議通過網絡(250)連接。網絡(250)可以包括電話網絡、因特網或另一計算機網絡。

    在圖2a所示的網絡環境(201)中,每個實時通信(“rtc”)工具(210)包括用于雙向通信的編碼器(220)和解碼器(270)兩者。給定的編碼器(220)可以產生與語音編解碼器格式或語音編解碼器格式的擴展兼容的輸出,其中,對應的解碼器(270)從編碼器(220)接受編碼的數據。雙向通信可以是音頻會議、電話呼叫或其他兩方或多方通信場景的一部分。盡管在圖2a中的網絡環境(201)包括兩個實時通信工具(210),但是網絡環境(201)可以替代地包括三個或更多個參與多方通信的實時通信工具(210)。

    實時通信工具(210)管理編碼器(220)進行的編碼。圖3示出了可以包括在實時通信工具(210)中的示例性編碼器系統(300)??商娲?,實時通信工具(210)使用另一編碼器系統。實時通信工具(210)還管理解碼器(270)進行的解碼。圖7示出了示例解碼器系統(700),其可以被包括在實時通信工具(210)中??商娲?,實時通信工具(210)使用另一解碼器系統。

    在圖2b所示的網絡環境(202)中,編碼工具(212)包括編碼器(220),該編碼器(220)對語音進行編碼以遞送到包括解碼器(270)的多個回放工具(214)??梢詾楸O視系統、web監視系統、遠程桌面會議演示、游戲播放廣播或其中語音被編碼并從一個位置發送到一個或多個其他位置進行回放的其他場景提供單向通信。盡管在圖2b中的網絡環境(202)包括兩個回放工具(214),但是網絡環境(202)可以包括更多或更少的回放工具(214)。通常,回放工具(214)與編碼工具(212)通信以確定編碼語音流,以供回放工具(214)接收?;胤殴ぞ?214)接收該流,在適當的時間段內將接收到的編碼數據進行緩沖,并開始解碼和回放。

    圖3示出了可以包括在編碼工具(212)中的示例性編碼器系統(300)??商娲?,編碼工具(212)使用另一種編碼器系統。編碼工具(212)還可以包括服務器側控制器邏輯,以用于管理與一個或多個回放工具(214)的連接。圖7示出了示例解碼器系統(700),其可以被包括在回放工具(214)中??商娲?,回放工具(214)使用另一解碼器系統?;胤殴ぞ?214)還可以包括用于管理與編碼工具(212)的連接的客戶端側控制器邏輯。iii.示例語音編碼器系統。

    圖3示出了示例語音編碼器系統(300),一些所描述的實施例可以與之結合來實現。編碼器系統(300)可以是通用語音編碼工具,其能夠以多種模式中的任何一種進行操作,例如用于實時通信的低延時模式、轉碼模式、以及用于產生媒體以從文件或流回放的較高延時模式,或者編碼器系統(300)可以是適用于一種這樣的模式的專用編碼工具。在一些示例實現方式中,編碼器系統(300)可以通過各種類型的連接來提供高質量的話音和音頻,包括通過帶寬不足(例如,由于擁塞或高丟包率而導致的低比特率)或傳輸質量問題(例如,由于傳輸噪聲或高抖動)的網絡上的連接。特別地,在一些示例實現方式中,編碼器系統(300)以兩種低延時模式中的一種進行操作,即低比特率模式或高比特率模式。低比特率模式使用如參考圖3和圖4描述的組件。

    編碼器系統(300)可以使用gpu硬件或使用專用硬件來實現為操作系統模塊的一部分、應用庫的一部分、獨立應用的一部分??傮w而言,編碼器系統(300)被配置為接收語音輸入(305),對語音輸入(305)進行編碼以產生編碼數據,并且將編碼數據存儲為比特流(395)的一部分。編碼器系統(300)包括各種組件,其使用一個或多個處理器來實現并且被配置為對語音輸入(305)進行編碼以產生編碼數據。

    編碼器系統(300)被配置為從諸如麥克風之類的源接收語音輸入(305)。在一些示例實現方式中,編碼器系統(300)可以接受超寬帶語音輸入(對于以32khz采樣的輸入信號)或寬帶語音輸入(對于以16khz采樣的輸入信號)。編碼器系統(300)將語音輸入(305)臨時存儲在輸入緩沖器中,該輸入緩沖器在編碼器系統(300)的存儲器中實現并且被配置為接收語音輸入(305)。從輸入緩沖器,編碼器系統(300)的組件讀取語音輸入(305)的樣本值。編碼器系統(300)使用可變長度的幀。周期性地,將語音輸入(305)的當前批次(輸入幀)中的樣本值添加到輸入緩沖器中。每一批(輸入幀)的長度是例如20毫秒。當對幀進行編碼時,將從輸入緩沖器中刪除該幀的樣本值。任何未使用的樣本值都會保留在輸入緩沖器中,以用于編碼為下一幀的一部分。因此,編碼器系統(300)被配置為緩沖當前批次(輸入幀)中的任何未使用的樣本值,并在輸入緩沖器中將這些樣本值放在下一批次(輸入幀)之前??商娲?,編碼器系統(300)可以使用均勻長度的幀。

    濾波器組(filterbank)(310)被配置為將語音輸入(305)分成多個頻帶。多個頻帶提供了由預測濾波器(360、362)濾波以在對應頻帶中產生殘差值的輸入值。在圖3中,濾波器組(310)被配置為將語音輸入(305)分成兩個相等的頻帶——低頻帶(311)和高頻帶(312)。例如,如果語音輸入(305)來自超寬帶輸入信號,則低頻帶(311)可以包括0-8khz范圍內的語音,而高頻帶(312)可以包括8-16khz范圍內的語音??商娲?,濾波器組(310)將語音輸入(305)劃分成更多的頻帶和/或不相等的頻帶。取決于實現方式,濾波器組(310)可以使用各種類型的無限沖激響應(“hr”)或其他濾波器中的任何一個。

    濾波器組(310)可以被選擇性地旁路。例如,在圖3的編碼器系統(300)中,如果語音輸入(305)來自寬帶輸入信號,則濾波器組(310)可以被旁路。在這種情況下,可以跳過由高頻帶lpc分析模塊(322)、高頻帶預測濾波器(362)、成幀器(370)、殘差編碼器(380)等對高頻帶(312)的后續處理,并且語音輸入(300)直接提供由預測濾波器(360)濾波的輸入值。

    圖3的編碼器系統(300)包括兩個線性預測編碼(“lpc”)分析模塊(320、322),其被配置為針對相應頻帶(311、312)確定lp系數。在一些示例實現方式中,每個lpc分析模塊(320、322)使用五毫秒的前瞻窗口來計算白化系數??商娲?,lpc分析模塊(320、322)被配置為以某種其他方式來確定lp系數。如果濾波器組(310)將語音輸入(305)劃分成更多的頻帶(或被省略),則編碼器系統(300)可以包括用于相應頻帶的更多的lpc分析模塊。如果濾波器組(310)被旁路(或省略),則編碼器系統(300)可包括用于單個頻帶的單個lpc分析模塊(360),即所有語音輸入(305)。

    lp系數量化模塊(325)被配置為對lp系數進行量化,針對相應頻帶產生量化的lp系數(327、328)(或者如果濾波器組(310)被旁路或忽略,則為所有語音輸入(305))。取決于實現方式,lp系數量化模塊(325)可以使用量化操作(例如,矢量量化、標量量化)、預測操作和域轉換操作(例如,轉換為線譜頻率(“lsf”)域)以量化lp系數的各種組合中的任一種。

    圖3的編碼器系統(300)包括兩個預測濾波器(360、362),例如,白化濾波器a(z)。預測濾波器(360、362)被配置為根據量化的lp系數(327、328)來對基于語音輸入的輸入值進行濾波。濾波會產生殘差值(367、368)。在圖3中,低頻帶預測濾波器(360)被配置為根據低頻帶(311)的量化的lp系數(327)對低頻帶(311)中的輸入值進行濾波,或者如果濾波器組(310)被旁路或省略,則根據量化的lp系數(327)直接從語音輸入(305)對輸入值進行濾波,以產生(低頻帶)殘差值(367)。高頻帶預測濾波器(362)被配置為根據高頻帶(312)的量化的lp系數(328)對高頻帶(312)中的輸入值進行濾波,以產生高頻帶殘差值(368)。如果濾波器組(310)被配置為將語音輸入(305)劃分為更多頻帶,則編碼器系統(300)可以包括針對相應頻帶的更多預測濾波器。如果省略濾波器組(310),則編碼器系統(300)可以包括用于語音輸入(305)的整個范圍的單個預測濾波器。

    基音分析模塊(330)被配置為執行基音分析,從而產生基音循環信息(336)。在圖3中,基音分析模塊(330)被配置為與lpc分析并行地處理語音輸入(305)的低頻帶(311)??商娲?,基音分析模塊(330)可以被配置為處理其他信息,例如語音輸入(305)。本質上,基音分析模塊(330)確定基音循環的序列,以使得相鄰循環的對之間的相關性最大化?;粞h信息(336)可以是例如與基音循環相對應的子幀長度的集合,或者是在基音分析模塊(330)的輸入中關于基音循環的某種其他類型的信息?;舴治瞿K(330)也可以被配置為產生相關性值?;袅炕K(335)被配置為量化基音循環信息(336)。

    清濁決策模塊(340)被配置為執行清濁分析,從而產生清濁決策信息(346)。殘差值(367、368)使用適用于濁音語音內容的模型或適用于清音內容的模型進行編碼。清濁決策模塊(340)被配置為確定要使用哪種模型。取決于實現方式,清濁決策模塊(340)可以使用各種標準中的任何一種來確定要使用哪種模型。在圖3的編碼器系統(300)中,在逐幀的基礎上,清濁決策信息(346)指示殘差編碼器(380)是否應將殘差值(367、368)的幀編碼為濁音語音內容或清音語音內容??商娲?,清濁決策模塊(340)根據其他定時來產生清濁決策信息(346)。

    成幀器(370)被配置為將殘差值(367、368)組織為可變長度幀。特別地,成幀器(370)被配置為至少部分基于清濁決策信息(346)來設置成幀策略(濁音或清音),然后為殘差值的當前幀設置幀長(367、368)并至少部分地基于基音循環信息(336)和殘差值(367、368)設置當前幀的子幀的子幀長度。在比特流(395)中,每子幀用信號發送一些參數,而每幀用信號發送其他參數。在一些示例實現方式中,成幀器(370)在輸入緩沖器中查看當前批次的語音輸入(305)(以及來自前一批次的任何剩余)的殘差值(367、368)。

    如果成幀策略是濁音,則成幀器(370)被配置為至少部分地基于基音循環信息來設置子幀長度,以使得每個子幀都針對一個基音周期包括多組殘差值(367、368)。這促進以基音同步的方式進行編碼。(使用基音同步子幀可以促進分組丟失隱藏,因為此類操作通常會生成基音循環的整數計數。類似地,使用基音同步子幀可以促進時間壓縮拉伸操作,因為此類操作通常會刪除基音循環的整數計數)

    成幀器(370)還被配置為將當前幀的幀長度設置為從1到w的子幀的整數計數,其中,w取決于實現方式(例如,其對應于兩毫秒的最小子幀長度或某個其他毫秒計數)。在一些示例實現方式中,成幀器(370)被配置為設置子幀長度以編碼每幀基音循環的整數計數,將盡可能多的子幀打包到當前幀中,同時每子幀具有單個基音周期。例如,對于20毫秒的幀長度,如果基音周期為4毫秒,則當前幀包括五個基音周期的殘差值(367、368)。作為另一個示例,對于18毫秒的幀長度,如果基音周期為六毫秒,則當前幀包括三個基音周期的殘差值(367、368)。實際上,幀長度受成幀器(370)的前瞻窗口限制(例如,新批次的殘差值的20毫秒加上前一批次的剩余量)。

    子幀長度被量化。在一些示例實現方式中,對于濁音幀,子幀長度被量化為具有以32khz采樣的信號的整數長度,并且子幀長度的總和具有以8khz采樣的信號的整數長度。因此,子幀的長度是1/32毫秒的倍數,而幀的長度是1/8毫秒的倍數??商娲?,濁音內容的子幀和幀可以具有其他長度。

    如果成幀策略是清音的,則成幀器(370)被配置為根據不同的方法來設置幀的幀長度和幀的子幀的子幀長度,這可以適用于清音內容。例如,幀長度可以具有均勻或動態的大小,并且子幀的子幀長度對于子幀可以相等或可變。

    在一些示例實現方式中,盡管各個幀的長度可以不同,但是平均幀長度為大約20毫秒。使用可變大小的幀可以提高編碼效率,簡化編解碼器設計,并促進獨立地對每個幀進行編碼,這可以幫助語音解碼器進行丟包隱藏和時標修改。

    一幀的子幀中未包含的任何殘差值都留給下一幀中的編碼。因此,成幀器(370)被配置為緩沖任何未使用的殘差值,并將它們放在殘差值的下一幀之前。成幀器(370)可以接收新的基音循環信息(336)和清濁決策信息(346),然后做出關于幀/子幀長度和下一幀的成幀策略的決策。

    可替代地,成幀器(370)被配置為使用某種其他方法將殘差值(367、368)組織為可變長度幀。

    殘差編碼器(380)被配置為編碼殘差值(367、368)。圖4示出了殘差編碼器(380)中的殘差值(367、368)的編碼階段,其包括在濁音語音的路徑中的編碼階段和在清音語音的路徑中的編碼階段。殘差編碼器(380)被配置為基于被提供給殘差編碼器(380)的清濁決策信息(346)來選擇路徑之一。

    如果殘差值(377、378)用于濁音語音,則殘差編碼器(380)包括不同頻帶中殘差值的單獨處理路徑。在圖4中,低頻帶殘差值(377)和高頻帶殘差值(378)大多在不同的處理路徑中進行編碼。如果濾波器組(310)被旁路或省略,用于語音輸入(305)的整個范圍內的殘差值(377)被編碼。在任何情況下,對于低頻帶(或者,如果該濾波器組(310)被旁路或省略,則為語音輸入(305)),由于一幀被劃分為每個包含一個基音循環的子幀,所以以基音同步的方式對殘差值(377)進行編碼。

    變頻器(410)被配置為將一維(“1d”)頻率變換應用于殘差值(377)的一個或多個子幀,由此產生相應子幀的復幅度值。在一些示例性實現方式中,1d頻率變換是傅立葉變換的變化形式(例如,離散傅立葉變換(“dft”)、快速傅立葉變換(“fft”)),其沒有重疊,或者可替代地,有重疊??商娲?,1d頻率變換是從相應子幀的殘差值(377)產生頻域值的某個其他的頻率變換。通常,子幀的復幅度值包括:對于在一定頻率范圍內的每個頻率,(1)表示在該頻率下余弦的幅度的實數值,以及(2)表示在該頻率下正弦的幅度的虛數值)。因此,每個頻率分組(bin)包含用于一個諧波的復幅度值。對于完全周期信號,在每個分組中的復幅度值跨子幀越保持恒定。如果子幀是彼此的拉伸或壓縮的版本,則復幅度值也保持恒定。最低的分組(在0hz)可以忽略,并且在對應的殘差解碼器中設置為零。

    變頻器(410)進一步被配置為至少部分地基于相應子幀的復幅度值來確定相應子幀的幅度值集合(414)和一個或多個相位值集合(412)。對于頻率,幅度值表示在該頻率下組合的余弦和正弦的幅度,并且相位值表示在該頻率下余弦和正弦的相對比例。在殘差編碼器(380)中,幅度值(414)和相位值(412)被進一步單獨編碼。

    相位編碼器(420)被配置為編碼一個或多個相位值集合(412),以產生相位值集合(412)的量化參數(384)。相位值集合可以用于低頻帶(311)或語音輸入的整個范圍(305)。相位編碼器(420)可以每子幀編碼一個相位值集合(412)或針對一幀編碼一個相位值集合(412)。在這種情況下,用于該幀的子幀的復幅度值可以被平均或以其他方式聚合,并且可以從聚合的復幅度值來確定的幀的相位值集合(412)。部分iv詳細解釋了相位編碼器(420)的操作。特別地,相位編碼器(420)可以被配置為執行操作,以省略具有高于截止頻率的頻率的相位值集合(412)中的任何相位值??梢灾辽俨糠值鼗诰幋a數據的目標比特率、來自基音分析模塊(330)的基音循環信息(336)和/或其他標準來選擇截止頻率。此外,相位編碼器(420)可以被配置為執行操作以使用線性分量結合基函數的加權和來表示相位值集合(412)中的至少一些相位值。在這種情況下,相位編碼器(420)可以被配置為執行操作以:使用延遲決策方法來確定對基函數加權的系數的集合,設置對基函數加權的系數的計數(至少部分地基于編碼數據的目標比特率),和/或使用至少部分基于線性相位度量的成本函數來確定對該基函數加權的候選系數集的得分。

    幅度編碼器(430)被配置為對相應子幀的幅度值集合(414)進行編碼,從而為幅度值集合(414)產生量化參數(385)。取決于實現方式,幅度編碼器(430)可以使用量化操作(例如,矢量量化、標量量化)、預測操作和域轉換操作(例如,轉換到頻域)的各種組合中的任何一個來對相應子幀的幅度值集合(414)進行編碼。

    變頻器(410)還可被配置為產生用于殘差值(377)的相關性值(416)。相關性值(416)提供了殘差值(377)的一般特征的度量。通常,相關性值(416)測量跨子幀的復幅度值的相關性。在一些示例實現方式中,相關性值(416)是在以下三個頻帶處測量的互相關:0-1.2khz、1.2-2.6khz和2.6-5khz??商娲?,可以在更多或更少的頻帶中測量相關性值(416)。

    稀疏度評估器(440)被配置為產生用于殘差值(377)的稀疏度值(442),這提供了殘差值(377)的一般特征的另一度量。通常,稀疏度值(442)量化殘差值(377)之中能量在時域中的擴散程度。換句話說,稀疏度值(442)量化了殘差值(377)中的能量分布的比例。如果非零殘差值很少,則稀疏度值高。如果有許多非零殘差值,則稀疏度值低。在一些示例實現方式中,稀疏度值(442)是殘差值(377)的平均絕對值與均方根值之比??梢葬槍埐钪?377)的每個子幀在時域中計算稀疏度值(442),然后對幀的子幀進行平均或以其他方式進行聚合??商娲?,可以以某種其他方式(例如,作為非零值的百分比)來計算稀疏度值(442)。

    相關性/稀疏度編碼器(450)被配置為對稀疏度值(442)和相關性值(416)進行編碼,從而產生用于稀疏度值(442)和相關性值(416)的一個或多個量化參數(386)。在一些示例實現方式中,每幀聯合地對相關性值(416)和稀疏度值(442)進行矢量量化。當重構高頻信息時,可以在語音解碼器處使用相關性值(416)和稀疏度值(442)。

    對于濁音語音的高頻帶殘差值(377),編碼器系統(300)依賴于通過帶寬擴展的解碼器重構,如下所述。在殘差編碼器(380)中的單獨路徑中處理高頻帶殘差值(378)。能量評估器(460)被配置為例如每幀或每子幀測量高頻帶殘差值(378)的能級。能級編碼器(470)被配置為量化高頻帶能級(462),從而產生量化的能級(387)。

    如果殘差值(377、378)用于清音語音,則殘差編碼器(380)包括用于殘差值的一個或多個單獨的處理路徑(未示出)。取決于實現方式,殘差編碼器(380)中的清音路徑可以使用濾波操作、量化操作(例如,矢量量化、標量量化)和能量/噪聲估計操作的各種組合中的任何一種來對清音語音的殘差值(377、378)進行編碼。

    在圖3和圖4中,示出了殘差編碼器(380)處理低頻帶殘差值(377)和高頻帶殘差值(378)??商娲?,殘差編碼器(380)可以處理更多頻帶或單個頻帶(例如,如果濾波器組(310)被旁路或省略)中的殘差值。

    返回到圖3的編碼器系統(300),一個或多個熵編碼器(390)被配置為對由編碼器系統(300)的其他組件生成的編碼參數(327、328、336、346、384-389)進行熵處理。例如,可以使用范圍編碼器對由編碼器系統(300)的其他組件生成的量化參數進行熵編碼,該范圍編碼器使用表示量化參數的值被編碼的概率的累積質量函數??梢允褂镁哂胁煌尘霸肼曀降恼Z音信號數據庫來訓練累積質量函數??商娲?,以某種其他方式對由編碼器系統(300)的其他組件生成的參數(327、328、336、346、384-389)進行熵編碼。

    結合熵編碼器,復用器(“mux”)(391)將熵編碼的參數復用到比特流(395)中。在存儲器中實現的輸出緩沖器被配置為存儲編碼數據,以作為比特流的一部分輸出(395)。在一些示例實現方式中,針對比特流(395)的編碼數據的每個分組被獨立地編碼,這幫助避免錯誤傳播(一個分組的丟失影響后續分組的重構語音和話音質量),但是可以包含用于多個幀(例如,三個幀或某個其他幀計數)的編碼數據。當單個分組包含多個幀時,熵編碼器(390)可以使用條件編碼來提高該分組中的第二幀和后續幀的編碼效率。

    由編碼器系統(300)產生的編碼數據的比特率取決于語音輸入(305)和目標比特率。為了調整編碼數據的平均比特率以使其與目標比特率匹配,速率控制器(未示出)可以將最近的平均比特率與目標比特率進行比較,然后在多個編碼簡檔之中進行選擇。所選擇的編碼簡檔可以在比特流中被指示(395)。編碼簡檔可以定義分配給由編碼器系統(300)設置的不同參數的比特。例如,編碼簡檔可以定義:相位量化截止頻率,用于將相位值集合表示為基函數的加權和(作為復幅度值的一部分)的系數計數,和/或另一個參數。

    取決于實現方式和所期望的壓縮類型,編碼器系統(300)的模塊可以被添加、省略、分成多個模塊、與其他模塊組合、和/或用類似的模塊替換。在可替代的實施例中,具有不同模塊和/或模塊的其他配置的編碼器執行一種或多種所描述的技術。具體的編碼器實施例通常使用編碼器系統(300)的變體或補充版本。編碼器系統(300)內的模塊之間所示的關系指示編碼器系統(300)中的一般信息流;為了簡單起見,未示出其他關系。

    iv.語音編碼器中的相位量化的示例。

    本部分描述語音編碼期間的相位量化的創新。在許多情況下,即使在帶寬不足或有傳輸質量問題的網絡上遞送編碼數據時,創新也可以提高低比特率場景中語音編解碼器的性能。本部分中描述的創新分為兩大組創新,其可以單獨使用或組合使用。

    根據第一組創新,當語音編碼器對相位值集合進行編碼時,語音編碼器僅量化和編碼低于截止頻率的低頻相位值?;谥辽僖恍┑皖l相位值,在語音解碼器處合成高頻相位值(高于截止頻率)。通過忽略高頻相位值(并在基于低頻相位值的解碼期間對其進行合成),語音編碼器可以高效地表示整個相位值范圍,這可以改善低比特率場景下的速率失真性能。截止頻率可以預定義且不變?;蛘?,為了提供用于以不同目標比特率編碼語音或編碼具有不同特性的語音的靈活性,語音編碼器可以至少部分基于編碼數據的目標比特率、基音循環信息和/或其他標準來選擇截止頻率。

    根據第二組創新,當語音編碼器對相位值集合進行編碼時,語音編碼器使用線性分量結合基函數的加權和來表示至少一些相位值。使用基函數的加權和以及線性分量,語音編碼器可以以緊湊而靈活的方式準確表示相位值,這可以提高低比特率場景下的速率失真性能。盡管可以將語音編碼器實現為在確定加權和的系數時使用各種成本函數中的任何一種,但是基于線性相位度量的成本函數通常會得到與所表示的相位值非常相似的基函數的加權和。盡管可以將語音編碼器實現為在確定加權和的系數時使用各種方法中的任何一種,但是延遲決策方法通常以計算高效的方式找到合適的系數。對基函數加權的系數的計數可以被預定義并保持不變?;蛘?,為了提供用于以不同目標比特率編碼語音的靈活性,系數的計數可以取決于目標比特率。

    a.忽略高頻相位值,設置截止頻率。

    當對相位值集合進行編碼時,語音編碼器可以對低于截止頻率的低頻相位值進行量化和編碼,并且忽略高于截止頻率的高頻相位值。被忽略的高頻相位值可以基于至少一些較低頻率相位值在語音解碼器處合成。

    被編碼的相位值集合可以是用于一幀的相位值集合或用于一幀的子幀的相位值集合。如果相位值集合用于一幀,則可以直接從該幀的復幅度值計算出相位值集合?;蛘?,可以通過聚合(例如,進行平均)幀的子幀的復幅度值、然后從聚合的復幅度值計算幀的相位值來計算相位值集合。例如,為了量化用于幀的相位值集合,語音編碼器確定幀的子幀的復幅度值,對子幀的復幅度值進行平均,并且然后從用于幀的平均復幅度值計算出幀的相位值。

    當省略高頻相位值時,語音編碼器丟棄高于截止頻率的相位值。在確定相位值后,可以丟棄高頻相位值?;蛘?,可以通過丟棄高于截止頻率的復幅度值(例如,平均復幅度值)來丟棄高頻相位值,并且從不確定對應的高頻相位值。無論哪種方式,高于截止頻率的相位值都會被丟棄,因此會從比特流中的編碼數據中省略。

    盡管截止頻率可以預先確定并且不改變,但是自適應地改變截止頻率存在優點。例如,為了提供用于以不同目標比特率編碼語音或編碼具有不同特性的語音的靈活性,語音編碼器可以至少部分基于編碼數據的目標比特率和/或基音循環信息來選擇截止頻率,其可以表示平均基音頻率。

    通常,語音信號中的信息以基本頻率及其一些倍數(諧波)進行傳送。語音編碼器可以設置截止頻率,以便保留重要信息。例如,如果一幀包含高頻語音內容,則語音編碼器會設置更高的截止頻率,以便為該幀保留更多的相位值。另一方面,如果幀僅包括低頻語音內容,則語音編碼器設置較低的截止頻率以節省比特。這樣,在一些示例實現方式中,截止頻率可以以補償由于子幀的復幅度值的平均導致的信息丟失的方式而波動。如果該幀包含高頻語音內容,則基音周期短,并且許多子幀的復幅度值進行了平均。平均值可能無法代表子幀中的特定子幀中的值。由于信息可能已因平均而丟失,因此截止頻率較高,以便保留剩余的信息。另一方面,如果幀包含低頻語音內容,則基音周期較長,并且對較少子幀的復幅度值進行平均。因為由于平均而趨向于較少的信息丟失,所以截止頻率可以較低,同時仍具有足夠的質量。

    關于目標比特率,如果目標比特率較低,則截止頻率較低。如果目標比特率較高,則截止頻率較高。這樣,被分配為代表高頻相位值的比特可以與可用比特率成正比地變化。

    在一些示例實現方式中,截止頻率落在962hz(對于低目標比特率和低的平均基音頻率)至4160hz(對于高目標比特率和高的平均基音頻率)的范圍內??商娲?,截止頻率可以在某個其他范圍內變化。

    語音編碼器可以在逐幀的基礎上設置截止頻率。例如,即使目標比特率(例如,響應于由語音編碼器外部的某個組件向語音編碼器報告的網絡條件而設置)較不頻繁地改變,語音編碼器也可以將幀的截止頻率設置為幀到幀的平均基音頻率變化??商娲?,截止頻率可以在某個其他基礎上改變。

    語音編碼器可以使用查找表來設置截止頻率,該查找表將不同的截止頻率與不同的目標比特率和平均基音頻率相關聯?;蛘?,語音編碼器可以根據規則、邏輯等以某種其他方式設置截止頻率。類似地,可以基于語音解碼器具有的關于目標比特率和基音循環的信息,在語音解碼器處類似地導出截止頻率。

    根據實現方式,可以將恰好在截止頻率處的相位值視為高頻相位值之一(省略)或視為低頻相位值之一(量化和編碼)。

    b.使用基函數的加權和表示相位值。

    在對相位值集合進行編碼時,語音編碼器可以將相位值集合表示為基函數的加權和。例如,當基函數是正弦函數時,量化的相位值集合pi定義為:

    其中0≤i≤i-1,

    其中,n是對基函數加權的量化系數(以下稱為“系數”)的計數,kn是系數之一,并且i是復幅度值的計數(因此是具有相位值的頻率分組)。在一些示例實現方式中,基函數是正弦函數,但是基函數可以替代地是余弦函數或某個其他類型的基函數。相位值集合可以是低頻相位值(如上一部分所述,在丟棄高頻相位值之后),整個范圍的相位值(如果高頻相位值未被丟棄)或其他一些范圍的相位值。被編碼的相位值集合可以是用于一幀的相位值集合或用于一幀的子幀的相位值集合,如上一部分所述。

    使用量化的相位值集合pi(基函數的加權和)和線性分量來定義最終量化的相位值集合pfinal_i。線性分量可以定義為a×i+b,其中,a表示斜率值,并且b表示偏移值。例如,pfinal_i=pi+a×i+b??商娲?,可以使用其他和/或附加參數來定義線性分量。

    為了對相位值集合進行編碼,語音編碼器找到系數kn的集合,該系數得到類似于該相位值集合的基函數的加權和。為了在確定系數kn的集合時限制計算復雜度,語音編碼器可以限制系數kn的集合的可能值。例如,系數kn是在幅度上受到如下限制的整數值。

    如果n=1,則|kn|≤5;

    如果n=2,則|kn|≤3;

    如果n=3,則|kn|≤2;

    如果n≥4;則|kn|≤1。

    kn的值被量化為整數值??商娲?,可以根據其他約束來限制系數kn的值。

    盡管系數kn的計數n可以是預定的并且不變的,但是自適應地改變系數kn的計數n存在優點。為了提供用于以不同目標比特率編碼語音的靈活性,語音編碼器可以至少部分基于編碼數據的目標比特率來選擇系數kn的計數n。例如,取決于目標比特率,語音編碼器可以將系數kn的計數n設置為復幅度值的計數i的一部分(fraction)(并且因此具有相位值的頻率分組)。在一些示例實現方式中,一部分在0.29至0.51的范圍內??商娲?,該一部分可以具有某個其他范圍。如果目標比特率高,則系數kn的計數n高(存在更多的系數kn)。如果目標比特率低,則系數kn的計數n低(系數kn較少)。語音編碼器可以使用將不同系數計數與不同目標比特率相關聯的查找表來設置系數kn的計數n?;蛘?,語音編碼器可以以某種其他方式根據規則、邏輯等來設置系數kn的計數n。類似地,可以基于語音解碼器具有的關于目標比特率的信息,在語音解碼器處導出系數kn的計數n。系數kn的計數n也可以取決于平均基音頻率。語音編碼器可以在逐幀的基礎上(例如,設置為平均基音頻率變化)或在某個其他基礎上設置系數kn的計數n。

    在評估系數kn的選項時,語音編碼器使用成本函數(適應度(fitness)函數)。成本函數取決于實現方式。使用成本函數,語音編碼器確定對基函數加權的候選系數集合kn的分數。成本函數還可以考慮其他參數的值。例如,對于一種成本函數,語音編碼器通過根據候選系數集合kn加權基函數來重構相位值集合的版本,然后在將相位值集合的重構版本的倒數(inverse)應用于復幅度值時計算線性相位度量。換句話說,系數kn的該成本函數被定義為使得將量化的相位信號pi的倒數應用于(原始的)平均復頻譜會得到是最大線性相位的頻譜。該線性相位度量是傅里葉逆變換的峰值幅度值。如果結果是完全的線性相位,則量化的相位信號與平均復頻譜的信號完全匹配。例如,當將pfinal_i定義為pi+a×i+b時,最大化線性相位意味著將線性分量a×i+b多么好地表示相位值的殘差最大化??商娲?,可以以某個其他方式定義成本函數。

    理論上,語音編碼器可以在整個參數空間上對系數kn的可能值進行完全搜索。實際上,對于大多數場景而言,完全搜索在計算上過于復雜。為了降低計算復雜度,語音編碼器在找到對基函數加權的系數kn集合以表示相位值集合時可以使用延遲決策方法(例如,維特比(viterbi)算法)。

    通常,對于延遲決策方法,語音編碼器會迭代執行操作以找到多個階段中的系數kn的值。對于給定階段,語音編碼器會評估系數kn之中與給定階段相關聯的給定系數的多個候選值。語音編碼器根據成本函數評估候選值,以結合來自前一階段的候選解決方案集合(如有)中的每一個評估給定系數的每個候選值。語音編碼器至少部分基于根據成本函數的評分,保留評估的組合的某個計數作為來自給定階段的候選解決方案集合。例如,對于給定的階段n,語音編碼器保留通過給定階段的系數kn的值的前三個組合。這樣,使用延遲決策方法,語音編碼器跟蹤系數kn的最有希望的序列。

    圖5示出了語音編碼器的示例(500),該語音編碼器使用延遲決策方法來找到系數以將相位值集合表示為基函數的加權和。為了確定系數集合kn,語音編碼器在n=1…n上迭代。在每個階段(對于n的每個值),語音編碼器根據成本函數測試kn的所有允許值。例如,對于線性相位度量成本函數,語音編碼器根據系數kn的組合生成新的相位信號pi,并測量結果的線性相位。不是評估系數kn的值的所有可能排列(即,階段1的每個可能值×階段2的每個可能值×...×階段n的每個可能值),語音編碼器評估可能排列的子集。具體來說,語音編碼器在鏈接到來自階段n-1的每個保留組合(retainedcombination)時都會檢查階段n的系數kn的所有可能值。來自階段n-1的保留組合包括系數k0、k1、kn-1到階段n-1的最有希望的組合。保留組合的計數取決于實現方式。例如,計數是2、3、5或某個其他計數。保留組合的計數在每個階段可以相同,或者在不同階段不同。

    在圖5所示的示例中,對于第一階段,語音編碼器評估從-j到j的k1的每個可能值(2j+1個可能的整數值),并根據成本函數保留前三個組合(第一階段的最佳k1個值)。對于第二階段,語音編碼器評估鏈接到每個保留組合(來自第一階段的最佳k1個值)的從-2到2的k2的每個可能值(五個可能的整數值),并根據成本函數保留前三個組合(第二階段的最佳k1+k2個組合)。對于第三階段,語音編碼器評估鏈接到每個保留組合(來自第二階段的最佳k1+k2個組合)的從-1到1的k3的每個可能值(三個可能的整數值),并根據成本函數保留前三個組合(第三階段的最佳k1+k2+k3個組合)。此過程持續n個階段。在最后階段,語音編碼器評估鏈接到每個保留組合(來自階段n-1的最佳k1+k2+k3+…+kn-1個組合)的從-1到1的kn的每個可能值(三個可能的整數值),然后根據成本函數選擇最佳組合(最佳k1+k2+k3+…+kn-1+kn)。即使n為50、60甚至更高,延遲決策方法也使查找系數值的過程易駕馭;

    除了找到系數kn的集合外,語音編碼器還確定線性分量的參數。例如,語音解碼器確定斜率值a和偏移值b。偏移值b表示相對于基函數加權和的開始的線性相位(偏移),使得結果pfinal_i更接近原始相位信號。斜率值a表示線性分量的總斜率,其用作乘數或縮放因子,使得結果pfinal_i更接近原始相位信號。語音編碼器可以均勻地量化偏移值和斜率值?;蛘?,語音編碼器可以聯合量化偏移值和斜率值,或以某個其他方式編碼偏移值和斜率值??商娲?,語音編碼器可以確定線性分量或基函數的加權和的其他和/或附加參數。

    最后,語音編碼器對已經被量化的系數kn的集合、偏移值、斜率值和/或其他值進行熵編碼。語音解碼器可以使用系數kn的集合、偏移值、斜率值和/或其他值來生成相位值集合的近似。

    c.語音編碼中相位量化的示例技術。

    圖6a示出了用于語音編碼的通用技術(601),其可以包括如圖6b、圖6c或圖6d所示的附加操作。圖6b示出了用于語音編碼的通用技術(602),其包括省略具有高于截止頻率的頻率的相位值。圖6c示出了用于語音編碼的通用技術(603),其包括使用基函數的加權和以及線性分量來表示相位值。圖6d示出了用于語音編碼的更具體的示例技術(604),其包括省略高頻相位值(其高于截止頻率)并且將低頻相位值(其低于截止頻率)表示為基函數的加權和??梢杂扇鐓⒖紙D3和圖4所描述的語音編碼器或另一語音編碼器來執行技術(601-604)。

    參考圖6a,語音編碼器接收(610)語音輸入。例如,在計算機系統的存儲器中實現的輸入緩沖器被配置為接收和存儲語音輸入。

    語音編碼器對語音輸入進行編碼(620)以產生編碼數據。作為編碼(620)的一部分,語音編碼器根據lp系數基于語音輸入對輸入值進行濾波。輸入值可以是例如由濾波器組產生的語音輸入的頻帶??商娲?,輸入值可以是由語音編碼器接收到的語音輸入。在任何情況下,濾波都會產生殘差值,語音編碼器會對這些殘差值進行編碼。圖6b-6d示出了可以作為殘差值的編碼(620)階段的一部分執行的操作的示例。

    語音編碼器存儲(640)編碼數據,以作為比特流的一部分輸出。例如,在計算機系統的存儲器中實現的輸出緩沖器存儲編碼數據以供輸出。

    參考圖6b,語音編碼器確定(621)用于殘差值的相位值集合。相位值集合可以用于殘差值的子幀或殘差值的幀。例如,為了確定幀的相位值集合,語音編碼器將頻率變換應用于當前幀的一個或多個子幀,這會產生用于相應子幀的復幅度值。頻率變換可以是傅立葉變換的變體(例如,dft、fft),或者是產生復幅度值的某個其他頻率變換。然后,語音編碼器對相應子幀的復幅度值進行平均或以其他方式聚合??商娲?,語音編碼器可以通過其他方式聚合用于子幀的復幅度值。最后,語音編碼器至少部分地基于聚合的復幅度值來計算相位值集合??商娲?,語音編碼器以某個其他方式確定相位值集合,例如,通過向整個幀應用頻率變換,而不將當前幀拆分為子幀,并從用于幀的復幅度值來計算相位值集合。

    語音編碼器對相位值集合進行編碼(635)。在這樣做時,語音編碼器會忽略具有高于截止頻率的頻率的任何相位值集合。語音編碼器可以至少部分地基于用于編碼數據的目標比特率、基音循環信息和/或其他標準來選擇截止頻率。高于截止頻率的頻率處的相位值被丟棄。低于截止頻率的頻率處的相位值被編碼,例如如參考6c所描述的。取決于實現方式,可以將恰好在截止頻率處的相位值視為高頻相位值之一(省略)或視為低頻相位值之一(量化和編碼)。

    參考圖6c,語音編碼器確定(621)用于殘差值的相位值集合。相位值集合可以用于殘差值的子幀或殘差值的幀。例如,語音編碼器確定相位值集合,如參考圖6b所述的。

    語音編碼器對相位值集合進行編碼(636)。在這樣做時,語音編碼器使用基函數的加權和以及線性分量來表示相位值集合中的至少一些相位值。例如,基函數是正弦函數??商娲?,基函數是余弦函數或某種其他類型的基函數。表示為基函數的加權和的相位值可以是低頻相位值(如果丟棄了高頻相位值)、整個相位值范圍或某個其他相位值范圍。

    為了對相位值集合進行編碼,語音編碼器可以確定對基函數加權的系數集合,并且還確定對線性分量進行參數化的偏移值和斜率值。然后,語音編碼器可以對系數集合、偏移值和斜率值進行熵編碼??商娲?,語音編碼器可以使用對基函數加權的系數集合連同定義線性分量的參數的某個其他組合(例如,無偏移值、或無斜率值、或使用其他參數)對相位值集合進行編碼?;蛘?,結合對基函數加權的系數集合和線性分量,語音編碼器仍可以使用其他參數來表示相位值集合。

    為了確定對基函數加權的系數集合,語音編碼器可以使用延遲決策方法(如上所述)或另一種方法(例如,針對系數集合的參數空間的完全搜索)。當確定對基函數加權的系數集合時,語音編碼器可以使用基于線性相位度量(如上所述)的成本函數或另一成本函數。語音編碼器可以至少部分地基于編碼數據的目標比特率(如上所述)和/或其他標準來設置對基函數加權的系數的計數。

    在圖6d的示例性技術(604)中,當編碼用于殘差值的相位值集合時,語音編碼器會忽略頻率高于截止頻率的高頻相位值,并將低頻相位值表示為基函數的加權和。

    語音編碼器將頻率變換應用于(622)一幀的一個或多個子幀,這產生相應子幀的復幅度值。頻率變換可以是傅立葉變換的變體(例如,dft、fft),或者是產生復幅度值的某個其他頻率變換。然后,語音編碼器對幀的子幀的復幅度值進行平均(623)。接下來,語音編碼器至少部分地基于平均的復幅度值來計算(624)幀的相位值集合。

    語音編碼器至少部分地基于用于編碼數據的目標比特率和/或基音循環信息來選擇(628)截止頻率。然后,語音編碼器丟棄(629)頻率高于截止頻率的任何相位值集合。因此,丟棄高于截止頻率的頻率處的相位值,但會進一步編碼低于截止頻率的頻率處的相位值。根據實現方式,可以將恰好在截止頻率處的相位值視為高頻相位值之一(丟棄)或視為低頻相位值之一(量化和編碼)。

    為了對低頻相位值(即低于截止頻率的相位值)進行編碼,語音編碼器使用基函數的加權和以及線性分量表示低頻相位值。語音編碼器至少部分地基于編碼數據的目標比特率,設置(630)對基函數加權的系數的計數。語音編碼器使用(631)延遲決策方法來確定對基函數加權的系數集合。語音編碼器還確定(632)對線性分量進行參數化的偏移值和斜率值。然后,語音編碼器對系數集合、偏移值和斜率值進行編碼(633)。

    語音編碼器可以在逐幀的基礎上重復圖6d所示的技術(604)。語音編碼器可以在逐幀的基礎上或在某個其他基礎上重復圖6a-6c所示的任何技術(601-603)。

    v.示例語音解碼器系統。

    圖7示出了示例語音解碼器系統(700),可以結合該示例語音解碼器系統來實現所描述的一些實施例。解碼器系統(700)可以是能夠以諸如用于實時通信的低延時模式、轉碼模式和用于從文件或流回放媒體的較高延時模式之類的多種模式中的任何一種進行操作的通用語音解碼工具,或者解碼器系統(700)可以是適用于一種這樣的模式的專用解碼工具。在一些示例實現方式中,解碼器系統(700)可以通過各種類型的連接來回放高質量的話音和音頻,各種類型的連接包括在帶寬不足(例如,由于擁塞或高丟包率導致的低比特率)或傳輸質量問題(例如,由于傳輸噪聲或高抖動)的網絡上的連接。特別地,在一些示例實現方式中,解碼器系統(700)以兩種低延時模式之一工作,即低比特率模式或高比特率模式。低比特率模式使用參考圖7和圖8所描述的組件。

    解碼器系統(700)可以使用gpu硬件或專用硬件實現為操作系統模塊的一部分、應用庫的一部分、獨立應用的一部分??傮w而言,解碼器系統(700)被配置為接收編碼數據作為比特流(705)的一部分,對編碼數據進行解碼以重構語音,并存儲重構語音(775)以用于輸出。解碼器系統(700)包括各種組件,其使用一個或多個處理器來實現并且被配置為對編碼數據進行解碼以重構語音。

    解碼器系統(700)將編碼數據臨時存儲在輸入緩沖器中,該輸入緩沖器在解碼器系統(700)的存儲器中實現并且被配置為接收編碼數據作為比特流(705)的一部分。時不時地,由解復用器(“demux”)(711)和一個或多個熵解碼器(710)從輸出緩沖器中讀取編碼數據。解碼器系統(700)將重構的語音(775)臨時存儲在輸出緩沖器中,該輸出緩沖器在解碼器系統(300)的存儲器中實現并且被配置為存儲重構的語音(775)以用于輸出。周期性地,從輸出緩沖器中讀取重構語音的輸出幀中的樣本值(775)。在一些示例實現方式中,對于作為比特流(705)的一部分到達的編碼數據的每個分組,分組一旦到達,解碼器系統(700)就對子幀參數進行解碼和緩沖(例如,執行熵解碼操作、恢復參數值)。當從解碼器系統(700)請求輸出幀時,解碼器系統(700)一次解碼一個子幀,直到已經生成了重構語音(775)的足夠的輸出樣本值并將其存儲在輸出緩沖器中以滿足請求。解碼操作的定時具有一些優點。通過在分組到達時對子幀參數進行解碼,當請求輸出幀時,減少了用于解碼操作的處理器負載。這樣可以降低輸出緩沖器下溢(由于處理約束,數據無法及時可用以進行回放)的風險并允許對操作的更嚴格的調度。另一方面,響應于請求而“按需”解碼子幀增加了已經接收到包含用于那些子幀的編碼數據的分組的可能性??商娲?,解碼器系統(700)的解碼操作可以遵循不同的定時。

    在圖7中,解碼器系統(700)使用可變長度的幀??商娲?,解碼器系統(700)可以使用均勻長度的幀。

    在一些示例實現方式中,解碼器系統(700)可以重構超寬帶語音(根據以32khz采樣的輸入信號)或寬帶語音(根據以16khz采樣的輸入信號)。在解碼器系統(700)中,如果重構的語音(775)用于寬帶信號,則可以跳過由殘差解碼器(720)、高頻帶合成濾波器(752)等對高頻帶的處理,并且濾波器組(760)可以被旁路。

    在解碼器系統(700)中,demux(711)被配置為從比特流(705)讀取編碼數據并從編碼數據解析參數。結合demux(711),一個或多個熵解碼器(710)被配置為對解碼的參數進行熵解碼,從而產生由解碼器系統(700)的其他組件使用的量化參數(712、714-719、737、738)。例如,可以使用范圍解碼器對由熵解碼器(710)解碼的參數進行熵解碼,該范圍解碼器使用表示參數的值被解碼的概率的累積質量函數??商娲?,以某種其他方式對由熵解碼器(710)解碼的量化參數(712、714-719、737、738)進行熵解碼。

    殘差解碼器(720)被配置為在逐子幀的基礎上對殘差值(727、728)進行解碼,或者可替代地,在逐幀的基礎上或在某個其它基礎上對殘差值(727、728)進行解碼。特別地,殘差解碼器(720)被配置為對相位值集合進行解碼并至少部分地基于該相位值集合來重構殘差值(727、728)。圖8示出殘差解碼器(720)中殘差值(727、728)的解碼階段。

    在一些地方,殘差解碼器(720)包括用于在不同頻帶中的殘差值的不同的處理路徑。在圖8中,至少在重構或生成了相應頻帶的參數之后,在不同的路徑中對低頻帶殘差值(727)和高頻帶殘差值(728)進行解碼。在一些示例性實現方式中,對于超寬帶語音,殘差解碼器(720)產生低頻帶殘差值(727)和高頻帶殘差值(728)。然而,對于寬帶語音,殘差解碼(720)產生用于一個頻帶的殘差值(727)??商娲?例如,如果濾波器組(760)組合了兩個以上的頻帶),則殘差解碼器(720)可以解碼用于更多頻帶的殘差值。

    在解碼器系統(700)中,使用適合于濁音語音內容的模型或適合于清音語音內容的模型來重構殘差值(727、728)。殘差解碼器(720)包括在用于濁音語音的路徑中的解碼階段以及在用于清音語音的路徑中的解碼階段(未示出)。殘差解碼器(720)被配置為基于提供給殘差解碼器(720)的清濁決策信息(712)選擇路徑之一。

    如果殘差值(727、728)用于濁音語音,則使用幅度解碼器(810)、相位解碼器(820)和恢復/平滑模塊(840)來重構復幅度值。然后,復幅度值由逆變頻器(850)變換,以產生時域殘差值,這些殘差值由噪聲添加模塊(855)處理。

    幅度解碼器(810)被配置為使用用于幅度值集合(812)的量化參數(715)來重構用于幀的一個或多個子幀的幅度值集合(812)。取決于實現方式以及通常在編碼期間執行的反轉操作(由于量化而有一些損失),幅度解碼器(810)可以使用逆量化操作(例如,逆矢量量化、逆標量量化)、預測操作以及域轉換操作(例如,從頻域轉換)的各種組合中的任何一種來解碼用于相應子幀的幅度值集合(715)。

    相位解碼器(820)被配置為使用用于相位值集合(822)的量化參數(716)來解碼一個或多個相位值集合(822)。相位值集合可以用于低頻帶或整個范圍的重構的語音(775)。相位解碼器(820)可以針對每個子幀解碼一個相位值集合(822)或針對一幀解碼一個相位值集合(822)。在這種情況下,用于該幀的相位值集合(822)可以表示根據該幀的子幀的平均或以其他方式聚合的復幅度值來確定的相位值(如第iii部分中所述),并且解碼后的相位值(822)可以針對幀的相應子幀重復。部分vi詳細解釋了相位解碼器(820)的操作。特別地,相位解碼器(820)可以被配置為執行操作以使用基函數的加權和以及線性分量來重構相位值集合中的至少一些相位值(例如,低頻相位值、整個相位值范圍、或某個其他相位值范圍)。在這種情況下,對基函數加權的系數的計數可以至少部分地基于用于編碼數據的目標比特率。此外,相位解碼器(820)可以被配置為執行操作以使用相位值集合的第一子集(例如,低頻相位值)中的至少一些來合成相位值集合的第二子集(例如,高頻相位),其中,第二子集的每個相位值都具有高于截止頻率的頻率??梢灾辽俨糠值鼗诰幋a數據的目標比特率、基音循環信息(722)和/或其他標準來確定截止頻率。取決于截止頻率,高頻相位值可以跨越高頻帶,或者高頻相位值可以跨越低頻帶和高頻帶的一部分。

    恢復和平滑模塊(840)被配置為至少部分地基于幅度值集合(812)和相位值集合(814)來重構復幅度值。例如,通過采用復指數將用于幀的相位值集合(814)轉換為復數域并乘以諧波幅度值(812)來產生用于低頻帶的復幅度值??梢詫⒌皖l帶的復幅度值作為高頻帶的復幅度值重復。然后,使用被去量化(dequantize)的高頻帶能級(714),可以縮放高頻帶復幅度值,使得它們更接近地近似高頻帶的能量??商娲?,恢復和平滑模塊(840)可以針對更多的頻帶(例如,如果濾波器組(760)組合了兩個以上的頻帶)或對于單個頻帶(例如,如果濾波器組(760)被旁路或省略)產生復幅度值。

    恢復和平滑模塊(840)還被配置為至少部分地基于基音循環信息(722)和/或跨邊界的幅度值的差異來自適應地使復幅度值平滑。例如,跨子幀邊界(包括也是幀邊界的子幀邊界)來使復幅度值平滑。

    對于跨子幀邊界進行平滑,平滑的量可以取決于相鄰子幀中的基音頻率?;粞h信息(722)可以每幀用信號發送,并且指示例如子幀的子幀長度或其他頻率信息?;謴秃推交K(840)可以被配置為使用基音循環信息(722)來控制平滑量。在一些示例實現方式中,如果子幀之間的基音頻率有大變化,則由于存在實信號變化(realsignalchange),所以復幅度值不會被平滑那么多。另一方面,如果子幀之間的基音頻率變化不大,則由于不存在實信號變化,因此可以更多地使復幅度值平滑。這種平滑趨向于使復幅度值更具有周期性,從而產生噪聲較少的語音。

    對于跨子幀邊界進行平滑,平滑的量還可以取決于子幀之間邊界的兩側上的幅度值。在一些示例性實現方式中,如果跨子幀之間的邊界的幅度值存在大變化,則由于存在實信號變化,所以復幅度值不會被平滑很多。另一方面,如果跨子幀之間的邊界的幅度值變化不大,則由于不存在實信號變化,因此可以更多地使復幅度值平滑。同樣,在一些示例實現方式中,復幅度值在較低頻率下更多地被平滑,而在較高頻率下更少地被平滑。

    可替代地,可以省略使復幅度值平滑。

    逆變頻器(850)被配置為將逆頻率變換應用于復幅度值。這產生了低頻帶殘差值(857)和高頻帶殘差值(858)。在一些示例實現方式中,逆1d頻率變換是逆傅立葉變換(例如,逆dft、逆fft)的變體,其沒有重疊,或者可替代地,有重疊??商娲?,逆1d頻率變換是某個其他逆頻率變換,其從復幅度值產生時域殘差值。逆變頻器(850)可產生用于更多頻帶(例如,如果濾波器組(760)組合了兩個以上頻帶)或單個頻帶(例如,如果濾波器組(760)被旁路或省略)的殘差值。

    相關性/稀疏度解碼器(830)被配置為使用針對相關性值(837)和稀疏度值(838)的一個或多個量化參數(717)來對相關性值(837)和稀疏度值(838)進行解碼。在一些示例實現方式中,使用共同表示相關性值(837)和稀疏度值(838)的矢量量化索引來恢復相關性值(837)和稀疏度值(838)。在部分iii中描述了相關性值和稀疏度值的示例??商娲?,可以以某個其他方式恢復相關性值(837)和稀疏度值(838)。

    噪聲添加模塊(855)被配置為至少部分地基于相關性值(837)和稀疏度值(838)將噪聲選擇性地添加到殘差值(857、858)。在許多情況下,添加噪聲可以減輕重構的語音中的金屬聲音(775)。

    通常,相關性值(837)可用于控制向殘差值(857、858)添加多少噪聲(如果添加)。在一些示例實現方式中,如果相關性值(837)高(信號是諧波),則很少或沒有噪聲被添加到殘差值(857、858)。在這種情況下,用于對濁音內容進行編碼/解碼的模型往往很好地工作。另一方面,如果相關性值(837)低(信號不是諧波),則更多的噪聲被添加到殘差值(857、858)。在這種情況下,用于對濁音內容進行編碼/解碼的模型不能很好地工作(例如,由于信號不是周期性的,因此進行平均是不合適的)。

    通常,稀疏度值(838)可用于控制添加噪聲的位置(例如,所添加的噪聲如何在基音脈沖周圍分布)。通常,噪聲在其提高感知質量的位置被添加。例如,在強非零基音脈沖處添加噪聲。例如,如果殘差值(857、858)的能量稀疏(由高稀疏度值指示),則在強非零基音脈沖周圍添加噪聲,但不對其余殘差值(857、858)添加噪聲。另一方面,如果殘差值(857、858)的能量不稀疏(由低稀疏度值指示),則噪聲貫穿殘差值(857、858)更均勻地分布。而且,通常,在較高的頻率處可以比較低的頻率處添加更多的噪聲。例如,在較高的頻率處添加了增加的噪聲量。

    在圖8中,噪聲添加模塊(855)將噪聲添加到用于兩個頻帶的殘差值??商娲?,噪聲添加模塊(855)可以將噪聲添加到用于更多頻帶(例如,如果濾波器組(760)組合了兩個以上的頻帶)或單個頻帶(例如,如果濾波器組(760)被旁路或省略)的殘差值。

    如果殘差值(727、728)用于清音語音,則殘差解碼器(720)包括用于殘差值的一個或多個不同的處理路徑(未示出)。取決于實現方式以及通常在編碼(由于量化而具有一些損失)期間執行的反轉操作,殘差解碼器(720)中的清音路徑可以使用逆量化操作(例如,逆矢量量化、逆標量量化)、能量/噪聲替代操作和濾波操作的各種組合中的任何一種以對清音語音的殘差值(727、728)進行解碼。

    在圖7和圖8中,示出了殘差編碼器(720)處理低頻帶殘差值(727)和高頻帶殘差值(728)??商娲?,殘差編碼器(380)可以處理更多頻帶或單個頻帶(例如,如果濾波器組(760)被旁路或省略)中的殘差值。

    返回圖7,在解碼器系統(700)中,lpc恢復模塊(740)被配置為針對相應頻帶重構lp系數(或者如果不存在多個頻帶,則為全部重構的語音)。取決于實現方式以及通常在編碼(由于量化而具有一些損失)期間執行的反轉操作,lpc恢復模塊(740)可以使用逆量化操作(例如,逆矢量量化、逆標量量化)、預測操作和域轉換操作(例如,從lsf域轉換)的各種組合中的任何一種來重構lp系數。

    圖7的解碼器系統(700)包括兩個合成濾波器(360、362),例如濾波器a-1(z)。合成濾波器(750、752)被配置為根據重構的lp系數來對殘差值(727、728)進行濾波。濾波將低頻帶殘差值(727)和高頻帶殘差值(728)轉換到語音域,從而產生用于低頻帶的重構的語音(757)和用于高頻帶(758)的重構的語音。在圖7中,低頻帶合成濾波器(750)被配置為根據恢復的低頻帶lp系數,對低頻帶殘差值(727)(如果濾波器組(760)被旁路,則其用于整個范圍的重構的語音(775))進行濾波。高頻帶合成濾波器(752)被配置為根據恢復的高頻帶lp系數對高頻帶殘差值(728)進行濾波。如果濾波器組(760)被配置為將更多頻帶組合成重構的語音(775),則解碼器系統(700)可以包括針對相應頻帶的更多合成濾波器。如果省略了濾波器組(760),則解碼器系統(700)可以包括用于重構的語音(775)的整個范圍的單個合成濾波器。

    濾波器組(760)被配置為組合多個頻帶(757、758),所述多個頻帶(757、758)是通過合成濾波器(750、752)對對應頻帶中的殘差值(727、728)進行濾波而得到的,從而產生重構的語音(765)。在圖7中,濾波器組(760)被配置為組合兩個相等的頻帶,即低頻帶(757)和高頻帶(758)。例如,如果重構的語音(775)用于超寬帶信號,則低頻帶(757)可以包括0-8khz范圍內的語音,而高頻帶(758)可以包括在8-16khz范圍內的語音??商娲?,濾波器組(760)組合更多的頻帶和/或不相等的頻帶以合成重構的語音(775)。取決于實現方式,濾波器組(760)可以使用各種類型的hr或其他濾波器中的任何一個。

    后處理濾波器(770)被配置為選擇性地對重構的語音(765)進行濾波,從而產生重構的語音(775)以用于輸出??商娲?,可以省略后處理濾波器(770),并且輸出來自濾波器組(760)的重構的語音(765)?;蛘?,如果也省略了濾波器組(760),則來自合成濾波器(750)的輸出提供重構的語音以用于輸出。

    取決于實現方式和期望的壓縮類型,解碼器系統(700)的模塊可以:被添加、省略、劃分成多個模塊,與其他模塊組合,和/或用類似模塊替換。在替代實施例中,具有不同模塊和/或模塊的其他配置的解碼器執行一種或多種所描述的技術。解碼器的特定實施例通常使用解碼器系統(700)的變體或補充版本。解碼器系統(700)內的模塊之間示出的關系指示解碼器系統(700)中的一般信息流;為了簡單起見,未示出其他關系。

    vi.語音解碼器中相位重構的示例。

    本部分描述語音解碼期間的相位重構方面的創新。在許多情況下,即使在帶寬不足或有傳輸質量問題的網絡上遞送編碼數據時,創新也可以提高低比特率場景中語音編解碼器的性能。本部分中描述的創新分為兩大組創新,其可以分別單獨使用或組合使用。

    根據第一組創新,當語音解碼器解碼相位值集合時,語音解碼器使用基函數的加權和以及線性分量來重構相位值集合中的至少一些相位值。使用基函數的加權和以及線性分量,可以以緊湊而靈活的方式表示相位值,這可以提高低比特率情況下的速率失真性能。語音解碼器可以解碼對基函數加權的系數集合,然后在重構相位值時使用該系數集合。語音解碼器還可以解碼和使用定義線性分量的偏移值、斜率值和/或其他參數。對基函數加權的系數可以被預定義并保持不變?;蛘?,為了提供用于以不同目標比特率編碼/解碼語音的靈活性,系數的計數可以取決于目標比特率。

    根據第二組創新,當語音解碼器解碼相位值集合時,語音解碼器重構低頻相位值(其低于截止頻率),然后使用至少一些低頻相位值來合成高頻相位值(其高于截止頻率)。通過基于重構的低頻相位值合成高頻相位值,語音解碼器可以高效地重構整個范圍的相位值,這可以提高低比特率場景下的速率失真性能。截止頻率可以預定義且不變?;蛘?,為了提供用于以不同目標比特率編碼/解碼語音或編碼/解碼具有不同特性的語音的靈活性,語音解碼器可以至少部分基于編碼數據的目標比特率、基音循環信息和/或其他標準來確定截止頻率。

    a.使用基函數的加權和來重構相位值。

    當解碼相位值集合時,語音解碼器可以使用基函數的加權和來重構該相位值集合。例如,當基函數是正弦函數時,量化的相位值集合pi定義為:其中0≤i≤i-1

    其中,n是對基函數加權的量化系數(以下稱“系數”)的計數,kn是系數之一,而i是復幅度值的計數(并且因此具有相位值的頻率分組)。在一些示例實現方式中,基函數是正弦函數,但是基函數可以替代地是余弦函數或某種其他類型的基函數。從量化的值重構的相位值集合可以是低頻相位值(如果高頻相位值已被丟棄,如前幾部分所述)、整個范圍的相位值(如果高頻相位值未被丟棄)、或某個其他范圍的相位值。被解碼的相位值集合可以是用于幀的相位值集合或用于幀的子幀的相位值集合。

    使用量化的相位值集合pi(基函數的加權和)和線性分量來定義最終量化的相位值集合pfinal_i。線性分量可以定義為a×i+b,其中a表示斜率值,并且b表示偏移值。例如,pfinal_i=pi+a×i+b??商娲?,可以使用其他和/或附加參數來定義線性分量。

    為了重構相位值集合,語音解碼器對已經被量化的系數集合kn進行熵解碼。系數kn對基函數加權。在一些示例實現方式中,kn的值被量化為整數值。例如,系數kn的值是在幅度上受到如下限制的整數值。

    如果n=1,則|kn|≤5

    如果n=2,則|kn|≤3

    如果n=3,則|kn|≤2

    如果n≥4,則|kn|≤1。

    可替代地,可以根據其他約束來限制系數kn的值。

    盡管系數kn的計數n可以是預定的并且不變的,但是自適應地改變系數kn的計數n存在優點。為了提供用于以不同目標比特率編碼/解碼語音的靈活性,語音解碼器可以至少部分基于編碼數據的目標比特率來確定系數kn的計數n。例如,取決于目標比特率,語音解碼器可以將系數kn的計數n確定為復幅度值的計數i的一部分(具有相位值的頻率分組的計數)。在一些示例實現方式中,該一部分的范圍是0.29至051??商娲?,該一部分可以具有某個其他范圍。如果目標比特率高,則系數kn的計數n高(即,系數kn較多)。如果目標比特率低,則系數kn的計數n低(即,系數kn較少)。語音解碼器可以使用將不同系數計數與不同目標比特率相關聯的查找表來確定系數kn的計數n?;蛘?,語音解碼器可以按照某個其他方式根據規則、邏輯等來確定系數kn的計數n,只要類似地在對應的語音編碼器處設置系數kn的計數n即可。系數kn的計數n也取決于平均基音頻率和/或其他標準。語音解碼器可以在逐幀的基礎上(例如,設置為平均基音頻率變化)或在某個其他基礎上確定系數kn的計數n。

    除了重構系數集合kn之外,語音解碼器還解碼線性分量的參數。例如,語音解碼器解碼用于重構線性分量的偏移值b和斜率值a。偏移值b表示相對于基函數的加權和的開始的線性相位(偏移),使得結果pfinal_i更接近地近似原始相位信號。斜率值a表示總斜率,其用作線性分量的乘數或縮放因子,使得結果pfinal_i更接近地近似原始相位信號。在對偏移值、斜率值和/或其他值進行熵解碼之后,語音解碼器對值進行逆量化??商娲?,語音解碼器可以解碼用于線性分量或基函數的加權和的其他和/或附加參數。

    在一些示例實現方式中,語音解碼器中的殘差解碼器至少部分地基于編碼數據的目標比特率,來確定對基函數加權的系數的計數。殘差解碼器對系數集合、偏移值和斜率值進行解碼。然后,殘差解碼器使用該系數集合、偏移值和斜率值來重構相位值的近似值。殘差解碼器應用系數kn以得到基函數的加權和,例如將正弦函數乘以系數kn加起來。然后,殘差解碼器應用斜率值和偏移值來重構線性分量,例如,將頻率乘以斜率值,并且加上偏移值。最后,殘差解碼器將基函數的加權和以及線性分量相結合。

    b.合成高頻相位值。

    當解碼相位值集合時,語音解碼器可以使用至少一些低頻相位值來重構低于截止頻率的低頻相位值,并合成高于截止頻率的高頻相位值。解碼的相位值集合可以是用于幀的相位值集合或用于幀的子幀的相位值集合。低頻相位值可以使用基函數的加權和重構(如上一部分中所述)或以某個其他方式重構。合成的高頻相位值可以部分或完全替代在編碼期間被丟棄的高頻相位值??商娲?,合成的高頻相位值可以延伸超過丟棄的相位值的頻率、到更高的頻率。

    盡管截止頻率可以是預定的且不變的,但是自適應地改變截止頻率存在優點。例如,為了提供用于以不同目標比特率編碼/解碼語音或編碼/解碼具有不同特性的語音的靈活性,語音解碼器可以至少部分基于編碼數據的目標比特率和/或基音循環信息來確定截止頻率,基音循環信息可以指示平均基音頻率。例如,如果幀包括高頻語音內容,則使用較高的截止頻率。另一方面,如果幀僅包括低頻語音內容,則使用較低的截止頻率。關于目標比特率,如果目標比特率較低,則截止頻率較低。如果目標比特率較高,則截止頻率較高。在一些示例實現方式中,截止頻率落在962hz(對于低目標比特率和低的平均基音頻率)到4160hz(對于高目標比特率和高的平均基音頻率)的范圍內??商娲?,截止頻率可以在某個其他范圍內變化和/或取決于其他標準。

    語音解碼器可以在逐幀的基礎上確定截止頻率。例如,語音解碼器可以將幀的截止頻率確定為幀到幀的平均基音頻率變化,即使目標比特率變化不那么頻繁??商娲?,截止頻率可以在某個其他基礎上和/或取決于其他標準來改變。語音解碼器可以使用查找表來確定截止頻率,該查找表將不同的截止頻率與不同的目標比特率和平均基音頻率相關聯?;蛘?,只要在對應的語音編碼器處類似地設置了截止頻率,語音解碼器就可以根據規則、邏輯等以某個其他方式確定截止頻率。

    取決于實現方式,可以將恰好在截止頻率處的相位值視為高頻相位值之一(合成)或低頻相位值之一(根據比特流中的量化參數進行重構)。

    取決于實現方式,可以以各種方式來合成高頻相位值。圖9a至9c示出用于合成高頻相位值的示例性方法的特征(901-903),高頻相位值具有高于截止頻率的頻率。在圖9a-9c的簡化示例中,低頻相位值包括12個相位值:56657891011101213。

    為了合成高頻相位值,語音解碼器識別低頻相位值的范圍。在一些示例實現方式中,語音解碼器識別已經被重構的低頻相位值的頻率范圍的上半部,以潛在地增加或去除相位值以具有偶數個諧波。在圖9a的簡化示例中,低頻相位值的上半部分包括六個相位值:91011101213??商娲?,語音解碼器可以識別已經被重構的低頻相位值的某個其他范圍。

    語音解碼器基于所識別的范圍中的低頻相位值來重復相位值,該范圍從截止頻率開始,并且一直繼續到相位值集合中的最后一個相位值。所識別范圍內的低頻相位值可以重復一次或多次。如果所識別范圍內的低頻相位值的重復與相位譜的末端不完全對齊,則可以部分重復所識別范圍內的低頻相位值。在圖9b中,重復在所識別的范圍內的低頻相位值以生成高頻相位值,直到最后的相位值。在所識別范圍內簡單重復低頻相位值可能引起相位譜突變,但是在典型情況下,原始相位譜中找不到這種突變。在圖9b中,重復六個相位值:91011101213引起相位值從13兩次突然下降到9:566578910111012139101110121391011101213。

    為了解決這個問題,語音解碼器可以確定(作為模式)在所識別的低頻相位值范圍內的相鄰相位值之間的差。即,對于所識別出的低頻相位值范圍內的每個相位值,語音解碼器可以確定相對于先前相位值(按頻率順序)的差異。語音解碼器然后可以重復相位值差,從截止頻率開始,并且一直繼續到相位值集合中的最后一個相位值。相位值差可以重復一次或多次。如果相位值差的重復不完全與相位譜的末端對齊,則可以部分重復相位值差。在重復相位值差之后,語音解碼器可以對相鄰相位值之間的相位值差進行集成以生成高頻相位值。也就是說,對于每個高頻相位值,從截止頻率開始,語音解碼器可以將對應的相位值差加到先前的相位值上(按頻率順序)。在圖9c中,例如,對于所識別的范圍內的六個相位值(91011101213),相位值差為+1+1+1-1+2+1。從截止頻率到相位譜的末端,相位值差重復兩次:56657891011101213+1+1+1-1+2+1+1+1+1-1+2+1。然后,對相位值差進行集成以生成高頻相位值:56657891011101213141516151718192021202223。

    以此方式,語音解碼器可以為整個范圍的重構的語音重構相位值。例如,如果重構的語音是已劃分為低頻帶和高頻帶的超寬帶語音,則語音解碼器可以使用從低頻帶中的截止頻率以下的重構的相位值來合成用于一部分低頻帶(高于截止頻率)和所有高頻帶的相位值??商娲?,語音解碼器可以使用在低頻帶中的低于截止頻率的重構相位值,僅針對一部分低頻帶(高于截止頻率)合成相位值。

    可替代地,以某個其他方式,語音解碼器可以使用至少一些已經被重構的低頻相位值來合成高頻相位值。

    c.用于語音解碼中的相位重構的示例技術。

    圖10a示出了用于語音解碼的通用技術(1001),其可以包括如圖10b、圖10c或圖10d所示的附加操作。圖10b示出了用于語音解碼的通用技術(1002),其包括重構使用基函數的加權和以及線性分量表示的相位值。圖10c示出了用于語音解碼的通用技術(1003),其包括合成具有高于截止頻率的頻率的相位值。圖10d示出了用于語音解碼的更具體的示例技術(1004),其包括:重構使用基函數的加權和以及線性分量表示的低頻相位值(其低于截止頻率),以及合成高頻相位值(其高于截止頻率)??梢杂扇鐓⒖紙D7和圖8所描述的語音解碼器或另一語音解碼器來執行技術(1001至1004)。

    參考圖10a,語音解碼器接收(1010)編碼數據作為比特流的一部分。例如,在計算機系統的存儲器中實現的輸入緩沖器被配置為接收和存儲編碼數據作為比特流的一部分。

    語音解碼器對編碼的數據進行解碼(1020)以重構語音。作為解碼(1020)的一部分,語音解碼器對殘差值進行解碼,并根據線性預測系數對殘差值進行濾波。殘差值可以例如用于稍后由濾波器組組合的重構的語音的頻帶??商娲?,殘差值可以用于不在多個頻帶中的重構的語音。在任何情況下,濾波都產生重構的語音,可以對其進行進一步處理。圖10b-10d示出了可以作為解碼(1020)階段的一部分執行的操作的示例。

    語音解碼器存儲(1040)重構的語音以用于輸出。例如,在計算機系統的存儲器中實現的輸出緩沖器被配置為存儲重構的語音以用于輸出。

    參考圖10b,語音解碼器對用于殘差值的相位值集合進行解碼(1021)。相位值集合可以用于殘差值的子幀或用于殘差值的幀。在對相位值集合進行解碼(1021)時,語音解碼器使用基函數的加權和以及線性分量來重構相位值集合中的至少一些相位值。例如,基函數是正弦函數??商娲?,基函數是余弦函數或某個其他基函數。被表示為基函數的加權和的相位值可以是低頻相位值(如果已經丟棄了高頻相位值)、整個范圍的相位值或某個其他范圍的相位值。

    為了解碼該相位值集合,語音解碼器可以解碼對基函數加權的系數集合,并解碼使線性分量參數化的偏移值和斜率值,然后使用該系數集合、偏移值和斜率作為相位值集合中的至少部分的重構的一部分??商娲?,語音解碼器可以使用對基函數加權的系數集合連同定義線性分量的參數(例如,無偏移值或無斜率值,或使用一個或更多個其他參數)的某個其他組合對相位值集合進行解碼?;蛘?,結合對基函數加權的系數集合和線性分量,語音解碼器還可以使用其他參數來重構相位值集合中的至少一些相位值。語音解碼器可以至少部分地基于編碼數據的目標比特率(如上所述)和/或其他標準來確定對基函數加權的系數的計數。

    語音解碼器至少部分地基于該相位值集合來重構(1035)殘差值。例如,如果相位值集合用于一幀,則語音解碼器針對該幀的一個或多個子幀重復相位值集合。然后,至少部分地基于用于相應子幀的重復的相位值集合,語音解碼器重構用于相應子幀的復幅度值。最后,語音解碼器將逆頻率變換應用于用于相應子幀的復幅度值。逆頻率變換可以是逆傅立葉變換的變體(例如,逆dft、逆fft),或者是從復幅度值重構殘差值的某個其他逆頻率變換??商娲?,語音解碼器以某種其他方式來重構殘差值,例如,通過重構用于尚未被劃分為子幀的整個幀的相位值,并對用于整個幀的復幅度值應用逆頻率變換。

    參考圖10c,語音解碼器解碼(1025)相位值集合。相位值集合可以用于殘差值的子幀或用于殘差值的幀。在解碼(1025)該相位值集合時,語音解碼器重構該相位值集合的第一子集(例如,低頻相位值),并使用相位值的第一子集的中的至少一些相位值來合成相位值集合的第二子集(例如,高頻相位值)。相位值的第二子集中的每個相位值具有高于截止頻率的頻率。語音解碼器可以至少部分地基于編碼數據的目標比特率、基音循環信息和/或其他標準來確定截止頻率。根據實現方式,可以將恰好在截止頻率處的相位值視為高頻相位值之一(合成)或低頻相位值之一(根據比特流中的量化參數進行重構)。

    當使用相位值的第一子集中的至少一些相位值來合成相位值的第二子集時,語音解碼器可以確定第一子集的范圍內的模式,然后在截止頻率之上重復該模式。例如,語音解碼器可以識別范圍,并且然后將范圍內的相鄰相位值確定為模式。在這種情況下,在截止頻率之后重復該范圍內的相鄰相位值,以生成第二子集?;蛘?,作為另一個示例,語音解碼器可以識別范圍,并且然后將范圍內的相鄰相位值之間的差確定為模式。在這種情況下,語音解碼器可以在截止頻率以上重復相位值差,然后對截止頻率之后的相鄰相位值之間的差進行集成以確定第二子集。

    語音解碼器至少部分地基于該相位值集合來重構(1035)殘差值。例如,語音解碼器如參考圖10b所描述的那樣重構殘差值。

    在圖10d的示例技術(1004)中,當解碼用于殘差值的相位值集合時,語音解碼器重構表示為基函數的加權和的低頻相位值(其低于截止頻率),并合成高頻相位值(其高于截止頻率)。

    語音解碼器對系數集合、偏移值和斜率值進行解碼(1022)。語音解碼器使用基函數的加權和以及線性分量來重構(1023)低頻相位值,這些基函數根據系數集合進行加權,然后根據線性分量進行調整(基于斜率值和偏移值)。

    為了合成高頻相位值,語音解碼器基于目標比特率和/或基音循環信息來確定(1024)截止頻率。語音解碼器確定(1026)在低頻相位值的范圍內的相位值差的模式。語音解碼器在截止頻率以上重復(1027)該模式,然后對相鄰相位值之間的相位值差進行集成(1028)以確定高頻相位值。根據實現方式,可以將恰好在截止頻率處的相位值視為高頻相位值之一(合成)或低頻相位值之一(根據比特流中的量化參數進行重構)。

    為了重構殘差值,語音解碼器(1029)重復用于幀的子幀的相位值集合。然后,至少部分地基于重復的相位值集合,語音解碼器重構(1030)用于子幀的復幅度值。最后,語音解碼器將逆頻率變換應用于(1031)用于相應子幀的復幅度值,從而產生殘差值。

    鑒于可以將所公開的發明的原理應用于其的許多可能的實施例,應當認識到,所示出的實施例僅是本發明的優選示例,而不應被認為是對本發明范圍的限制。相反,本發明的范圍由所附權利要求書限定。因此,我們要求保護落入這些權利要求的范圍和精神內的所有內容作為我們的發明。

    再多了解一些
    當前第1頁1 2 
    網友詢問留言 已有0條留言
    • 還沒有人留言評論。精彩留言會獲得點贊!
    1
    中文字幕一区在线观看视频_国产偷v国产偷v_西西人体44rt net毛最多_伊人久久大香线蕉综合网