本發明實施例涉及音頻數據處理技術,尤其涉及一種音頻信號的自動增益控制方法和裝置。
背景技術:
音頻信號的處理和播放目前已經廣泛應用在各種情景下,例如,實時語音通話過程中,需要在通話終端中將對方的語音信號進行處理而后播放;在歌曲等多媒體音頻文件的播放過程中,需要由播放設備將音頻信號進行處理而后播放。在音頻信號的處理過程中,由于音頻源的不同,所以導致存在不同音頻信號的音量強度不一樣的現象,且伴隨有噪聲。對于用戶而言,希望接聽不同人電話時音量能趨于一致,聽不同歌曲時,音量能趨于一致。
現有技術為解決音頻信號播放音量趨于一致的問題,以往采用用戶手動按鍵來調整的方式,此后又出現了自動增益控制的技術方案。圖1為現有技術方案中的自動增益控制方法的輸入數據與輸出數據的關系示意圖,參考圖1,X軸表示輸入音頻信號的音量,Y軸表示輸出的音頻信號的音量,坐標原點表示音量為無限小,X軸和Y軸的0dB分別表示輸入的音頻信號的最大音量和可以輸出的音頻信號的最大音量,XT為設定的門限值。通過實時檢測音頻信號各采樣點的音量,與設定門限值進行比對,并根據與門限值之間的關系,確定放大或縮小的調整增益,將音量進行增益調整后再播放音頻信號。圖1中虛線表示未采用現有自動增益控制技術方案處理時,輸入音頻信號的音量與輸出音頻信號的音量之間的關系,圖1中實線表示采用現有自動增益控制技術方案處理后,輸入音頻信號的音量與輸出音頻信號的音量之間的關系。
但是,發明人在進行本發明的研究過程中,發現現有技術存在如下缺陷:當與設定門限值進行比對而調整增益時,會出現音量突變的情況,使得用戶收聽到的音頻信號音量幅度不連續,效果不佳。
技術實現要素:
本發明實施例提供一種音頻信號的自動增益控制方法和裝置,以實現對音頻信號音量的自動增益控制,并改善音量幅度調整的連續性。
第一方面,本發明實施例提供了一種音頻信號的自動增益控制方法,包括:
確定音頻信號的實際音量與設定音量門限值之間的音量差值;
如果根據所述音量差值確定所述實際音量位于平滑處理區間的范圍值內,則根據所述音量差值計算目標音量;
根據所述目標音量對所述音頻信號進行調整并輸出。
第二方面,本發明實施例提供了一種音頻信號的自動增益控制裝置,包括:
差值確定模塊,用于確定音頻信號的實際音量與設定音量門限值之間的音量差值;
計算模塊,用于如果根據所述音量差值確定所述實際音量位于平滑處理區間的范圍值內,則根據所述音量差值計算目標音量;
調整模塊,用于根據所述目標音量對所述音頻信號進行調整并輸出。
本發明實施例提供的技術方案,通過確定音頻信號的實際音量與設定音量門限值之間的音量差值,根據該音量差值確定實際音量位于平滑處理區間的范圍值內,則根據該音量差值計算目標音量,根據計算所得的目標音量對上述音頻信號進行調整并輸出。本發明實施例通過采用上述技術方案,實現了對音頻信號音量的自動增益控制,有效改善音頻信號音量幅度調整的連續性,使得輸出的音頻信號更加平滑,提高用戶的使用體驗。
附圖說明
為了更清楚地說明本發明實施例中的技術方案,下面將對本發明實施例描述中所需要使用的附圖作簡單的介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據本發明實施例的內容和這些附圖獲得其他的附圖。
圖1為現有技術方案中的自動增益控制方法的輸入數據與輸出數據的關系示意圖;
圖2是本發明實施例一中的一種音頻信號的自動增益控制方法的流程示意圖;
圖3是本發明實施例二中的一種音頻信號的自動增益控制方法的輸入數據與輸出數據的關系示意圖;
圖4是本發明實施例二中的另一種音頻信號的自動增益控制方法的輸入數據與輸出數據的關系示意圖;
圖5是本發明實施例三中的一種音頻信號的自動增益控制裝置的結構示意圖。
具體實施方式
下面結合附圖和實施例對本發明作進一步的詳細說明。可以理解的是,此處所描述的具體實施例僅僅用于解釋本發明,而非對本發明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與本發明相關的部分而非全部結構。
在更加詳細地討論示例性實施例之前應當提到的是,一些示例性實施例被描述成作為流程圖描繪的處理或方法。雖然流程圖將各步驟描述成順序的處理,但是其中的許多步驟可以被并行地、并發地或者同時實施。此外,各步驟的順序可以被重新安排。當其操作完成時所述處理可以被終止,但是還可以具有未包括在附圖中的附加步驟。所述處理可以對應于方法、函數、規程、子例程、子程序等等。
實施例一
圖2是本發明實施例一中的一種音頻信號的自動增益控制方法的流程示意圖,本實施例可適用于對音頻信號進行自動增益的情景中,該方法可以由音頻信號的自動增益控制裝置來執行,如圖2所示,該方法具體包括如下步驟:
步驟101、確定音頻信號的實際音量與設定音量門限值之間的音量差值。
示例性的,音頻信號的實際音量是指輸入的音頻信號的實際音量,例如,在播放多媒體時,輸入的音頻信號的音量為多媒體文件的音量,可能出現由于多媒體文件錄制環境的不同,使得多媒體文件的聲音音量不一致。音量門限值是指輸入的音頻信號需要進行調整而預設的音量門限值,通常根據經驗設定,具體的,可以將圖1中的XT設置為輸入的音頻信號的音量門限值,一般認為,當輸入的音頻信號的實際音量小于設定的門限值時,用戶聽到的聲音較小,需要放大音量,當音頻信號的實際音量大于設定的門限值時,用戶聽到的聲音較大,需要適當縮小音量。
步驟102、如果根據音量差值確定實際音量位于平滑處理區間的范圍值內,則根據該音量差值計算目標音量。
示例性的,平滑處理區間是指需要對輸入的音頻信號的音量進行平滑處理的區間范圍,目標音量是指期望輸出的音頻信號的音量。當在步驟101中所確定的音量的差值處于平滑處理區間的范圍內時,則根據所確定的音量差值計算期望輸出的音頻信號的音量。通常,為了使得音量調整連續性強,不發生突變,則會根據音量差值來確定漸變的調整增益,使得調整輸出的音量變化平滑化。
步驟103、根據目標音量對音頻信號進行調整并輸出。
示例性的,根據目標音量調整輸入的音頻信號的實際音量,是輸入的音頻信號的音量轉換為相應的目標音量,并由相關部件輸出。
本發明實施例提供的技術方案,通過確定音頻信號的實際音量與設定音量門限值之間的音量差值,根據該音量差值確定實際音量位于平滑處理區間的范圍值內,則根據該音量差值計算目標音量,根據計算所得的目標音量對上述音頻信號進行調整并輸出。從而實現了對音頻信號音量的自動增益控制,有效改善音頻信號音量幅度調整的連續性,使得輸出的音頻信號更加平滑,提高用戶的使用體驗。
可選的,根據上述音量差值計算實際音量的調整增益,并且計算所確定的調整增益與音量差值呈目標趨勢變化;根據上述音量差值和調整增益計算目標音量。
示例性的,可以根據目標音量與輸入的音頻信號的實際音量的差值的絕對值來計算相應的調整增益,調整增益具體可以為音頻信號音量的相關變化量,增益大于1時,表示增大輸入的音頻信號的音量,增益小于1時,表示減小輸入的音頻信號的音量。
示例性的,隨著上述音量差值的增大,調整增益可以呈減小的趨勢,以使輸出的音頻信號呈平滑變化趨勢,本領域技術人員能夠利用已有公式,通過有限次的計算推導,使得輸出的音頻信號達到平滑變化的效果。可以理解的是,為使輸出數據滿足不同效果需求,調整增益與音量差值之間的變化趨勢也會發生相應的改變。
可選的,確定音頻信號的實際音量與設定音量門限值之間的音量差值可以包括:計算音頻信號的實際音量與設定音量門限值之間的差值,并求取絕對值,作為音量差值。
示例性的,將輸入的音頻信號的實時的音量值與設定的音量門限值做減法運算,并求取差值的絕對值,將所得的上述絕對值作為音量差值。通過將音頻信號的實際音量與設定音量門限值之間的差值進行取絕對值運算,便于根據上述音量差值快速判斷音頻信號的實際音量是否處于上述平滑處理區間。
可選的,上述平滑處理區間可以以上述設定音量門限值為中心點,按照設定半徑值確定范圍值。
示例性的,若在數軸上對輸入的音頻信號的音量值進行表示,可以以設定的音量門限值為中心,按照設定半徑,選取設定的音量門限值的左右兩側的數值區間作為上述平滑處理區間。可以理解的是,在該平滑處理區間內,輸出的音頻信號存在不平滑的情況,可以根據實際使用需求,選取合適的平滑處理區間范圍。通過確定平滑處理區間,便于對輸入的音頻信號的音量進行精確的平滑處理。
實施例二
本發明實施例以上述實施例為基礎,對目標音量的計算進行細化,可適用于對音頻信號進行自動增益的情景。圖3是本發明實施例二中的一種音頻信號的自動增益控制方法的輸入數據與輸出數據的關系示意圖,結合圖3,對本發明實施例提供的音頻信號的自動增益控制方法進行示例性說明。
如圖3所示,其中,X軸表示輸入數據,具體為輸入的音頻信號的音量值;Y軸表示輸出數據,具體為輸出的音頻信號的音量值;坐標原點表示音量趨近于負無窮;X軸和Y軸的0dB分別表示輸入的音頻信號的音量最大值和輸出的音頻信號的音量最大值;XT表示設定音量門限值;W表示平滑處理區間的區間長度;R表示第一壓縮率,其中,壓縮率是指對輸入的音頻信號進行壓縮的比例,R具體為圖3中從X軸的XT至0dB對應的輸入音頻信號的音量區間的壓縮率;M為線性最大調整量,可以根據輸入的音頻信號的音量和目標音量來確定。
本發明實施例提供的音頻信號的自動增益控制方法具體可以用于播放多媒體文件的情景中,例如播放音樂文件或視頻文件等,由于多媒體文件中的音頻信號(比如音樂)通常是在錄音棚錄制的,并且已經由相關工作人員進行了專業處理,因此多媒體文件中的聲音基本沒有噪聲干擾,因而可以不考慮多媒體文件中的噪聲。
該方法具體包括如下步驟:
步驟A、確定音頻信號的實際音量與設定音量門限值之間的音量差值。
具體的,在圖3所示X軸上取任意的x作為音頻信號的實際音量,x-XT即表示上述音量差值。
進一步的,也可以將x-XT的絕對值,即|x-XT|作為上述音量差值。
步驟B、如果音量差值位于平滑處理區間內,則按照如下公式(1),計算目標音量:
y=M+XT+W/2R-[x-(XT+W/2)]2/2R (1)
其中,y為輸出數據,具體可以為期望輸出的音頻信號的音量值,x為輸入數據,具體可以為輸入的音頻信號的實際音量值,XT、M、W和R參數的意義與圖3中相應參數的意義相同。
具體的,可以以XT表為中心,以W/2為半徑,得到平滑處理區間W,當時,表示輸入的音頻信號的實時音量值x位于W的區間范圍值內,此時,按照上述公式(1)計算期望輸出的音頻信號的音量。
步驟C、如果實際音量位于平滑處理區間的范圍值外且小于設定音量門限值,則按照如下公式(2),計算目標音量:
y=M+x (2)
其中,公式(2)中各參數的意義與公式(1)中對應的各參數的意義相同。
具體的,當時,則依據上述公式(2)計算期望輸出的音頻信號的音量。
步驟D、如果實際音量位于平滑處理區間的范圍值外且大于設定音量門限值,則按照如下公式(3),計算目標音量:
其中,公式(3)中各參數的意義與公式(1)中對應的各參數的意義相同。
具體的,當時,則依據上述公式(3)計算期望輸出的音頻信號的音量。
步驟F、根據目標音量對音頻信號進行調整并輸出。
示例性的,在實際計算上述目標音量的過程中,根據步驟A中計算所得的音量差值所滿足的條件,確定相應的目標音量的計算公式,并計算出輸入的音頻信號的當前音量值所對應的目標音量值,根據計算所得的目標音量值對輸入的音頻信號的當前音量值進行調整,并通過相關部件輸出。
另外的,圖3中的實線為采用本發明實施例提供的技術方案得到的輸入的音頻信號的音量與輸出的音頻信號的音量的關系,圖3中的虛線為采用現有的自動增益控制的技術方案得到的輸入的音頻信號的音量與輸出的音頻信號的音量的關系,可見,采用現有技術與設定門限值進行比對而調整增益時,會出現音量突變的情況,即圖3中XT對應的虛線出現拐點的位置,使得用戶收聽到的音頻信號音量幅度不連續,用戶接收到的音頻信號的音量不平滑,影響用戶的使用體驗。
本發明實施例提供的技術方案,通過確定音頻信號的實際音量與設定音量門限值之間的音量差值,根據該音量差值確定相應的目標音量計算公式,計算目標音量,并根據計算所得的目標音量對上述音頻信號進行調整并輸出。通過確定平滑處理區間,對輸入的音頻信號的音量進行精確的平滑處理,實現了對音頻信號音量的自動增益控制,有效改善音頻信號音量幅度調整的連續性。通過圖3中實線與虛線的對比可見,采用本發明實施例提供的技術方案,能夠使得輸出的音頻信號更加平滑,對輸入的音頻信號的平滑處理效果顯著,大大提高用戶的使用體驗。
本發明實施例還考慮到實時語音通信的應用情景,由于在實時語音通話過程中用戶處于實際環境中,受實時語音通信環境的影響,該情景中輸入的音頻信號中一般含有一定的噪聲干擾,當對輸入的音頻信號的音量進行放大時,噪聲信號也會被放大,因而需要對噪聲進行處理,在步驟A之后,步驟F之前,還包括步驟E,具體如下:
步驟E、如果實際音量小于設定噪音門限值,則按照如下公式(4),計算目標音量:
其中,R1為第二壓縮率,公式(4)中其余各參數與公式(1)中對應的各參數意義相同。
圖4是本發明實施例二中的另一種音頻信號的自動增益控制方法的輸入數據與輸出數據的關系示意圖,即包含步驟E中對噪聲進行處理的情況。如圖4所示,R1為第二壓縮率,具體為圖4中從X軸的坐標原點至XN所對應的輸入音頻信號的音量區間的壓縮率,也即圖中L所示直線對應的輸入音頻信號的音量區間的壓縮率,XN表示設定噪音門限值,圖4中的其他參數與圖3中對應的各參數的意義相同,在此不再贅述。
具體的,當x<XN時,則依據上述公式(4)計算期望輸出的音頻信號的音量,從而對噪聲進行抑制,降低噪聲對實時通話的影響,提高用戶的使用體驗。
類似的,圖4中,當x>XN時計算x對應的目標音量的過程與圖3中相應的過程相同,在此不再贅述。
需要說明的是,本發明實施例提供的技術方案可以適用于各種對音頻信號進行自動增益的情景中,并不限于播放多媒體和實時語音通信的使用情景。
實施例三
圖5是本發明實施例三中的一種音頻信號的自動增益控制裝置結構示意圖,該裝置可由軟件和/或硬件實現,可通過執行自動增益控制方法來對音頻信號進行增益。如圖5所示,該裝置包括差值確定模塊301、計算模塊302和調整模塊303。
其中,差值確定模塊301,用于確定音頻信號的實際音量與設定音量門限值之間的音量差值;
計算模塊302,用于如果根據音量差值確定實際音量位于平滑處理區間的范圍值內,則根據音量差值計算目標音量;
調整模塊303,用于根據目標音量對音頻信號進行調整并輸出。
本發明實施例提供的音頻信號的自動增益控制裝置,通過確定音頻信號的實際音量與設定音量門限值之間的音量差值,如果根據該音量差值確定實際音量位于平滑處理區間的范圍值內,則根據該音量差值計算目標音量,根據計算所得的目標音量對上述音頻信號進行調整并輸出。從而實現了對音頻信號音量的自動增益控制,有效改善音頻信號音量幅度調整的連續性,使得輸出的音頻信號更加平滑,提高用戶的使用體驗。
在上述實施例的基礎上,差值確定模塊301具體用于:
計算音頻信號的實際音量與設定音量門限值之間的差值,并求取絕對值,作為音量差值。
在上述實施例的基礎上,平滑處理區間以設定音量門限值為中心點,按照設定半徑值確定范圍值。
在上述實施例的基礎上,計算模塊302具體用于:
如果音量差值位于平滑處理區間內,則按照如下公式,計算目標音量:
y=M+XT+W/2R-[x-(XT+W/2)]2/2R
其中,y為輸出數據,x為輸入數據,XT為設定音量門限值,M為線性最大調整量,W為平滑處理區間的區間長度,R為第一壓縮率。
在上述實施例的基礎上,計算模塊302還用于:
如果實際音量位于平滑處理區間的范圍值外且小于設定音量門限值,則按照如下公式,計算目標音量:
y=M+x
在上述實施例的基礎上,計算模塊302還用于:
如果實際音量位于平滑處理區間的范圍值外且大于設定音量門限值,則按照如下公式,計算目標音量:
在上述實施例的基礎上,上述計算模塊302還用于:
如果實際音量小于設定噪音門限值,則按照如下公式,計算目標音量:
其中,R1為第二壓縮率。
本發明實施例提供的音頻信號的自動增益控制裝置,與本發明任意實施例所提供的音頻信號的自動增益控制方法屬于同一發明構思,可執行本發明任意實施例所提供的音頻信號的自動增益控制方法,具備執行音頻信號的自動增益控制方法相應的功能模塊和有益效果。未在本實施例中詳盡描述的技術細節,可參見本發明任意實施例提供的音頻信號的自動增益控制方法。
注意,上述僅為本發明的較佳實施例及所運用技術原理。本領域技術人員會理解,本發明不限于這里的特定實施例,對本領域技術人員來說能夠進行各種明顯的變化、重新調整和替代而不會脫離本發明的保護范圍。因此,雖然通過以上實施例對本發明進行了較為詳細的說明,但是本發明不僅僅限于以上實施例,在不脫離本發明構思的情況下,還可以包括更多其他等效實施例,而本發明的范圍由所附的權利要求范圍決定。