本發(fā)明涉及導(dǎo)播技術(shù)領(lǐng)域,具體涉及一種音頻混音方法、裝置和電子設(shè)備。
背景技術(shù):
隨著直播業(yè)務(wù)的不斷增長,各種新需求也越來越多,例如多機位切換、多場景切換、直播點播切換、分屏顯示、音頻混音等等,在傳統(tǒng)直播中,這些工作的完成是依賴于硬件導(dǎo)播臺進行,這種方式不但設(shè)備成本較高,攜帶不便,且操作難度較大,所以云導(dǎo)播應(yīng)運而生。云導(dǎo)播的一種重要模式就是將多路音視頻信號合成一路輸出,所以其中涉及到音頻混音的操作。音頻混音是指將多路輸入音頻數(shù)據(jù)按指定權(quán)重進行混合并輸出的處理方式,屬于云導(dǎo)播中音頻處理的重要一環(huán)。
現(xiàn)有云導(dǎo)播的音頻采集和混音輸出是單線程架構(gòu)設(shè)計,從最后一路音頻往前,依次循環(huán)采集處理每一路每一幀的音頻數(shù)據(jù)。由于混音算法一般是對各路輸入的音頻數(shù)據(jù)進行線性疊加,要求進行疊加的每一路音頻數(shù)據(jù)具有相同的基準采樣點數(shù),因此在疊加前需要確定出基準采樣點數(shù),現(xiàn)有的處理方式是:一般以輸入的第一路音頻數(shù)據(jù)為起始進行尋找基準路的基準采樣點,除第一路外,均是將當前路的一幀PCM音頻數(shù)據(jù)讀入,放入該當前路對應(yīng)的FIFO(First Input First Output,先入先出隊列,這是一種傳統(tǒng)的按序執(zhí)行方法,先進入的指令先完成并引退,跟著才執(zhí)行第二條指令)中,當處理至第一路時,讀取第一路的一幀PCM音頻數(shù)據(jù),并和其余路FIFO中已有的音頻數(shù)據(jù)進行采樣點數(shù)大小比較,如果第一路音頻數(shù)據(jù)的采樣點數(shù)最小,則以此最小采樣點數(shù)為基準采樣點數(shù),進行加權(quán)累加的混音處理,并輸出該最小采樣點數(shù)的一幀混音后音頻數(shù)據(jù),其余路FIFO中對應(yīng)音頻數(shù)據(jù)進行相應(yīng)的出隊列操作。如果第一路音頻數(shù)據(jù)的采樣點數(shù)不是最小,則拋棄第一路的此幀數(shù)據(jù),進入下一輪多路的循環(huán),直至尋得最小采樣點數(shù)。
這種處理方式流程相對簡單,易于實現(xiàn)。但存在如下幾個問題:其一是多路音頻采集解碼和音頻混音為串行處理,相互間高耦合,架構(gòu)不夠清晰,不利于維護及后續(xù)開發(fā),并且沒有充分利用CPU性能;其二是混音處理邏輯過于復(fù)雜,對于每一路音頻數(shù)據(jù)的處理都要以基準路音頻數(shù)據(jù)的采樣點數(shù)為基準,如果基準路發(fā)生變化,如被切換掉等,整個混音處理過程就會受到影響,并需要重新尋找基準路,過程繁瑣;其三是云導(dǎo)播所處的網(wǎng)絡(luò)環(huán)境十分復(fù)雜,無法保證每一路音頻均可無卡頓的進行輸入,所以當某一路音頻流發(fā)生卡頓時,就會造成整個音頻處理卡頓,也就是說當某一路音頻流傳輸中出現(xiàn)問題時,每一路的音頻均無法正常輸出,這將極大地影響用戶的體驗。
因此,如何簡化混音處理過程、提高混音處理效率成為一個亟待解決的技術(shù)問題。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明實施例提供了一種音頻混音方法、裝置和電子設(shè)備,以解決現(xiàn)有技術(shù)中混音處理過程復(fù)雜、混音處理效率低的問題。
根據(jù)第一方面,本發(fā)明實施例提供了一種音頻混音方法,適用于混音裝置,比如導(dǎo)播過程中的混音器等,包括:獲取多路音頻采集器的音頻數(shù)據(jù);對每一路所述音頻采集器的音頻數(shù)據(jù),分別獲取對應(yīng)音頻采集器中的當前幀音頻數(shù)據(jù)的采樣后的采樣點數(shù);判斷所述采樣點數(shù)是否小于預(yù)設(shè)采樣點數(shù);如果所述采樣點數(shù)小于所述預(yù)設(shè)采樣點數(shù),則從所述音頻采集器中提取后續(xù)幀音頻數(shù)據(jù)進行采樣,將采樣后的音頻數(shù)據(jù)加入所述當前幀音頻數(shù)據(jù)中作為待定音頻隊列,直至所述待定音頻隊列中的所述采樣點數(shù)大于或等于所述預(yù)設(shè)采樣點數(shù),將所述待定音頻隊列作為目標音頻隊列;將每路音頻采集器得到的所述目標音頻隊列進行混音處理,得到一幀輸出混音音頻。
可選地,所述當前幀音頻數(shù)據(jù)為第i幀,所述從所述音頻采集器中提取后續(xù)幀音頻數(shù)據(jù)進行采樣包括:如果在第一預(yù)設(shè)時間內(nèi)第i+j幀音頻數(shù)據(jù)未提取到,則從所述音頻采集器中提取第i+j-1幀音頻數(shù)據(jù)進行采樣,其中i,j為大于0的整數(shù)。
可選地,所述獲取音頻采集器中的當前幀音頻數(shù)據(jù)的采樣后的采樣點數(shù)的步驟中與所述從所述音頻采集器中提取后續(xù)幀音頻數(shù)據(jù)進行采樣的步驟中的采樣頻率相同。
可選地,還包括:每隔第二預(yù)設(shè)時間分別對每一路所述音頻采集器的音頻數(shù)據(jù)執(zhí)行一次建立目標音頻隊列并進行混音處理的步驟,得到總混音音頻。
根據(jù)第二方面,本發(fā)明實施例提供了一種音頻混音裝置,包括:第一獲取模塊,用于獲取多路音頻采集器的音頻數(shù)據(jù);第二獲取模塊,用于對每一路所述音頻采集器的音頻數(shù)據(jù),分別獲取對應(yīng)音頻采集器中的當前幀音頻數(shù)據(jù)的采樣后的采樣點數(shù);判斷模塊,用于判斷所述采樣點數(shù)是否小于預(yù)設(shè)采樣點數(shù);提取模塊,用于如果所述采樣點數(shù)小于所述預(yù)設(shè)采樣點數(shù),則從所述音頻采集器中提取后續(xù)幀音頻數(shù)據(jù)進行采樣,將采樣后的音頻數(shù)據(jù)加入所述當前幀音頻數(shù)據(jù)中作為待定音頻隊列,直至所述待定音頻隊列中的所述采樣點數(shù)大于或等于所述預(yù)設(shè)采樣點數(shù),將所述待定音頻隊列作為目標音頻隊列;第一混音模塊,用于將每路音頻采集器得到的所述目標音頻隊列進行混音處理,得到一幀輸出混音音頻。
可選地,所述當前幀音頻數(shù)據(jù)為第i幀,所述提取模塊包括:提取單元,用于如果在第一預(yù)設(shè)時間內(nèi)第i+j幀音頻數(shù)據(jù)未提取到,則從所述音頻采集器中提取第i+j-1幀音頻數(shù)據(jù)進行采樣,其中i,j為大于0的整數(shù)。
可選地,所述獲取音頻采集器中的當前幀音頻數(shù)據(jù)的采樣后的采樣點數(shù)的步驟中與所述從所述音頻采集器中提取后續(xù)幀音頻數(shù)據(jù)進行采樣的步驟中的采樣頻率相同。
可選地,還包括:第二混音模塊,用于每隔第二預(yù)設(shè)時間分別對每一路所述音頻采集器的音頻數(shù)據(jù)執(zhí)行一次建立目標音頻隊列并進行混音處理的步驟,得到總混音音頻。
根據(jù)第三方面,本發(fā)明實施例提供了一種電子設(shè)備,包括:至少一個處理器;以及與所述至少一個處理器通信連接的存儲器;其中,所述存儲器存儲有可被所述至少一個處理器執(zhí)行的指令,所述指令被所述至少一個處理器執(zhí)行,以使所述至少一個處理器執(zhí)行第一方面或者第一方面的任意一種可選方式中所述的音頻混音方法。
根據(jù)第四方面,本發(fā)明實施例提供了一種非暫態(tài)計算機可讀存儲介質(zhì),所述非暫態(tài)計算機可讀存儲介質(zhì)存儲計算機指令,所述計算機指令用于使所述計算機執(zhí)行第一方面或者第一方面的任意一種可選方式中所述的音頻混音方法。
根據(jù)第無方面,本發(fā)明實施例提供了一種計算機程序產(chǎn)品,所述計算機程序產(chǎn)品包括存儲在非暫態(tài)計算機可讀存儲介質(zhì)上的計算程序,所述計算機程序包括程序指令,當所述程序指令被計算機執(zhí)行時,使所述計算機執(zhí)行第一方面或者第一方面的任意一種可選方式中所述的音頻混音方法。
本發(fā)明實施例所提供的一種音頻混音方法、裝置和電子設(shè)備,通過以預(yù)設(shè)采樣點數(shù)為基準,分別為多路音頻采集器中的音頻數(shù)據(jù)建立對應(yīng)的目標音頻隊列,然后將多路目標音頻隊列進行混音處理,即可得到一幀輸出混音音頻,對后續(xù)幀的多路音頻數(shù)據(jù)每隔預(yù)設(shè)時間進行一次這種混音處理,最終可得到多路音頻數(shù)據(jù)的總輸出混音音頻,與現(xiàn)有技術(shù)相比,避免了尋找基準采樣點數(shù)的處理步驟,不僅大幅簡化了混音處理過程,而且對于未提取到后續(xù)幀音頻數(shù)據(jù)的情況,可以使用該后續(xù)幀的前一幀的音頻數(shù)據(jù)進行補充,解決了因某一路音頻數(shù)據(jù)發(fā)生卡頓而造成整個混音音頻無法正常輸出的問題,提高了音頻混音的處理效率。
附圖說明
通過參考附圖會更加清楚的理解本發(fā)明的特征和優(yōu)點,附圖是示意性的而不應(yīng)理解為對本發(fā)明進行任何限制,在附圖中:
圖1示出了根據(jù)本發(fā)明實施例的音頻混音方法的流程圖;
圖2示出了根據(jù)本發(fā)明實施例的音頻混音裝置的示意圖;
圖3示出了根據(jù)本發(fā)明實施例的電子設(shè)備的示意圖。
具體實施方式
為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
實施例
本實施例提供一種建立目標音頻隊列的方法,適用于混音裝置,比如導(dǎo)播中的混音器等,如圖1所示,包括如下步驟:
S11:獲取多路音頻采集器的音頻數(shù)據(jù),此處,對于多路音頻數(shù)據(jù)可以多線程進行處理,即每一路音頻數(shù)據(jù)都采用一個獨立的解碼線程進行解碼,并將每一路解碼后的音頻數(shù)據(jù)逐幀放入其音頻采集器對應(yīng)的buffer(緩沖器)中進行緩存。采用并行處理各路音頻數(shù)據(jù),使各路音頻數(shù)據(jù)處理之間均保持相互獨立,降低了數(shù)據(jù)之間的耦合性,提高了處理結(jié)果的準確性。
S12:對每一路所述音頻采集器的音頻數(shù)據(jù),分別獲取對應(yīng)音頻采集器中的當前幀音頻數(shù)據(jù)的采樣后的采樣點數(shù)。此處,當前幀音頻數(shù)據(jù)可以是實時采集的音頻數(shù)據(jù),經(jīng)過解碼后逐幀放入緩沖器的PCM數(shù)據(jù),在實際應(yīng)用場景中,需要從緩沖器中獲取到該當前幀音頻數(shù)據(jù),并以混音輸出需要的采樣頻率對其進行采樣,然后獲取采樣后的當前幀音頻數(shù)據(jù)的采樣點數(shù)。
S13:判斷采樣點數(shù)是否小于預(yù)設(shè)采樣點數(shù)。此處預(yù)設(shè)采樣點數(shù)為預(yù)先設(shè)置的基準采樣點數(shù),分別將每一路對應(yīng)的采樣點數(shù)與預(yù)設(shè)采樣點數(shù)進行比較,該預(yù)設(shè)采樣點數(shù)可以根據(jù)實際使用場景而定,避免了混音過程中尋找基準路音頻數(shù)據(jù)來確定基準音頻采樣點數(shù)的過程,比如,當現(xiàn)有的基準路被切掉時,現(xiàn)有技術(shù)中需要重新尋找基準路才能進行后續(xù)混音處理,而本方案中由于預(yù)設(shè)采樣點數(shù)與基準路無關(guān),則不需要這一過程,這大大簡化了混音處理步驟。當采樣點數(shù)小于預(yù)設(shè)采樣點數(shù)時,執(zhí)行步驟S14,當采樣點數(shù)大于或等于預(yù)設(shè)采樣點數(shù)時,將對當前幀音頻數(shù)據(jù)采樣后的音頻數(shù)據(jù)作為目標音頻隊列。
S14:如果采樣點數(shù)小于預(yù)設(shè)采樣點數(shù),說明該當前幀音頻數(shù)據(jù)的采樣點數(shù)未達到進行混音的采樣點數(shù)要求,則從音頻采集器中提取后續(xù)幀音頻數(shù)據(jù)進行采樣,將采樣后的音頻數(shù)據(jù)加入當前幀音頻數(shù)據(jù)中作為待定音頻隊列,直至待定音頻隊列中的采樣點數(shù)大于或等于預(yù)設(shè)采樣點數(shù)時,說明該待定音頻隊列中的音頻數(shù)據(jù)的采樣點數(shù)達到了進行混音的采樣點數(shù)的要求,則將待定音頻隊列作為目標音頻隊列,具體地,此處待定音頻隊列可以是FIFO的形式,在初始時可以先將當前幀音頻數(shù)據(jù)采樣后放入對應(yīng)的FIFO,然后將后續(xù)補充提取的音頻數(shù)據(jù)采樣后也放入該FIFO,當該FIFO中的采樣點數(shù)滿足預(yù)設(shè)采樣點數(shù)的要求時,將此時的FIFO作為目標音頻隊列。
作為一種可選的實施方式,上述步驟S12-S14可以采用如下方式實現(xiàn):具體地,以n路輸入音頻(即音頻采集器的音頻數(shù))為例,詳細處理步驟可以如下:
1.對第k路音頻進行音頻處理前初始化工作,k小于等于n;
2.將第k路音頻對應(yīng)的FIFO中PCM音頻數(shù)據(jù)(即當前幀音頻數(shù)據(jù))的采樣點數(shù)和nb_samples(即預(yù)設(shè)采樣點數(shù),此處可以為輸出一幀混音音頻所要求的采樣點數(shù))進行比較,如果小于nb_samples則繼續(xù)執(zhí)行步驟3,如果大于或等于nb_samples,說明第k路音頻對應(yīng)的FIFO滿足要求,則將其作為第k路音頻對應(yīng)的目標音頻隊列,然后跳至步驟4。
3.從第k路音頻的音頻采集器的buffer中依次提取下一幀音頻數(shù)據(jù)(如果提取不到,則認為該下一幀卡頓,并使用第k路音頻的音頻采集器的buffer中的最后一幀音頻數(shù)據(jù)(即當前幀音頻數(shù)據(jù))進行補充),并根據(jù)輸出混音音頻所要求的采樣率對其進行重采樣,將采樣后的音頻數(shù)據(jù)放入該路對應(yīng)的FIFO中,并跳至步驟2;
4.判斷k是否小于n,如果不小于n執(zhí)行步驟S15,否則令k=k+1后,跳至步驟1;最終建立每一路音頻采集器對應(yīng)的目標音頻隊列FIFO,
S15:將每路音頻采集器得到的所述目標音頻隊列進行混音處理,得到一幀輸出混音音頻。此處混音處理可以采取獨立的混音線程進行處理,避免混音處理與其他處理過程的耦合性。即對步驟S14中最終得到的的n路音頻采集器對應(yīng)的FIFO(目標音頻隊列)進行混音處理,輸出混音后一幀音頻數(shù)據(jù)。
作為一種可選地實施方式,當前幀音頻數(shù)據(jù)為第i幀,步驟S14包括:如果在第一預(yù)設(shè)時間內(nèi)第i+j幀音頻數(shù)據(jù)未提取到,則從所述音頻采集器中提取第i+j-1幀音頻數(shù)據(jù)進行采樣,其中i,j為大于0的整數(shù)。此處,如果在提取后續(xù)幀的音頻數(shù)據(jù)時,在第一預(yù)設(shè)時間內(nèi)未能提取到響應(yīng)的音頻數(shù)據(jù),說明該幀可能出現(xiàn)卡頓,則使用該后續(xù)幀的前一幀音頻數(shù)據(jù)作為補充,具體地,比如,在i=3時,即當前幀音頻數(shù)據(jù)為第3幀,如果第3幀音頻數(shù)據(jù)采樣后的采樣點數(shù)沒有達到預(yù)設(shè)采樣點數(shù),則需要提取音頻采集器中的第4幀(即j=1時,則i+j=4)的音頻數(shù)據(jù)進行采樣,如果在第一預(yù)設(shè)時間內(nèi)未提取到第4幀,說明該路音頻在第4幀時可能出現(xiàn)卡頓,為了避免整路音頻出現(xiàn)卡頓,則再次提取第3幀音頻數(shù)據(jù)進行采樣后放入待定音頻隊列中,從而避免了該路音頻因卡頓而無法正常建立目標音頻隊列的問題。需要說明的是,第一預(yù)設(shè)時間t1可以由輸出混音音頻所要求的采樣頻率samplerate和預(yù)設(shè)采樣點數(shù)nb_samples共同決定,比如可以采用如下公式計算(其中t1的單位為微秒):
自然地,也可以根據(jù)實際需要來設(shè)定預(yù)設(shè)時間,只要能實現(xiàn)本實施例的技術(shù)方案的預(yù)設(shè)時間均適用于本發(fā)明。另外,本實施例中默認為在第一預(yù)設(shè)時間后,該路音頻采集器已準備好了相關(guān)的音頻數(shù)據(jù),所以如果在從該路音頻采集器的buffer(緩沖器)中獲取不到所需的音頻數(shù)據(jù),則判斷為該路發(fā)生卡頓,并通過上一幀音頻數(shù)據(jù)進行補足。
作為一種可選地實施方式,步驟S11中與步驟S13中的采樣頻率相同,都是輸出混音音頻要求的采樣頻率,以保證通過該方案建立的目標音頻隊列進行混音后,混音音頻可以正常輸出。
作為一種可選地實施方式,還可以包括:每隔第二預(yù)設(shè)時間分別對每一路所述音頻采集器的音頻數(shù)據(jù)執(zhí)行一次建立目標音頻隊列并進行混音處理的步驟,得到總混音音頻。即每隔第二預(yù)設(shè)時間采用如圖1所示的音頻混音方法分別對每一路音頻采集器的音頻數(shù)據(jù)進行處理,最終可以得到總混音音頻,此處,第二預(yù)設(shè)時間t2由輸出混音音頻所要求的采樣頻率samplerate和預(yù)設(shè)采樣點數(shù)nb_samples共同決定,比如可以采用如下公式計算(其中t2的單位為微秒):
本實施例提供的音頻混音方法,通過以預(yù)設(shè)采樣點數(shù)為基準,分別為多路音頻采集器中的音頻數(shù)據(jù)建立對應(yīng)的目標音頻隊列,對未滿足預(yù)設(shè)采樣點數(shù)要求的當前幀音頻數(shù)據(jù),從音頻采集器中提取后續(xù)幀音頻數(shù)據(jù)進行補充得到待定音頻隊列,并將滿足要求的待定音頻隊列最為最終的目標音頻隊列,然后將多路目標音頻隊列進行混音處理,即可得到一幀輸出混音音頻,對后續(xù)幀的多路音頻數(shù)據(jù)每隔預(yù)設(shè)時間進行一次這種混音處理,最終可得到多路音頻數(shù)據(jù)的總輸出混音音頻,與現(xiàn)有技術(shù)相比,避免了尋找基準采樣點數(shù)的處理步驟,不僅大幅簡化了混音處理過程,而且對于未提取到后續(xù)幀音頻數(shù)據(jù)的情況,可以使用該后續(xù)幀的前一幀的音頻數(shù)據(jù)進行補充,解決了因某一路音頻數(shù)據(jù)發(fā)生卡頓而造成整個混音音頻無法正常輸出的問題,提高了音頻處理效率。
本實施例提供一種音頻混音裝置,適用于混音設(shè)備,比如導(dǎo)播中的混音器等,如圖2所示,包括第一獲取模塊31、第二獲取模塊32判斷模塊33和提取模塊34、第一混音模35,各模塊功能如下:
第一獲取模塊31,用于獲取多路音頻采集器的音頻數(shù)據(jù);具體可參見如圖1所示的實施例中對步驟S11的相關(guān)描述。
第一獲取模塊32,用于對每一路所述音頻采集器的音頻數(shù)據(jù),分別獲取對應(yīng)音頻采集器中的當前幀音頻數(shù)據(jù)的采樣后的采樣點數(shù),具體可參見如圖1所示的實施例中對步驟S12的相關(guān)描述。
判斷模塊33,用于判斷采樣點數(shù)是否小于預(yù)設(shè)采樣點數(shù),具體可參見如圖1所示的實施例中對步驟S13的相關(guān)描述。
提取模塊34,用于如果采樣點數(shù)小于預(yù)設(shè)采樣點數(shù),則從音頻采集器中提取后續(xù)幀音頻數(shù)據(jù)進行采樣,將采樣后的音頻數(shù)據(jù)加入當前幀音頻數(shù)據(jù)中作為待定音頻隊列,直至待定音頻隊列中的采樣點數(shù)大于或等于預(yù)設(shè)采樣點數(shù),將待定音頻隊列作為目標音頻隊列。具體可參見如圖1所示的實施例中對步驟S14的相關(guān)描述。
第一混音模塊35,用于將每路音頻采集器得到的所述目標音頻隊列進行混音處理,得到一幀輸出混音音頻。具體可參見如圖1所示的實施例中對步驟S15的相關(guān)描述。
作為一種可選地實施方式,當前幀音頻數(shù)據(jù)為第i幀,提取模塊34包括:提取單元341,用于如果在第一預(yù)設(shè)時間內(nèi)第i+j幀音頻數(shù)據(jù)未提取到,則從音頻采集器中提取第i+j-1幀音頻數(shù)據(jù)進行采樣,其中i,j為大于0的整數(shù)。具體可參見如圖1所示的實施例中對步驟S14的可選方案的相關(guān)描述。
作為一種可選地實施方式,獲取音頻采集器中的當前幀音頻數(shù)據(jù)的采樣后的采樣點數(shù)的步驟中與從音頻采集器中提取后續(xù)幀音頻數(shù)據(jù)進行采樣的步驟中的采樣頻率相同。具體可參見如圖1所示的實施例中的相關(guān)描述。
作為一種可選地實施方式,還可以包括:第二混音模塊36,用于每隔第二預(yù)設(shè)時間分別對每一路所述音頻采集器的音頻數(shù)據(jù)執(zhí)行一次建立目標音頻隊列并進行混音處理的步驟,得到總混音音頻。具體可參見如圖1所示的實施例中的相關(guān)描述。
本實施例提供的音頻混音裝置,通過以預(yù)設(shè)采樣點數(shù)為基準,分別為多路音頻采集器中的音頻數(shù)據(jù)建立對應(yīng)的目標音頻隊列,對未滿足預(yù)設(shè)采樣點數(shù)要求的當前幀音頻數(shù)據(jù),從音頻采集器中提取后續(xù)幀音頻數(shù)據(jù)進行補充得到待定音頻隊列,并將滿足要求的待定音頻隊列最為最終的目標音頻隊列,然后將多路目標音頻隊列進行混音處理,即可得到一幀輸出混音音頻,對后續(xù)幀的多路音頻數(shù)據(jù)每隔預(yù)設(shè)時間進行一次這種混音處理,最終可得到多路音頻數(shù)據(jù)的總輸出混音音頻,與現(xiàn)有技術(shù)相比,避免了尋找基準采樣點數(shù)的處理步驟,不僅大幅簡化了混音處理過程,而且對于未提取到后續(xù)幀音頻數(shù)據(jù)的情況,可以使用該后續(xù)幀的前一幀的音頻數(shù)據(jù)進行補充,解決了因某一路音頻數(shù)據(jù)發(fā)生卡頓而造成整個混音音頻無法正常輸出的問題,提高了音頻處理效率。
圖3是本發(fā)明實施例提供的音頻混音方法的電子設(shè)備的硬件結(jié)構(gòu)示意圖,如圖3所示,該設(shè)備包括一個或多個處理器310以及存儲器320,圖3中以一個處理器310為例。
音頻混音方法的設(shè)備還可以包括:輸入裝置330和輸出裝置340。
處理器310、存儲器320、輸入裝置330和輸出裝置340可以通過總線或者其他方式連接,圖3中以通過總線連接為例。
處理器310可以為中央處理器(Central Processing Unit,CPU)。處理器310還可以為其他通用處理器、數(shù)字信號處理器(Digital Signal Processor,DSP)、專用集成電路(Application Specific Integrated Circuit,ASIC)、現(xiàn)場可編程門陣列(Field-Programmable Gate Array,F(xiàn)PGA)或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件等芯片,或者上述各類芯片的組合。通用處理器可以是微處理器或者該處理器也可以是任何常規(guī)的處理器等。
存儲器320作為一種非暫態(tài)計算機可讀存儲介質(zhì),可用于存儲非暫態(tài)軟件程序、非暫態(tài)計算機可執(zhí)行程序以及模塊,如本申請實施例中的音頻混音方法對應(yīng)的程序指令/模塊(例如,附圖2所示的第一獲取模塊31、第二獲取模塊32、判斷模塊33、提取模塊34和第一混音模塊35)。處理器310通過運行存儲在存儲器320中的非暫態(tài)軟件程序、指令以及模塊,從而執(zhí)行服務(wù)器的各種功能應(yīng)用以及數(shù)據(jù)處理,即實現(xiàn)上述方法實施例音頻混音方法。
存儲器320可以包括存儲程序區(qū)和存儲數(shù)據(jù)區(qū),其中,存儲程序區(qū)可存儲操作系統(tǒng)、至少一個功能所需要的應(yīng)用程序;存儲數(shù)據(jù)區(qū)可存儲根據(jù)音頻混音裝置的使用所創(chuàng)建的數(shù)據(jù)等。此外,存儲器320可以包括高速隨機存取存儲器,還可以包括非暫態(tài)存儲器,例如至少一個磁盤存儲器件、閃存器件、或其他非暫態(tài)固態(tài)存儲器件。在一些實施例中,存儲器320可選包括相對于處理器310遠程設(shè)置的存儲器,這些遠程存儲器可以通過網(wǎng)絡(luò)連接至音頻混音裝置。上述網(wǎng)絡(luò)的實例包括但不限于互聯(lián)網(wǎng)、企業(yè)內(nèi)部網(wǎng)、局域網(wǎng)、移動通信網(wǎng)及其組合。
輸入裝置330可接收輸入的數(shù)字或字符信息,以及產(chǎn)生與音頻混音裝置的用戶設(shè)置以及功能控制有關(guān)的鍵信號輸入。輸出裝置340可包括顯示屏等顯示設(shè)備。
所述一個或者多個模塊存儲在所述存儲器320中,當被所述一個或者多個處理器310執(zhí)行時,執(zhí)行如圖1所示的方法。
上述產(chǎn)品可執(zhí)行本發(fā)明實施例所提供的方法,具備執(zhí)行方法相應(yīng)的功能模塊和有益效果。未在本實施例中詳盡描述的技術(shù)細節(jié),具體可參見如圖1所示的實施例中的相關(guān)描述。
本發(fā)明實施例還提供了一種非暫態(tài)計算機存儲介質(zhì),所述計算機存儲介質(zhì)存儲有計算機可執(zhí)行指令,該計算機可執(zhí)行指令可執(zhí)行上述任意方法實施例中的音頻混音方法。其中,所述存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory,ROM)、隨機存儲記憶體(Random Access Memory,RAM)、快閃存儲器(Flash Memory)、硬盤(Hard Disk Drive,縮寫:HDD)或固態(tài)硬盤(Solid-State Drive,SSD)等;所述存儲介質(zhì)還可以包括上述種類的存儲器的組合。
本領(lǐng)域技術(shù)人員可以理解,實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關(guān)的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(ROM)或隨機存儲記憶體(RAM)等。
雖然結(jié)合附圖描述了本發(fā)明的實施例,但是本領(lǐng)域技術(shù)人員可以在不脫離本發(fā)明的精神和范圍的情況下作出各種修改和變型,這樣的修改和變型均落入由所附權(quán)利要求所限定的范圍之內(nèi)。