的音頻流置為靜音,將其做預設(shè)時間的延時處理,以延遲混響聲場中的靜音輸入,其中,該預設(shè)時間是與用于進行平滑處理的平滑窗口的重疊長度相匹配的,例如,該預設(shè)時間可為5毫秒。
[0078]混響模塊15 O,用于由丟巾貞信息和音頻流對應的音頻信息修正的混響聲場輸出余曰?
[0079]本實施例中,延遲了預設(shè)時間之后混響模塊150將以靜音作為混響聲場的輸入,通過混響聲場得到余音并輸出,該余音即為前一段時間的音頻流所產(chǎn)生的。輸出余音的混響聲場是系統(tǒng)通過一定的混響算法模擬的,例如,可以采用Schroeder混響模型實現(xiàn),即通過四個并聯(lián)的梳狀濾波器級聯(lián)兩個全通濾波器實現(xiàn)混響音效。
[0080]進一步的,用于輸出余音的混響聲場將不斷通過丟幀信息和音頻流對應的音頻信息進行各項參數(shù)的不斷修正,以保證較高的丟幀補償質(zhì)量。
[0081]平滑處理模塊170,用于平滑處理輸出的余音以得到補償?shù)囊纛l流。
[0082]本實施例中,平滑處理模塊170通過平滑窗口對混響聲場輸出的余音進行平滑處理,以完成當前發(fā)生的丟幀進行補償?shù)玫较鄳囊纛l流。
[0083]進一步的,由混響聲場輸出的余音包括了干聲和濕聲,因此,相應的,平滑窗口也包括了干聲窗口和濕聲窗口,因此平滑處理模塊170將使得混響聲場輸出的干聲和濕聲分別相應地通過干聲窗口和濕聲窗口相加以得到最終輸出聲音,即補償?shù)囊纛l流。
[0084]通過如上所述的裝置將使得編解碼器在發(fā)生網(wǎng)絡(luò)丟包時得以通過模擬且不斷修正各項參數(shù)的混響聲場輸出余音,并使這段余音經(jīng)過一定的平滑處理銜接,進而得到了補償?shù)囊纛l流,對語音和音樂等音頻解碼輸出的流暢度都有明顯的提高,極大地改善了輸出效果。
[0085]如上所述的裝置是獨立于編解碼之外進行丟幀補償?shù)?,因此其輸出效果并不依賴于編解碼種類的,對輸入的聲音種類(例如,語音或音樂)也沒有強相關(guān),因此可以廣泛地應用于聲音丟失的補償,極大地擴充了音頻應用場景。
[0086]如圖7所示,在另一個實施例中,該裝置還包括了狀態(tài)更新模塊210和聲場修正模塊 230。
[0087]狀態(tài)更新模塊210,用于根據(jù)丟幀信息更新當前丟幀狀態(tài)。
[0088]本實施例中,丟幀信息用于指示當前的音頻流發(fā)生了丟幀的情況,以進行當前丟幀狀態(tài)的更新。其中,當前丟幀狀態(tài)將包括了對當前音頻流的丟幀所進行的記錄以及對記錄的音頻流丟幀進行估計所得到的丟幀統(tǒng)計狀況,以用于如實反映音頻流的丟幀狀況。
[0089]在一個實施例中,狀態(tài)更新模塊210還用于根據(jù)丟幀信息記錄當前發(fā)生的音頻流丟幀,并由記錄的音頻流丟幀估計得到當前的丟幀統(tǒng)計狀況。
[0090]本實施例中,狀態(tài)更新模塊210根據(jù)丟幀信息對當前音頻流所發(fā)生的丟幀,即通過一定的標識對音頻流發(fā)生丟幀和未發(fā)生丟幀的狀況進行記錄,例如,用“ I ”表示該幀音頻流沒有丟失,用“O”表示該幀音頻流實際為空,發(fā)生了丟幀,因此,所進行的連續(xù)記錄將表明了一串連續(xù)的若干幀音頻流所對應的丟幀狀況。如“0001”將記錄了四幀音頻流所對應的丟幀狀況,即當前輸入的一幀音頻流是正常的幀,未發(fā)生丟幀的狀況,但是前一幀、前兩幀和前三幀均為空幀,都發(fā)生了丟幀。
[0091]因此狀態(tài)更新模塊210通過對發(fā)生的音頻流丟幀所進行的記錄將可以獲知當前丟幀是第幾次丟幀,進而由記錄的音頻流丟幀進行估計以得到當前的丟幀統(tǒng)計狀況,其中,當前的丟幀統(tǒng)計狀況可以通過統(tǒng)計的丟幀率表示。
[0092]聲場修正模塊230,用于通過得到的當前丟幀狀態(tài)和音頻流對應的音頻信息修正構(gòu)建的混響聲場。
[0093]本實施例中,聲場修正模塊230根據(jù)當前丟幀狀態(tài)和當前音頻流所對應的音頻信息對構(gòu)建的混響聲場中的各項參數(shù)進行修正,以時刻保證混響聲場中的混響效果。
[0094]如圖8所示,在一個實施例中上述聲場修正模塊230包括提取單元231和參數(shù)更新單元233。
[0095]提取單元231,用于由音頻流對應的音頻信息提取能量信息、噪聲信息和音素信肩、O
[0096]本實施例中,音頻流所對應的音頻信息將包括了能量信息、噪聲信息和音素信息等,其中,能量信息和噪聲信息指的是波形的峰值電平,音素信息則是用于判斷當前幀音頻流是池首還是清首O
[0097]參數(shù)更新單元233,用于通過當前丟幀狀態(tài)和提取的能量信息、噪聲信息、音素信息對構(gòu)建的混響聲場進行參數(shù)更新,以得到修正的混響聲場。
[0098]本實施例中,能量信息、噪聲信息和音素信息都是會變化的,因此,在發(fā)生的變化進入到一個指定的區(qū)間之后參數(shù)更新單元233將會相應地對混響聲場中的參數(shù)進行調(diào)整。而對于當前丟幀狀態(tài)而言,該當前丟幀狀態(tài)可為統(tǒng)計的丟幀率,將對丟幀率所對應的值劃分為三個區(qū)間,即高中低所對應的三個區(qū)間。當丟幀率高時,混響聲場的混響時間參數(shù)將增大,從而產(chǎn)生足夠的余音來填充空巾貞;例如,在連續(xù)丟的是第三巾貞時,余音衰減可能太厲害,需要進行增益補償。
[0099]如圖9所示,在一個實施例中,上述平滑處理模塊170包括形狀確定單元171和平滑輸出單元173。
[0100]形狀確定單元171,用于由當前的丟幀統(tǒng)計狀況確定平滑窗口形狀。
[0101]本實施例中,平滑處理所用的平滑窗口將由當前幀是怎樣的幀來確定其所對應的平滑窗形狀。
[0102]平滑輸出單元173,用于通過確定的平滑窗口形狀對輸出的余音進行平滑處理以得到補償?shù)囊纛l流。
[0103]本實施例中,確定的平滑窗形狀包括了干聲窗口所對應的平滑窗形狀和濕聲窗口所對應的平滑窗形狀,因此,在進行平滑處理的過程中,平滑輸出單元173通過干聲窗口所對應的平滑窗形狀和濕聲窗口所對應的平滑窗形狀將對余音所包含的干聲和濕聲進行平滑過渡,以得到最終輸出聲音,即對丟幀進行補償?shù)囊纛l流。
[0104]例如,若對音頻流發(fā)生丟幀和未發(fā)生丟幀的狀況進行記錄所得到的連續(xù)四幀音頻流所對應的丟幀狀況為“1110”,則說明了在這四幀音頻流中,前三幀音頻流均是正常的,第四幀音頻流是一次孤立的丟幀,由于設(shè)置的延時處理的時間為5毫秒,因此,相應干聲窗口內(nèi)將有5毫秒是正常數(shù)據(jù),其后則為靜音數(shù)據(jù),而濕聲窗口內(nèi)的前5毫秒將和干聲做平滑過渡以過渡到余下的部分得到補償?shù)囊纛l流。
[0105]圖10為能實現(xiàn)本發(fā)明實施例的一個計算機系統(tǒng)1000的模塊圖。該計算機系統(tǒng)1000只是一個適用于本發(fā)明的計算機環(huán)境的示例,不能認為是提出了對本發(fā)明的使用范圍的任何限制。計算機系統(tǒng)1000也不能解釋為需要依賴于或具有圖示的示例性的計算機系統(tǒng)1000中的一個或多個部件的組合。
[0106]圖10中示出的計算機系統(tǒng)1000是一個適合用于本發(fā)明的計算機系統(tǒng)的例子。具有不同子系統(tǒng)配置的其它架構(gòu)也可以使用。例如有大眾所熟知的臺式機、筆記本、個人數(shù)字助理、智能電話、平板電腦、便攜式媒體播放器、機頂盒等類似設(shè)備可以適用于本發(fā)明的一些實施例。但不限于以上所列舉的設(shè)備。
[0107]如圖10所示,計算機系統(tǒng)1000包括處理器1010、存儲器1020和系統(tǒng)總線1022。包括存儲器1020和處理器1010在內(nèi)的各種系統(tǒng)組件連接到系統(tǒng)總線1022上。處理器1010是一個用來通過計算機系統(tǒng)中基本的算術(shù)和邏輯運算來執(zhí)行計算機程序指令的硬件。存儲器1020是一個用于臨時或永久性存儲計算程序或數(shù)據(jù)(例如,程序狀態(tài)信息)的物理設(shè)備。系統(tǒng)總線1020可以為以下幾種類型的總線結(jié)構(gòu)中的任意一種,包括存儲器總線或存儲控制器、外設(shè)總線和局部總線。處理器1010和存儲器1020可以通過系統(tǒng)總線1022進行數(shù)據(jù)通信。其中存儲器1020包括只讀存儲器(ROM)或閃存(圖中都未示出),以及隨機存取存儲器(RAM),RAM通常是指