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