本發(fā)明實施例涉及音頻數(shù)據(jù)處理技術(shù),尤其涉及一種音頻信號的自動增益控制方法和裝置。
背景技術(shù):
當(dāng)前,語音實時通信已經(jīng)得到了十分廣泛的應(yīng)用,利用語音通信,不僅可以實現(xiàn)雙方通信,還可以進一步實現(xiàn)多方通信。隨著語音通信的不斷發(fā)展,音頻數(shù)據(jù)處理技術(shù)在一定程度上也得到了相應(yīng)的提高。
在現(xiàn)有技術(shù)中,為了減小音頻信號的不連續(xù)性,提升語音通信的服務(wù)質(zhì)量,一般采用自動增益控制方法(Automatic Gain Control,AGC)對音頻信號進行處理。其中,自動增益控制方法可以下兩種方案包括:(1)以數(shù)據(jù)幀為分析基礎(chǔ),計算當(dāng)前幀中各個采樣點振幅值絕對值的平均幅值,將當(dāng)前幀中的目標(biāo)幅值除以平均幅值后得到當(dāng)前幀的增益值,然后基于該增益值調(diào)整當(dāng)前幀音頻信號的輸出幅值,從而實現(xiàn)音量的調(diào)整。(2)同樣以數(shù)據(jù)幀為分析基礎(chǔ),分別計算音頻信號前后兩幀的增益值,并將各幀的增益值平均分配到各采樣點中。為了實現(xiàn)前后兩幀增益的平滑過渡,通常將前一幀最后一個采樣點的增益值作為當(dāng)前幀第一個采樣點的增益值,基于確定的幀增益值調(diào)整各幀音頻信號的幅值。
現(xiàn)有自動增益控制方法僅是從音頻信號在時域中的平滑度進行考慮,雖然可以對音頻信號的處理達到了良好的效果,但由于該方法忽略了對信號頻域的影響,將會使得頻域中的音頻信號產(chǎn)生失真現(xiàn)象。例如,圖1為現(xiàn)有技術(shù)提供的對音頻信號增益調(diào)整前后示意圖。圖2為現(xiàn)有技術(shù)提供的對音頻信號增益調(diào)整前后的仿真示意圖。如圖1和圖2所示,若采用上述方案(1)進行增益調(diào)整后,音頻信號會出現(xiàn)“消頂”失真現(xiàn)象,即當(dāng)音頻信號的幅值經(jīng)增益放大時,為了防止超出允許的最大音量,會將超出設(shè)定幅值的音頻信號強制調(diào)整幅值為設(shè)定值,使其不會繼續(xù)增長,所以會出現(xiàn)消頂失真現(xiàn)象。再比如,圖3為現(xiàn)有技術(shù)提供的對音頻信號增益調(diào)整前后示意圖。圖4為現(xiàn)有技術(shù)提供的對音頻信號增益調(diào)整前后的仿真示意圖。如圖3和圖4所示,若采用上述方案(2)進行增益調(diào)整后,會使得增益調(diào)整后的斜率發(fā)生改變,進而使得在頻域中的音頻信號發(fā)生失真現(xiàn)象。同時由于人耳對頻域中信號的變化非常敏感,稍有差異用戶即可分辨出來,因此,將可能帶來不好的用戶體驗。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例提供一種音頻信號的自動增益控制方法和裝置,在自動調(diào)整音頻信號音量幅值的情況下,降低音頻信號的失真度。
第一方面,本發(fā)明實施例提供了一種音頻信號的自動增益控制方法,包括:
在待處理音頻信號中識別幅值過零點,將相鄰過零點之間確定為過零區(qū)間;
根據(jù)所述過零區(qū)間確定至少一個增益調(diào)整區(qū)間;
根據(jù)當(dāng)前增益調(diào)整區(qū)間內(nèi)的音頻信號峰值確定所述當(dāng)前增益調(diào)整區(qū)間的調(diào)整增益;
根據(jù)所述調(diào)整增益對所述當(dāng)前增益調(diào)整區(qū)間音頻信號的幅值進行調(diào)整并輸出。
第二方面,本發(fā)明實施例還提供一種音頻信號的自動增益控制裝置,包括:
過零區(qū)間確定模塊,用于在待處理音頻信號中識別幅值過零點,將相鄰過零點之間確定為過零區(qū)間;
調(diào)整區(qū)間確定模塊,用于根據(jù)所述過零區(qū)間確定至少一個增益調(diào)整區(qū)間;
調(diào)整增益確定模塊,用于根據(jù)當(dāng)前增益調(diào)整區(qū)間內(nèi)的音頻信號峰值確定所述當(dāng)前增益調(diào)整區(qū)間的調(diào)整增益;
幅值調(diào)整模塊,用于根據(jù)所述調(diào)整增益對所述當(dāng)前增益調(diào)整區(qū)間音頻信號的幅值進行調(diào)整并輸出。
本發(fā)明實施例中提供的音頻信號的自動增益控制方案,在待處理音頻信號過零區(qū)間確定的增益調(diào)整區(qū)間內(nèi),以音頻信號峰值確定當(dāng)前增益調(diào)整區(qū)間的調(diào)整增益,并根據(jù)調(diào)整增益對當(dāng)前增益調(diào)整區(qū)間音頻信號的幅值進行調(diào)整并輸出。通過采用上述技術(shù)方案,由于采用峰值來確定調(diào)整增益,因此調(diào)整增益可有效匹配最大幅值的音頻信號調(diào)整,避免了消頂失真現(xiàn)象。同時,每個增益調(diào)整區(qū)間可單獨確定調(diào)整增益,使得增益精度提高,也極大程度上降低頻域中音頻信號的失真度,達到提升用戶體驗的效果。
附圖說明
圖1為現(xiàn)有技術(shù)提供的對音頻信號增益調(diào)整前后示意圖;
圖2為現(xiàn)有技術(shù)提供的對音頻信號增益調(diào)整前后的仿真示意圖;
圖3為現(xiàn)有技術(shù)提供的對音頻信號增益調(diào)整前后示意圖;
圖4為現(xiàn)有技術(shù)提供的對音頻信號增益調(diào)整前后的仿真示意圖;
圖5為本發(fā)明實施例一提供的一種音頻信號的自動增益控制方法的流程示意圖;
圖6為本發(fā)明實施例一提供的對采樣點增益調(diào)整前后示意圖;
圖7為本發(fā)明實施例二提供的一種音頻信號的自動增益控制方法的流程示意圖;
圖8為本發(fā)明實施例三提供的一種音頻信號的自動增益控制方法的流程示意圖;
圖9為本發(fā)明實施例四提供的一種音頻信號的自動增益控制裝置的結(jié)構(gòu)框圖。
具體實施方式
下面結(jié)合附圖和實施例對本發(fā)明作進一步的詳細說明。可以理解的是,此處所描述的具體實施例僅僅用于解釋本發(fā)明,而非對本發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與本發(fā)明相關(guān)的部分而非全部結(jié)構(gòu)。
實施例一
圖5為本發(fā)明實施例一提供的一種音頻信號的自動增益控制方法的流程示意圖,該方法可以由音頻信號的自動增益控制裝置來執(zhí)行,具體包括如下步驟:
步驟110、在待處理音頻信號中識別幅值過零點,將相鄰過零點之間確定為過零區(qū)間。
其中,自動增益控制方法是對音頻信號輸出音量進行調(diào)整的一種控制方法,該方法利用線性放大和壓縮的有效組合對輸出的音頻信號進行動態(tài)調(diào)整。當(dāng)弱音頻信號輸入時,通過增大音頻信號的增益可以保證輸出音頻信號的強度;當(dāng)所輸入的音頻信號達到一定強度時,通過減小音頻信號的增益可以使輸出的音頻信號的幅值降低。也就是說,自動增益控制可以通過改變音頻信號輸入輸出幅值的壓縮比例來自動調(diào)整輸出音頻信號的幅值。本實施例所提供的自動增益控制方法也是通過調(diào)整音頻信號幅值的形式實現(xiàn)。
示例性的,本實施例中的音頻信號可以為語音實時通信過程中的音頻信號,也可以為通過多媒體播放出的音頻信號。其中,待處理音頻信號可包括有效音頻信號,即語音接收端能夠接收到的語音發(fā)送端所發(fā)送的音頻信號。示例性的,待處理音頻信號也可包括噪音音頻信號,即除語音接收端可以接收到發(fā)送端所發(fā)送的有效音頻信號之外的其他所有音頻信號。
示例性的,在對音頻信號進行處理的過程中,一般可將音頻信號按照固定時長分為若干音頻幀,其中,固定時長也預(yù)先進行設(shè)定。對于若干音頻幀中的每一幀音頻信號都包括若干個采樣點,每個采樣點分別具有各自的振幅值。具體的,可以將10ms內(nèi)所采集的樣點作為一幀,幀長可由用戶自行設(shè)定。例如,若在采樣頻率為16KHz的情況下,一幀10ms可以采集160個樣點。在本實施例中,對待處理音頻信號的識別過程實際上也就是對若干個音頻幀中的各個采樣點進行識別的過程。例如,可以從語音發(fā)送端所發(fā)送的音頻信號的數(shù)據(jù)流中抓取一幀作為當(dāng)前待處理的音頻幀,也可以將音頻信號的數(shù)據(jù)流中的連續(xù)幾幀作為當(dāng)前待處理的音頻幀。
其中,在待處理音頻信號中識別幅值過零點可包括:在所述待處理音頻信號中,按照采樣頻率確定采樣點;如果當(dāng)前采樣點幅值與任一相鄰的采樣點幅值的乘積為0,或與所述當(dāng)前采樣點相鄰的兩個采樣點的幅值異號,則確定當(dāng)前采樣點為所述待處理音頻信號中的幅值過零點。
在本實施例中,在確定出待處理的音頻幀后,可以識別出音頻幀中幅值過零的采樣點。然后將相鄰兩個過零點之間的區(qū)間確定為過零區(qū)間。對于當(dāng)前待處理的音頻幀,可以確定多個過零區(qū)間。值得注意的是,在過零區(qū)間確定的過程中,需要保證過零區(qū)間的完整性。例如,對于兩個采樣點,若其中一個采樣點的幅值為零,而另一個采樣點的幅值不為零,則這兩個采樣點所形成的區(qū)間不能確定為過零區(qū)間。示例性的,可以通過編寫過零檢測的C代碼實現(xiàn)對過零點的檢測,在識別音頻信號幅值過零點的過程中調(diào)用該代碼即可。通過采用軟件編程的方式實現(xiàn)過零點的檢測,可以達到降低成本的效果。具體的,C代碼可以具體為以下形式:
其中,數(shù)組Data的長度為2N,i表示第i個采樣點。
步驟120、根據(jù)過零區(qū)間確定至少一個增益調(diào)整區(qū)間。
示例性的,在對各個采樣點進行增益調(diào)整之前,可以首先確定需要進行增益調(diào)整的增益調(diào)整區(qū)間。具體的,可以將每個過零區(qū)間確定為一個增益調(diào)整區(qū)間,也可以將連續(xù)的至少兩個過零區(qū)間確定為一個增益調(diào)整區(qū)間??梢岳斫獾氖?,所確定的增益調(diào)整區(qū)間范圍越小,后續(xù)對增益調(diào)整區(qū)間內(nèi)采樣點的幅值調(diào)整將越準(zhǔn)確。
步驟130、根據(jù)當(dāng)前增益調(diào)整區(qū)間內(nèi)的音頻信號峰值確定當(dāng)前增益調(diào)整區(qū)間的調(diào)整增益。
其中,音頻信號峰值為在當(dāng)前增益調(diào)整區(qū)間內(nèi),所有采樣點振幅絕對值的最大值。音頻信號的峰值可由音頻信號的自動增益控制裝置默認設(shè)定。基于音頻信號峰值所確定出的當(dāng)前增益調(diào)整區(qū)間的調(diào)整增益,可以消除音頻信號自動調(diào)整增益的過程中的“消頂”失真現(xiàn)象。
示例性的,若將每個過零區(qū)間確定為一個增益調(diào)整區(qū)間,則對音頻信號過零區(qū)間增益的調(diào)整實際上是對該過零區(qū)間內(nèi)采樣點幅值的調(diào)整,因此可以根據(jù)當(dāng)前過零區(qū)間中采樣點的振幅絕對值的最大值確定出當(dāng)前過零區(qū)間的調(diào)整增益。值得注意的是,調(diào)整增益的不同將直接影響音頻信號的輸出效果。例如,如果確定出的調(diào)整增益大于1,表示當(dāng)前音頻信號需要被放大;如果確定出的調(diào)整增益小于1,表示當(dāng)前音頻信號需要被壓縮。需要說明的是,由于每個過零區(qū)間內(nèi)音頻信號的峰值不一定完全相同,因此,基于音頻信號峰值所確定的調(diào)整增益只適用于當(dāng)前過零區(qū)間。這樣設(shè)置的好處在于可以通過計算每個過零區(qū)間的音頻信號的峰值后,確定出當(dāng)前過零區(qū)間的調(diào)整增益,進而可以使得音頻信號自動增益的調(diào)整更加具有針對性。
本領(lǐng)域技術(shù)人員可以理解的是,統(tǒng)計采樣點振幅絕對值的最大值的實現(xiàn)方式可以有很多種,本實施例不作具體限定。優(yōu)選的,可通過編寫C代碼來獲取過零區(qū)間內(nèi)所有采樣點的振幅值,然后可以計算所有采樣點振幅值的絕對值,并從所有絕對值中獲取到絕對值最大值。具體操作如下:
其中,Peak為采樣點振幅絕對值的最大值,i表示第i個過零區(qū)間。
示例性的,在確定當(dāng)前增益調(diào)整區(qū)間內(nèi)的音頻信號峰值之后,可以將該峰值與音頻信號的目標(biāo)幅值作比較,進而確定出當(dāng)前增益調(diào)整區(qū)間的調(diào)整增益。
步驟140、根據(jù)調(diào)整增益對當(dāng)前增益調(diào)整區(qū)間音頻信號的幅值進行調(diào)整并輸出。
示例性的,在確定出當(dāng)前增益調(diào)整區(qū)間(當(dāng)前過零區(qū)間)的調(diào)整增益后,可以將當(dāng)前增益調(diào)整區(qū)間內(nèi)的采樣點的幅值均乘以調(diào)整增益進而使得采樣點的幅值盡可能地達到目標(biāo)幅值,從而達到調(diào)整音量的效果。在具體實施過程中,可采用如下C代碼執(zhí)行:
FOR j=1:Index[i+1]-Index[i]
Data[Index[i]+j]=Data[Index[i]+j]*Gain;
END
示例性的,若所確定的當(dāng)前過零區(qū)間的調(diào)整增益大于1,則當(dāng)前過零區(qū)間中所有采樣點的幅值乘以該調(diào)整增益后,幅值均會增大,因此輸出的音頻信號將會被放大,用戶所能聽到的音量也會相應(yīng)增大。若所確定的當(dāng)前過零區(qū)間的調(diào)整增益小于1,則當(dāng)前過零區(qū)間中所有采樣點的幅值乘以該調(diào)整增益后,幅值均會減小,因此輸出的音頻信號將會被壓縮,用戶所能聽到的音量也會相應(yīng)降低。因此,通過對當(dāng)前過零區(qū)間音頻信號的幅值的調(diào)整可以達到用戶所需要的音量。圖6為本發(fā)明實施例一提供的對采樣點增益調(diào)整前后示意圖。如圖6所示,根據(jù)步驟130中所確定的調(diào)整增益對當(dāng)前增益調(diào)整區(qū)間采樣點的幅值進行調(diào)整后,可以將大于目標(biāo)幅值(TargetLevel)的采樣點的幅值減小,同時也可以將小于目標(biāo)幅值(TargetLevel)的采樣點的幅值增大,因此,可以使得各個采樣點的幅值都盡可能接近目標(biāo)幅值(TargetLevel)。同時在對各個采樣點的幅值進行增益調(diào)整后,各個采樣點之間的斜率未發(fā)生很大的改變,因此可以表明,在頻域中音頻信號未發(fā)生明顯的失真現(xiàn)象。
所以,通過采用上述方式對當(dāng)前增益調(diào)整區(qū)間音頻信號的幅值經(jīng)過調(diào)整輸出后,語音接收端接收到的音頻信號不僅在時域中可以達到所需要的音量,同時也可保證頻域中音頻信號盡可能少的失真,提升了用戶體驗。
本發(fā)明實施例中提供的一種音頻信號的自動增益控制方法,在待處理音頻信號中識別幅值過零點,將相鄰過零點之間確定為過零區(qū)間,然后根據(jù)過零區(qū)間確定至少一個增益調(diào)整區(qū)間。最后根據(jù)當(dāng)前增益調(diào)整區(qū)間內(nèi)的音頻信號峰值確定當(dāng)前增益調(diào)整區(qū)間的調(diào)整增益,并根據(jù)調(diào)整增益對當(dāng)前增益調(diào)整區(qū)間音頻信號的幅值進行調(diào)整并輸出。通過采用上述技術(shù)方案,可以在時域中對音頻信號進行增益調(diào)整的同時,極大程度上降低頻域中音頻信號的失真度,達到提升用戶體驗的效果。
實施例二
圖7為本發(fā)明實施例二提供的一種音頻信號的自動增益控制方法的流程示意圖。本實施例以上述實施例為基礎(chǔ)進行優(yōu)化,在本實施例中,將步驟“根據(jù)當(dāng)前增益調(diào)整區(qū)間內(nèi)的音頻信號峰值確定當(dāng)前增益調(diào)整區(qū)間的調(diào)整增益”優(yōu)化為:“將當(dāng)前增益調(diào)整區(qū)間內(nèi)的音頻信號峰值除以設(shè)定目標(biāo)幅值,作為當(dāng)前增益調(diào)整區(qū)間的調(diào)整增益”。
相應(yīng)的,本實施例的方法包括如下步驟:
步驟210、在待處理音頻信號中識別幅值過零點,將相鄰過零點之間確定為過零區(qū)間。
步驟220、根據(jù)過零區(qū)間確定至少一個增益調(diào)整區(qū)間。
步驟230、將設(shè)定目標(biāo)幅值除以當(dāng)前增益調(diào)整區(qū)間內(nèi)的音頻信號峰值,作為當(dāng)前增益調(diào)整區(qū)間的調(diào)整增益。
其中,目標(biāo)幅值為在實際操作過程中,經(jīng)過大量實驗統(tǒng)計后所得到的經(jīng)驗值。在目標(biāo)幅值下音頻信號的播放效果最好。示例性的,目標(biāo)幅值也可通過其他測驗或者計算方法進行設(shè)置,本實施在此不做具體限定。
示例性的,當(dāng)前增益調(diào)整區(qū)間(當(dāng)前過零區(qū)間)的調(diào)整增益可通過將目標(biāo)幅值與當(dāng)前增益調(diào)整區(qū)間內(nèi)的音頻信號峰值(幅值絕對值的最大值)相除獲得。上述處理方式的好處在于,可以通過比較當(dāng)前增益調(diào)整區(qū)間內(nèi)音頻信號幅值絕對值的最大值與目標(biāo)幅值的差異,進而可以有針對性的調(diào)整當(dāng)前增益調(diào)整區(qū)間內(nèi)采樣點的幅值,使得當(dāng)前過零區(qū)間內(nèi)所有的采樣點的幅值經(jīng)調(diào)整后可以盡可能地達到目標(biāo)幅值。從而使得音頻信號所輸出后音量可以達到用戶所需要的音量,提升用戶體驗。
步驟240、根據(jù)調(diào)整增益對當(dāng)前增益調(diào)整區(qū)間音頻信號的幅值進行調(diào)整并輸出。
本發(fā)明實施例二在上述實施例的基礎(chǔ)上,通過將目標(biāo)幅值與當(dāng)前增益調(diào)整區(qū)間內(nèi)音頻信號峰值相除,可以得到當(dāng)前增益調(diào)整區(qū)間的調(diào)整增益,為下一步音頻信號幅值的調(diào)整奠定基礎(chǔ)。
進一步的,在根據(jù)當(dāng)前增益調(diào)整區(qū)間內(nèi)的音頻信號峰值確定當(dāng)前增益調(diào)整區(qū)間的調(diào)整增益之前還可包括:將當(dāng)前增益調(diào)整區(qū)間內(nèi)的音頻信號峰值乘以設(shè)定比例值,以更新峰值。其中,設(shè)定比例值為在實際操作過程根據(jù)用戶對音量的需求進行設(shè)定。當(dāng)所設(shè)定比例值大于1時,可以增大當(dāng)前增益調(diào)整區(qū)間內(nèi)音頻信號的峰值。當(dāng)所設(shè)定比例值小于1時,可以減小當(dāng)前增益調(diào)整區(qū)間內(nèi)音頻信號的峰值。例如,若在語音接收端接收到的音頻信號的整體音量都比較偏低時,可以通過將音頻信號的峰值乘以設(shè)定比例值(大于1)增大峰值,進而調(diào)大音量。
實施例三
圖8為本發(fā)明實施例三提供的一種音頻信號的自動增益控制方法的流程示意圖。本實施例三對上述實施例“在待處理音頻信號中識別幅值過零點,將相鄰過零點之間確定為過零區(qū)間”的過程進行了細化,參照圖8,本實施例的方法包括如下步驟:
步驟310、將音頻信號數(shù)據(jù)流中的上一幀音頻信號與當(dāng)前幀音頻信號拼合為待處理音頻信號。
其中,音頻信號數(shù)據(jù)流中上一幀音頻信號表示當(dāng)前要處理并播放的音頻信號。當(dāng)前幀音頻信號表示即將要處理的音頻信號。將上一幀音頻信號與當(dāng)前幀音頻信號拼合后作為待處理音頻信號,可以保證接收端所接收到音頻信號的平滑性。由于上一幀音頻信號與當(dāng)前幀音頻信號的拼合,將導(dǎo)致待處理的音頻信號的幀長度增大。示例性的,若上一幀音頻信號和當(dāng)前幀音頻信號的幀長度都為N,則將上一幀音頻信號與當(dāng)前幀音頻信號拼合后,當(dāng)前待處理音頻信號的幀長度為N+N=2N。
步驟320、在待處理音頻信號中識別幅值過零點,直至當(dāng)前幀音頻信號的第一個過零點。
將上一幀音頻信號與當(dāng)前幀音頻信號的拼合后,上一幀音頻信號最后一個過零點可以作為當(dāng)前幀音頻信號的第一個過零點。同時,上一幀音頻信號的最后一個過零區(qū)間也可以作為當(dāng)前音頻信號的第一個過零區(qū)間。通過將上一幀音頻信號與當(dāng)前幀音頻信號的拼合,也可以保證過零區(qū)間的完整性。
步驟330、將相鄰過零點之間確定為過零區(qū)間。
步驟340、根據(jù)過零區(qū)間確定至少一個增益調(diào)整區(qū)間。
步驟350、將設(shè)定目標(biāo)幅值除以當(dāng)前增益調(diào)整區(qū)間內(nèi)的音頻信號峰值,作為當(dāng)前增益調(diào)整區(qū)間的調(diào)整增益。
步驟360、根據(jù)調(diào)整增益對當(dāng)前增益調(diào)整區(qū)間音頻信號的幅值進行調(diào)整并輸出。
本實施例三在上述實施例的基礎(chǔ)上,通過將音頻信號數(shù)據(jù)流中的上一幀音頻信號與當(dāng)前幀音頻信號拼合后,可以保證待處理音頻信號中過零區(qū)間的完整性,同時也可以實現(xiàn)上一幀音頻信號到當(dāng)前幀音頻信號的平滑過渡。
實施例四
圖9為本發(fā)明實施例四提供的一種音頻信號的自動增益控制裝置的結(jié)構(gòu)框圖。該裝置可由軟件和/或硬件實現(xiàn),可執(zhí)行音頻信號的自動增益控制方法。如圖9所示,該裝置包括:過零區(qū)間確定模塊410、調(diào)整區(qū)間確定模塊420、調(diào)整增益確定模塊430和幅值調(diào)整模塊440。
其中,過零區(qū)間確定模塊410,用于在待處理音頻信號中識別幅值過零點,將相鄰過零點之間確定為過零區(qū)間;調(diào)整區(qū)間確定模塊420,用于根據(jù)所述過零區(qū)間確定至少一個增益調(diào)整區(qū)間;調(diào)整增益確定模塊430,用于根據(jù)當(dāng)前增益調(diào)整區(qū)間內(nèi)的音頻信號峰值確定所述當(dāng)前增益調(diào)整區(qū)間的調(diào)整增益;幅值調(diào)整模塊440,用于根據(jù)所述調(diào)整增益對所述當(dāng)前增益調(diào)整區(qū)間音頻信號的幅值進行調(diào)整并輸出。
本發(fā)明實施例四提供的一種音頻信號的自動增益控制裝置,在待處理音頻信號中識別幅值過零點,將相鄰過零點之間確定為過零區(qū)間,然后根據(jù)過零區(qū)間確定至少一個增益調(diào)整區(qū)間。最后根據(jù)當(dāng)前增益調(diào)整區(qū)間內(nèi)的音頻信號峰值確定當(dāng)前增益調(diào)整區(qū)間的調(diào)整增益,并根據(jù)調(diào)整增益對當(dāng)前增益調(diào)整區(qū)間音頻信號的幅值進行調(diào)整并輸出。通過采用上述技術(shù)方案,可以在時域中對音頻信號進行增益調(diào)整的同時,極大程度上降低頻域中音頻信號的失真度,達到提升用戶體驗的效果。
在上述實施例的基礎(chǔ)上,所述調(diào)整區(qū)間確定模塊具體用于:將每個過零區(qū)間確定為一個增益調(diào)整區(qū)間;或?qū)⑦B續(xù)的至少兩個過零區(qū)間確定為一個增益調(diào)整區(qū)間。
在上述實施例的基礎(chǔ)上,所述調(diào)整增益確定模塊具體用于:將設(shè)定目標(biāo)幅值除以所述當(dāng)前增益調(diào)整區(qū)間內(nèi)的音頻信號峰值,作為所述當(dāng)前增益調(diào)整區(qū)間的調(diào)整增益。
在上述實施例的基礎(chǔ)上,該裝置還包括:峰值更新模塊,用于在根據(jù)當(dāng)前增益調(diào)整區(qū)間內(nèi)的音頻信號峰值確定所述當(dāng)前增益調(diào)整區(qū)間的調(diào)整增益之前,將所述當(dāng)前增益調(diào)整區(qū)間內(nèi)的音頻信號峰值乘以設(shè)定比例值,以更新峰值。
在上述實施例的基礎(chǔ)上,所述過零區(qū)間確定模塊具體用于:將音頻信號數(shù)據(jù)流中的上一幀音頻信號與當(dāng)前幀音頻信號拼合為待處理音頻信號;在待處理音頻信號中識別幅值過零點,直至當(dāng)前幀音頻信號的第一個過零點;將相鄰過零點之間確定為過零區(qū)間。
上述實施例中提供的音頻信號的自動增益控制裝置可執(zhí)行本發(fā)明任意實施例所提供的音頻信號的自動增益控制方法,具備執(zhí)行該方法相應(yīng)的功能模塊和有益效果。未在上述實施例中詳盡描述的技術(shù)細節(jié),可參見本發(fā)明任意實施例所提供的音頻信號的自動增益控制方法。
注意,上述僅為本發(fā)明的較佳實施例及所運用技術(shù)原理。本領(lǐng)域技術(shù)人員會理解,本發(fā)明不限于這里所述的特定實施例,對本領(lǐng)域技術(shù)人員來說能夠進行各種明顯的變化、重新調(diào)整和替代而不會脫離本發(fā)明的保護范圍。因此,雖然通過以上實施例對本發(fā)明進行了較為詳細的說明,但是本發(fā)明不僅僅限于以上實施例,在不脫離本發(fā)明構(gòu)思的情況下,還可以包括更多其他等效實施例,而本發(fā)明的范圍由所附的權(quán)利要求范圍決定。