本發(fā)明涉及音頻數(shù)據(jù)處理技術(shù)領(lǐng)域,特別是涉及一種音頻數(shù)據(jù)處理方法和裝置。
背景技術(shù):
音頻數(shù)據(jù)處理技術(shù)的應(yīng)用,使得人們可以通過拾音器采集聲音生成音頻數(shù)據(jù)并存儲,在需要時可通過音頻播放器將存儲的音頻數(shù)據(jù)播放出來,重現(xiàn)聲音。音頻數(shù)據(jù)處理技術(shù)的廣泛應(yīng)用,使得聲音的記錄和再現(xiàn)變的非常容易,對人們的生活和工作都有重要影響。
目前,在對音頻數(shù)據(jù)流進(jìn)行處理時,存在需要在相鄰的兩幀音頻數(shù)據(jù)之間插入一幀音頻數(shù)據(jù)的情況。比如,在一些特殊的音效中,通過將左右聲道中其中一個聲道的音頻數(shù)據(jù)流相鄰的兩幀音頻數(shù)據(jù)之間插入一幀音頻數(shù)據(jù),使得左右聲道的音頻數(shù)據(jù)流相差一幀音頻數(shù)據(jù),可以實現(xiàn)環(huán)繞聲的特殊效果。又比如,當(dāng)左右聲道的音頻數(shù)據(jù)流不同步時,也可以通過在其中一個音頻數(shù)據(jù)流中插入音頻數(shù)據(jù)來緩解左右聲道的音頻數(shù)據(jù)流不同步的問題。
然而,目前在音頻數(shù)據(jù)流中相鄰的兩幀音頻數(shù)據(jù)之間插入音頻數(shù)據(jù),一般是直接插入這兩幀音頻數(shù)據(jù)中的一個,但插入后在播放時會在插入的音頻數(shù)據(jù)處存在明顯的噪聲,需要克服。類似地,在音頻數(shù)據(jù)流中刪除一幀音頻數(shù)據(jù)也會存在噪聲。
技術(shù)實現(xiàn)要素:
基于此,有必要針對目前在處理音頻數(shù)據(jù)流時,插入或者刪除一幀音頻數(shù)據(jù)時會產(chǎn)生噪聲的問題,提供一種音頻數(shù)據(jù)處理方法和裝置。
一種音頻數(shù)據(jù)處理方法,所述方法包括:
從音頻數(shù)據(jù)流中獲取相鄰的第一音頻幀和第二音頻幀,所述第一音頻幀在時序上先于所述第二音頻幀;
確定幀分割位置,所述第一音頻幀中所述幀分割位置處的采樣點值與所述第二音頻幀中所述幀分割位置處的采樣點值滿足距離接近條件;
獲取所述第二音頻幀中幀分割位置以前的采樣點值以及所述第一音頻幀中幀分割位置以后的采樣點值,按順序拼接以生成第三音頻幀,并將所述第三音頻幀插入所述第一音頻幀和第二音頻幀之間;或者,
獲取所述第一音頻幀中幀分割位置以前的采樣點值以及所述第二音頻幀中幀分割位置以后的采樣點值,按順序拼接以生成第四音頻幀,并將所述第一音頻幀和第二音頻幀一并替換為所述第四音頻幀。
一種音頻數(shù)據(jù)處理裝置,所述裝置包括:音頻幀獲取模塊和幀分割位置確定模塊,還包括音頻幀插入模塊和音頻幀替換模塊中的至少一種;
所述音頻幀獲取模塊,用于從音頻數(shù)據(jù)流中獲取相鄰的第一音頻幀和第二音頻幀,所述第一音頻幀在時序上先于所述第二音頻幀;
所述幀分割位置確定模塊,用于確定幀分割位置,所述第一音頻幀中所述幀分割位置處的采樣點值與所述第二音頻幀中所述幀分割位置處的采樣點值滿足距離接近條件;
所述音頻幀插入模塊,用于獲取所述第二音頻幀中幀分割位置以前的采樣點值以及所述第一音頻幀中幀分割位置以后的采樣點值,按順序拼接以生成第三音頻幀,并將所述第三音頻幀插入所述第一音頻幀和第二音頻幀之間;
所述音頻幀替換模塊,用于獲取所述第一音頻幀中幀分割位置以前的采樣點值以及所述第二音頻幀中幀分割位置以后的采樣點值,按順序拼接以生成第四音頻幀,并將所述第一音頻幀和第二音頻幀一并替換為所述第四音頻幀。
上述音頻數(shù)據(jù)處理方法和裝置,在需要插入音頻幀時,將第二音頻幀的幀分割位置以前的部分與第一音頻幀的幀分割位置以后的部分進(jìn)行拼接后獲得第三音頻幀,插入第一音頻幀和第二音頻幀之間。插入之后,第三音頻幀的前部分是第二音頻幀的前部分,而第三音頻幀的后部分則是第一音頻幀的后部分。由于第一音頻幀和第二音頻幀本身是無縫連接的,這樣第一音頻幀能夠與第三 音頻幀的前部分無縫連接,第三音頻幀的后部分與第二音頻幀無縫連接,而且第三音頻幀在幀分割位置處滿足距離接近條件,這樣拼接處也不會產(chǎn)生太大突變,因此可基本克服在插入音頻幀時因為音頻幀之間的跳躍而產(chǎn)生的噪聲問題。
在需要刪除音頻幀時,將第一音頻幀的幀分割位置以前的部分與第二音頻幀的幀分割位置以后的部分進(jìn)行拼接后獲得第四音頻幀,替換掉第一音頻幀和第二音頻幀。替換之后,第四音頻幀的前部分是第一音頻幀的前部分,而第四音頻幀的后部分則是第二音頻幀的后部分。由于第一音頻幀和前一音頻幀、第二音頻幀和后一音頻幀都是無縫連接的,這樣替換后第四音頻幀能夠與第一音頻幀的前一音頻幀無縫連接,與第二音頻幀的后一音頻幀無縫連接,而且第四音頻幀在幀分割位置處滿足距離接近條件,這樣拼接處也不會產(chǎn)生太大突變,因此可基本克服在刪除音頻幀時因為音頻幀之間的跳躍而產(chǎn)生的噪聲問題。
附圖說明
圖1為一個實施例中用于實現(xiàn)音頻數(shù)據(jù)處理方法的終端的結(jié)構(gòu)示意圖;
圖2為一個實施例中音頻數(shù)據(jù)處理方法的流程示意圖;
圖3a為一個實施例中在相鄰的第一音頻幀和第二音頻幀之間插入音頻幀的示意圖;
圖3b為一個實施例中在相鄰的第一音頻幀和第二音頻幀之中刪除一幀的示意圖;
圖4為一個實施例中第一音頻幀的局部采樣點值分布圖;
圖5為一個實施例中第二音頻幀的局部采樣點值分布圖;
圖6為一個實施例中第一音頻幀和第二音頻幀重疊的局部采樣點值分布圖;
圖7a為一個實施例中分割音頻幀、拼接音頻幀以及插入音頻幀的過程的示意圖;
圖7b為一個實施例中分割音頻幀、拼接音頻幀以及替換音頻幀的過程的示意圖;
圖8為一個實施例中保留副本以及進(jìn)行播放處理的過程的示意圖;
圖9為一個實施例中確定幀分割位置的步驟的流程示意圖;
圖10為一個實施例中第一音頻幀的第一擬合曲線和第二音頻幀的第二擬合曲線在同一坐標(biāo)系下的示意圖;
圖11為另一個實施例中音頻數(shù)據(jù)處理方法的流程示意圖;
圖12為一個實施例中音頻數(shù)據(jù)處理裝置的結(jié)構(gòu)框圖;
圖13為另一個實施例中音頻數(shù)據(jù)處理裝置的結(jié)構(gòu)框圖;
圖14為一個實施例中幀分割位置確定模塊的結(jié)構(gòu)框圖。
具體實施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
如圖1所示,在一個實施例中,提供了一種用于實現(xiàn)音頻數(shù)據(jù)處理方法的終端100,包括通過系統(tǒng)總線連接的處理器、非易失性存儲介質(zhì)、內(nèi)存儲器、輸入裝置以及音頻輸出接口。其中處理器具有計算功能和控制終端100工作的功能,該處理器被配置為執(zhí)行一種音頻數(shù)據(jù)處理方法。非易失性存儲介質(zhì)包括磁存儲介質(zhì)、光存儲介質(zhì)和閃存式存儲介質(zhì)中的至少一種,非易失性存儲介質(zhì)存儲有操作系統(tǒng)和音頻數(shù)據(jù)處理裝置。該音頻數(shù)據(jù)處理裝置用于實現(xiàn)一種音頻數(shù)據(jù)處理方法。輸入裝置包括物理按鈕、軌跡球、觸控板、用于接入外接控制設(shè)備的物理接口以及與顯示屏重疊的觸控層中的至少一種,外接控制設(shè)備比如鼠標(biāo)或者多媒體線控裝置等。終端100包括臺式計算機、便攜式筆記本電腦、手機、音樂播放器以及智能手表等各種可進(jìn)行音頻數(shù)據(jù)處理的電子設(shè)備。
如圖2所示,在一個實施例中,提供了一種音頻數(shù)據(jù)處理方法,本實施例以該方法應(yīng)用于上述圖1中的終端100來舉例說明。該方法具體包括如下步驟:
步驟202,從音頻數(shù)據(jù)流中獲取相鄰的第一音頻幀和第二音頻幀,第一音頻幀在時序上先于第二音頻幀。
具體地,音頻數(shù)據(jù)流包括具有時序的一系列的采樣點值,采樣點值通過將原始的模擬聲音信號按照特定的音頻采樣率采樣獲得,一系列的采樣點值就可以描述聲音。音頻采樣率則是一秒鐘內(nèi)所采集的采樣點的數(shù)量,單位為赫茲 (hz),音頻采樣率越高所能描述的聲波頻率就越高。
音頻幀包括具有時序的、數(shù)量固定的采樣點值。按照音頻數(shù)據(jù)流的編碼格式,若編碼格式本身存在音頻幀則直接采用,若不存在音頻幀而只是一系列具有時序的采樣點值,則可以按照預(yù)設(shè)幀長度從這一系列具有時序的采樣點值中劃分出音頻幀。預(yù)設(shè)幀長度是指預(yù)設(shè)的一幀音頻幀中所包括的采樣點值的數(shù)量。
從音頻數(shù)據(jù)流中獲取的第一音頻幀和第二音頻幀是相鄰的,且第一音頻幀在時序上先于第二音頻幀,就是說在對音頻數(shù)據(jù)流進(jìn)行播放處理時,第一音頻幀先播放,當(dāng)?shù)谝灰纛l幀播放完畢之后播放第二音頻幀。第一音頻幀和第二音頻幀是需要在兩者之間插入音頻幀的兩個相鄰音頻幀。
舉例說明,參照圖3a,一段音頻數(shù)據(jù)流中包括按照時序排列的第一音頻幀a、第二音頻幀b……,在需要插入音頻幀時,需要在第一音頻幀a和第二音頻幀b之間插入音頻幀f。參照圖3b,在需要刪除音頻幀時,需要將第一音頻幀a和第二音頻b這兩幀音頻幀的采樣點值中刪除掉一個音頻幀的采樣點值,保留一個音頻幀g。
步驟204,確定幀分割位置,第一音頻幀中幀分割位置處的采樣點值與第二音頻幀中幀分割位置處的采樣點值滿足距離接近條件。
具體地,幀分割位置是指將第一音頻幀和第二音頻幀進(jìn)行分割的位置,是相對于一個音頻幀的相對位置。距離是指兩個音頻幀中對應(yīng)的位置處的采樣點值對的差值的絕對值。舉例說明,參照圖4所示的第一音頻幀a的局部采樣點值分布圖以及圖5所示的第二音頻幀b的局部采樣點值分布圖,第一音頻幀a的第一個采樣點值與第二音頻幀b的第一個采樣點值的差值的絕對值,便是第一音頻幀a的第一個采樣點值與第二音頻幀b的第一個采樣點值的距離。
距離接近條件是指用來判定兩個采樣點值的距離是否接近的量化條件。在一個實施例中,距離接近條件可以包括距離等于0的情況,還可以包括兩個采樣點值的距離不相等但接近的情況,比如距離小于等于閾值,該閾值可以是預(yù)先設(shè)置的,也可以是根據(jù)第一音頻幀和/或第二音頻幀中的采樣點值動態(tài)確定的,比如可以是第一音頻幀和/或第二音頻幀中采樣點值的平均值乘以預(yù)設(shè)百分比。
在一個實施例中,終端可計算第一音頻幀和第二音頻幀中每個采樣點值對 的距離,從而篩選出距離最小的采樣點值對,幀分割位置便是篩選出的距離最小的采樣點值對所對應(yīng)的位置,此時距離接近條件便是第一音頻幀和第二音頻幀中幀分割位置對應(yīng)的采樣點值對的距離最小化。這里的采樣點值對是指兩個音頻幀中相同位置處的兩個采樣點值,采樣點值的位置則是該采樣點值相對于所屬音頻幀的相對位置。
舉例說明,將圖4和圖5重疊得到圖6所示的重疊的局部采樣點值分布圖,以便對音頻幀a的音頻幀b的局部采樣點值分布進(jìn)行比較。假設(shè)幀分割位置為s,則音頻幀a中s處的采樣點值與音頻幀b中s處的采樣點值的差值的絕對值很接近甚至相等,也就是音頻幀a中s處的采樣點值與音頻幀b中s處的采樣點值滿足距離接近條件。
步驟206,獲取第二音頻幀中幀分割位置以前的采樣點值以及第一音頻幀中幀分割位置以后的采樣點值,按順序拼接以生成第三音頻幀,并將第三音頻幀插入第一音頻幀和第二音頻幀之間;或者,獲取第一音頻幀中幀分割位置以前的采樣點值以及第二音頻幀中幀分割位置以后的采樣點值,按順序拼接以生成第四音頻幀,并將第一音頻幀和第二音頻幀一并替換為第四音頻幀。
具體地,在需要插入音頻幀時,獲取第二音頻幀中幀分割位置以前的采樣點值,并獲取第一音頻幀中幀分割位置以后的采樣點值,獲取的采樣點值的總數(shù)恰好等于一個音頻幀長度。將來自于第二音頻幀的采樣點值在前,來自于第一音頻幀中的采樣點值在后按順序進(jìn)行拼接,生成第三音頻幀。而且,來自于第二音頻幀的采樣點值仍保留所在第二音頻幀中的順序,來自于第一音頻幀中的采樣點值仍保留所在第一音頻幀中的順序。最后將生成的第三音頻幀插入第一音頻幀和第二音頻幀之間。
舉例說明,參照圖7a,第一音頻幀a按照幀分割位置s劃分為前部分和后部分,第二音頻幀b也按照幀分割位置s劃分為前部分和后部分。其中前部分是指幀分割位置s以前的采樣點值,相應(yīng)地后部分則是幀分割位置以后的采樣點值。將第二音頻幀b的前部分與第一音頻幀a的后部分進(jìn)行拼接,獲得第三音頻幀f,然后便可以將拼接獲得的第三音頻幀f插入第一音頻幀a與第二音頻幀b之間。
在需要刪除音頻幀時,獲取第一音頻幀中幀分割位置以前的采樣點值,并獲取第二音頻幀中幀分割位置以后的采樣點值,獲取的采樣點值的總數(shù)恰好等于一個音頻幀長度。將來自于第一音頻幀的采樣點值在前、來自于第二音頻幀的采樣點值在后按順序進(jìn)行拼接,獲得第四音頻幀。而且,來自于第一音頻幀的采樣點值仍保留所在第一音頻幀中的順序,來自于第二音頻幀中的采樣點值仍保留所在第二音頻幀中的順序。最后用生成的第四音頻幀替換掉第一音頻幀和第二音頻幀。
舉例說明,參照圖7b,第一音頻幀d按照幀分割位置s劃分為前部分和后部分,第二音頻幀e也按照幀分割位置s劃分為前部分和后部分。其中前部分是指幀分割位置s以前的采樣點值,相應(yīng)地后部分則是幀分割位置以后的采樣點值。將第一音頻幀a的前部分與第二音頻幀b的后部分進(jìn)行拼接,獲得第四音頻幀g,然后便可以用拼接獲得的第四音頻幀g替換掉第一音頻幀a與第二音頻幀b。
上述音頻數(shù)據(jù)處理方法,在需要插入音頻幀時,將第二音頻幀的幀分割位置以前的部分與第一音頻幀的幀分割位置以后的部分進(jìn)行拼接后獲得第三音頻幀,插入第一音頻幀和第二音頻幀之間。插入之后,第三音頻幀的前部分是第二音頻幀的前部分,而第三音頻幀的后部分則是第一音頻幀的后部分。由于第一音頻幀和第二音頻幀本身是無縫連接的,這樣第一音頻幀能夠與第三音頻幀的前部分無縫連接,第三音頻幀的后部分與第二音頻幀無縫連接,而且第三音頻幀在幀分割位置處滿足距離接近條件,這樣拼接處也不會產(chǎn)生太大突變,因此可基本克服在插入音頻幀時因為音頻幀之間的跳躍而產(chǎn)生的噪聲問題。
在需要刪除音頻幀時,將第一音頻幀的幀分割位置以前的部分與第二音頻幀的幀分割位置以后的部分進(jìn)行拼接后獲得第四音頻幀,替換掉第一音頻幀和第二音頻幀。替換之后,第四音頻幀的前部分是第一音頻幀的前部分,而第四音頻幀的后部分則是第二音頻幀的后部分。由于第一音頻幀和前一音頻幀、第二音頻幀和后一音頻幀都是無縫連接的,這樣替換后第四音頻幀能夠與第一音頻幀的前一音頻幀無縫連接,與第二音頻幀的后一音頻幀無縫連接,而且第四音頻幀在幀分割位置處滿足距離接近條件,這樣拼接處也不會產(chǎn)生太大突變, 因此可基本克服在刪除音頻幀時因為音頻幀之間的跳躍而產(chǎn)生的噪聲問題。
在一個實施例中,該音頻數(shù)據(jù)處理方法還包括:在對音頻數(shù)據(jù)流進(jìn)行實時的播放處理時,保留至少一個音頻幀長度的采樣點值的副本。且步驟202包括:在檢測到用于插入音頻幀的指令時,根據(jù)當(dāng)前正在進(jìn)行播放處理的采樣點值之前保留的副本獲得第一音頻幀,并根據(jù)當(dāng)前正在進(jìn)行播放處理的采樣點值之后的一個音頻幀長度的采樣點值獲得第二音頻幀。
其中,播放處理是指根據(jù)采樣點值還原出聲音信號的處理,保留至少一個音頻幀長度的采樣點值的副本,也就是保留至少一個音頻幀的副本。具體地,參照圖8,終端在對一個采樣點值a1進(jìn)行播放處理時,保留該采樣點值a1的副本a1’,在該采樣點值a1之前進(jìn)行了播放處理的采樣點值的副本也會保留下來,保留的副本的總長度至少為一個音頻幀長度。
終端在經(jīng)過一個音頻幀長度之后,正在對采樣點值b1進(jìn)行播放處理,此時也會保留該采樣點值b1的副本b1’,此時保留的副本至少包括音頻幀a的副本a’。假設(shè)此時終端檢測到用于插入音頻幀的指令,則終端會將副本a1’到當(dāng)前正在進(jìn)行播放處理的采樣點值b1之間的這一個音頻幀長度的采樣點值的副本作為第一音頻幀a,并將采樣點值b1之后的一個音頻幀長度的音頻幀b作為第二音頻幀。
本實施例中,通過在對音頻數(shù)據(jù)流進(jìn)行實時的播放處理時保留至少一個音頻幀的副本,在檢測到用于插入音頻幀的指令時可以立即做出響應(yīng),不需要再等待一個音頻幀長度的時間,提高了插入音頻幀的效率。
如圖9所示,在一個實施例中,步驟204具體包括如下步驟:
步驟902,獲取候選位置,第一音頻幀中候選位置處的采樣點值與第二音頻幀中相應(yīng)候選位置處的采樣點值滿足距離接近條件。
其中,候選位置是篩選出的可作為幀分割位置的音頻幀中的位置,具體終端可遍歷音頻幀中的所有位置,在遍歷到每個位置時,判斷第一音頻幀中和第二音頻幀中相應(yīng)位置處的采樣點值對是否滿足距離接近條件。若滿足距離接近條件則將遍歷到的位置加入候選位置集合中,并繼續(xù)遍歷;若不滿足距離接近條件,則繼續(xù)遍歷。若遍歷之后候選位置集合仍未空,則可選擇預(yù)設(shè)位置(比 如音頻幀的中間位置)或者采樣點值對的距離最小的位置加入到候選位置集合中。
距離接近條件是指用來判定兩個采樣點值的距離是否接近的量化條件。在一個實施例中,距離接近條件可以包括距離等于0的情況,還可以包括兩個采樣點值的距離不相等但接近的情況,比如距離小于等于閾值,該閾值可以是預(yù)先設(shè)置的,也可以是根據(jù)第一音頻幀和/或第二音頻幀中的采樣點值動態(tài)確定的。
在一個實施例中,終端可計算第一音頻幀和第二音頻幀中每個采樣點值對的距離并升序排序,從而將排序靠前的預(yù)設(shè)數(shù)量的距離所對應(yīng)的位置加入候選位置集合中,或者可從排序的距離的最小距離起獲取占所有計算出的距離中的預(yù)設(shè)比例的距離所對應(yīng)的位置加入候選位置集合中,此時距離接近條件便是第一音頻幀和第二音頻幀中候選位置對應(yīng)的采樣點值對的距離是將所有計算出的距離升序排序后靠前的預(yù)設(shè)數(shù)量的距離,或者是將所有計算出的距離升序排序后靠前的占所有計算出的距離中的預(yù)設(shè)比例的距離。
在一個實施例中,距離接近條件為:第一差值與第二差值的乘積小于等于0;其中,第一差值為第一音頻幀中候選位置處的采樣點值與第二音頻幀中相應(yīng)候選位置處的采樣點值的差值;第二差值為第一音頻幀中候選位置的下一位置的采樣點值與第二音頻幀中相應(yīng)位置處的采樣點值的差值。
具體地,假設(shè)第一音頻幀a為[a1,a2,……,am],第二音頻幀b為[b1,b2,……,bm],則距離接近條件可用以下公式(1)表示:
(ai-bi)*(ai+1-bi+1)≤0,(i∈[1,m-1])公式(1)
其中,i表示第一音頻幀a以及第二音頻幀b中的候選位置,可稱為采樣點值序號,m為一個音頻幀長度;(ai-bi)為第一差值,表示第一音頻幀a中候選位置i處的采樣點值ai與第二音頻幀b中相應(yīng)候選位置i處的采樣點值bi的差值;(ai+1-bi+1)為第二差值,表示第一音頻幀a中候選位置i的下一位置i+1的采樣點值ai+1與第二音頻幀b中相應(yīng)位置i+1處的采樣點值bi+1的差值;公式(1)表示第一差值(ai-bi)與第二差值(ai+1-bi+1)的乘積小于等于0。
上述公式(1)所表示的距離接近條件,是為了找到第一音頻幀的采樣點值構(gòu)成的第一擬合曲線和第二音頻幀中的采樣點值構(gòu)成的第二擬合曲線的交點, 還可以用其它求取兩個曲線交點的方式來確定交點。若該交點正好是一個采樣點值的位置,則將該位置加入候選位置集合;若該交點不是任何采樣點值的位置,則可將音頻幀的所有位置中最靠近該交點的位置加入候選位置集合。比如圖10中的第一擬合曲線和第二擬合曲線存在交點x,則可將最靠近該交點x的兩個位置s1或s2加入候選位置集合。其它求取兩個曲線交點的方式比如先分別求取兩個擬合曲線的數(shù)學(xué)表達(dá),從而通過函數(shù)計算來直接求取交點。上述公式(1)所表示的距離接近條件效率更高。
步驟904,獲取第一音頻幀和第二音頻幀中在覆蓋候選位置的預(yù)設(shè)長度的離散位置范圍內(nèi)的各采樣點值對的距離和。
其中,覆蓋候選位置的預(yù)設(shè)長度的離散位置范圍,包括某候選位置,該離散位置集合包括的離散位置的數(shù)量是固定的即預(yù)設(shè)長度。優(yōu)選可以在候選位置前后等量選取一定數(shù)量的離散位置與候選位置一同構(gòu)成離散位置范圍,也可以在候選位置前后不等量地選取離散位置與候選位置一同構(gòu)成離散位置范圍。離散位置集合中的各個位置優(yōu)選可以是順序相鄰的,當(dāng)然也可以間隔地選取離散位置與候選位置一同構(gòu)成離散位置范圍。
終端具體可逐個從候選位置集合中選擇候選位置,并獲取第一音頻幀和第二音頻幀中在覆蓋所選擇的候選位置的預(yù)設(shè)長度的離散位置范圍內(nèi)的各采樣點值對的距離和。
在一個實施例中,可采用以下公式(2)來獲取第一音頻幀和第二音頻幀中在覆蓋候選位置的預(yù)設(shè)長度的離散位置范圍內(nèi)的各采樣點值對的距離和:
其中,n為候選位置減去n,n可取[1,(m-1)/2],優(yōu)選可取[2,(m-1)/100],更優(yōu)可取5;候選位置為n+n,此時離散位置范圍為以候選位置n+n為中心向左右分別取n個位置與候選位置n+n構(gòu)成預(yù)設(shè)長度為2n+1的離散位置范圍[n,…,n+n,…2n+n];|aj-bj|是第一音頻幀a和第二音頻幀b中在離散位置范圍內(nèi)的各采樣點值對(aj,bj)的距離,rn則是第一音頻幀a和第二音頻幀b中在離散位置范圍內(nèi)的各采樣點值對(aj,bj)的距離和。
步驟906,將最小距離和所對應(yīng)的候選位置確定為幀分割位置。
具體地,為了從候選位置集合中找出最優(yōu)的候選位置作為幀分割位置,可對候選位置集合中的所有候選位置分別計算距離和之后,找出最小的距離和所對應(yīng)的候選位置作為幀分割位置。具體可表示為如下公式(3):
t=min(rn)
其中,t為目標(biāo)函數(shù),通過優(yōu)化目標(biāo)函數(shù)t,求得最小距離和對應(yīng)的候選位置n,從而獲得幀分割位置n+n。確定的幀分割位置也滿足距離接近條件:第一差值與第二差值的乘積小于等于0;其中,第一差值為第一音頻幀中幀分割位置處的采樣點值與第二音頻幀中相應(yīng)幀分割位置處的采樣點值的差值;第二差值為第一音頻幀中幀分割位置的下一位置的采樣點值與第二音頻幀中相應(yīng)位置處的采樣點值的差值。
上述通過步驟904到步驟906找到的幀分割位置,是通過找到在第一擬合曲線和第二擬合曲線的交點附近最相似的交點處的候選位置作為幀分割位置。上述步驟904是獲取第一音頻幀和第二音頻幀中在相應(yīng)的候選位置處的局部相似度的具體步驟,而步驟906則是根據(jù)局部相似度確定幀分割位置的具體步驟。候選位置處的局部相似度是指在候選位置附近固定范圍內(nèi)第一擬合曲線和第二擬合曲線相似的程度,通過上述公式(2)計算出的局部相似度越小表示越相似。若第一擬合曲線和第二擬合曲線在候選位置附近越相似,相應(yīng)的兩種曲線具有越相似的斜率,分割之后再拼接獲得的第三音頻幀過渡越平緩,對噪聲的抑制作用更好。
局部相似度還可以通過互相關(guān)函數(shù)計算互相關(guān)度而獲得。設(shè)兩個函數(shù)分別是f(t)和g(t),則互相關(guān)函數(shù)定義為r(u)=f(t)*g(-t),它反映的是兩個函數(shù)在不同的相對位置上互相匹配的程度?;ハ嚓P(guān)函數(shù)雖然也可以表示兩個信號的相似程度,但是如果應(yīng)用于本方案,在進(jìn)行少量點的互相關(guān)度的計算時,單獨的兩個同向大采樣點值可能會獲得一個較大的互相關(guān)度,表示兩條曲線越相似,但卻不是最佳的幀分割位置。但通過上述公式(2)獲得的局部相似度克服了利用互相關(guān)函數(shù)計算互相關(guān)度的缺點,公式(2)中每個位置的采樣點值在計算互相關(guān)度時所起的作用比較平衡,同時利用差值的絕對值作為衡量一個位置的采樣點 值所起作用的作用值,可以很好地描述交點前后的斜率差異,可以找到最合適的候選位置作為幀分割位置。
在一個實施例中,該音頻數(shù)據(jù)處理方法還包括:對于在開啟音效時從指定聲道的音頻數(shù)據(jù)流中獲取的相鄰的第一音頻幀和第二音頻幀,執(zhí)行獲取第二音頻幀中幀分割位置以前的采樣點值以及第一音頻幀中幀分割位置以后的采樣點值,按順序拼接以生成第三音頻幀,并將第三音頻幀插入第一音頻幀和第二音頻幀之間的步驟,并對插入的第三音頻幀進(jìn)行淡入處理,使插入的第三音頻幀按時序從無音效狀態(tài)逐漸過渡到完整音效狀態(tài)。
具體地,對指定聲道的音頻數(shù)據(jù)流執(zhí)行步驟202、步驟204以及步驟206的前半部分插入音頻幀的步驟。開啟音效的指令是用于插入音頻幀的指令,此時開啟的音效是基于聲道異步的音效,通過在指定聲道插入一幀音頻幀,使得指定聲道的音頻數(shù)據(jù)流比剩余的其它聲道延遲一個音頻幀,從而達(dá)到因音源到達(dá)人兩耳的時間相差一個音頻幀的時間而產(chǎn)生的環(huán)繞音效。
無音效狀態(tài)是指開啟音效之前的狀態(tài),完整音效狀態(tài)是開啟音效之后的狀態(tài),通過對第三音頻幀進(jìn)行淡入處理,使得插入的第三音頻幀按照其中采樣點值的時序,按時序從無音效狀態(tài)逐漸過渡到完整音效狀態(tài),從而達(dá)到音效平緩過渡的效果。比如若完整音效狀態(tài)下需要音量提高5倍,則可以逐步提升音量的倍數(shù),直至最高達(dá)到5倍時與處于完整音效狀態(tài)的第二音頻幀無縫連接。逐漸過渡可以是線性過渡,也可以是曲線性過渡。
本實施例中,在關(guān)閉音效時,可對指定聲道的音頻數(shù)據(jù)流執(zhí)行步驟202、步驟204以及步驟206的后半部分替換音頻幀的步驟,并對替換為的第四音頻幀進(jìn)行淡出處理,使替換為的第四音頻幀按時序從完整音效狀態(tài)逐漸過渡到無音效狀態(tài)。淡出處理與淡入處理相反,是逐漸消除音效的影響的處理過程。
本實施例中,通過將指定聲道的兩幀音頻幀替換為一幀音頻幀,刪除掉一幀音頻幀,使得指定聲道恢復(fù)到與其它聲道同步的狀態(tài)??煽焖匍_啟和/或關(guān)閉基于聲道異步的音效,提高了切換音效的效率。
在一個實施例中,對于在開啟音效時從指定聲道的音頻數(shù)據(jù)流中獲取的相鄰的第一音頻幀和第二音頻幀,還可對指定聲道執(zhí)行獲取第一音頻幀中幀分割 位置以前的采樣點值以及第二音頻幀中幀分割位置以后的采樣點值,按順序拼接以生成第四音頻幀,并將第一音頻幀和第二音頻幀一并替換為第四音頻幀的步驟,并對替換為的第四音頻幀進(jìn)行淡入處理,使替換為的第四音頻幀按時序從無音效狀態(tài)逐漸過渡到完整音效狀態(tài)。
本實施例中,在關(guān)閉音效時,則可以對指定聲道執(zhí)行步驟202、步驟204,以及步驟206的前半部分:獲取第二音頻幀中幀分割位置以前的采樣點值以及第一音頻幀中幀分割位置以后的采樣點值,按順序拼接以生成第三音頻幀,并將第三音頻幀插入第一音頻幀和第二音頻幀之間。并且對插入的第三音頻幀進(jìn)行淡出處理,使插入的第三音頻幀按時序從完整音效狀態(tài)逐漸過渡到無音效狀態(tài)。本實施例也可實現(xiàn)快速開啟和/或關(guān)閉基于聲道異步的音效,提高了切換音效的效率。
如圖11所示,在一個實施例中,一種音頻數(shù)據(jù)處理方法,包括如下步驟:
步驟1102,在開啟音效時,從指定聲道的音頻數(shù)據(jù)流中獲取相鄰的第一音頻幀和第二音頻幀,第一音頻幀在時序上先于第二音頻幀。
步驟1104,獲取第一候選位置,第一音頻幀中第一候選位置處的采樣點值與第二音頻幀中相應(yīng)第一候選位置處的采樣點值滿足距離接近條件。其中,距離接近條件可為:第一差值與第二差值的乘積小于等于0。且第一差值為第一音頻幀中候選位置處的采樣點值與第二音頻幀中相應(yīng)候選位置處的采樣點值的差值。第二差值為第一音頻幀中候選位置的下一位置的采樣點值與第二音頻幀中相應(yīng)位置處的采樣點值的差值。
步驟1106,獲取第一音頻幀和第二音頻幀中在覆蓋第一候選位置的預(yù)設(shè)長度的離散位置范圍內(nèi)的各采樣點值對的距離和。
步驟1108,將最小距離和所對應(yīng)的第一候選位置確定為第一幀分割位置。
步驟1110,獲取第二音頻幀中幀分割位置以前的采樣點值以及第一音頻幀中幀分割位置以后的采樣點值,按順序拼接以生成第三音頻幀。
步驟1112,將第三音頻幀插入第一音頻幀和第二音頻幀之間。
步驟1114,對插入的第三音頻幀進(jìn)行淡入處理,使插入的第三音頻幀按時序從無音效狀態(tài)逐漸過渡到完整音效狀態(tài)。
步驟1116,在關(guān)閉音效時,從指定聲道的音頻數(shù)據(jù)流中獲取相鄰的第五音頻幀和第六音頻幀,第五音頻幀在時序上先于第六音頻幀。其中,第五音頻幀相當(dāng)于圖2所示的實施例的步驟206中用來生成第四音頻幀的第一音頻幀,第六音頻幀相當(dāng)于圖2所示的實施例的步驟206中用來生成第四音頻幀的第二音頻幀。
步驟1118,獲取第二候選位置,第五音頻幀中第二候選位置處的采樣點值與第六音頻幀中相應(yīng)第二候選位置處的采樣點值滿足距離接近條件。其中,距離接近條件可為:第一差值與第二差值的乘積小于等于0。且第一差值為第五音頻幀中候選位置處的采樣點值與第六音頻幀中相應(yīng)候選位置處的采樣點值的差值。第二差值為第五音頻幀中候選位置的下一位置的采樣點值與第六音頻幀中相應(yīng)位置處的采樣點值的差值。
步驟1120,獲取第五音頻幀和第六音頻幀中在覆蓋第二候選位置的預(yù)設(shè)長度的離散位置范圍內(nèi)的各采樣點值對的距離和。
步驟1122,將最小距離和所對應(yīng)的第二候選位置確定為第二幀分割位置。
步驟1124,獲取第五音頻幀中第二幀分割位置以前的采樣點值以及第六音頻幀中第二幀分割位置以后的采樣點值,按順序拼接以生成第四音頻幀。
步驟1126,將第五音頻幀和第六音頻幀一并替換為第四音頻幀。
步驟1128,對替換為的第四音頻幀進(jìn)行淡出處理,使替換為的第四音頻幀按時序從完整音效狀態(tài)逐漸過渡到無音效狀態(tài)。
如圖12所示,在一個實施例中,提供了一種音頻數(shù)據(jù)處理裝置1200,包括音頻幀獲取模塊1201和幀分割位置確定模塊1202,還包括音頻幀插入模塊1203和音頻幀替換模塊1204中的至少一種。
音頻幀獲取模塊1201,用于從音頻數(shù)據(jù)流中獲取相鄰的第一音頻幀和第二音頻幀,第一音頻幀在時序上先于第二音頻幀。
具體地,音頻數(shù)據(jù)流包括具有時序的一系列的采樣點值,采樣點值通過將原始的模擬聲音信號按照特定的音頻采樣率采樣獲得,一系列的采樣點值就可以描述聲音。音頻采樣率則是一秒鐘內(nèi)所采集的采樣點的數(shù)量,單位為赫茲, 音頻采樣率越高所能描述的聲波頻率就越高。
音頻幀包括具有時序的、數(shù)量固定的采樣點值。按照音頻數(shù)據(jù)流的編碼格式,若編碼格式本身存在音頻幀則直接采用,若不存在音頻幀而只是一系列具有時序的采樣點值,則可以按照預(yù)設(shè)幀長度從這一系列具有時序的采樣點值中劃分出音頻幀。預(yù)設(shè)幀長度是指預(yù)設(shè)的一幀音頻幀中所包括的采樣點值的數(shù)量。
音頻幀獲取模塊1201從音頻數(shù)據(jù)流中獲取的第一音頻幀和第二音頻幀是相鄰的,且第一音頻幀在時序上先于第二音頻幀,就是說在對音頻數(shù)據(jù)流進(jìn)行播放處理時,第一音頻幀先播放,當(dāng)?shù)谝灰纛l幀播放完畢之后播放第二音頻幀。第一音頻幀和第二音頻幀是需要在兩者之間插入音頻幀的兩個相鄰音頻幀。
幀分割位置確定模塊1202,用于確定幀分割位置,第一音頻幀中幀分割位置處的采樣點值與第二音頻幀中幀分割位置處的采樣點值滿足距離接近條件。
具體地,幀分割位置是指將第一音頻幀和第二音頻幀進(jìn)行分割的位置,是相對于一個音頻幀的相對位置。距離是指兩個音頻幀中對應(yīng)的位置處的采樣點值對的差值的絕對值。舉例說明,參照圖4所示的第一音頻幀a的局部采樣點值分布圖以及圖5所示的第二音頻幀b的局部采樣點值分布圖,第一音頻幀a的第一個采樣點值與第二音頻幀b的第一個采樣點值的差值的絕對值,便是第一音頻幀a的第一個采樣點值與第二音頻幀b的第一個采樣點值的距離。
距離接近條件是指用來判定兩個采樣點值的距離是否接近的量化條件。在一個實施例中,距離接近條件可以包括距離等于0的情況,還可以包括兩個采樣點值的距離不相等但接近的情況,比如距離小于等于閾值,該閾值可以是預(yù)先設(shè)置的,也可以是根據(jù)第一音頻幀和/或第二音頻幀中的采樣點值動態(tài)確定的,比如可以是第一音頻幀和/或第二音頻幀中采樣點值的平均值乘以預(yù)設(shè)百分比。
在一個實施例中,幀分割位置確定模塊1202可計算第一音頻幀和第二音頻幀中每個采樣點值對的距離,從而篩選出距離最小的采樣點值對,幀分割位置便是篩選出的距離最小的采樣點值對所對應(yīng)的位置,此時距離接近條件便是第一音頻幀和第二音頻幀中幀分割位置對應(yīng)的采樣點值對的距離最小化。這里的采樣點值對是指兩個音頻幀中相同位置處的兩個采樣點值,采樣點值的位置則是該采樣點值相對于所屬音頻幀的相對位置。
音頻幀插入模塊1203,用于獲取第二音頻幀中幀分割位置以前的采樣點值以及第一音頻幀中幀分割位置以后的采樣點值,按順序拼接以生成第三音頻幀,并將第三音頻幀插入第一音頻幀和第二音頻幀之間。
具體地,在需要插入音頻幀時,音頻幀插入模塊1203獲取第二音頻幀中幀分割位置以前的采樣點值,并獲取第一音頻幀中幀分割位置以后的采樣點值,獲取的采樣點值的總數(shù)恰好等于一個音頻幀長度。將來自于第二音頻幀的采樣點值在前,來自于第一音頻幀中的采樣點值在后按順序進(jìn)行拼接,生成第三音頻幀。而且,來自于第二音頻幀的采樣點值仍保留所在第二音頻幀中的順序,來自于第一音頻幀中的采樣點值仍保留所在第一音頻幀中的順序。最后將生成的第三音頻幀插入第一音頻幀和第二音頻幀之間。
音頻幀替換模塊1204,用于獲取第一音頻幀中幀分割位置以前的采樣點值以及第二音頻幀中幀分割位置以后的采樣點值,按順序拼接以生成第四音頻幀,并將第一音頻幀和第二音頻幀一并替換為第四音頻幀。
在需要刪除音頻幀時,音頻幀替換模塊1204獲取第一音頻幀中幀分割位置以前的采樣點值,并獲取第二音頻幀中幀分割位置以后的采樣點值,獲取的采樣點值的總數(shù)恰好等于一個音頻幀長度。將來自于第一音頻幀的采樣點值在前、來自于第二音頻幀的采樣點值在后按順序進(jìn)行拼接,獲得第四音頻幀。而且,來自于第一音頻幀的采樣點值仍保留所在第一音頻幀中的順序,來自于第二音頻幀中的采樣點值仍保留所在第二音頻幀中的順序。最后用生成的第四音頻幀替換掉第一音頻幀和第二音頻幀。
上述音頻數(shù)據(jù)處理裝置1200,在需要插入音頻幀時,將第二音頻幀的幀分割位置以前的部分與第一音頻幀的幀分割位置以后的部分進(jìn)行拼接后獲得第三音頻幀,插入第一音頻幀和第二音頻幀之間。插入之后,第三音頻幀的前部分是第二音頻幀的前部分,而第三音頻幀的后部分則是第一音頻幀的后部分。由于第一音頻幀和第二音頻幀本身是無縫連接的,這樣第一音頻幀能夠與第三音頻幀的前部分無縫連接,第三音頻幀的后部分與第二音頻幀無縫連接,而且第三音頻幀在幀分割位置處滿足距離接近條件,這樣拼接處也不會產(chǎn)生太大突變,因此可基本克服在插入音頻幀時因為音頻幀之間的跳躍而產(chǎn)生的噪聲問題。
在需要刪除音頻幀時,將第一音頻幀的幀分割位置以前的部分與第二音頻幀的幀分割位置以后的部分進(jìn)行拼接后獲得第四音頻幀,替換掉第一音頻幀和第二音頻幀。替換之后,第四音頻幀的前部分是第一音頻幀的前部分,而第四音頻幀的后部分則是第二音頻幀的后部分。由于第一音頻幀和前一音頻幀、第二音頻幀和后一音頻幀都是無縫連接的,這樣替換后第四音頻幀能夠與第一音頻幀的前一音頻幀無縫連接,與第二音頻幀的后一音頻幀無縫連接,而且第四音頻幀在幀分割位置處滿足距離接近條件,這樣拼接處也不會產(chǎn)生太大突變,因此可基本克服在刪除音頻幀時因為音頻幀之間的跳躍而產(chǎn)生的噪聲問題。
如圖13所示,在一個實施例中,音頻數(shù)據(jù)處理裝置1200還包括:副本保留模塊1205,用于在對音頻數(shù)據(jù)流進(jìn)行實時的播放處理時,保留至少一個音頻幀長度的采樣點值的副本。
音頻幀獲取模塊1201還用于在檢測到用于插入音頻幀的指令時,根據(jù)當(dāng)前正在進(jìn)行播放處理的采樣點值之前保留的副本獲得第一音頻幀,并根據(jù)當(dāng)前正在進(jìn)行播放處理的采樣點值之后的一個音頻幀長度的采樣點值獲得第二音頻幀。
其中,播放處理是指根據(jù)采樣點值還原出聲音信號的處理,保留至少一個音頻幀長度的采樣點值的副本,也就是保留至少一個音頻幀的副本。具體地,參照圖8,在對一個采樣點值a1進(jìn)行播放處理時,副本保留模塊1205保留該采樣點值a1的副本a1’,在該采樣點值a1之前進(jìn)行了播放處理的采樣點值的副本也會保留下來,保留的副本的總長度至少為一個音頻幀長度。
在經(jīng)過一個音頻幀長度之后,正在對采樣點值b1進(jìn)行播放處理,此時副本保留模塊1205也會保留該采樣點值b1的副本b1’,此時保留的副本至少包括音頻幀a的副本a’。假設(shè)此時音頻幀獲取模塊1201檢測到用于插入音頻幀的指令,則音頻幀獲取模塊1201會將副本a1’到當(dāng)前正在進(jìn)行播放處理的采樣點值b1之間的這一個音頻幀長度的采樣點值的副本作為第一音頻幀a,并將采樣點值b1之后的一個音頻幀長度的音頻幀b作為第二音頻幀。
本實施例中,通過在對音頻數(shù)據(jù)流進(jìn)行實時的播放處理時保留至少一個音頻幀的副本,在檢測到用于插入音頻幀的指令時可以立即做出響應(yīng),不需要再 等待一個音頻幀長度的時間,提高了插入音頻幀的效率。
如圖14所示,在一個實施例中,幀分割位置確定模塊1202包括:候選位置獲取模塊1202a、相似度量模塊1202b和確定模塊1202c。
候選位置獲取模塊1202a,用于獲取候選位置,所述第一音頻幀中所述候選位置處的采樣點值與所述第二音頻幀中相應(yīng)候選位置處的采樣點值滿足距離接近條件。相似度量模塊1202b,用于獲取第一音頻幀和第二音頻幀中在相應(yīng)的候選位置處的局部相似度。確定模塊1202c,用于根據(jù)所述局部相似度確定幀分割位置。
候選位置獲取模塊1202a,用于獲取候選位置,第一音頻幀中候選位置處的采樣點值與第二音頻幀中相應(yīng)候選位置處的采樣點值滿足距離接近條件。
其中,候選位置是篩選出的可作為幀分割位置的音頻幀中的位置,位置是離散的,每個采樣點值對應(yīng)一個離散的位置。具體候選位置獲取模塊1202a可遍歷音頻幀中的所有位置,在遍歷到每個位置時,判斷第一音頻幀中和第二音頻幀中相應(yīng)位置處的采樣點值對是否滿足距離接近條件。若滿足距離接近條件則候選位置獲取模塊1202a將遍歷到的位置加入候選位置集合中,并繼續(xù)遍歷;若不滿足距離接近條件,則繼續(xù)遍歷。若遍歷之后候選位置集合仍未空,則候選位置獲取模塊1202a可選擇預(yù)設(shè)位置(比如音頻幀的中間位置)或者采樣點值對的距離最小的位置加入到候選位置集合中。
距離接近條件是指用來判定兩個采樣點值的距離是否接近的量化條件。在一個實施例中,距離接近條件可以包括距離等于0的情況,還可以包括兩個采樣點值的距離不相等但接近的情況,比如距離小于等于閾值,該閾值可以是預(yù)先設(shè)置的,也可以是根據(jù)第一音頻幀和/或第二音頻幀中的采樣點值動態(tài)確定的。
在一個實施例中,候選位置獲取模塊1202a可計算第一音頻幀和第二音頻幀中每個采樣點值對的距離并升序排序,從而將排序靠前的預(yù)設(shè)數(shù)量的距離所對應(yīng)的位置加入候選位置集合中,此時距離接近條件便是第一音頻幀和第二音頻幀中候選位置對應(yīng)的采樣點值對的距離是將所有計算出的距離升序排序后靠前的預(yù)設(shè)數(shù)量的距離?;蛘呖蓮呐判虻木嚯x的最小距離起獲取占所有計算出的距離中的預(yù)設(shè)比例的距離所對應(yīng)的位置加入候選位置集合中,此時距離接近條 件便是第一音頻幀和第二音頻幀中候選位置對應(yīng)的采樣點值對的距離是將所有計算出的距離升序排序后靠前的占所有計算出的距離中的預(yù)設(shè)比例的距離。
在一個實施例中,距離接近條件為:第一差值與第二差值的乘積小于等于0;其中,第一差值為第一音頻幀中候選位置處的采樣點值與第二音頻幀中相應(yīng)候選位置處的采樣點值的差值;第二差值為第一音頻幀中候選位置的下一位置的采樣點值與第二音頻幀中相應(yīng)位置處的采樣點值的差值。
具體地,假設(shè)第一音頻幀a為[a1,a2,……,am],第二音頻幀b為[b1,b2,……,bm],則距離接近條件可用以下公式(1)表示:
(ai-bi)*(ai+1-bi+1)≤0,(i∈[1,m-1])公式(1)
其中,i表示第一音頻幀a以及第二音頻幀b中的候選位置,可稱為采樣點值序號,m為一個音頻幀長度;(ai-bi)為第一差值,表示第一音頻幀a中候選位置i處的采樣點值ai與第二音頻幀b中相應(yīng)候選位置i處的采樣點值bi的差值;(ai+1-bi+1)為第二差值,表示第一音頻幀a中候選位置i的下一位置i+1的采樣點值ai+1與第二音頻幀b中相應(yīng)位置i+1處的采樣點值bi+1的差值;公式(1)表示第一差值(ai-bi)與第二差值(ai+1-bi+1)的乘積小于等于0。
上述公式(1)所表示的距離接近條件,是為了找到第一音頻幀的采樣點值構(gòu)成的第一擬合曲線和第二音頻幀中的采樣點值構(gòu)成的第二擬合曲線的交點,還可以用其它求取兩個曲線交點的方式來確定交點。若該交點正好是一個采樣點值的位置,則將該位置加入候選位置集合;若該交點不是任何采樣點值的位置,則可將音頻幀的所有位置中最靠近該交點的位置加入候選位置集合。比如圖10中的第一擬合曲線和第二擬合曲線存在交點x,則可將最靠近該交點x的兩個位置s1或s2加入候選位置集合。其它求取兩個曲線交點的方式比如先分別求取兩個擬合曲線的數(shù)學(xué)表達(dá),從而通過函數(shù)計算來直接求取交點。上述公式(1)所表示的距離接近條件效率更高。
相似度量模塊1202b,用于獲取第一音頻幀和第二音頻幀中在覆蓋候選位置的預(yù)設(shè)長度的離散位置范圍內(nèi)的各采樣點值對的距離和。
其中,覆蓋候選位置的預(yù)設(shè)長度的離散位置范圍,包括某候選位置,該離散位置集合包括的離散位置的數(shù)量是固定的即預(yù)設(shè)長度,且該位置集合中的位 置是順序相鄰的。相似度量模塊1202b具體可逐個從候選位置集合中選擇候選位置,并獲取第一音頻幀和第二音頻幀中在覆蓋所選擇的候選位置的預(yù)設(shè)長度的離散位置范圍內(nèi)的各采樣點值對的距離和。
在一個實施例中,相似度量模塊1202b可采用以下公式(2)來獲取第一音頻幀和第二音頻幀中在覆蓋候選位置的預(yù)設(shè)長度的離散位置范圍內(nèi)的各采樣點值對的距離和:
其中,n為候選位置減去n,n可取[1,(m-1)/2],優(yōu)選可取[2,(m-1)/100],更優(yōu)可取5;候選位置為n+n,此時離散位置范圍為以候選位置n+n為中心向左右分別取n個位置與候選位置n+n構(gòu)成預(yù)設(shè)長度為2n+1的離散位置范圍[n,…,n+n,…2n+n];|aj-bj|是第一音頻幀a和第二音頻幀b中在離散位置范圍內(nèi)的各采樣點值對(aj,bj)的距離,rn則是第一音頻幀a和第二音頻幀b中在離散位置范圍內(nèi)的各采樣點值對(aj,bj)的距離和。
確定模塊1202c,用于將最小距離和所對應(yīng)的候選位置確定為幀分割位置。
相似度量模塊1202b用于獲取第一音頻幀和第二音頻幀中在相應(yīng)的候選位置處的局部相似度,確定模塊1202c則用于根據(jù)局部相似度確定幀分割位置。
具體地,為了從候選位置集合中找出最優(yōu)的候選位置作為幀分割位置,可對候選位置集合中的所有候選位置分別計算距離和之后,找出最小的距離和所對應(yīng)的候選位置作為幀分割位置。具體可表示為如下公式(3):
t=min(rn)
其中,t為目標(biāo)函數(shù),通過優(yōu)化目標(biāo)函數(shù)t,求得最小距離和對應(yīng)的候選位置n,從而獲得幀分割位置n+n。確定的幀分割位置也滿足距離接近條件:第一差值與第二差值的乘積小于等于0;其中,第一差值為第一音頻幀中幀分割位置處的采樣點值與第二音頻幀中相應(yīng)幀分割位置處的采樣點值的差值;第二差值為第一音頻幀中幀分割位置的下一位置的采樣點值與第二音頻幀中相應(yīng)位置處的采樣點值的差值。
本實施例中,通過找到在第一擬合曲線和第二擬合曲線的交點附近最相似 的交點處的候選位置作為幀分割位置。候選位置處的局部相似度是指在候選位置附近固定范圍內(nèi)第一擬合曲線和第二擬合曲線相似的程度,通過上述公式(2)計算出的局部相似度越小表示越相似。若第一擬合曲線和第二擬合曲線在候選位置附近越相似,相應(yīng)的兩種曲線具有越相似的斜率,分割之后再拼接獲得的第三音頻幀過渡越平緩,對噪聲的抑制作用更好。
局部相似度還可以通過互相關(guān)函數(shù)計算互相關(guān)度而獲得,互相關(guān)函數(shù)雖然也可以表示兩個信號的相似程度,但是如果應(yīng)用于本方案,在進(jìn)行少量點的互相關(guān)度的計算時,單獨的兩個同向大采樣點值可能會獲得一個較大的互相關(guān)度,表示兩條曲線越相似,但卻不是最佳的幀分割位置。但通過上述公式(2)獲得的局部相似度克服了利用互相關(guān)函數(shù)計算互相關(guān)度的缺點,公式(2)中每個位置的采樣點值在計算互相關(guān)度時所起的作用比較平衡,同時利用差值的絕對值作為衡量一個位置的采樣點值所起作用的作用值,可以很好地描述交點前后的斜率差異,可以找到最合適的候選位置作為幀分割位置。
在一個實施例中,音頻幀插入模塊1203還用于對于在開啟音效時從指定聲道的音頻數(shù)據(jù)流中獲取的相鄰的第一音頻幀和第二音頻幀,獲取第二音頻幀中幀分割位置以前的采樣點值以及第一音頻幀中幀分割位置以后的采樣點值,按順序拼接以生成第三音頻幀,并將第三音頻幀插入第一音頻幀和第二音頻幀之間,并對插入的第三音頻幀進(jìn)行淡入處理,使插入的第三音頻幀按時序從無音效狀態(tài)逐漸過渡到完整音效狀態(tài)。
本實施例中,音頻幀替換模塊1204還用于在關(guān)閉音效時,獲取第一音頻幀中幀分割位置以前的采樣點值以及第二音頻幀中幀分割位置以后的采樣點值,按順序拼接以生成第四音頻幀,并將第一音頻幀和第二音頻幀一并替換為第四音頻幀,并對替換為的第四音頻幀進(jìn)行淡出處理,使替換為的第四音頻幀按時序從完整音效狀態(tài)逐漸過渡到無音效狀態(tài)。
在一個實施例中,音頻幀替換模塊1204還用于對于在開啟音效時從指定聲道的音頻數(shù)據(jù)流中獲取的相鄰的所述第一音頻幀和所述第二音頻幀,獲取第一音頻幀中幀分割位置以前的采樣點值以及第二音頻幀中幀分割位置以后的采樣點值,按順序拼接以生成第四音頻幀,并將第一音頻幀和第二音頻幀一并替換 為第四音頻幀,并對替換為的第四音頻幀進(jìn)行淡出處理,使替換為的第四音頻幀按時序從完整音效狀態(tài)逐漸過渡到無音效狀態(tài)。
本實施例中,音頻幀插入模塊1203還用于對于在關(guān)閉音效時從指定聲道的音頻數(shù)據(jù)流中獲取的相鄰的第一音頻幀和第二音頻幀,獲取第二音頻幀中幀分割位置以前的采樣點值以及第一音頻幀中幀分割位置以后的采樣點值,按順序拼接以生成第三音頻幀,并將第三音頻幀插入第一音頻幀和第二音頻幀之間,并對插入的第三音頻幀進(jìn)行淡出處理,使插入的第三音頻幀按時序從完整音效狀態(tài)逐漸過渡到無音效狀態(tài)。
本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關(guān)的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(read-onlymemory,rom)等非易失性存儲介質(zhì),或隨機存儲記憶體(randomaccessmemory,ram)等。
以上所述實施例的各技術(shù)特征可以進(jìn)行任意的組合,為使描述簡潔,未對上述實施例中的各個技術(shù)特征所有可能的組合都進(jìn)行描述,然而,只要這些技術(shù)特征的組合不存在矛盾,都應(yīng)當(dāng)認(rèn)為是本說明書記載的范圍。
以上所述實施例僅表達(dá)了本發(fā)明的幾種實施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。