音頻合成方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及多媒體處理領(lǐng)域,特別涉及一種音頻合成方法及裝置。
【背景技術(shù)】
[0002]在線直播是目前非常受用戶歡迎的互聯(lián)網(wǎng)應(yīng)用。
[0003]通常采用網(wǎng)頁客戶端或者應(yīng)用程序客戶端向用戶提供在線直播服務(wù)。如果用戶需要在在線直播中演唱歌曲,需要在電腦中安裝具有音頻混合能力的獨立聲卡。在演唱歌曲的過程中,由該獨立聲卡將伴奏音頻流和麥克風采集到的演唱音頻流合成為混音音頻流,然后播放該混音音頻流。
[0004]在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問題:由于大部分電腦中自帶的集成聲卡都不具有音頻混合能力,所以大部分用戶都無法在在線直播服務(wù)中演唱歌曲。
【發(fā)明內(nèi)容】
[0005]為了解決在集成聲卡不具有音頻混合能力時,無法讓用戶在電腦上演唱歌曲的問題,本發(fā)明實施例提供了一種音頻合成方法及裝置。所述技術(shù)方案如下:
[0006]第一方面,提供了一種音頻合成方法,該方法包括:
[0007]通過Flash程序獲取伴奏音頻流;
[0008]通過所述Flash程序獲取演唱音頻流;
[0009]通過所述Flash程序?qū)⑺霭樽嘁纛l流和所述演唱音頻流合成為混音音頻流。
[0010]在一種可能的實現(xiàn)方式中,所述通過所述Flash程序?qū)⑺霭樽嘁纛l流和所述演唱音頻流合成為混音音頻流,包括:
[0011]通過所述Flash程序獲取所述伴奏音頻流中的各個音頻幀和每個音頻幀所對應(yīng)的時間戳;
[0012]通過所述Flash程序獲取所述演唱音頻流中的各個音頻幀和每個音頻幀所對應(yīng)的時間戳;
[0013]通過所述Flash程序?qū)⑺霭樽嘁纛l流和所述演唱音頻流中具有相同時間戳的音頻幀疊加得到合成音頻幀,所述合成音頻幀具有原始時間戳;
[0014]將所述合成音頻幀、所述伴奏音頻流中在所述演唱音頻流不具有相同時間戳的音頻幀、所述演唱音頻流中在所述伴奏音頻流不具有相同時間戳的音頻幀按照時間戳由前到后的順序生成所述混合音頻流。
[0015]在一種可能的實現(xiàn)方式中,所述通過所述Flash程序?qū)⑺霭樽嘁纛l流和所述演唱首頻流合成為混首首頻流之后,還包括:
[0016]將所述混音音頻流保存至比特陣列byteArray中。
[0017]在一種可能的實現(xiàn)方式中,所述將所述混音音頻流保存至比特陣列byteArray中之后,還包括:
[0018]從所述byteArray讀取所述混音音頻流進行實時播放。
[0019]在一種可能的實現(xiàn)方式中,所述將所述混音音頻流保存至比特陣列byteArray中之后,還包括:
[0020]從所述byteArray讀取所述混音音頻流傳輸至其它網(wǎng)頁客戶端或應(yīng)用程序客戶端,以便所述其它網(wǎng)頁客戶端或應(yīng)用程序客戶端對所述混音音頻流進行實時播放。
[0021]第二方面,提供了一種音頻合成裝置,所述裝置包括:
[0022]第一獲取模塊,用于通過Flash程序獲取伴奏音頻流;
[0023]第二獲取模塊,用于通過所述Flash程序獲取演唱音頻流;
[0024]合成模塊,用于通過所述Flash程序?qū)⑺霭樽嘁纛l流和所述演唱音頻流合成為混音音頻流。
[0025]在一種可能的實現(xiàn)方式中,所述合成模塊,包括:
[0026]第一獲取單元,用于通過所述Flash程序獲取所述伴奏音頻流中的各個音頻幀和每個音頻幀所對應(yīng)的時間戳;
[0027]第二獲取單元,用于通過所述Flash程序獲取所述演唱音頻流中的各個音頻幀和每個音頻幀所對應(yīng)的時間戳;
[0028]合成單元,用于通過所述Flash程序?qū)⑺霭樽嘁纛l流和所述演唱音頻流中具有相同時間戳的音頻幀疊加得到合成音頻幀,所述合成音頻幀具有原始時間戳;
[0029]生成單元,用于將所述合成音頻幀、所述伴奏音頻流中在所述演唱音頻流不具有相同時間戳的音頻幀、所述演唱音頻流中在所述伴奏音頻流不具有相同時間戳的音頻幀按照時間戳由前到后的順序生成所述混合音頻流。
[0030]在一種可能的實現(xiàn)方式中,所述裝置,還包括:
[0031]保存模塊,用于將所述混音音頻流保存至比特陣列byteArray中。
[0032]在一種可能的實現(xiàn)方式中,所述裝置,還包括:
[0033]播放模塊,用于從所述byteArray讀取所述混音音頻流進行實時播放。
[0034]在一種可能的實現(xiàn)方式中,所述裝置,還包括:
[0035]傳輸模塊,用于從所述byteArray讀取所述混音音頻流傳輸至其它網(wǎng)頁客戶端或應(yīng)用程序客戶端,以便所述其它網(wǎng)頁客戶端或應(yīng)用程序客戶端對所述混音音頻流進行實時播放。
[0036]本發(fā)明實施例提供的技術(shù)方案帶來的有益效果是:
[0037]通過Flash程序?qū)樽嘁纛l流和演唱音頻流合成為混音音頻流;解決了在集成聲卡不具有音頻混合能力時,無法讓用戶在電腦上演唱歌曲的問題;達到了即便是使用集成聲卡,也能夠?qū)崿F(xiàn)演唱歌曲并混音播放的效果。
【附圖說明】
[0038]為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0039]圖1是本發(fā)明一個實施例提供的音頻合成方法的方法流程圖;
[0040]圖2是本發(fā)明另一實施例提供的音頻合成方法的方法流程圖;
[0041]圖3是本發(fā)明圖2實施例提供的音頻合成方法的子步驟示意圖;
[0042]圖4是本發(fā)明圖2實施例提供的音頻合成方法的子步驟示意圖;
[0043]圖5是本發(fā)明一個實施例提供的音頻合成裝置的結(jié)構(gòu)示意圖;
[0044]圖6是本發(fā)明另一實施例提供的音頻合成裝置的結(jié)構(gòu)示意圖。
【具體實施方式】
[0045]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明實施方式作進一步地詳細描述。
[0046]圖1是本發(fā)明一個實施例提供的音頻合成方法的方法流程圖。該方法包括:
[0047]步驟102,通過Flash程序獲取伴奏音頻流。
[0048]用戶的電腦中運行有具有歌曲演唱功能的客戶端,該客戶端可以是網(wǎng)頁客戶端或者應(yīng)用程序客戶端。本文實施例中主要以該客戶端是網(wǎng)頁客戶端來舉例說明,但對此不加以限定。
[0049]該網(wǎng)頁客戶端的具體表現(xiàn)形式,可以是:在線KTV客戶端、在線直播客戶端、在線學習音樂客戶端等等,本實施例對此也不加以限定。
[0050]以該網(wǎng)頁客戶端是在線直播客戶端為例,在開始演唱歌曲時,網(wǎng)頁客戶端首先通過網(wǎng)頁中的Flash程序從后臺服務(wù)器下載伴奏音頻流。
[0051]步驟104,通過Flash程序獲取演唱音頻流。
[0052]網(wǎng)頁客戶端還通過網(wǎng)頁中的Flash程序獲取用戶的演唱音頻流。用戶的演唱聲音被電腦中的麥克風所采集后,由聲卡從模擬信號轉(zhuǎn)換為數(shù)字信號,然后由網(wǎng)頁中的Flash程序讀取到該演唱音頻流。
[0053]需要說明的是,本發(fā)明實施例對并列的步驟102和步驟104的執(zhí)行順序不做限定。
[0054]步驟106,通過Flash程序?qū)樽嘁纛l流和演唱音頻流合成為混音音頻流。
[0055]網(wǎng)頁中的Flash程序?qū)樽嘁纛l流和演唱音頻流合成為混音音頻流。
[0056]綜上所述,本實施例提供的音頻合成方法,通過Flash程序?qū)樽嘁纛l流和演唱音頻流合成為混音音頻流;解決了在集成聲卡不具有音頻混合能力時,無法讓用戶在電腦上演唱歌曲的問題;達到了即便是使用集成聲卡,也能夠?qū)崿F(xiàn)演唱歌曲并混音播放的效果。
[0057]圖2是本發(fā)明一個實施例提供的音頻合成方法的方法流程圖。該方法包括:
[0058]步驟202,通過Flash程序獲取伴奏音頻流。
[0059]用戶的電腦中運行有具有歌曲演唱功能的客戶端,該客戶端可以是網(wǎng)頁客戶端或者應(yīng)用程序客戶端。本文實施例中主要以該客戶端是網(wǎng)頁客戶端來舉例說明,但對此不加以限定。
[0060]該網(wǎng)頁客戶端的具體表現(xiàn)形式,可以是:在線KTV客戶端、在線直播客戶端、在線學習音樂客戶端等等,本實施例對此也不加以限定。
[0061]以該網(wǎng)頁客戶端是在線直播客戶端為例,在開始演唱歌曲時,網(wǎng)頁客戶端首先通過網(wǎng)頁中的Flash程序從后臺服務(wù)器下載伴奏音頻流。
[0062]步驟204,通過Flash程序獲取演唱音頻流。
[0063]網(wǎng)頁客戶端還通過網(wǎng)頁中的Flash程序獲取用戶的演唱音頻流。用戶的演唱聲音被電腦中的麥克風所采集后,由聲卡從模擬信號轉(zhuǎn)換為數(shù)字信號,然后由網(wǎng)頁中的Flash程序讀取到該演唱音頻流。
[0064]步驟206,通過Flash程序?qū)樽嘁纛l流和演唱音頻流合成為混音音頻流。
[0065]本步驟包括如下子步驟,如圖3所示:
[0066]步驟206a,通過Flash程序獲取伴奏音頻流中的各個音頻幀和每個音頻幀所對應(yīng)的時間戳;
[0067]步驟206b,通過Flash程序獲取演唱音頻流中的各個音頻幀和每個音頻幀所對應(yīng)的時間戳;
[0068]步驟206c,通過Flash程序?qū)樽嘁纛l流和演唱音頻流中具有相同時間戳的音頻幀疊加得到合成音頻幀,合成音頻幀具有原始時間戳;
[0069]步驟206d,將合成音頻幀、伴奏音頻流中在演唱音頻流不具有相同時間戳的音頻幀、演唱音頻流中在伴奏音頻流不具有相同時間戳的音頻幀按照時間戳由前到后的順序生成混合音頻流。
[0070]結(jié)合圖4可知,伴奏音頻流42和演唱音頻流44均包括很多音頻幀,每個音頻幀具有各自的時間戳。如果兩個流中的兩個音頻幀具有相同時間戳,則Flash程序?qū)⑦@兩個音頻幀疊加得到音頻幀,比如,將具有相同時間戳的音頻幀al和音頻幀bl疊加得到合成音頻幀Cl ;將具有相同時間戳的音頻幀a3和音