述了各種實現(xiàn),但是本文中的教示可廣泛應用于其他已 知的音頻數(shù)據(jù)處理實現(xiàn)以及在未來可能引入的音頻數(shù)據(jù)處理實現(xiàn)。
[0033] 此外,所描述的實施方式可以以各種硬件、軟件、固件等來實現(xiàn)。例如,本申請的各 方面可以被實施為系統(tǒng)、裝置(例如蜂窩電話、便攜式媒體播放器、個人計算機、服務器、電 視機頂盒、數(shù)字錄像機、或其他媒體播放器)、方法或計算機程序產(chǎn)品。因此,本申請的各方 面可以采取以下形式:硬件實施方式、軟件實施方式(包括固件、駐留軟件、微代碼等)或組 合軟件方面與硬件方面的實施方式。在本文中這種實施方式可以稱為"電路"、"模塊"或"系 統(tǒng)"。此外,本申請的各方面可以采取體現(xiàn)為一個或更多個非暫態(tài)介質(zhì)的計算機程序產(chǎn)品的 形式,該非暫態(tài)介質(zhì)上體現(xiàn)有計算機可讀程序代碼。這種非暫態(tài)介質(zhì)例如可以包括硬盤、隨 機存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPROM或閃存)、便攜式 緊湊磁盤只讀存儲器(CD-ROM)、光存儲裝置、磁存儲裝置、或前述各項的任何適當組合。因 此,本公開內(nèi)容的教示不意在限制圖中示出的和/或本文所描述的實現(xiàn),而是具有廣泛的 可應用性。
[0034] 在本文中同義地使用術(shù)語"塊"和"分組"。因此,"音頻塊"或"音頻數(shù)據(jù)塊"可以 具有與"音頻分組"或"音頻數(shù)據(jù)分組"相同的含義。
[0035] 如本文中所使用的,術(shù)語"緩沖器"可以指代用于暫時存儲數(shù)據(jù)的物理存儲器裝置 的區(qū)域,或指代"指向"物理存儲器中的位置的邏輯數(shù)據(jù)緩沖器或虛擬數(shù)據(jù)緩沖器。"抖動 緩沖器"通常將指代用于存儲所接收的音頻幀的邏輯緩沖器或物理緩沖器。盡管抖動緩沖 器通常將用于暫時存儲解碼處理之前的編碼音頻數(shù)據(jù),但是依賴于具體實現(xiàn),抖動緩沖器 可以存儲各種形式的音頻分組或音頻幀。因此,貫穿本說明書,術(shù)語"抖動緩沖器"應當被 理解為包括實際存儲(或指向)音頻幀的抖動緩沖器以及實際存儲(或指向)各種形式的分 組(塊)的抖動緩沖器,隨后各種形式的分組(塊)在被播放或被反饋到部件用于進一步處理 之前被解碼成音頻幀。盡管通常在音頻數(shù)據(jù)的再現(xiàn)或"回放"之前執(zhí)行解碼,但不總是結(jié)合 緩沖過程明確地討論解碼處理。因此,本文中所使用的術(shù)語"幀"應當廣義地被理解為包括 已經(jīng)從分組解碼的幀、仍然編碼在分組中的幀、本身包括一個或更多個幀的分組、或者編碼 在分組中的多于一個幀或已經(jīng)從分組中解碼的幀。換言之,在本申請的上下文中,涉及幀的 處理也可以被理解為涉及分組的處理或同時涉及包含在分組中的多于一個幀的處理。
[0036] 在本申請的上下文中,表達"同時"(等)的含義包括但不限于精確的字面含義,并 且應當被理解為"在預定粒度的相同的時間間隙/時間間隔內(nèi)"。在本申請中,例如,預定 粒度可以是兩個相繼發(fā)送的幀/分組之間的時間間隙(這種時間間隙稱為幀間隙),或用于 檢查分組到達的網(wǎng)絡探測速率、或處理時間粒度,但不限于此。例如,可以由幀時段/間隙 例如20ms對到達時間進行量化。替代地或附加地,可以將時間表示為對應于整數(shù)分組數(shù) 量。類似地,在本申請的上下文,當涉及具體時間點時,依賴于上下文,其也可以表示預定粒 度的時間間隙。此外,當涉及針對某個幀的應當被理解為時間點的具體時間t (i為整數(shù)) 時,為了清楚起見,假設其指示在發(fā)射機側(cè)該幀開始的時間點,或者指示在接收機側(cè)開始接 收該幀的時間點。
[0037] 如上面所提到的,抖動緩沖器可以通過暫時存儲所接收的音頻數(shù)據(jù)分組(在本文 中也稱為"音頻分組")對抗網(wǎng)絡不穩(wěn)定性的負面影響,音頻數(shù)據(jù)分組可以對應于語音數(shù)據(jù)。 在一些實現(xiàn)中,抖動緩沖器可以在音頻分組被提供至解碼器并且隨后例如由通信終端的揚 聲器再現(xiàn)之前存儲音頻分組。
[0038] 確定適當?shù)亩秳泳彌_器大小可能是充滿挑戰(zhàn)的。太小的抖動緩沖器可以尤其在例 如由增加的網(wǎng)絡活動造成的延遲尖峰的時間期間造成音頻分組的不可接受的數(shù)量下降。然 而,太長的抖動緩沖器可以導致可感知的延遲。某些對話如兩個或更多個人之間的交互性 對話可能要求相對較低的延遲,以便避免激怒對話中的參與者。然而,其他對話中的參與者 如主要是單向?qū)υ挼难葜v通常較容忍初始延遲。
[0039] 因此,在本文中所描述的一些實現(xiàn)中,可以控制抖動緩沖器大小,以便不同地對待 這兩種類型的對話。一些這種實現(xiàn)提供能夠基于與長期網(wǎng)絡抖動上下文相對應的網(wǎng)絡抖動 動態(tài)數(shù)據(jù)來控制抖動緩沖器的大小的上下文感知的抖動緩沖器管理。
[0040] 圖IA是示意性地示出可以應用本申請的實施方式的語音通信系統(tǒng)的示例的圖。 如圖IA中所示,對話參與者A操作通信終端A,對話參與者B操作通信終端B。類似本文中 所示出和描述的其他通信終端,通信終端A和B例如可以包括電話、個人計算機、移動電子 裝置(例如,蜂窩電話、智能手機、平板電腦等)等。通信終端A和B可以包括諸如下面(例 如,參照圖5和圖6)要描述的那些部件。
[0041] 在語音通信會話如電話會議期間,對話參與者A和對話參與者B可以經(jīng)由他們的 通信終端A和B彼此談話。在該示例中,通信終端A和B能夠經(jīng)由數(shù)據(jù)鏈路103通信。數(shù) 據(jù)鏈路103可以實現(xiàn)為點到點連接如通信網(wǎng)絡等。
[0042] 在該示例中,通信終端A和B能夠?qū)τ梢粋€或更多個麥克風捕獲的音頻信號的音 頻塊執(zhí)行VAD(語音活動檢測)。如果在音頻塊中檢測到存在語音,則可以由通信終端的邏輯 系統(tǒng)對音頻塊進行相應處理(例如,施加適合于語音數(shù)據(jù)的增益),并且可以經(jīng)由數(shù)據(jù)鏈路 103將音頻塊發(fā)送至另一對話參與者的通信終端。如果確定音頻塊中不存在語音,則可以由 通信終端的邏輯系統(tǒng)對音頻塊進行相應的處理(例如,施加適合于非語音數(shù)據(jù)的增益),并 且經(jīng)由數(shù)據(jù)鏈路103將音頻塊發(fā)送至另一對話參與者的通信終端。
[0043] 在該示例中,通信終端A和B能夠向其他對話參與者的通信終端指示靜默時間。如 本文中所使用的,"靜默時間"是其間對話參與者沒有講話的時間。在"靜默時間"期間,對 話參與者的通信終端可以檢測非話音聲音,如環(huán)境噪聲??梢蕴幚砼c這種聲音相對應的音 頻數(shù)據(jù),并且可以將該音頻數(shù)據(jù)發(fā)送至一個或更多個其他通信終端。在一些實現(xiàn)中,可以通 過發(fā)送靜默時間元數(shù)據(jù)(例如,通過設置相應的標志或位)來指示靜默時間,而在其他實現(xiàn) 中,可以通過在與音頻塊相對應的時間周期期間什么也不發(fā)送來指示靜默時間。在一些實 現(xiàn)中,靜默時間元數(shù)據(jù)可以對應于通信終端的"靜音"控制的對話參與者的激活。
[0044] 在本實現(xiàn)中,通信終端A和B能夠建立和控制抖動緩沖器,抖動緩沖器在圖IA和 圖IB中表示為"JB"。在此,通信終端A和B能夠接收例如編碼音頻數(shù)據(jù)作為音頻塊,并且 將它們作為條目存儲在抖動緩沖器中。條目可以對應于時間,例如,接收到音頻塊的時間。 抖動緩沖器中的音頻塊可以被解碼和/或以其他方式被處理以用于由通信終端的一個或 更多個揚聲器再現(xiàn)。接收到靜默時間元數(shù)據(jù)或什么也沒接收到可以產(chǎn)生抖動緩沖器中的相 應空條目。通信終端A和B能夠如本文中所示和所描述的控制抖動緩沖器大小。
[0045] 圖IB是示意性地示出可以實現(xiàn)本申請的方面的語音通信系統(tǒng)的另一示例的圖。 在該示例中,可以在對話參與者A、B和C之間進行語音會議。
[0046] 如圖IB所示,對話參與者A操作通信終端A,對話參與者B操作通信終端B,對話 參與者C操作通信終端C。在語音會議會話期間,對話參與者A、對話參與者B和通信參與 者C可以分別通過其通信終端A、B和C彼此談話。從會話參與者A、B和C的角度來看,圖 IB中示出的通信終端能夠提供與圖IA中示出的這些功能基本相同的功能。雖然在圖IB中 示出了三個通信終端,但是其他實現(xiàn)可以涉及更多或更少通信終端。
[0047] 然而,在圖IB中示出的示例中,通信終端A、B和C被配置成通過公共的數(shù)據(jù)鏈路 113或分離的數(shù)據(jù)鏈路113與另一裝置通信,在該示例中另一裝置為服務器。數(shù)據(jù)鏈路113 可以實現(xiàn)為點到點連接或通信網(wǎng)絡。例如,通信終端A、B和C能夠如上面所描述的對由通 信終端捕獲的音頻信號的音頻塊執(zhí)行VAD和適當?shù)奶幚怼?br>[0048] 在該實現(xiàn)中,通信終端A、B和C能夠向服務器指示靜默時間。在一些實現(xiàn)中,可以 通過發(fā)送靜默時間元數(shù)據(jù)(例如,通常設置相應的標志或位)來指示靜默時間,然而,在其他 實現(xiàn)中,可以通過在與音頻塊相對應的時段期間什么也不發(fā)送來指示靜默時間。通信終端 A、B和C能夠使所發(fā)送的音頻分組包括"時間戳"或類似的時間元數(shù)據(jù),指示音頻分組的傳 輸時間。
[0049] 在該實現(xiàn)中,服務器也能夠建立和控制抖動緩沖器。在圖IB中示出的示例中,月艮 務器已經(jīng)建立了與通信終端A、B和C中的每個相對應的抖動緩沖器JB A、JIb和JBc。例如, 服務器能夠如本文中所公開的控制抖動緩沖器大小。在該實現(xiàn)中,服務器能夠接收由通信 終端A、B和C發(fā)送的音頻塊,并且能夠?qū)⑺鼈兇鎯槎秳泳彌_器JB A、JIb和JBe中的與音頻 塊的時間相對應的條目。例如,服務器能夠?qū)⒁纛l塊存儲為抖動緩沖器JB A、JIb和JBe中的 與音頻塊的時間戳相對應的條目。接收靜默時間元數(shù)據(jù)(或什么也不接收)可以產(chǎn)生抖動緩 沖器中的相應空條目。
[0050] 在該示例中,服務器也能夠?qū)碜远秳泳彌_器貝01、和JBe中的每個的對應于相 同時間的音頻塊混合成混合音頻塊?;旌弦纛l塊的副本可以被發(fā)送至通信終端A、B和C中 的每個。服務器可以使混合音頻塊中的每個包括一種或更多種時間戳。在一些實例中,例 如,通信終端A和B可以將音頻分組發(fā)送至服務器。服務器可以在將混合分組發(fā)送至通信 終端C之前將音頻分組(在時域或頻域中)混合。服務器是否執(zhí)行這種混合可以依賴于各種 因素,諸如帶寬、服務器是否被配置用于混合、通信終端C期望單信道還是多信道等。
[0051] 在該示例中通信終端A、B和C能夠建立和控制抖動緩沖器。通信終端A、B和C可 以從服務器接收混合音頻塊,并且可以將它們存儲到與混合音頻塊的時間相對應的條目。 例如,抖動緩沖器條目可以對應于接收到音頻塊的時間。在每個通信終端中,抖動緩沖器中 的音頻塊可以由通信終端的揚聲器系統(tǒng)解碼和再現(xiàn)。通信終端A、B和C能夠如本文中所公 開的控制抖動緩沖器大小。
[0052] 抖動緩沖器可以用于將到達的音頻分組的不均勻的流轉(zhuǎn)換成規(guī)則的音頻分組流, 使得延遲變化對于對話參與者不造成可感知的質(zhì)量下降。確定適當?shù)亩秳泳彌_器水平通 常包括平均緩沖器延遲與分組丟失率之間的權(quán)衡。已經(jīng)提出了很多基于統(tǒng)計的抖動緩沖 器管理(JBM)算法,如美國專利公布No. 2009/0003369中公開的基于分組間隔延遲變化 (IPDV)的 JBM 算法以及 S.B. Moon、J. Kurose 和 D.