本申請涉及音頻控制技術(shù)領(lǐng)域,特別涉及一種音頻輸出控制方法及裝置。
背景技術(shù):
在多媒體音頻播放中,不同的聲音文件在同樣的播放器中播放時,如果采用同樣的播放器音量播放,會出現(xiàn)音量比較小的聲音文件無法聽清,而音量比較大的聲音文件會很吵的情況,影響用戶收聽體驗。
技術(shù)實現(xiàn)要素:
有鑒于此,本申請的目的在于提供一種音頻輸出控制方法及裝置,用以解決現(xiàn)有技術(shù)中多媒體音頻播放中不同聲音文件在同樣的播放器中輸出會出現(xiàn)音量不同,導(dǎo)致用戶收聽體驗不好的技術(shù)問題。
本申請?zhí)峁┝艘环N音頻輸出控制方法,包括:
獲得目標(biāo)音頻的聲音幅度值,所述聲音幅度值為所述目標(biāo)音頻在時刻采樣點處聲音信號的幅度值;
獲得所述聲音幅度值中的最大值;
基于所述最大值及預(yù)設(shè)算法,獲得所述目標(biāo)音頻的增益;
基于所述增益,控制所述目標(biāo)音頻輸出。
上述方法,優(yōu)選的,在獲得目標(biāo)音頻的聲音幅度值之前,所述方法還包括:
對所述目標(biāo)音頻進(jìn)行低通濾波處理。
上述方法,優(yōu)選的,所述獲得所述聲音幅度值中的最大值,包括:
確定所述目標(biāo)音頻在相鄰n個時刻采樣點上的目標(biāo)幅度值,n為大于或等于2的正整數(shù);
選取所述目標(biāo)幅度值中的目標(biāo)最大值;
所述基于所述最大值及預(yù)設(shè)算法,獲得所述目標(biāo)音頻的增益,包括:
基于所述目標(biāo)最大值及預(yù)設(shè)算法,獲得所述目標(biāo)音頻在所述n個時刻采樣點上的增益。
上述方法,優(yōu)選的,在獲得所述聲音幅度值中的最大值之后,所述方法還包括:
判斷所述最大值是否需要被剔除,如果所述最大值需要被剔除,則刪除所述聲音幅度值中的所述最大值,在剩余的聲音幅度值中重新獲得最大值,并判斷重新獲得的最大值是否需要被剔除,直到在所述聲音幅度值中獲得的最大值不需要被剔除。
上述方法,優(yōu)選的,判斷所述最大值是否需要被剔除,包括:
確定與所述最大值對應(yīng)的時刻采樣點相鄰的多個目標(biāo)采樣點;
獲得所述目標(biāo)采樣點的平均幅度值;
基于所述平均幅度值,判斷所述最大值是否需要被剔除。
本申請還提供了一種音頻輸出控制裝置,包括:
幅度獲得單元,用于獲得目標(biāo)音頻的聲音幅度值,所述聲音幅度值為所述目標(biāo)音頻在時刻采樣點處聲音信號的幅度值;
最大值獲得單元,用于獲得所述聲音幅度值中的最大值;
增益計算單元,用于基于所述最大值及預(yù)設(shè)算法,獲得所述目標(biāo)音頻的增益;
輸出控制單元,用于基于所述增益,控制所述目標(biāo)音頻輸出。
上述裝置,優(yōu)選的,還包括:
音頻濾波單元,用于在所述幅度獲得單元獲得目標(biāo)音頻的聲音幅度值之前,對所述目標(biāo)音頻進(jìn)行低通濾波處理。
上述裝置,優(yōu)選的,所述最大值獲得單元具體用于:
確定所述目標(biāo)音頻在相鄰n個時刻采樣點上的目標(biāo)幅度值,選取所述目標(biāo)幅度值中的目標(biāo)最大值;
所述增益計算單元,具體用于基于所述目標(biāo)最大值及預(yù)設(shè)算法,獲得所述目標(biāo)音頻在所述n個時刻采樣點上的增益。
上述裝置,優(yōu)選的,還包括:
干擾剔除單元,用于在所述最大值獲得單元獲得所述聲音幅度值中的最大值之后,判斷所述最大值是否需要被剔除,如果所述最大值需要被剔除,則刪除所述聲音幅度值中的所述最大值,在剩余的聲音幅度值中重新獲得最大值,并判斷重新獲得的最大值是否需要被剔除,直到所述聲音幅度值中獲得的最大值不需要被剔除。
上述裝置,優(yōu)選的,所述干擾剔除單元具體用于:
確定與所述最大值對應(yīng)的時刻采樣點相鄰的多個目標(biāo)采樣點,獲得所述目標(biāo)采樣點的平均幅度值,并基于所述平均幅度值判斷所述最大值是否需要被剔除,如果所述最大值需要被剔除,則刪除所述聲音幅度值中的所述最大值,在剩余的聲音幅度值中重新獲得最大值,并判斷重新獲得的最大值是否需要被剔除,直到所述聲音幅度值中獲得的最大值不需要被剔除。
由上述方案中可知,本申請?zhí)峁┑囊环N音頻輸出控制方法及裝置,通過采集待輸出的音頻在采樣點上的聲音幅度值來確定音頻輸出的增益,即基于預(yù)設(shè)算法獲得聲音幅度值的最大值對應(yīng)的增益,進(jìn)而使得任意一種音頻在同一個音頻播放器上輸出時,對聲音幅度較大的音頻會采用較小的增益,對聲音幅度較小的音頻會采用較大的增益,由此不論聲音幅度大小都會在輸出時帶給用戶相同的收聽音量,改善用戶收聽體驗。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為現(xiàn)有音頻文件的輸出示意圖;
圖2及圖3分別為不同聲音文件的音量幅度示意圖;
圖4為本申請實施例一提供的一種音頻輸出控制方法的流程圖;
圖5為本申請實施例的應(yīng)用示例圖;
圖6為本申請實施例二提供的一種音頻輸出控制方法的流程圖;
圖7為本申請實施例三提供的一種音頻輸出控制方法的流程圖;
圖8為本申請實施例四提供的一種音頻控制方法的流程圖;
圖9及圖10分別為本申請實施例的其他應(yīng)用示例圖;
圖11為本申請實施例五提供的一種音頻輸出控制裝置的結(jié)構(gòu)示意圖;
圖12為本申請實施例六提供的一種音頻輸出控制裝置的結(jié)構(gòu)示意圖;
圖13為本申請實施例七提供的一種音頻輸出控制裝置的結(jié)構(gòu)示意圖;
圖14為本申請實施例在對目標(biāo)音頻輸出控制時的流程示意圖;
圖15為本申請實施例的控制邏輯示意圖。
具體實施方式
圖1所示為音頻文件如歌曲或鈴聲等在播放器中輸出的流程示意圖。音頻數(shù)據(jù)從存儲設(shè)備被聲音(或經(jīng)過編碼的聲音)輸入模塊讀取之后,經(jīng)過解碼或聲音處理模塊進(jìn)行解碼和/或其他處理之后,經(jīng)過音量控制模塊(用戶可調(diào)整的增益,如用戶調(diào)節(jié)播放器的輸出音量)后,經(jīng)過數(shù)模轉(zhuǎn)換模塊轉(zhuǎn)換為模擬信號,從揚聲器輸出。
而很多情況下,不同的聲音文件(音頻文件)的音量幅度會差別很大,如圖2及圖3中所示,圖3中聲音文件的音量幅度要比圖2中的聲音文件的音量幅度要大很多,這樣用戶在收聽時,如果采用同樣的播放器音量播放,會出現(xiàn)音量比較小的聲音文件的聲音無法聽清,而音量比較大的聲音文件的聲音過吵的情況。
為了避免上述問題,現(xiàn)有方案中雖然可以通過計算聲音的功率來計算增益,但是由于計算功能需要進(jìn)行乘法運算,而在中央處理器(centralprocessingunit,cpu)上乘法運算的計算量非常大,所以計算功率的實現(xiàn)方案只能適用于高性能的cpu。為此,本申請中在用戶設(shè)置的音量增益后面再增加一個增益控制,這里的增益控制是通過計算聲音的幅度的最大值來自動調(diào)整輸出增益,對于較大的聲音采用較小的增益,對于較小的聲音采用較大的增益,由此,使得播放器輸出的聲音音量一致,這樣可以實現(xiàn)用戶的體驗最佳。
參考圖4,為本申請實施例一提供的一種音頻輸出控制方法的實現(xiàn)流程圖,該方法可以適用于音頻播放器中,用于對音頻進(jìn)行控制輸出。
本實施例中,該方法可以包括以下步驟:
步驟401:獲得目標(biāo)音頻的聲音幅度值。
其中,聲音幅度值為目標(biāo)音頻在時刻采樣點處聲音信號的幅度值,這里的幅度值為取絕對值之后的值,為正值。
例如,目標(biāo)音頻為時長50秒的聲音文件,可以按照采樣點頻率為8000/秒~44000/秒進(jìn)行采樣,相應(yīng)的采樣點的數(shù)量為50秒乘以采樣頻率的值,那么對應(yīng)相應(yīng)數(shù)量的聲音幅度值,如圖5中所示。
步驟402:獲得聲音幅度值中的最大值。
例如,目標(biāo)音頻的聲音幅度值有50個,本實施例中選取這50個聲音幅度值中的最大值。
步驟403:基于最大值及預(yù)設(shè)算法,獲得目標(biāo)音頻的增益。
其中,通過預(yù)設(shè)算法中相應(yīng)的邏輯判斷,進(jìn)而得到增益,而所得到的增益的值與最大值具有相應(yīng)的關(guān)系,如,最大值越大,目標(biāo)音頻的增益越大,最大值越小目標(biāo)音頻的增益越大。例如,預(yù)設(shè)算法可以為取倒數(shù)的算法。
例如,目標(biāo)音頻的聲音幅度值中的最大值為d,那么1/d即為目標(biāo)音頻的增益。
由此,對于不同聲音文件,較大音量的聲音文件對應(yīng)較小的增益,較小音量的聲音文件對應(yīng)較大的增益。
步驟404:基于增益,控制目標(biāo)音頻輸出。
例如,本實施例中將目標(biāo)音頻的音量均乘以該增益,得到調(diào)整后的音量,由此,對于不同聲音文件,較大音量的聲音文件的音量會乘以一個較小的增益值,而較小音量的聲音文件的音量會乘以一個較大的增益值,由此,使得不同聲音文件的音量相一致或趨于一致,帶給用戶相同的收聽音量。
由上述方案中可知,本申請實施例一提供的一種音頻輸出控制方法,通過采集待輸出的音頻在采樣點上的聲音幅度值來確定音頻輸出的增益,即基于預(yù)設(shè)算法獲得聲音幅度值的最大值對應(yīng)的增益,例如最大值的倒數(shù),進(jìn)而使得任意一種音頻在同一個音頻播放器上輸出時,對聲音幅度較大的音頻會采用較小的增益,對聲音幅度較小的音頻會采用較大的增益,由此不論聲音幅度大小都會在輸出時帶給用戶相同的收聽音量,改善用戶收聽體驗。
在一種實現(xiàn)中,目標(biāo)音頻中可能存在聲音幅度值非常大或非常小的數(shù)值,會被作為最大值獲取,進(jìn)而干擾增益的控制的情況,可以理解為增益處理過程中的噪聲,區(qū)別于目標(biāo)音頻中的原有噪聲。如果基于非常大或者非常小的數(shù)值計算增益,那么會出現(xiàn)目標(biāo)音頻輸出時聲音非常小或非常大的情況。因此本實施例中需要進(jìn)行剔除這些干擾,以提高輸出控制的準(zhǔn)確性。參考圖6,為本申請實施例二提供的一種音頻輸出控制方法的實現(xiàn)流程圖,在步驟402之后,該方法還可以包括以下步驟:
步驟405:確定與所述最大值對應(yīng)的時刻采樣點相鄰的多個目標(biāo)采樣點。
例如,在50秒的目標(biāo)音頻中,最大值對應(yīng)的時刻采樣點為目標(biāo)音頻的第26秒,本實施例中確定目標(biāo)音頻中第23秒、第24秒、第25秒、第27秒、第28秒及第29秒作為目標(biāo)采樣點。
步驟406:獲得所述目標(biāo)采樣點的平均幅度值。
例如,獲得目標(biāo)音頻中第23秒、第24秒、第25秒、第27秒、第28秒及第29秒的聲音幅度值的平均值。
步驟407:基于平均幅度值判斷最大值是否需要被剔除,如果是,執(zhí)行步驟408,如果否,執(zhí)行步驟403。
其中,步驟405~步驟407的目的是在于判斷最大值是否需要被剔除。如果平均幅度值與最大值之間的差值的絕對值大于預(yù)設(shè)的閾值,那么說明最大值為跑偏的值,即為最大值需要被剔除,而如果平均幅度值與最大值之間的差值的絕對值小于閾值甚至為0,則說明最大值為正常的值,最大值與其相鄰的其他采樣點的幅度值形成平緩的曲線或圖形,并不是突然增高或者降低的情況,即為最大值不需要被剔除。
需要說明的是,閾值可以根據(jù)需求進(jìn)行設(shè)置。
步驟408:刪除聲音幅度值中的最大值,執(zhí)行步驟409。
步驟409:在剩余的聲音幅度值中重新獲得最大值,返回執(zhí)行步驟405以重新判斷最大值是否需被剔除,直到在聲音幅度值中獲得的最大值不需要被剔除,執(zhí)行步驟403。
例如,目標(biāo)音頻中第23秒、第24秒、第25秒、第27秒、第28秒及第29秒的聲音幅度值的平均值為20,而最大值為80,兩者之間的差值遠(yuǎn)大于閾值15,那么說明這個最大值是非常大的幅度值,需要被剔除,此時,將目標(biāo)音頻的聲音幅度值中第26秒對應(yīng)的幅度值刪除,再重新在剩余的聲音幅度值中選取最大值,并對重新選取的最大值同樣進(jìn)行是否為干擾值判斷,直到選取出不需要被剔除的幅度值,所得到的最大值是準(zhǔn)確的值,由此不僅實現(xiàn)去除干擾,提高音頻輸出控制的準(zhǔn)確性。
參考圖7,為本申請實施例三提供的一種音頻輸出控制方法的實現(xiàn)流程圖,在步驟401之前,該方法還可以包括以下步驟:
步驟410:對目標(biāo)音頻進(jìn)行低通濾波處理。
其中,本實施例可以利用低通濾波器對目標(biāo)音頻進(jìn)行低通濾波處理,實現(xiàn)去噪,之后再經(jīng)過增益控制,實現(xiàn)音頻輸出控制,改善用戶的收聽體驗。
在一種實現(xiàn)中,本實施例可以對目標(biāo)音頻進(jìn)行加窗操作,計算每個窗口的幅度最大值,依次來確定相應(yīng)窗口的增益,從而防止同一個目標(biāo)音頻或聲音文件中音量大小變化劇烈的情況。具體的,參考圖8,為本申請實施例四提供的一種音頻控制方法的實現(xiàn)流程圖,其中,步驟402可以通過以下步驟實現(xiàn):
步驟801:確定目標(biāo)音頻在相鄰n個時刻采樣點上的目標(biāo)幅度值。
其中,這n個時刻采樣點即為在目標(biāo)音頻上所加的窗口,窗口大小為n,n為大于或等于2的正整數(shù)。
步驟802:選取所述目標(biāo)幅度值中的目標(biāo)最大值。
相應(yīng)的,步驟403在基于預(yù)設(shè)算法獲得目標(biāo)音頻的增益時,具體為:
步驟803:基于目標(biāo)最大值及預(yù)設(shè)算法,獲得目標(biāo)音頻在n個時刻采樣點上的增益。
例如,預(yù)設(shè)算法為取倒數(shù)算法,將目標(biāo)最大值的倒數(shù)作為目標(biāo)音頻在n個時刻采樣點上的增益。
由此,本實施例中可以將目標(biāo)音頻中每n個時刻采樣點作為一個窗口,如圖9中所示,選取每個窗口中的目標(biāo)幅度值的目標(biāo)最大值,進(jìn)而取這個目標(biāo)最大值的倒數(shù)作為目標(biāo)音頻中這個目標(biāo)最大值所在窗口的增益,進(jìn)而本實施例在輸出目標(biāo)音頻時基于每個窗口的增益,對目標(biāo)音頻進(jìn)行輸出控制,進(jìn)而防止同一段音頻中音量大小變化劇烈的情況。
需要說明的是,本實施例中在選取每個窗口的目標(biāo)幅度值中的目標(biāo)最大值之后,還可以判斷該目標(biāo)最大值是否會干擾增益而需要被剔除,例如,首先確定該目標(biāo)最大值所在窗口中與目標(biāo)最大值對應(yīng)的時刻采樣點相鄰的多個目標(biāo)采樣點,再確定窗口中目標(biāo)采樣點的平均幅度值,并判斷這個平均幅度值與目標(biāo)最大值之間的差值的絕對值是否大于閾值,由此來判斷目標(biāo)最大值是否需要被剔除。
而如果這個目標(biāo)最大值需要被剔除,則刪除這個窗口中聲音幅度值中的這個目標(biāo)最大值,在這個窗口中的剩余的聲音幅度值中重新獲得目標(biāo)最大值,并重新判斷重新選取的目標(biāo)最大值是否仍然需要被剔除,直到在每個窗口中的聲音幅度值中獲得的目標(biāo)最大值不需要被剔除,提高音頻控制的準(zhǔn)確性。
例如,如圖10中所示,在50秒的目標(biāo)音頻中,第1秒到第7秒之間的時刻采樣點對應(yīng)的聲音幅度值組成一個窗口x,在這個窗口x中確定目標(biāo)最大值:第2秒對應(yīng)的聲音幅度值,如21,之后,選取第1秒、第3秒、第4秒及第5秒作為目標(biāo)采樣點,確定這些目標(biāo)采樣點的平均幅度值,如20,由此,在窗口x中,由于平均幅度值與目標(biāo)最大值之間的差值的絕對值是小于閾值15的,那么說明這個目標(biāo)最大值不會干擾增益的計算,此時,不需要剔除這個目標(biāo)最大值,而如果窗口x中第1秒、第3秒、第4秒及第5秒的目標(biāo)采樣點的平均幅度值為50,那么平均幅度值與目標(biāo)最大值之間的差值的絕對值是大于閾值15的,那么說明這個目標(biāo)最大值需要被剔除,即刪除這個目標(biāo)最大值,再重新從窗口x中剩余的聲音幅度值中選取目標(biāo)最大值,如第3秒對應(yīng)的聲音幅度值為目標(biāo)最大值,再重新判斷這個重新選取的目標(biāo)最大值是否仍然需要被剔除,以此類推,由此提高最大值選取的準(zhǔn)確性與合理性,以此來提高音頻輸出控制的準(zhǔn)確性。
本實施例中,窗口的大小即對應(yīng)時刻采樣點的個數(shù)決定音頻的音量變化的頻度,而窗口的多少決定音量變化的平緩程度。本實施例中可以針對不同的應(yīng)用場景設(shè)置對窗口的大小和多少設(shè)置不同的值。例如,對于音樂等可以設(shè)置為變化頻度低且變化平緩的窗口大?。欢鴮τ谝哉Z音為主的應(yīng)用場景可以設(shè)置為變化頻度比較高且變化迅速的窗口大小。
參考圖11,為本申請實施例五提供的一種音頻輸出控制裝置的結(jié)構(gòu)示意圖,該裝置可以適用于音頻播放器中,用于對音頻進(jìn)行控制輸出。
本實施例中,該裝置可以包括以下結(jié)構(gòu):
幅度獲得單元1101,用于獲得目標(biāo)音頻的聲音幅度值。
其中,聲音幅度值為目標(biāo)音頻在時刻采樣點處聲音信號的幅度值,可以為多個,這里的幅度值為取絕對值之后的值,為正值。
例如,目標(biāo)音頻為時長50秒的聲音文件,可以按照采樣點頻率為8000/秒~44000/秒進(jìn)行采樣,相應(yīng)的采樣點的數(shù)量為50秒乘以采樣頻率的值,那么對應(yīng)相應(yīng)數(shù)量的聲音幅度值,本實施例中可以將這些采樣點的聲音幅度值均進(jìn)行獲得,或者,只獲得其中的一部分聲音幅度值,如圖5中所示。
最大值獲得單元1102,用于獲得所述聲音幅度值中的最大值。
例如,目標(biāo)音頻的聲音幅度值有50個,本實施例中選取這50個聲音幅度值中的最大值。
增益計算單元1103,用于基于最大值及預(yù)設(shè)算法,獲得目標(biāo)音頻的增益。
其中,通過預(yù)設(shè)算法中相應(yīng)的邏輯判斷,進(jìn)而得到增益,而所得到的增益的值與最大值具有相應(yīng)的關(guān)系,如,最大值越大,目標(biāo)音頻的增益越大,最大值越小目標(biāo)音頻的增益越大。例如,預(yù)設(shè)算法可以為取倒數(shù)的算法。
例如,目標(biāo)音頻的聲音幅度值中的最大值為d,那么1/d即為目標(biāo)音頻的增益。
由此,對于不同聲音文件,較大音量的聲音文件對應(yīng)較小的增益,較小音量的聲音文件對應(yīng)較大的增益。
輸出控制單元1104,用于基于所述增益,控制所述目標(biāo)音頻輸出。
例如,本實施例中將目標(biāo)音頻的音量均乘以該增益,得到調(diào)整后的音量,由此,對于不同聲音文件,較大音量的聲音文件的音量會乘以一個較小的增益值,而較小音量的聲音文件的音量會乘以一個較大的增益值,由此,使得不同聲音文件的音量相一致或趨于一致,帶給用戶相同的收聽音量。
由上述方案中可知,本申請實施例五提供的一種音頻輸出控制裝置,通過采集待輸出的音頻在采樣點上的聲音幅度值來確定音頻輸出的增益,即基于預(yù)設(shè)算法獲得聲音幅度值的最大值對應(yīng)的增益,例如最大值的倒數(shù),進(jìn)而使得任意一種音頻在同一個音頻播放器上輸出時,對聲音幅度較大的音頻會采用較小的增益,對聲音幅度較小的音頻會采用較大的增益,由此不論聲音幅度大小都會在輸出時帶給用戶相同的收聽音量,改善用戶收聽體驗。
在一種實現(xiàn)中,目標(biāo)音頻中可能存在聲音幅度值非常大或非常小的數(shù)值,會被作為最大值獲取,進(jìn)而干擾增益的控制的情況,可以理解為增益處理過程中的噪聲,區(qū)別于目標(biāo)音頻中的原有噪聲。如果基于非常大或者非常小的數(shù)值計算增益,那么會出現(xiàn)目標(biāo)音頻輸出時聲音非常小或非常大的情況。因此本實施例中需要進(jìn)行剔除這些干擾,以提高輸出控制的準(zhǔn)確性。參考圖12,為本申請實施例六提供的一種音頻輸出控制裝置的結(jié)構(gòu)示意圖,該裝置還可以包括:
干擾剔除單元1105,用于在所述最大值獲得單元1102獲得所述聲音幅度值中的最大值之后,判斷所述最大值是否需要被剔除,如果所述最大值需要被剔除,則刪除所述聲音幅度值中的所述最大值,在剩余的聲音幅度值中重新獲得最大值,并重新判斷所述最大值是否需要被剔除,直到所述聲音幅度值中獲得的最大值不需要被剔除,觸發(fā)增益計算單元1103。
而干擾剔除單元1105在判斷所述最大值是否需要被剔除,具體可以通過以下方式實現(xiàn):
確定與所述最大值對應(yīng)的時刻采樣點相鄰的多個目標(biāo)采樣點,獲得所述目標(biāo)采樣點的平均幅度值,并基于所述平均幅度值判斷所述最大值是否需要被剔除。
例如,在50秒的目標(biāo)音頻中,最大值對應(yīng)的時刻采樣點為目標(biāo)音頻的第26秒,本實施例中確定目標(biāo)音頻中第23秒、第24秒、第25秒、第27秒、第28秒及第29秒作為目標(biāo)采樣點,之后,獲得目標(biāo)音頻中第23秒、第24秒、第25秒、第27秒、第28秒及第29秒的聲音幅度值的平均值,目標(biāo)音頻中第23秒、第24秒、第25秒、第27秒、第28秒及第29秒的聲音幅度值的平均值為20,而最大值為80,兩者之間的差值遠(yuǎn)大于閾值15,那么說明這個最大值是非常大的幅度值,需要被剔除,此時,將目標(biāo)音頻的聲音幅度值中第26秒對應(yīng)的幅度值刪除,再重新在剩余的聲音幅度值中選取最大值,并對重新選取的最大值同樣進(jìn)行是否為干擾值判斷,直到選取出不需要被剔除的幅度值,所得到的最大值是準(zhǔn)確的值,由此不僅實現(xiàn)去除干擾,提高音頻輸出控制的準(zhǔn)確性。
在一種實現(xiàn)中,目標(biāo)音頻中可能存在噪聲,因此本實施例中需要進(jìn)行去噪處理,以改善用戶的收聽體驗。參考圖13,為本申請實施例七提供的一種音頻輸出控制裝置的結(jié)構(gòu)示意圖,該裝置還可以包括:
音頻濾波單元1106,用于在所述幅度獲得單元1101獲得目標(biāo)音頻的聲音幅度值之前,對所述目標(biāo)音頻進(jìn)行低通濾波處理。
其中,本實施例中,音頻濾波單元1106可以利用低通濾波器對目標(biāo)音頻進(jìn)行低通濾波處理,實現(xiàn)去噪,之后再經(jīng)過增益控制,實現(xiàn)音頻輸出控制,改善用戶的收聽體驗。
而在另一種實現(xiàn)中,最大值獲得單元1102可以通過以下方式實現(xiàn):
確定目標(biāo)音頻在相鄰n個時刻采樣點上的目標(biāo)幅度值,選取所述目標(biāo)幅度值中的目標(biāo)最大值。
其中,這n個時刻采樣點即為在目標(biāo)音頻上所加的窗口,窗口大小為n。
相應(yīng)的,增益計算單元1103可以通過以下方式實現(xiàn):
基于所述目標(biāo)最大值及預(yù)設(shè)算法,獲得所述目標(biāo)音頻在所述n個時刻采樣點上的增益。
例如,預(yù)設(shè)算法為取倒數(shù)算法,將目標(biāo)最大值的倒數(shù)作為目標(biāo)音頻在n個時刻采樣點上的增益。
由此,本實施例中可以將目標(biāo)音頻中每n個時刻采樣點作為一個窗口,如圖9中所示,選取每個窗口中的目標(biāo)幅度值的目標(biāo)最大值,進(jìn)而取這個目標(biāo)最大值的倒數(shù)作為目標(biāo)音頻中這個目標(biāo)最大值所在窗口的增益,進(jìn)而本實施例在輸出目標(biāo)音頻時基于每個窗口的增益,對目標(biāo)音頻進(jìn)行輸出控制,進(jìn)而防止同一段音頻中音量大小變化劇烈的情況。
需要說明的是,本實施例中在選取每個窗口的目標(biāo)幅度值中的目標(biāo)最大值之后,還可以判斷該目標(biāo)最大值是否會干擾增益而需要被剔除,例如,首先確定該目標(biāo)最大值所在窗口中與目標(biāo)最大值對應(yīng)的時刻采樣點相鄰的多個目標(biāo)采樣點,再確定窗口中目標(biāo)采樣點的平均幅度值,并判斷這個平均幅度值與目標(biāo)最大值之間的差值的絕對值是否大于閾值,由此來判斷目標(biāo)最大值是否需要被剔除。
而如果這個目標(biāo)最大值需要被剔除,則刪除這個窗口中聲音幅度值中的這個目標(biāo)最大值,在這個窗口中的剩余的聲音幅度值中重新獲得目標(biāo)最大值,并重新判斷重新選取的目標(biāo)最大值是否仍然需要被剔除,直到在每個窗口中的聲音幅度值中獲得的目標(biāo)最大值不需要被剔除,提高音頻控制的準(zhǔn)確性。
例如,如圖10中所示,在50秒的目標(biāo)音頻中,第1秒到第10秒之間的時刻采樣點對應(yīng)的聲音幅度值組成一個窗口x,在這個窗口x中確定目標(biāo)最大值:第2秒對應(yīng)的聲音幅度值,如21,之后,選取第1秒、第3秒、第4秒及第5秒作為目標(biāo)采樣點,確定這些目標(biāo)采樣點的平均幅度值,如20,由此,在窗口x中,由于平均幅度值與目標(biāo)最大值之間的差值的絕對值是小于閾值15的,那么說明這個目標(biāo)最大值不會干擾增益的計算,此時,不需要剔除這個目標(biāo)最大值,而如果窗口x中第1秒、第3秒、第4秒及第5秒的目標(biāo)采樣點的平均幅度值為50,那么平均幅度值與目標(biāo)最大值之間的差值的絕對值是大于閾值15的,那么說明這個目標(biāo)最大值需要被剔除,即刪除這個目標(biāo)最大值,再重新從窗口x中剩余的聲音幅度值中選取目標(biāo)最大值,如第3秒對應(yīng)的聲音幅度值為目標(biāo)最大值,再重新判斷這個重新選取的目標(biāo)最大值是否仍然需要被剔除,以此類推,由此提高最大值選取的準(zhǔn)確性及合理性,以此來提高音頻輸出控制的準(zhǔn)確性。
本實施例中,窗口的大小即對應(yīng)時刻采樣點的個數(shù)決定音頻的音量變化的頻度,而窗口的多少決定音量變化的平緩程度。本實施例中可以針對不同的應(yīng)用場景設(shè)置對窗口的大小和多少設(shè)置不同的值。例如,對于音樂等可以設(shè)置為變化頻度低且變化平緩的窗口大小;而對于以語音為主的應(yīng)用場景可以設(shè)置為變化頻度比較高且變化迅速的窗口大小。
圖14所示為本申請實施例在對目標(biāo)音頻輸出控制時的流程示意圖。本實施例中在用戶進(jìn)行操作的音量控制模塊處,增加聲音幅度統(tǒng)計模塊及系統(tǒng)自動音量控制模塊,由此,音頻數(shù)據(jù)從存儲設(shè)備被聲音輸入模塊讀取之后,經(jīng)過解碼或聲音處理模塊進(jìn)行解碼或其他處理之后,除了經(jīng)過用戶可調(diào)整的音量控制模塊之外,還利用聲音幅度統(tǒng)計模塊來獲取音頻數(shù)據(jù)的聲音幅度值及其最大值,并由此來確定增益,進(jìn)而將這個增益附加到用戶調(diào)整的增益上,經(jīng)過數(shù)模轉(zhuǎn)換模塊轉(zhuǎn)換為模擬信號之后,從揚聲器輸出。
其中,圖12中所示的單元模塊在圖14中以聲音幅度統(tǒng)計模塊及系統(tǒng)自動音量控制模塊實現(xiàn)。
以下為本實施例在具體實現(xiàn)中的應(yīng)用舉例方案:
第一方案:
假設(shè)聲音數(shù)據(jù)(目標(biāo)音頻)為di,用戶設(shè)置的增益為gu,本實施例中通過以下方式獲得自動添加的增益ga:
聲音數(shù)據(jù)的幅度定義為v=max(|di|),這時ga=1/v。
其中,在實際產(chǎn)品中計算v時,并不是簡單通過對聲音數(shù)據(jù)取最大值就結(jié)束,而是在獲取最大值后,通過計算最大值附近多個采樣點的平均幅度來判定是否需要去除,這樣可以防止不必要的干擾,提高準(zhǔn)確性。
第二方案:
聲音數(shù)據(jù)通過低通濾波器后,再計算最大值,此時不需要去噪。通過最大值來控制增益。
假設(shè)通過低通濾波器后聲音數(shù)據(jù)為dj,那么增益ga=1/max(|dj|)。
第三方案:
把聲音數(shù)據(jù)加窗后,計算每一個窗口的數(shù)據(jù)最大值(其中可以根據(jù)需要第一方案中提到的去除噪聲方法),當(dāng)前的增益ga通過當(dāng)前播放的窗口與前后n個窗口共同計算。在增益變化時,通過使用一個足夠長時間的漸變來防止用戶注意到音量變化。結(jié)合第二方案中的低通濾波器,如圖15中所示,對本實施例輸入聲音數(shù)據(jù)之后,經(jīng)過低通濾波器之后,進(jìn)行加窗等邏輯運算,實現(xiàn)增益控制,如聲音幅度的放大或縮小等,進(jìn)而實現(xiàn)聲音的控制輸出,改善用戶的收聽體驗。
這種方案可以支持針對較長的聲音片段(比如音樂會或者課程錄音)動態(tài)調(diào)整增益以防同一段聲音中聲音大小變化劇烈的情況。
其中,窗口大小決定音量變化的頻度,窗口的多少決定音量變化的平緩程度。針對不同的應(yīng)用場景可以設(shè)置不同的值。比如對于音樂等可以設(shè)置為變化頻度低且變化平緩的參數(shù)值。針對以語音為主的應(yīng)用場景可以設(shè)置為變化頻度比較高且變化迅速的參數(shù)值。
需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本申請的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本申請可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本申請可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、cd-rom、光學(xué)存儲器等)上實施的計算機程序產(chǎn)品的形式。
本申請是參照根據(jù)本申請實施例的方法、設(shè)備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導(dǎo)計算機或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
在一個典型的配置中,計算設(shè)備包括一個或多個處理器(cpu)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。
存儲器可能包括計算機可讀介質(zhì)中的非永久性存儲器,隨機存取存儲器(ram)和/或非易失性內(nèi)存等形式,如只讀存儲器(rom)或閃存(flashram)。存儲器是計算機可讀介質(zhì)的示例。
計算機可讀介質(zhì)包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術(shù)來實現(xiàn)信息存儲。信息可以是計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計算機的存儲介質(zhì)的例子包括,但不限于相變內(nèi)存(pram)、靜態(tài)隨機存取存儲器(sram)、動態(tài)隨機存取存儲器(dram)、其他類型的隨機存取存儲器(ram)、只讀存儲器(rom)、電可擦除可編程只讀存儲器(eeprom)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲器(cd-rom)、數(shù)字多功能光盤(dvd)或其他光學(xué)存儲、磁盒式磁帶,磁帶磁磁盤存儲或其他磁性存儲設(shè)備或任何其他非傳輸介質(zhì),可用于存儲可以被計算設(shè)備訪問的信息。按照本文中的界定,計算機可讀介質(zhì)不包括暫存電腦可讀媒體(transitorymedia),如調(diào)制的數(shù)據(jù)信號和載波。
以上對本申請所提供的一種音頻輸出控制方法及裝置進(jìn)行了詳細(xì)介紹,對所公開的實施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本申請。對這些實施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本申請的精神或范圍的情況下,在其它實施例中實現(xiàn)。因此,本申請將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。