音頻數(shù)據(jù)處理方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,尤其涉及一種音頻數(shù)據(jù)處理方法和裝置。
【背景技術(shù)】
[0002]在音頻會議通訊時,現(xiàn)有技術(shù)一是服務(wù)器全編全解(Full-transcoding)模式,該模式下在服務(wù)器(server)內(nèi)對應(yīng)每個與會終端分配獨立的音頻解碼器(decoder)和編碼器(encoder),獨立解碼后根據(jù)會議的發(fā)言情況,進行混音處理,并獨立編碼發(fā)送到終端?,F(xiàn)有技術(shù)二是中繼(relay)模式,在不用解碼的情況下,利用碼流的特殊標記字段提取音頻數(shù)據(jù)(aud1)的特性,來預(yù)判會議中的發(fā)言人以及發(fā)言人切換,將發(fā)言人的相應(yīng)數(shù)據(jù)轉(zhuǎn)發(fā)給所有的與會終端,這樣大大降低了后臺Server的CPU資源消耗。
[0003]但是,現(xiàn)有技術(shù)一中,由于編碼需要耗費較多的CPU資源,獨立配置編碼器會引起巨大的CPU資源開銷?,F(xiàn)有技術(shù)二,不進行編解碼的音頻數(shù)據(jù)傳輸會增加終端的下行帶寬消耗,引起較多的網(wǎng)絡(luò)流量開銷。
【發(fā)明內(nèi)容】
[0004]本發(fā)明旨在至少在一定程度上解決相關(guān)技術(shù)中的技術(shù)問題之一。
[0005]為此,本發(fā)明的一個目的在于提出一種音頻數(shù)據(jù)處理方法,該方法可以兼顧Full-transcoding模式和relay模式的優(yōu)點,盡量降低CPU消耗和網(wǎng)絡(luò)流量消耗。
[0006]本發(fā)明的另一個目的在于提出一種音頻數(shù)據(jù)處理裝置。
[0007]為達到上述目的,本發(fā)明第一方面實施例提出的音頻數(shù)據(jù)處理方法,包括:接收作為發(fā)送方的終端發(fā)送的解碼前的音頻數(shù)據(jù),以及,對所述解碼前的音頻數(shù)據(jù)進行解碼,得到解碼后的音頻數(shù)據(jù);確定作為接收方的終端的當前角色,如果當前角色是發(fā)言者,根據(jù)所述解碼前的音頻數(shù)據(jù)獲取要轉(zhuǎn)發(fā)的音頻數(shù)據(jù),或者,如果當前角色是聽眾,根據(jù)所述解碼后的音頻數(shù)據(jù)獲取要轉(zhuǎn)發(fā)的音頻數(shù)據(jù);將所述要轉(zhuǎn)發(fā)的音頻數(shù)據(jù),發(fā)送給所述作為接收方的終端。
[0008]本發(fā)明第一方面實施例提出的音頻數(shù)據(jù)處理方法,通過獲取解碼前的音頻數(shù)據(jù)和解碼后的音頻數(shù)據(jù),并根據(jù)當前角色的不同,采用不同的方式獲取要轉(zhuǎn)發(fā)的音頻數(shù)據(jù),可以兼顧Full-transcoding模式和relay模式的優(yōu)點,盡量降低CPU消耗和網(wǎng)絡(luò)流量消耗。
[0009]為達到上述目的,本發(fā)明第二方面實施例提出的音頻數(shù)據(jù)處理裝置,包括:接收及解碼模塊,用于接收作為發(fā)送方的終端發(fā)送的解碼前的音頻數(shù)據(jù),以及,對所述解碼前的音頻數(shù)據(jù)進行解碼,得到解碼后的音頻數(shù)據(jù);獲取模塊,用于確定作為接收方的終端的當前角色,如果當前角色是發(fā)言者,根據(jù)所述解碼前的音頻數(shù)據(jù)獲取要轉(zhuǎn)發(fā)的音頻數(shù)據(jù),或者,如果當前角色是聽眾,根據(jù)所述解碼后的音頻數(shù)據(jù)獲取要轉(zhuǎn)發(fā)的音頻數(shù)據(jù);發(fā)送模塊,用于將所述要轉(zhuǎn)發(fā)的音頻數(shù)據(jù),發(fā)送給所述作為接收方的終端。
[0010]本發(fā)明第二方面實施例提出的音頻數(shù)據(jù)處理裝置,通過獲取解碼前的音頻數(shù)據(jù)和解碼后的音頻數(shù)據(jù),并根據(jù)當前角色的不同,采用不同的方式獲取要轉(zhuǎn)發(fā)的音頻數(shù)據(jù),可以兼顧Full-transcoding模式和relay模式的優(yōu)點,盡量降低CPU消耗和網(wǎng)絡(luò)流量消耗。
[0011]本發(fā)明附加的方面和優(yōu)點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發(fā)明的實踐了解到。
【附圖說明】
[0012]本發(fā)明上述的和/或附加的方面和優(yōu)點從下面結(jié)合附圖對實施例的描述中將變得明顯和容易理解,其中:
[0013]圖1是本發(fā)明一實施例提出的音頻數(shù)據(jù)處理方法的流程示意圖;
[0014]圖2是本發(fā)明實施例對應(yīng)的音頻處理系統(tǒng)的示意圖;
[0015]圖3是本發(fā)明另一實施例提出的音頻數(shù)據(jù)處理方法的流程示意圖;
[0016]圖4是本發(fā)明實施例中確定要轉(zhuǎn)發(fā)的音頻數(shù)據(jù)的一種實現(xiàn)流程示意圖;
[0017]圖5是本發(fā)明另一實施例提出的音頻數(shù)據(jù)處理方法的流程示意圖;
[0018]圖6是本發(fā)明另一實施例提出的音頻數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖;
[0019]圖7是本發(fā)明另一實施例提出的音頻數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖。
【具體實施方式】
[0020]下面詳細描述本發(fā)明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的模塊或具有相同或類似功能的模塊。下面通過參考附圖描述的實施例是示例性的,僅用于解釋本發(fā)明,而不能理解為對本發(fā)明的限制。相反,本發(fā)明的實施例包括落入所附加權(quán)利要求書的精神和內(nèi)涵范圍內(nèi)的所有變化、修改和等同物。
[0021]圖1是本發(fā)明一實施例提出的音頻數(shù)據(jù)處理方法的流程示意圖,本實施例的執(zhí)行主體是服務(wù)器(server),該方法包括:
[0022]Sll:接收作為發(fā)送方的終端發(fā)送的解碼前的音頻數(shù)據(jù),以及,對所述解碼前的音頻數(shù)據(jù)進行解碼,得到解碼后的音頻數(shù)據(jù)。
[0023]參見圖2,假設(shè)終端分別用A,B,C,D,E表示,終端可以發(fā)送音頻數(shù)據(jù),也可以接收音頻數(shù)據(jù),其中,作為發(fā)送方時用終端21表示。
[0024]在服務(wù)器22內(nèi),對應(yīng)每個發(fā)送方,分別設(shè)置接收模塊(Recv)和解碼模塊(Dec),接收模塊用于接收發(fā)送方發(fā)送的音頻數(shù)據(jù),該音頻數(shù)據(jù)是解碼前的音頻數(shù)據(jù),解碼模塊用于對接收的音頻數(shù)據(jù)進行解碼,得到解碼后的音頻數(shù)據(jù)。如圖2所示,經(jīng)過接收模塊和解碼模塊,對應(yīng)每個發(fā)送方可以得到兩種數(shù)據(jù),分別是解碼前的音頻數(shù)據(jù)和解碼后的音頻數(shù)據(jù),在圖2中,兩種數(shù)據(jù)分別用不同的填充方式表示。
[0025]S12:確定作為接收方的終端的當前角色,如果當前角色是發(fā)言者,根據(jù)所述解碼前的音頻數(shù)據(jù)獲取要轉(zhuǎn)發(fā)的音頻數(shù)據(jù),或者,如果當前角色是聽眾,根據(jù)所述解碼后的音頻數(shù)據(jù)獲取要轉(zhuǎn)發(fā)的音頻數(shù)據(jù)。
[0026]參見圖2,在服務(wù)器內(nèi),該步驟可以具體由轉(zhuǎn)發(fā)決策模塊(forwarding decis1nmodule)執(zhí)行。
[0027]當前角色可以包括:發(fā)言者,或者,聽眾。
[0028]可以理解的是,在不同的時刻,發(fā)言者或者聽眾是可以切換的。
[0029]類似relay模式,轉(zhuǎn)發(fā)決策模塊可以根據(jù)音頻特性,在不解碼的前提下確定出發(fā)言者,以及將不是發(fā)言者的其余終端確定為聽眾。音頻特性例如為音頻數(shù)據(jù)的能量值。
[0030]例如,轉(zhuǎn)發(fā)決策模塊可以接收到來自A,B,C,D,E的解碼前的音頻數(shù)據(jù),之后可以檢測每個解碼前的音頻數(shù)據(jù)的能量值,當一個終端的解碼前的音頻數(shù)據(jù)的能量值大于預(yù)設(shè)值,則表明該終端是發(fā)言者,否則是聽眾。
[0031]根據(jù)當前角色的不同,可以采用不同的處理方式得到要轉(zhuǎn)發(fā)的音頻數(shù)據(jù)。例如,對于發(fā)言者,可以將其他發(fā)言者的解碼前的音頻數(shù)據(jù)打包,而對于聽眾,可以將發(fā)言者的解碼后的音頻數(shù)據(jù)進行混音,并對混音后的數(shù)據(jù)進行編碼。
[0032]可選的,參見圖3,所述根據(jù)所述當前角色,獲取要轉(zhuǎn)發(fā)的音頻數(shù)據(jù),包括:
[0033]S31:如果所述當前角色是發(fā)言者,獲取除自身之外的其他發(fā)言者的解碼前的音頻數(shù)據(jù),并將所述解碼前的音頻數(shù)據(jù)打包后確定為要轉(zhuǎn)發(fā)的音頻數(shù)據(jù);
[0034]例如,參見圖2,如果發(fā)言者包括:A,B,C,則對應(yīng)A,獲取B和C的解碼前的音頻數(shù)據(jù),將B和C的解碼前的音頻數(shù)據(jù)打包后確定為要轉(zhuǎn)發(fā)給A的音頻數(shù)據(jù)。對應(yīng)B,獲取A和C的解碼前的音頻數(shù)據(jù),將A和C的解碼前的音頻數(shù)據(jù)打包后確定為要轉(zhuǎn)發(fā)給B的音頻數(shù)據(jù)。對應(yīng)C,獲取A和B的解碼前的音頻數(shù)據(jù),將A和B的解碼前的音頻數(shù)據(jù)打包后確定為要轉(zhuǎn)發(fā)給C的音頻數(shù)據(jù)。