音頻流中的丟幀補(bǔ)償實(shí)現(xiàn)方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及音頻信號(hào)處理技術(shù),特別是涉及一種音頻流中的丟幀補(bǔ)償實(shí)現(xiàn)方法和
>J-U ρ?α裝直。
【背景技術(shù)】
[0002]為實(shí)現(xiàn)音頻的丟幀補(bǔ)償,傳統(tǒng)的實(shí)現(xiàn)方案包括了依賴于編解碼的方案和不依賴于編解碼的方案兩大類。依賴于編解碼的方案在解碼時(shí)如發(fā)現(xiàn)當(dāng)前幀丟失,則利用前后若干幀編碼數(shù)據(jù)中的相關(guān)信息來(lái)估算得到當(dāng)前編碼幀,進(jìn)而由估算出的當(dāng)前編碼幀得出補(bǔ)幀音頻流。而不依賴于編解碼的方案則與編解碼無(wú)關(guān),將針對(duì)已經(jīng)解碼所得到的前后音頻信息,利用其時(shí)域頻域等特征進(jìn)行估算,以得出補(bǔ)償音頻流。
[0003]然而,對(duì)于依賴于編解碼的方案而言,在進(jìn)行丟幀補(bǔ)償后將出現(xiàn)明顯的“金屬音”,在連續(xù)丟幀時(shí)將更為顯著;而在使用不依賴于編解碼的方案的過(guò)程中,雖然規(guī)避了大多數(shù)的“金屬音”,以稍微改善輸出效果,但是,對(duì)于語(yǔ)音音頻,尤其是背景較純凈時(shí)濁音末尾的丟幀補(bǔ)償,將能夠明顯發(fā)現(xiàn)所得到的補(bǔ)償音頻流即為噪聲;而對(duì)于音樂(lè)音頻,雖然時(shí)域掩蔽降低了這一感知,但是存在著斷續(xù)感十分嚴(yán)重的缺陷,因此并無(wú)法適應(yīng)于所有種類的音頻的丟幀補(bǔ)償,僅限于對(duì)少數(shù)音頻得到較好的丟幀補(bǔ)償效果。
【發(fā)明內(nèi)容】
[0004]基于此,有必要針對(duì)傳統(tǒng)的音頻丟幀補(bǔ)償實(shí)現(xiàn)方案無(wú)法適應(yīng)所有種類的音頻的丟幀補(bǔ)償?shù)募夹g(shù)問(wèn)題,提供一種能適應(yīng)所有種類的音頻的丟幀補(bǔ)償且明顯改善了輸出效果的音頻流中的丟幀補(bǔ)償實(shí)現(xiàn)方法。
[0005]此外,還有必要提供一種能適應(yīng)所有種類的音頻的丟幀補(bǔ)償且明顯改善了輸出效果的音頻流中的丟幀補(bǔ)償實(shí)現(xiàn)裝置。
[0006]一種音頻流中的丟幀補(bǔ)償實(shí)現(xiàn)方法,包括如下步驟:
[0007]獲取由編解碼器輸入的音頻流和丟幀信息;
[0008]根據(jù)所述丟幀信息將所述音頻流置為靜音,并按照預(yù)設(shè)時(shí)間進(jìn)行延時(shí)處理;
[0009]由所述丟幀信息和所述音頻流對(duì)應(yīng)的音頻信息修正的混響聲場(chǎng)輸出余音;
[0010]平滑處理所述輸出的余音以得到補(bǔ)償?shù)囊纛l流。
[0011]一種音頻流中的丟幀補(bǔ)償實(shí)現(xiàn)裝置,包括:
[0012]輸入獲取模塊,用于獲取由編解碼器輸入的音頻流和丟幀信息;
[0013]預(yù)處理模塊,用于根據(jù)所述丟幀信息將所述音頻流置為靜音,并按照預(yù)設(shè)時(shí)間進(jìn)行延時(shí)處理;
[0014]混響模塊,用于由所述丟幀信息和所述音頻流對(duì)應(yīng)的音頻信息修正的混響聲場(chǎng)輸出余首;
[0015]平滑處理模塊,用于平滑處理所述輸出的余音以得到補(bǔ)償?shù)囊纛l流。
[0016]上述音頻流中的丟幀補(bǔ)償實(shí)現(xiàn)方法和裝置中,將獲取由編解碼器輸入的音頻流和丟幀信息,根據(jù)丟幀信息將音頻流置為靜音,并按照預(yù)設(shè)時(shí)間進(jìn)行延時(shí)處理,在達(dá)到設(shè)置的時(shí)間延時(shí)完成延時(shí)處理之后將由混響聲場(chǎng)輸出余音,其中,該混響聲場(chǎng)是由丟巾貞信息和音頻流對(duì)應(yīng)的音頻信息進(jìn)行修正的,平滑處理該余音即可得到補(bǔ)償?shù)囊纛l流,由于這一丟幀補(bǔ)償過(guò)程對(duì)輸入的音頻流所對(duì)應(yīng)的音頻種類并沒(méi)有強(qiáng)相關(guān),因此能夠適應(yīng)所有種類的音頻的丟幀補(bǔ)償,并且由于混響聲場(chǎng)已經(jīng)由當(dāng)前所獲取得到的丟幀信息和音頻流對(duì)應(yīng)的音頻信息進(jìn)行了修正,因此將大幅提高了丟幀補(bǔ)償質(zhì)量,明顯地改善了輸出效果。
【附圖說(shuō)明】
[0017]圖1為一個(gè)實(shí)施例中音頻流中的丟幀補(bǔ)償實(shí)現(xiàn)方法的流程圖;
[0018]圖2為另一個(gè)實(shí)施例中音頻流中的丟幀補(bǔ)償實(shí)現(xiàn)方法的流程圖;
[0019]圖3為圖2中通過(guò)得到的當(dāng)前丟幀狀態(tài)和音頻流對(duì)應(yīng)的音頻信息修正構(gòu)建的混響聲場(chǎng);
[0020]圖4為一個(gè)實(shí)施例中平滑處理輸出的余音以得到補(bǔ)償?shù)囊纛l流的方法流程圖;
[0021]圖5為一個(gè)實(shí)施例中音頻流中的丟幀補(bǔ)償實(shí)現(xiàn)方法的應(yīng)用示意圖;
[0022]圖6為一個(gè)實(shí)施例中音頻流中的丟幀補(bǔ)償實(shí)現(xiàn)裝置的結(jié)構(gòu)示意圖;
[0023]圖7為另一個(gè)實(shí)施例中音頻流中的丟幀補(bǔ)償實(shí)現(xiàn)裝置的結(jié)構(gòu)示意圖;
[0024]圖8為圖7中聲場(chǎng)修正模塊的結(jié)構(gòu)示意圖;
[0025]圖9為一個(gè)實(shí)施例中平滑處理模塊的結(jié)構(gòu)示意圖;
[0026]圖10為實(shí)現(xiàn)本發(fā)明實(shí)施例的一個(gè)計(jì)算機(jī)系統(tǒng)的模塊圖。
【具體實(shí)施方式】
[0027]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0028]除非上下文另有特定清楚的描述,本發(fā)明中的元件和組件,數(shù)量既可以單個(gè)的形式存在,也可以多個(gè)的形式存在,本發(fā)明并不對(duì)此進(jìn)行限定。本發(fā)明中的步驟雖然用標(biāo)號(hào)進(jìn)行了排列,但并不用于限定步驟的先后次序,除非明確說(shuō)明了步驟的次序或者某步驟的執(zhí)行需要其他步驟作為基礎(chǔ),否則步驟的相對(duì)次序是可以調(diào)整的??梢岳斫?,本文中所使用的術(shù)語(yǔ)“和/或”涉及且涵蓋相關(guān)聯(lián)的所列項(xiàng)目中的一者或一者以上的任何和所有可能的組口 ο
[0029]如圖1所示,在一個(gè)實(shí)施例中,一種音頻流中的丟幀補(bǔ)償實(shí)現(xiàn)方法,包括如下步驟:
[0030]步驟S110,獲取由編解碼器輸入的音頻流和丟幀信息。
[0031]本實(shí)施例中,編解碼器為音頻引擎中使用的編解碼器,例如,該編解碼器可為celt高音質(zhì)編解碼器。當(dāng)前所獲取到的由編解碼器輸入的音頻流即為編解碼器所輸出的音頻流。在未發(fā)生音頻流的丟幀時(shí),不需要對(duì)音頻流進(jìn)行丟幀補(bǔ)償;當(dāng)發(fā)生音頻流的丟幀時(shí),則需要對(duì)獲取到的由編解碼器輸入的音頻流進(jìn)行優(yōu)化,以實(shí)現(xiàn)丟幀補(bǔ)償。
[0032]由音頻引擎的上層得到當(dāng)前的丟幀信息,以將傳遞至編解碼器中,該音頻引擎的上層是相對(duì)于編解碼器而言的。在判斷到當(dāng)前的音頻流發(fā)生了丟幀的情況之后,將生成相應(yīng)的丟幀信息,得以由這一丟幀信息獲知音頻流的丟幀狀況。
[0033]在一個(gè)實(shí)施例中,上述步驟SllO的具體過(guò)程為:逐幀獲取由編解碼器輸入的音頻流和當(dāng)前幀音頻流所對(duì)應(yīng)的丟幀信息。
[0034]本實(shí)施例中,進(jìn)行丟幀補(bǔ)償?shù)妮斎雽艘粠纛l流和該幀音頻流所對(duì)應(yīng)的丟幀信息,也就是說(shuō),音頻流的獲取和丟幀補(bǔ)償?shù)膶?shí)現(xiàn)都是以幀為單位進(jìn)行的。
[0035]步驟S130,根據(jù)丟幀信息將音頻流置為靜音,并按照預(yù)設(shè)時(shí)間進(jìn)行延時(shí)處理。
[0036]本實(shí)施例中,在發(fā)生音頻流的丟幀時(shí),所獲取到的音頻流即為空幀,此時(shí)將靜音作為混響聲場(chǎng)的輸入。
[0037]具體的,在獲知發(fā)生了丟幀之后對(duì)當(dāng)前丟幀時(shí)刻所對(duì)應(yīng)的音頻流置為靜音,將其做預(yù)設(shè)時(shí)間的延時(shí)處理,以延遲混響聲場(chǎng)中的靜音輸入,其中,該預(yù)設(shè)時(shí)間是與用于進(jìn)行平滑處理的平滑窗口的重疊長(zhǎng)度相匹配的,例如,該預(yù)設(shè)時(shí)間可為5毫秒。
[0038]步驟S150,由丟幀信息和音頻流對(duì)應(yīng)的音頻信息修正的混響聲場(chǎng)輸出余音。
[0039]本實(shí)施例中,延遲了預(yù)設(shè)時(shí)間之后將以靜音作為混響聲場(chǎng)的輸入,通過(guò)混響聲場(chǎng)得到余音并輸出,該余音即為前一段時(shí)間的音頻流所產(chǎn)生的。輸出余音的混響聲場(chǎng)是系統(tǒng)通過(guò)一定的混響算法模擬的,例如,可以采用Schroeder混響模型實(shí)現(xiàn),即通過(guò)四個(gè)并聯(lián)的梳狀濾波器級(jí)聯(lián)兩個(gè)全通濾波器實(shí)現(xiàn)混響音效。
[0040]進(jìn)一步的,用于輸出余音的混響聲場(chǎng)將不斷通過(guò)丟幀信息和音頻流對(duì)應(yīng)的音頻信息進(jìn)行各項(xiàng)參數(shù)的不斷修正,以保證較高的丟幀補(bǔ)償質(zhì)量。
[0041]步驟S170,平滑處理輸出的余音以得到補(bǔ)償?shù)囊纛l流。
[0042]本實(shí)施例中,通過(guò)平滑窗口對(duì)混響聲場(chǎng)輸出的余音進(jìn)行平滑處理,以完成當(dāng)前發(fā)生的丟幀進(jìn)行補(bǔ)償?shù)玫较鄳?yīng)的音頻流。
[0043]進(jìn)一步的,由混響聲場(chǎng)輸出的余音包括了干聲和濕聲,因此,相應(yīng)的,平滑窗口也包括了干聲窗口和濕聲