麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

一種歌曲音頻拼接方法及設備與流程

文檔序號:11097640閱讀:752來源:國知局
一種歌曲音頻拼接方法及設備與制造工藝

本發(fā)明涉及電子技術領域,尤其涉及一種歌曲音頻拼接方法及設備。



背景技術:

隨著計算機技術不斷的開發(fā)和完善,手機和平板電腦等終端已經成為了人們生活中不可或缺的一個部分,通過在終端中安裝的各種應用功能,可以實現用戶的不同需求,例如:通信、游戲、聽音樂等

現有的音樂應用除了可以對所需的音樂文件進行下載以及播放外,還可以實現歌曲演唱的功能,用戶可以通過這類音樂應用演唱各類歌曲。但是在用戶演唱時,由于個人的音域、音色匹配程度及發(fā)揮狀態(tài),可能在演繹一首歌曲的時候有的句子唱的好,有的句子唱的差,用戶有時就會因為幾句演唱發(fā)揮的不好而不上傳或者刪除演唱的清唱音頻數據。導致用戶的清唱音頻數據得不到合理的利用,用戶的演唱積極性也不高。



技術實現要素:

本發(fā)明實施例提供一種歌曲音頻拼接方法及設備,可以從多個用戶針對目標歌曲的演繹音頻數據中挑選出每個分句對應的分句清唱音頻數據,生成目標歌曲的拼接音頻數據,提升清唱音頻數據的利用率。

本發(fā)明第一方面提供一種歌曲音頻拼接方法,包括:

獲取多個用戶針對目標歌曲的演繹音頻數據,所述演繹音頻數據包括所述目標歌曲的各個分句的清唱音頻數據;

分別提取各用戶演繹的各個分句的清唱音頻數據的基頻信息,獲取各個分句的不同用戶的清唱音頻數據的基頻信息對應的音符值序列;

計算所述多個用戶中的目標用戶演繹目標分句的音符值序列分別與所述多個用戶中其他用戶演繹目標分句的音符值序列之間的基頻距離的和,作為所述目標用戶演繹目標分句的清唱音頻數據的基頻距離和;

根據各個用戶演繹目標分句的清唱音頻數據的基頻距離和,從所述各個用戶演繹目標分句的清唱音頻數據中確定所述目標歌曲中的目標分句對應的分句清唱音頻數據;

根據目標歌曲的各個分句對應的分句清唱音頻數據,生成所述目標歌曲的拼接音頻數據。

本發(fā)明第二方面提供一種歌曲音頻拼接設備,包括:

數據獲取單元,用于獲取多個用戶針對目標歌曲的演繹音頻數據,所述演繹音頻數據包括所述目標歌曲的各個分句的清唱音頻數據;

第一音符值轉換單元,用于分別提取各用戶演繹的各個分句的清唱音頻數據的基頻信息,獲取各個分句的不同用戶的清唱音頻數據的基頻信息對應的音符值序列;

第一計算單元,用于計算所述多個用戶中的目標用戶演繹目標分句的音符值序列分別與所述多個用戶中其他用戶演繹目標分句的音符值序列之間的基頻距離的和,作為所述目標用戶演繹目標分句的清唱音頻數據的基頻距離和;

第一分句數據選擇單元,用于根據各個用戶演繹目標分句的清唱音頻數據的基頻距離和,從所述各個用戶演繹目標分句的清唱音頻數據中確定所述目標歌曲中的目標分句對應的分句清唱音頻數據;

數據生成單元,用于根據目標歌曲的各個分句對應的分句清唱音頻數據,生成所述目標歌曲的拼接音頻數據。

本發(fā)明實施例中,通過獲取多個用戶針對目標歌曲的演繹音頻數據,獲取各個分句的不同用戶的清唱音頻數據的基頻信息對應的音符值序列,以計算每個用戶演繹目標分句的清唱音頻數據的基頻距離和,根據各個用戶演繹目標分句的清唱音頻數據的基頻距離和,從所述各個用戶演繹目標分句的清唱音頻數據中確定所述目標歌曲中的目標分句對應的分句清唱音頻數據,根據目標歌曲的各個分句對應的分句清唱音頻數據,生成所述目標歌曲的拼接音頻數據,實現了從多個用戶針對目標歌曲的演繹音頻數據中挑選出每個分句對應的分句清唱音頻數據,生成目標歌曲的拼接音頻數據,提升清唱音頻數據的利用率。

附圖說明

為了更清楚地說明本發(fā)明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。

圖1是本發(fā)明實施例提供的一種歌曲音頻拼接方法的流程示意圖;

圖2是本發(fā)明實施例提供的另一種歌曲音頻拼接方法的流程示意圖;

圖3是本發(fā)明實施例提供的一種歌曲音頻拼接設備的結構示意圖;

圖4是本發(fā)明實施例提供的第一音符值轉換單元的結構示意圖;

圖5是本發(fā)明實施例提供的第一分句數據選擇單元的結構示意圖;

圖6是本發(fā)明實施例提供的另一種歌曲音頻拼接設備的結構示意圖;

圖7是本發(fā)明實施例提供的另一種歌曲音頻拼接設備的結構示意圖。

具體實施方式

下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。

圖1是本發(fā)明實施例提供的一種歌曲音頻拼接方法的流程示意圖,本方法流程可以由歌曲音頻拼接設備實施,所述歌曲音頻拼接設備可以為音樂應用的后臺服務設備,所述音樂應用可以為音樂播放應用、K歌應用等。本發(fā)明實施例適用于任何可以被用戶演繹的歌曲,以下僅以一首歌曲,即目標歌曲作為參考進行詳細說明。如圖所示,所述方法至少包括:

步驟S101,獲取多個用戶針對目標歌曲的演繹音頻數據,所述演繹音頻數據包括所述目標歌曲的各個分句的清唱音頻數據。

具體的,在本發(fā)明實施例中,演繹音頻數據可以是用戶演唱目標歌曲時通過具有錄音功能的終端設備錄制的音頻數據,該演繹音頻數據可以是只有用戶演唱的清唱音頻數據,也可以是包括用戶演唱的清唱音頻數據以及目標歌曲的伴奏混音等背景音樂的音頻數據,這里不作具體限定。其中,目標歌曲中包括多個分句,對于分句的劃分可以通過目標歌曲的歌詞信息來進行劃分,例如目標歌曲為《新年好》,則“新年好啊,新年好啊,祝福大家新年好”就可以被定義為三個分句。用戶在對目標歌曲演唱完成后,可以將其演唱的演繹音頻數據上傳或者保存在歌曲音頻拼接設備中,歌曲音頻拼接設備就可以獲取到多個用戶針對目標歌曲的演繹音頻數據,從而可以獲取到多個用戶針對目標歌曲的各個分句的清唱音頻數據。

步驟S102,分別提取各用戶演繹的各個分句的清唱音頻數據的基頻信息,獲取各個分句的不同用戶的清唱音頻數據的基頻信息對應的音符值序列。

具體的,歌曲音頻拼接設備可以提取各用戶演繹的各個分句的目標清唱音頻數據的基頻信息,并且根據各個分句的不同用戶的清唱音頻數據的基頻信息獲取對應的音符值序列。可以理解的是,基頻信息可以為清唱音頻數據的基音,用于決定清唱音頻數據中各音符點的音高。其中,音符值指的是針對MIDI(Musical Instrument Digital Interface)樂器數字接口的一種標準值。

具體實施中,歌曲音頻拼接設備可以按照預設幀長和預設幀移分別提取各用戶演繹的各個分句的清唱音頻數據的基頻信息,以生成各用戶演繹的各個分句對應的至少一個基頻點,然后對至少一個基頻點中各基頻點的基頻值進行調整,并將調整后的各基頻點的基頻值轉換為各基頻點對應的音符值,從而獲取各個分句的不同用戶的清唱音頻數據的基頻信息對應的音符值序列。例如,歌曲音頻拼接設備可以預設幀長為30ms,幀移為10ms,采集每個用戶演繹的每個分句的清唱音頻數據的基頻信息,從而每個用戶演繹的每個分句都對應存在至少一個基頻點。歌曲音頻拼接設備對上述至少一個基頻點進行除噪、平滑等處理,然后將調整后的各基頻點的基頻值轉換為各基頻點對應的音符值,則每個用戶演繹的每個分句對應至少一個基頻點,至少一個基頻點對應了至少一個音符值,至少一個音符值即音符值序列,從而歌曲音頻拼接設備就獲取到了各個分句的不用用戶的清唱音頻數據的基頻信息對應的音符值序列。

在一種可能的實施場景中,歌曲音頻拼接設備可以采用預設音符轉換公式,并根據調整后的所述各基頻點的基頻值,計算各基頻點的音符值。其中,預設音符轉換公式可以為:

其中,Y表示為當前基頻點的音符值,x表示為當前基頻點的基頻值。

需要說明的是,歌曲音頻拼接設備對至少一個基頻點中各基頻點的基頻值進行調整時,可以是對至少一個基頻點中的奇異基頻點的基頻值進行置零處理,例如,如果一個非0基頻點的前后基頻值均為0,則將此基頻點記為0;還可以是對連續(xù)的幾個基頻點進行中值濾波處理,通過中值濾波處理,可以使得基頻段曲線平滑,避免噪點的出現。

可選的,在提取各用戶演繹的各個分句的清唱音頻數據的基頻信息之前,歌曲音頻拼接設備可以先對每個清唱音頻數據按照預設的格式進行規(guī)整,例如,可以規(guī)整為16k 16bit的PCM格式。

步驟S103,計算所述多個用戶中的目標用戶演繹目標分句的音符值序列分別與所述多個用戶中其他用戶演繹目標分句的音符值序列之間的基頻距離的和,作為所述目標用戶演繹目標分句的清唱音頻數據的基頻距離和。

具體的,歌曲音頻拼接設備可以分別計算多個用戶中的某一目標用戶演繹的某一目標分句的音符值序列與其他用戶演繹該對應分句的音符值序列之間的基頻距離的和,即作為該目標用戶演繹目標分句的清唱音頻數據的基頻距離和。例如,目標用戶A演繹目標分句G1的清唱音頻數據對應的音符值序列為Y1,演繹目標歌曲的其他用戶包括B、C和D三個用戶,B演繹目標分句G1的清唱音頻數據對應的音符值序列為Y2,C演繹目標分句G1的清唱音頻數據對應的音符值序列為Y3,D演繹目標分句G1的清唱音頻數據對應的音符值序列為Y4,則歌曲音頻拼接設備可以分別計算Y1與Y2之間的基頻距離,Y1與Y3之間的基頻距離,Y1與Y4之間的基頻距離,然后將上述計算出的基頻距離求和,即為目標用戶A演繹目標分句G1的清唱音頻數據的基頻距離和。

具體實施中,以目標歌曲的第k分句為例,由于大家演唱的是同一句,所以對應的音符值序列的長度相同,設長度為p,意味著第k分句有p幀,第k分句的音符值序列包括p個音符值,則通過預設的基頻距離公式可以求出針對目標歌曲的演繹中,第i個用戶的第k分句的音符值序列與第j個用戶的第k分句的音符值序列之間的基頻距離。其中,預設的基頻距離公式可以為:

其中,Lijk為第i個用戶的第k分句的音符值序列與第j個用戶的第k分句的音符值序列之間的基頻距離,yitk為第i個用戶的第k分句的音符值序列的第t幀的音符值,yjtk為第j個用戶的第k分句的音符值序列的第t幀的音符值。這里,i∈(1~n),j∈(1~n),其中,n可以指演繹目標歌曲的所有用戶的數量。需要說明的是,第一個基頻距離公式中的12代表一個八度,也就是說,第一個基頻距離公式中認為第i個用戶和第j個用戶對第k分句的演繹在高一個八度或低一個八度的跨度內的音準都是一樣的。

依照上述預設的基頻距離公式的其中一個,可以依次計算出目標用戶演繹目標分句的音符值序列分別與多個用戶中其他用戶演繹目標分句的音符值序列之間的基頻距離,并將計算得到的基頻距離求和,即為目標用戶演繹目標分句的清唱音頻數據的基頻距離和。其中,以第i個用戶為目標用戶,目標歌曲的第k分句為目標分句為例,基頻距離和的公式可以為:

其中,Sik為第i個用戶演繹第k分句的清唱音頻數據的基頻距離和,Lijk為第i個用戶的第k分句的音符值序列與第j個用戶的第k分句的音符值序列之間的基頻距離,n可以指演繹目標歌曲的所有用戶的數量。

步驟S104,根據各個用戶演繹目標分句的清唱音頻數據的基頻距離和,從所述各個用戶演繹目標分句的清唱音頻數據中確定所述目標歌曲中的目標分句對應的分句清唱音頻數據。

具體的,目標分句對應的分句清唱音頻數據可以指在多個用戶演繹的目標分句的清唱音頻數據中選擇出的一個用于拼接的清唱音頻數據。該目標分句對應的分句清唱音頻數據的確定可以依據之前計算得到的各個用戶演繹的目標分句的清唱音頻數據的基頻距離和,再結合不同的預設算法進行選取。

在第一種可能的實施場景中,歌曲音頻拼接設備可以獲取各個用戶演繹目標分句的清唱音頻數據的基頻距離和中最小的基頻距離和,確定該最小的基頻距離和所對應的目標清唱音頻數據,將該目標清唱音頻數據作為目標歌曲中的目標分句對應的分句清唱音頻數據即可。

在第二種可能的實施場景中,歌曲音頻拼接設備可以按照基頻距離和從小到大,對各個用戶演繹目標分句的清唱音頻數據進行排序,從而獲取排序前N個清唱音頻數據作為目標分句的備選清唱音頻數據,從備選清唱音頻數據中選擇其中一個清唱音頻數據作為目標歌曲中的目標分句對應的分句清唱音頻數據。具體的,在備選清唱音頻數據中選擇清唱音頻數據作為分句清唱音頻數據時,歌曲音頻拼接設備可以根據預先設定的規(guī)則進行依次迭代,從而選擇出各個分句之間匹配度最合適的多個分句清唱音頻數據;歌曲音頻拼接設備也可以隨機的從備選清唱音頻數據中選擇清唱音頻數據作為分句清唱音頻數據,在本實施例中不作具體限定。

需要說明的是,在第二種實施場景中的一種情況下,N可以是歌曲音頻拼接設備中預先設定的,例如,歌曲音頻拼接設備可以預先設定取排序中用戶數量的一半的清唱音頻數據作為目標分句的備選清唱音頻數據,則若有10個用戶演唱的針對目標分句的清唱音頻數據,將這10個用戶演繹目標分句的清唱音頻數據的基頻距離和從小到大排序后,取前5個清唱音頻數據作為目標分句的備選清唱音頻數據即可。

在第二種實施場景中的另一種情況下,N可以是根據各個用戶演繹目標分句的清唱音頻數據的置信度來確定的。具體來說,歌曲音頻拼接設備可以根據各個用戶演繹目標分句的清唱音頻數據的基頻距離和,計算各個用戶演繹目標分句的清唱音頻數據的置信度,將置信度達到預設置信度閾值的排序前N個清唱音頻數據作為目標分句的備選清唱音頻數據。這里,N可以由置信度達不到預設置信度閾值的基頻距離和最小的清唱音頻數據的排序確定。例如,若有5個用戶演唱的針對目標分句的清唱音頻數據,歌曲音頻拼接設備將這5個用戶演繹目標分句的清唱音頻數據的基頻距離和從小到大排序后,分別計算得到5個用戶演繹目標分句的清唱音頻數據的置信度,設排名前三位的用戶演繹目標分句的清唱音頻數據的置信度均大于預設置信度閾值,而排名第四位的用戶演繹目標分句的清唱音頻數據的置信度小于預設置信度閾值,則這里N即為3,也即將置信度達到預設置信度閾值的排序前3個清唱音頻數據作為目標分句的備選清唱音頻數據。

進一步的,在計算置信度時,歌曲音頻拼接設備可以先在各個用戶演繹目標分句的清唱音頻數據中,根據排序第1個清唱音頻數據的基頻距離和與排序前M個清唱音頻數據的基頻距離和之間的比較結果,確定排序第1個清唱音頻數據的置信度。具體來說,在一種情況下,歌曲音頻拼接設備可以分別計算排序第1個清唱音頻數據的基頻距離和與排序前M個清唱音頻數據的基頻距離和的比值,若計算得到的比值均大于預設的第一置信度閾值,那么則可以認為排序第1個清唱音頻數據的置信度大于預設置信度閾值,即排序第1個清唱音頻數據可以作為目標分句的備選清唱音頻數據。在另一種情況下,歌曲音頻拼接設備可以計算排序第1個清唱音頻數據的基頻距離和與排序前M個清唱音頻數據的基頻距離和的求和結果的比值,M可以是歌曲音頻拼接設備預設的,若計算得到的比值大于預設的第二置信度閾值,那么則可以認為排序第1個清唱音頻數據的置信度大于預設置信度閾值,即排序第1個清唱音頻數據可以作為目標分句的備選清唱音頻數據。例如,在計算各個用戶演繹第k分句的清唱音頻數據中排序第1個清唱音頻數據的置信度時,置信度公式可以表示為:

其中,f為第k分句的清唱音頻數據中排序第1個清唱音頻數據的置信度,Sk1為第k分句對應的排名第1個清唱音頻數據的基頻距離和,為第k分句對應的排名前M個清唱音頻數據的基頻距離和的求和結果。

在確定排序第1個清唱音頻數據的置信度達到預設置信度閾值后,歌曲音頻拼接設備可以進一步確定其他各個清唱音頻數據的置信度。具體實施中,歌曲音頻拼接設備可以根據排序第1個清唱音頻數據的基頻距離和與其他各個清唱音頻數據的基頻距離和的比較結果,確定其他各個清唱音頻數據的置信度。若某一清唱音頻數據的置信度大于預設的第三置信度閾值,那么則可以認為該清唱音頻數據的置信度大于預設置信度閾值,即該清唱音頻數據可以作為目標分句的備選清唱音頻數據。按照該方法,歌曲音頻拼接設備可以確定獲取置信度大于預設置信度閾值的排序前N個清唱音頻數據作為目標分句的備選清唱音頻數據。例如,在計算各個用戶演繹第k分句的清唱音頻數據中其他各個清唱音頻數據的置信度時,可以計算排序第1個清唱音頻數據的基頻距離和與其他各個清唱音頻數據的基頻距離和的比值,即置信度公式可以表示為:

其中,vj為第k分句的清唱音頻數據中除排序第1個清唱音頻數據的其他各個清唱音頻數據的置信度,Sk1為第k分句對應的排名第1個清唱音頻數據的基頻距離和,Skj為第k分句對應的除排序第1個清唱音頻數據的其他各個清唱音頻數據的基頻距離和。

步驟S105,根據目標歌曲的各個分句對應的分句清唱音頻數據,生成所述目標歌曲的拼接音頻數據。

具體的,在步驟S104根據上述其中一種方法確定出目標歌曲的各個分句對應的分句清唱音頻數據后,歌曲音頻拼接設備可以將被選出的各個分句清唱音頻數據按照各個分句對應在目標歌曲中的位置和順序拼接起來。其中,各個分句之間可以根據目標歌曲中各個分句之間的空隙時間補充一定時長的靜音,最后再與目標歌曲的伴奏進行混音,從而生成目標歌曲的拼接音頻數據,該拼接音頻數據包括多個用戶對每個分句演繹的分句清唱音頻數據。例如,目標歌曲有4個分句G1、G2、G3和G4,設總共有3個用戶演唱了該目標歌曲,用戶A對4個分句演繹的清唱音頻數據分別為a1、a2、a3、a4,用戶B對4個分句演繹的清唱音頻數據分別為b1、b2、b3、b4,用戶C對4個分句演繹的清唱音頻數據分別為c1、c2、c3、c4,其中,歌曲音頻拼接設備根據上述算法最終確定:G1分句對應的分句清唱音頻數據為b1,G2分句對應的分句清唱音頻數據為c2,G3分句對應的分句清唱音頻數據為b3,G4分句對應的分句清唱音頻數據為a4,那么歌曲音頻拼接設備就可以將b1、c2、b3以及a4這四個清唱音頻數據進行拼接,最終生成目標歌曲的拼接音頻數據。

本發(fā)明實施例中,通過獲取多個用戶針對目標歌曲的演繹音頻數據,獲取各個分句的不同用戶的清唱音頻數據的基頻信息對應的音符值序列,以計算每個用戶演繹目標分句的清唱音頻數據的基頻距離和,根據各個用戶演繹目標分句的清唱音頻數據的基頻距離和,從所述各個用戶演繹目標分句的清唱音頻數據中確定所述目標歌曲中的目標分句對應的分句清唱音頻數據,根據目標歌曲的各個分句對應的分句清唱音頻數據,生成所述目標歌曲的拼接音頻數據,實現了從多個用戶針對目標歌曲的演繹音頻數據中挑選出每個分句對應的分句清唱音頻數據,生成目標歌曲的拼接音頻數據,提升清唱音頻數據的利用率。

圖2是本發(fā)明實施例提供的另一種歌曲音頻拼接方法的流程示意圖,在本發(fā)明實施例中,在聚類得到排名的時對高低八度進行了兼容,因而在拼接的時候前后兩句的基調(如差了一個八度)不一樣的話,效果就會比較難聽,本實施例使用迭代的方法對挑選出的各個分句對應的清唱音頻數據進行匹配,以保證拼接后生成的拼接音頻數據的前后句子的基調一致。如圖所示,該方法包括:

步驟S201,獲取多個用戶針對目標歌曲的演繹音頻數據,所述演繹音頻數據包括所述目標歌曲的各個分句的清唱音頻數據。

具體的,演繹音頻數據可以是用戶演唱目標歌曲時通過具有錄音功能的終端設備錄制的音頻數據,該演繹音頻數據可以是只有用戶演唱的清唱音頻數據。其中,目標歌曲中包括多個分句,對于分句的劃分可以通過目標歌曲的歌詞信息來進行劃分,例如目標歌曲為《新年好》,則“新年好啊,新年好啊,祝福大家新年好”就可以被定義為三個分句。用戶在對目標歌曲演唱完成后,可以將其演唱的演繹音頻數據上傳或者保存在歌曲音頻拼接設備中,歌曲音頻拼接設備就可以獲取到多個用戶針對目標歌曲的演繹音頻數據,從而可以獲取到多個用戶針對目標歌曲的各個分句的清唱音頻數據。

步驟S202,分別提取各用戶演繹的目標歌曲的演繹音頻數據的基頻信息,獲取不同用戶的演繹音頻數據的基頻信息對應的音符值序列。

具體的,在本發(fā)明實施中,演繹音頻數據可以是用戶演唱目標歌曲時通過具有錄音功能的終端設備錄制的音頻數據,該演繹音頻數據只有用戶演唱的清唱音頻數據。用戶在對目標歌曲演唱完成后,可以將其演唱的演繹音頻數據上傳或者保存在歌曲音頻拼接設備中,歌曲音頻拼接設備就可以獲取到多個用戶針對目標歌曲的演繹音頻數據。

進一步的,歌曲音頻拼接設備可以分別提取各用戶演繹的目標歌曲的演繹音頻數據的基頻信息,并獲取不同用戶的演繹音頻數據的基頻信息對應的音符值序列。也就是說,這里歌曲音頻拼接設備獲取的是不同用戶針對目標歌曲演繹的完整的演繹音頻數據對應的音符值序列。可以理解的是,基頻信息可以為清唱音頻數據的基音,用于決定清唱音頻數據中各音符點的音高。其中,音符值指的是針對MIDI(Musical Instrument Digital Interface)樂器數字接口的一種標準值。

具體實施中,歌曲音頻拼接設備可以按照預設幀長和預設幀移分別提取各用戶演繹的演繹音頻數據的基頻信息,以生成各用戶演繹的目標歌曲對應的至少一個基頻點,然后對至少一個基頻點中各基頻點的基頻值進行調整,并將調整后的各基頻點的基頻值轉換為各基頻點對應的音符值,從而獲取不同用戶的演繹音頻數據的基頻信息對應的音符值序列。例如,歌曲音頻拼接設備可以預設幀長為30ms,幀移為10ms,采集每個用戶演繹的演繹音頻數據的基頻信息,從而每個用戶演繹的演繹音頻數據都對應存在至少一個基頻點。歌曲音頻拼接設備對上述至少一個基頻點進行除噪、平滑等處理,然后將調整后的各基頻點的基頻值轉換為各基頻點對應的音符值,則每個用戶演繹的演繹音頻數據對應至少一個基頻點,至少一個基頻點對應了至少一個音符值,至少一個音符值即音符值序列,從而歌曲音頻拼接設備就獲取到了不用用戶的演繹音頻數據的基頻信息對應的音符值序列。

在一種可能的實施場景中,歌曲音頻拼接設備可以采用預設音符轉換公式,并根據調整后的所述各基頻點的基頻值,計算各基頻點的音符值。其中,預設音符轉換公式可以為:

其中,Y表示為當前基頻點的音符值,x表示為當前基頻點的基頻值。

需要說明的是,歌曲音頻拼接設備對至少一個基頻點中各基頻點的基頻值進行調整時,可以是對至少一個基頻點中的奇異基頻點的基頻值進行置零處理,例如,如果一個非0基頻點的前后基頻值均為0,則將此基頻點記為0;還可以是對連續(xù)的幾個基頻點進行中值濾波處理,通過中值濾波處理,可以使得基頻段曲線平滑,避免噪點的出現。

可選的,在提取各用戶的演繹音頻數據的基頻信息之前,歌曲音頻拼接設備可以先對每個演繹音頻數據按照預設的格式進行規(guī)整,例如,可以規(guī)整為16k16bit的PCM格式。

步驟S203,計算所述多個用戶中的目標用戶的演繹音頻數據的音符值序列分別與所述多個用戶中其他用戶的演繹音頻數據的音符值序列之間的基頻距離的和,作為所述目標用戶的演繹音頻數據的基頻距離和。

具體的,歌曲音頻拼接設備可以分別計算多個用戶中的某一目標用戶的演繹音頻數據的音符值序列與其他用戶的演繹音頻數據的音符值序列之間的基頻距離的和,即作為該目標用戶的演繹音頻數據的基頻距離和。例如,目標用戶A演繹目標歌曲的演繹音頻數據對應的音符值序列為W1,演繹目標歌曲的其他用戶包括B、C和D三個用戶,B演繹目標歌曲的演繹音頻數據對應的音符值序列為W2,C演繹目標歌曲的演繹音頻數據對應的音符值序列為W3,D演繹目標歌曲的演繹音頻數據對應的音符值序列為W4,則歌曲音頻拼接設備可以分別計算W1與W2之間的基頻距離,W1與W3之間的基頻距離,W1與W4之間的基頻距離,然后將上述計算出的基頻距離求和,即為目標用戶A演繹目標歌曲的演繹音頻數據的基頻距離和。

具體實施中,以目標歌曲為例,由于大家演唱的是同一首歌,所以對應的音符值序列的長度相同,設長度為q,意味著目標歌曲有q幀,演繹音頻數據的音符值序列包括q個音符值,則通過預設的基頻距離公式可以求出針對目標歌曲的演繹中,第i個用戶的演繹音頻數據的音符值序列與第j個用戶的演繹音頻數據的音符值序列之間的基頻距離。其中,預設的基頻距離公式可以為:

其中,Lij為第i個用戶的演繹音頻數據的音符值序列與第j個用戶的演繹音頻數據的音符值序列之間的基頻距離,yit為第i個用戶的演繹音頻數據的音符值序列的第t幀的音符值,yjt為第j個用戶的演繹音頻數據的音符值序列的第t幀的音符值。這里,i∈(1~n),j∈(1~n),其中,n可以指演繹目標歌曲的所有用戶的數量。需要說明的是,基頻距離公式中的12代表一個八度,也就是說,基頻距離公式中認為第i個用戶和第j個用戶對目標歌曲的演繹在高一個八度或低一個八度的跨度內的音準都是一樣的。

依照上述預設的基頻距離公式,可以依次計算出目標用戶的演繹音頻數據的音符值序列分別與多個用戶中其他用戶的演繹音頻數據的音符值序列之間的基頻距離,并將計算得到的基頻距離求和,即為目標用戶的演繹音頻數據的基頻距離和。其中,以第i個用戶為目標用戶,目標歌曲為例,基頻距離和的公式可以為:

其中,Si為第i個用戶的演繹音頻數據的基頻距離和,Lij為第i個用戶的演繹音頻數據的音符值序列與第j個用戶的演繹音頻數據的音符值序列之間的基頻距離,n可以指演繹目標歌曲的所有用戶的數量。

步驟S204,根據各個用戶的演繹音頻數據的基頻距離和,將基頻距離和最小的演繹音頻數據作為參考清唱音頻數據。

具體的,根據計算出的各個用戶的演繹音頻數據的基頻距離和,可以確定出其中基頻距離和最小的一個用戶的演繹音頻數據,則將該用戶的演繹音頻數據作為目標歌曲的參考清唱音頻數據。

步驟S205,分別提取各用戶演繹的各個分句的清唱音頻數據的基頻信息,獲取各個分句的不同用戶的清唱音頻數據的基頻信息對應的音符值序列。

具體的,歌曲音頻拼接設備可以提取各用戶演繹的各個分句的目標清唱音頻數據的基頻信息,并且根據各個分句的不同用戶的清唱音頻數據的基頻信息獲取對應的音符值序列。可以理解的是,基頻信息可以為清唱音頻數據的基音,用于決定清唱音頻數據中各音符點的音高。其中,音符值指的是針對MIDI(Musical Instrument Digital Interface)樂器數字接口的一種標準值。

具體實施中,歌曲音頻拼接設備可以按照預設幀長和預設幀移分別提取各用戶演繹的各個分句的清唱音頻數據的基頻信息,以生成各用戶演繹的各個分句對應的至少一個基頻點,然后對至少一個基頻點中各基頻點的基頻值進行調整,并將調整后的各基頻點的基頻值轉換為各基頻點對應的音符值,從而獲取各個分句的不同用戶的清唱音頻數據的基頻信息對應的音符值序列。例如,歌曲音頻拼接設備可以預設幀長為30ms,幀移為10ms,采集每個用戶演繹的每個分句的清唱音頻數據的基頻信息,從而每個用戶演繹的每個分句都對應存在至少一個基頻點。歌曲音頻拼接設備對上述至少一個基頻點進行除噪、平滑等處理,然后將調整后的各基頻點的基頻值轉換為各基頻點對應的音符值,則每個用戶演繹的每個分句對應至少一個基頻點,至少一個基頻點對應了至少一個音符值,至少一個音符值即音符值序列,從而歌曲音頻拼接設備就獲取到了各個分句的不用用戶的清唱音頻數據的基頻信息對應的音符值序列。

在一種可能的實施場景中,歌曲音頻拼接設備可以采用預設音符轉換公式,并根據調整后的所述各基頻點的基頻值,計算各基頻點的音符值。其中,預設音符轉換公式可以為:

其中,Y表示為當前基頻點的音符值,x表示為當前基頻點的基頻值。

需要說明的是,歌曲音頻拼接設備對至少一個基頻點中各基頻點的基頻值進行調整時,可以是對至少一個基頻點中的奇異基頻點的基頻值進行置零處理,例如,如果一個非0基頻點的前后基頻值均為0,則將此基頻點記為0;還可以是對連續(xù)的幾個基頻點進行中值濾波處理,通過中值濾波處理,可以使得基頻段曲線平滑,避免噪點的出現。

可選的,在提取各用戶演繹的各個分句的清唱音頻數據的基頻信息之前,歌曲音頻拼接設備可以先對每個清唱音頻數據按照預設的格式進行規(guī)整,例如,可以規(guī)整為16k 16bit的PCM格式。

步驟S206,計算所述多個用戶中的目標用戶演繹目標分句的音符值序列分別與所述多個用戶中其他用戶演繹目標分句的音符值序列之間的基頻距離的和,作為所述目標用戶演繹目標分句的清唱音頻數據的基頻距離和。

具體的,歌曲音頻拼接設備可以分別計算多個用戶中的某一目標用戶演繹的某一目標分句的音符值序列與其他用戶演繹該對應分句的音符值序列之間的基頻距離的和,即作為該目標用戶演繹目標分句的清唱音頻數據的基頻距離和。例如,目標用戶A演繹目標分句G1的清唱音頻數據對應的音符值序列為Y1,演繹目標歌曲的其他用戶包括B、C和D三個用戶,B演繹目標分句G1的清唱音頻數據對應的音符值序列為Y2,C演繹目標分句G1的清唱音頻數據對應的音符值序列為Y3,D演繹目標分句G1的清唱音頻數據對應的音符值序列為Y4,則歌曲音頻拼接設備可以分別計算Y1與Y2之間的基頻距離,Y1與Y3之間的基頻距離,Y1與Y4之間的基頻距離,然后將上述計算出的基頻距離求和,即為目標用戶A演繹目標分句G1的清唱音頻數據的基頻距離和。

具體實施中,以目標歌曲的第k分句為例,由于大家演唱的是同一句,所以對應的音符值序列的長度相同,設長度為p,意味著第k分句有p幀,第k分句的音符值序列包括p個音符值,則通過預設的基頻距離公式可以求出針對目標歌曲的演繹中,第i個用戶的第k分句的音符值序列與第j個用戶的第k分句的音符值序列之間的基頻距離。其中,預設的基頻距離公式可以為:

其中,Lijk為第i個用戶的第k分句的音符值序列與第j個用戶的第k分句的音符值序列之間的基頻距離,yitk為第i個用戶的第k分句的音符值序列的第t幀的音符值,yjtk為第j個用戶的第k分句的音符值序列的第t幀的音符值。這里,i∈(1~n),j∈(1~n),其中,n可以指演繹目標歌曲的所有用戶的數量。需要說明的是,基頻距離公式中的12代表一個八度,也就是說,基頻距離公式中認為第i個用戶和第j個用戶對第k分句的演繹在高一個八度或低一個八度的跨度內的音準都是一樣的。

依照上述預設的基頻距離公式,可以依次計算出目標用戶演繹目標分句的音符值序列分別與多個用戶中其他用戶演繹目標分句的音符值序列之間的基頻距離,并將計算得到的基頻距離求和,即為目標用戶演繹目標分句的清唱音頻數據的基頻距離和。其中,以第i個用戶為目標用戶,目標歌曲的第k分句為目標分句為例,基頻距離和的公式可以為:

其中,Sik為第i個用戶演繹第k分句的清唱音頻數據的基頻距離和,Lijk為第i個用戶的第k分句的音符值序列與第j個用戶的第k分句的音符值序列之間的基頻距離,n可以指演繹目標歌曲的所有用戶的數量。

步驟S207,按照基頻距離和從小到大,對各個用戶演繹目標分句的清唱音頻數據進行排序。

具體的,歌曲音頻拼接設備根據上述方法計算得到基頻距離和,將基頻距離和從小到大進行排序,該排序也即為各個用戶演繹目標分句的清唱音頻數據的排序。例如,目標分句為G1,有三個用戶演唱,A用戶演唱G1的清唱音頻數據a1的基頻距離和排序為第一,B用戶演唱G1的清唱音頻數據b1的基頻距離和排序為第二,C用戶演唱G1的清唱音頻數據c1的基頻距離和排序為第三。那么,ABC三個用戶演繹目標分句G1的清唱音頻數據排序也即為a1、b1、c1。

步驟S208,獲取排序前N個清唱音頻數據作為所述目標分句的備選清唱音頻數據。

具體的,N可以是根據各個用戶演繹目標分句的清唱音頻數據的置信度來確定的。具體來說,歌曲音頻拼接設備可以根據各個用戶演繹目標分句的清唱音頻數據的基頻距離和,計算各個用戶演繹目標分句的清唱音頻數據的置信度,將置信度達到預設置信度閾值的排序前N個清唱音頻數據作為目標分句的備選清唱音頻數據。

這里,N可以由置信度達不到預設置信度閾值的基頻距離和最小的清唱音頻數據的排序確定。例如,若有5個用戶演唱的針對目標分句的清唱音頻數據,歌曲音頻拼接設備將這5個用戶演繹目標分句的清唱音頻數據的基頻距離和從小到大排序后,分別計算得到5個用戶演繹目標分句的清唱音頻數據的置信度,設排名前三位的用戶演繹目標分句的清唱音頻數據的置信度均大于預設置信度閾值,而排名第四位的用戶演繹目標分句的清唱音頻數據的置信度小于預設置信度閾值,則這里N即為3,也即將置信度達到預設置信度閾值的排序前3個清唱音頻數據作為目標分句的備選清唱音頻數據。

進一步的,在計算置信度時,歌曲音頻拼接設備可以先在各個用戶演繹目標分句的清唱音頻數據中,根據排序第1個清唱音頻數據的基頻距離和與排序前M個清唱音頻數據的基頻距離和之間的比較結果,確定排序第1個清唱音頻數據的置信度。具體來說,在一種情況下,歌曲音頻拼接設備可以分別計算排序第1個清唱音頻數據的基頻距離和與排序前M個清唱音頻數據的基頻距離和的比值,若計算得到的比值均大于預設的第一置信度閾值,那么則可以認為排序第1個清唱音頻數據的置信度大于預設置信度閾值,即排序第1個清唱音頻數據可以作為目標分句的備選清唱音頻數據。在另一種情況下,歌曲音頻拼接設備可以計算排序第1個清唱音頻數據的基頻距離和與排序前M個清唱音頻數據的基頻距離和的求和結果的比值,M可以是歌曲音頻拼接設備預設的,若計算得到的比值大于預設的第二置信度閾值,那么則可以認為排序第1個清唱音頻數據的置信度大于預設置信度閾值,即排序第1個清唱音頻數據可以作為目標分句的備選清唱音頻數據。例如,在計算各個用戶演繹第k分句的清唱音頻數據中排序第1個清唱音頻數據的置信度時,置信度公式可以表示為:

其中,f為第k分句的清唱音頻數據中排序第1個清唱音頻數據的置信度,Sk1為第k分句對應的排名第1個清唱音頻數據的基頻距離和,為第k分句對應的排名前M個清唱音頻數據的基頻距離和的求和結果。

在確定排序第1個清唱音頻數據的置信度達到預設置信度閾值后,歌曲音頻拼接設備可以進一步確定其他各個清唱音頻數據的置信度。具體實施中,歌曲音頻拼接設備可以根據排序第1個清唱音頻數據的基頻距離和與其他各個清唱音頻數據的基頻距離和的比較結果,確定其他各個清唱音頻數據的置信度。若某一清唱音頻數據的置信度大于預設的第三置信度閾值,那么則可以認為該清唱音頻數據的置信度大于預設置信度閾值,即該清唱音頻數據可以作為目標分句的備選清唱音頻數據。按照該方法,歌曲音頻拼接設備可以確定獲取置信度大于預設置信度閾值的排序前N個清唱音頻數據作為目標分句的備選清唱音頻數據。例如,在計算各個用戶演繹第k分句的清唱音頻數據中其他各個清唱音頻數據的置信度時,可以計算排序第1個清唱音頻數據的基頻距離和與其他各個清唱音頻數據的基頻距離和的比值,即置信度公式可以表示為:

其中,vj為第k分句的清唱音頻數據中除排序第1個清唱音頻數據的其他各個清唱音頻數據的置信度,Sk1為第k分句對應的排名第1個清唱音頻數據的基頻距離和,Skj為第k分句對應的除排序第1個清唱音頻數據的其他各個清唱音頻數據的基頻距離和。

需要說明的是,這里步驟S202~S204與步驟S205~S208之間的前后執(zhí)行順序可以調換。

步驟S209,從所述備選清唱音頻數據中選擇其中一個清唱音頻數據作為所述目標歌曲中的目標分句對應的分句清唱音頻數據。

步驟S210,判斷所述目標歌曲的各個分句對應的分句清唱音頻數據與所述參考清唱音頻數據的相應分句的清唱音頻數據之間的基調差是否均小于預設基調閾值。若是,則執(zhí)行步驟S212,否則,則執(zhí)行步驟S211。

步驟S211,重新從各個分句對應的備選清唱音頻數據中選擇其中的清唱音頻數據作為所述目標歌曲中的目標分句對應的分句清唱音頻數據,直至各個分句對應的分句清唱音頻數據與所述參考清唱音頻數據的相應分句的清唱音頻數據之間的基調差均小于預設基調閾值。

具體的,歌曲音頻拼接設備可以首先從目標歌曲的第一個分句的備選清唱音頻數據中確定一個分句清唱音頻數據,然后計算第一個分句的分句清唱音頻數據與參考清唱音頻數據的第一分句的清唱音頻數據之間的基調差,并將該第一分句的分句清唱音頻數據對應的基調差作為基調閾值。接著從目標歌曲的第二個分句的備選清唱音頻數據中確定一個分句清唱音頻數據,然后計算第二個分句的分句清唱音頻數據與參考清唱音頻數據的第二分句的清唱音頻數據之間的基調差,并判斷第二分句的分句清唱音頻數據對應的基調差是否小于基調閾值,若是,則繼續(xù)從目標歌曲的下一個分句的備選清唱音頻數據中確定一個分句清唱音頻數據;否則,則執(zhí)行步驟S211,即重新從第二分句的備選清唱音頻數據中選擇一個清唱音頻數據作為分句清唱音頻數據,直到選擇出的第二分句對應的分句清唱音頻數據與參考清唱音頻數據的第二分句的清唱音頻數據之間的基調差小于基調閾值。

可以理解的,歌曲音頻拼接設備可以按照上述原理,分別判斷出所選擇的目標歌曲的各個分句對應的分句清唱音頻數據與參考清唱音頻數據的相應分句的清唱音頻數據之間的基調差是否均小于預設基調閾值。當基調差均小于基調閾值時,則說明已經為目標歌曲的每個分句確定了合適的分句清唱音頻數據,這些分句清唱音頻數據之間可以認為不存在基調差或者僅存在微小的基調差,也即這些分句清唱音頻數據拼接生成的拼接音頻數據的基調比較平穩(wěn)。否則,歌曲音頻拼接設備針對基調差不小于基調閾值的分句對應的分句清唱音頻數據,可以重新從該分句的備選清唱音頻數據中選擇一個清唱音頻數據作為分句清唱音頻數據,直到選擇出的該分句對應的分句清唱音頻數據與參考清唱音頻數據的對應分句的清唱音頻數據之間的基調差小于基調閾值。

具體實施中,以目標歌曲的第c分句為例,由于大家演唱的是同一句,所以對應的音符值序列的長度相同,設長度為p,意味著第k分句有p幀,第c分句的音符值序列包括p個音符值,則通過預設的基調差公式可以求出針對目標歌曲的演繹中,第c分句對應的分句清唱數據與參考清唱音頻數據的第c分句的清唱音頻數據之間的基調差。其中,基調差公式可以表示為:

其中,yutc指第c分句對應的分句清唱數據的音符值序列的第t幀的音符值,yrtc參考清唱音頻數據的第c分句的清唱音頻數據的音符值序列的第t幀的音符值,mini表示yutc和yrtc兩個音符值序列匹配度最高的i,即基調閾值。

在一種可能的情況下,即使歌曲音頻拼接設備窮盡某一分句(非第一個分句)的備選清唱音頻數據中的所有清唱音頻數據,都無法找到與參考清唱音頻數據的相應分句的清唱音頻數據之間的基調差小于基調閾值的清唱音頻數據,那么說明該分句無法匹配第一分句確定的分句清唱音頻數據。在這種情況下,歌曲音頻拼接設備需要重新從第一個分句的備選清唱音頻數據中確定一個新的分句清唱音頻數據,再計算第一個分句的新的分句清唱音頻數據與參考清唱音頻數據的第一分句的清唱音頻數據之間的基調差,并將該第一分句的分句清唱音頻數據對應的基調差作為新的基調閾值,相應的,其他分句根據該基調差重新確定對應的分句清唱音頻數據,直到目標歌曲的各個分句對應的分句清唱音頻數據與參考清唱音頻數據的相應分句的清唱音頻數據之間的基調差均小于基調閾值。

在一種可能的情況下,即使歌曲音頻拼接設備窮盡第一個分句的備選清唱音頻數據中的所有清唱音頻數據,都無法使各個分句對應的分句清唱音頻數據與參考清唱音頻數據的相應分句的清唱音頻數據之間的基調差均小于基調閾值。也即無法使每一個分句都匹配第一分句確定的分句清唱音頻數據。那么歌曲音頻拼接設備可以暫停對目標歌曲的拼接處理,等待新的清唱音頻數據補充后,再重新進行迭代挑選。

需要說明的是,在本發(fā)明實施例中,在從備選清唱音頻數據中選擇清唱音頻數據作為某一目標分句對應的分句清唱音頻數據時,歌曲音頻拼接設備可以先將備選清唱音頻數據中排名第1個清唱音頻數據作為目標分句對應的分句清唱音頻數據,當排名第1個清唱音頻數據作為分句清唱音頻數據達不到匹配要求的時候,再將備選清唱音頻數據中排名第2個清唱音頻數據作為目標分句對應的分句清唱音頻數據。也即按照備選清唱音頻數據排名的先后順序,從排名第1的備選清唱音頻數據開始依次進行挑選。按照該方法在備選清唱音頻數據中確定目標分句對應的分句清唱音頻數據。

下面舉例說明上述迭代算法,設目標歌曲包括三個分句G1、G2和G3,G1對應的備選清唱音頻數據排序為:a1、b1和c1,G2對應的備選清唱音頻數據排序為:a2、b2和c2,G3對應的備選清唱音頻數據排序為:a3、b3和c3。參考清唱音頻數據的三個分句的清唱音頻數據分別為R1、R2和R3。

首先,將第一分句G1的備選清唱音頻數據中排名第1的a1作為G1的分句清唱音頻數據,并計算a1與R1之間的基調差i1;接著將G2的備選清唱音頻數據中排名第1的a2作為G2的分句清唱音頻數據,并計算a2與R2之間的基調差i2,判斷i2與i1的差的絕對值是否小于1,也即基調差差距很小,如果是,那么則確定a2與a1匹配;則進一步將G3的備選清唱音頻數據中排名第1的a3作為G3的分句清唱音頻數據,并計算a3與R3之間的基調差i3,判斷i3與i1的差的絕對值是否小于1,也即基調差差距很小,如果是,那么則確定a3與a1匹配,從而可以確定a1、a2和a3即為各分句對應的分句清唱音頻數據。

在另一種情況下,a2與R2之間的基調差i2,判斷i2與i1的差的絕對值是否小于1,如果不是,那么則確定a2與a1不匹配;則歌曲音頻拼接設備重新在G2的備選清唱音頻數據中排名第2的b2作為G2的分句清唱音頻數據,并計算b2與R2之間的基調差i4,判斷i4與i1的差的絕對值是否小于1,也即基調差差距很小,如果是,那么則確定b2與a1匹配;則進一步將G3的備選清唱音頻數據中排名第1的a3作為G3的分句清唱音頻數據,并計算a3與R3之間的基調差i3,判斷i3與i1的差的絕對值是否小于1,也即基調差差距很小,如果是,那么則確定a3與a1匹配,從而可以確定a1、b2和a3即為各分句對應的分句清唱音頻數據。

在又一種情況下,a2與R2之間的基調差i2,若i2與i1的差的絕對值大于1,那么則確定a2與a1不匹配;則歌曲音頻拼接設備重新在G2的備選清唱音頻數據中排名第2的b2作為G2的分句清唱音頻數據,并計算b2與R2之間的基調差i4,若i4與i1的差的絕對值大于1,那么則確定b2與a1不匹配;則歌曲音頻拼接設備重新在G2的備選清唱音頻數據中排名第2的c2作為G2的分句清唱音頻數據,并計算c2與R2之間的基調差i5,若i5與i1的差的絕對值大于1,那么則確定c2與a1不匹配。也就是說,G2的備選清唱音頻數據中的所有清唱音頻數據均與a1不匹配,那么則需要重新確定第一分句對應的分句清唱音頻數據,即將第一分句G1的備選清唱音頻數據中排名第2的b1作為G1的分句清唱音頻數據,并計算b1與R1之間的基調差h1,然后再將其他分句重新確定出的分句清唱音頻數據與參考清唱音頻數據之間的基調差和h1做比較后,確定與b1是否匹配,如果仍然找不到與b1匹配的分句清唱音頻數據,則重新再將c1確定為G1的分句清唱音頻數據,如果仍然找不到與c1匹配的分句清唱音頻數據,則暫停對目標歌曲的拼接處理。

步驟S212,根據目標歌曲的各個分句對應的分句清唱音頻數據,生成所述目標歌曲的拼接音頻數據。

具體的,在確定出目標歌曲的各個分句對應的分句清唱音頻數據后,歌曲音頻拼接設備可以將被選出的各個分句清唱音頻數據按照各個分句對應在目標歌曲中的位置和順序拼接起來。其中,各個分句之間可以根據目標歌曲中各個分句之間的空隙時間補充一定時長的靜音,最后再與目標歌曲的伴奏進行混音,從而生成目標歌曲的拼接音頻數據,該拼接音頻數據包括多個用戶對每個分句演繹的分句清唱音頻數據。

本發(fā)明實施例中,通過獲取多個用戶針對目標歌曲的演繹音頻數據,獲取各個分句的不同用戶的清唱音頻數據的基頻信息對應的音符值序列,以計算每個用戶演繹目標分句的清唱音頻數據的基頻距離和,根據各個用戶演繹目標分句的清唱音頻數據的基頻距離和,從所述各個用戶演繹目標分句的清唱音頻數據中確定所述目標歌曲中的目標分句對應的分句清唱音頻數據,根據目標歌曲的各個分句對應的分句清唱音頻數據,生成所述目標歌曲的拼接音頻數據,實現了從多個用戶針對目標歌曲的演繹音頻數據中挑選出每個分句對應的分句清唱音頻數據,生成目標歌曲的拼接音頻數據,提升清唱音頻數據的利用率。

下面將結合圖3-圖6,對本發(fā)明實施例提供的歌曲音頻拼接設備進行詳細介紹。需要說明的是,圖3-圖6所示的歌曲音頻拼接設備,用于執(zhí)行本發(fā)明圖1和圖2所示實施例的方法,為了便于說明,僅示出了與本發(fā)明實施例相關的部分,具體技術細節(jié)未揭示的,請參照本發(fā)明圖1和圖2所示的實施例。

圖3是本發(fā)明實施例提供的一種歌曲音頻拼接設備的結構示意圖,所述歌曲音頻拼接設備包括:

數據獲取單元310,用于獲取多個用戶針對目標歌曲的演繹音頻數據,所述演繹音頻數據包括所述目標歌曲的各個分句的清唱音頻數據。

具體的,在本發(fā)明實施例中,演繹音頻數據可以是用戶演唱目標歌曲時通過具有錄音功能的終端設備錄制的音頻數據,該演繹音頻數據可以是只有用戶演唱的清唱音頻數據,也可以是包括用戶演唱的清唱音頻數據以及目標歌曲的伴奏混音等背景音樂的音頻數據,這里不作具體限定。其中,目標歌曲中包括多個分句,對于分句的劃分可以通過目標歌曲的歌詞信息來進行劃分,例如目標歌曲為《新年好》,則“新年好啊,新年好啊,祝福大家新年好”就可以被定義為三個分句。用戶在對目標歌曲演唱完成后,可以將其演唱的演繹音頻數據上傳或者保存在歌曲音頻拼接設備中,數據獲取單元310就可以獲取到多個用戶針對目標歌曲的演繹音頻數據,從而可以獲取到多個用戶針對目標歌曲的各個分句的清唱音頻數據。

第一音符值轉換單元320,用于分別提取各用戶演繹的各個分句的清唱音頻數據的基頻信息,獲取各個分句的不同用戶的清唱音頻數據的基頻信息對應的音符值序列。

具體的,第一音符值轉換單元320可以提取各用戶演繹的各個分句的目標清唱音頻數據的基頻信息,并且根據各個分句的不同用戶的清唱音頻數據的基頻信息獲取對應的音符值序列。可以理解的是,基頻信息可以為清唱音頻數據的基音,用于決定清唱音頻數據中各音符點的音高。其中,音符值指的是針對MIDI(Musical Instrument Digital Interface)樂器數字接口的一種標準值。

在一種可能的實施場景中,第一音符值轉換單元320可以采用預設音符轉換公式,并根據調整后的所述各基頻點的基頻值,計算各基頻點的音符值。其中,預設音符轉換公式可以為:

其中,Y表示為當前基頻點的音符值,x表示為當前基頻點的基頻值。

可選的,在提取各用戶演繹的各個分句的清唱音頻數據的基頻信息之前,第一音符值轉換單元320可以先對每個清唱音頻數據按照預設的格式進行規(guī)整,例如,可以規(guī)整為16k 16bit的PCM格式。

可選的,可以一并參見圖4,圖4是本發(fā)明實施例提供的第一音符值轉換單元的結構示意圖,所述第一音符值轉換單元320包括:

基頻點生成子單元321,用于按照預設幀長和預設幀移分別提取各用戶演繹的各個分句的清唱音頻數據的基頻信息,以生成各用戶演繹的各個分句對應的至少一個基頻點。

具體實施中,基頻點生成子單元321可以按照預設幀長和預設幀移分別提取各用戶演繹的各個分句的清唱音頻數據的基頻信息,以生成各用戶演繹的各個分句對應的至少一個基頻點,然后對至少一個基頻點中各基頻點的基頻值進行調整,并將調整后的各基頻點的基頻值轉換為各基頻點對應的音符值,從而獲取各個分句的不同用戶的清唱音頻數據的基頻信息對應的音符值序列。例如,歌曲音頻拼接設備可以預設幀長為30ms,幀移為10ms,采集每個用戶演繹的每個分句的清唱音頻數據的基頻信息,從而每個用戶演繹的每個分句都對應存在至少一個基頻點。

第一音符值轉換子單元322,用于對所述至少一個基頻點中各基頻點的基頻值進行調整,并將調整后的所述各基頻點的基頻值轉換為所述各基頻點對應的音符值,從而獲取各個分句的不同用戶的清唱音頻數據的基頻信息對應的音符值序列。

第一音符值轉換子單元322對上述至少一個基頻點進行除噪、平滑等處理,然后將調整后的各基頻點的基頻值轉換為各基頻點對應的音符值,則每個用戶演繹的每個分句對應至少一個基頻點,至少一個基頻點對應了至少一個音符值,至少一個音符值即音符值序列,從而歌曲音頻拼接設備就獲取到了各個分句的不用用戶的清唱音頻數據的基頻信息對應的音符值序列。

需要說明的是,第一音符值轉換子單元322對至少一個基頻點中各基頻點的基頻值進行調整時,可以是對至少一個基頻點中的奇異基頻點的基頻值進行置零處理,例如,如果一個非0基頻點的前后基頻值均為0,則將此基頻點記為0;還可以是對連續(xù)的幾個基頻點進行中值濾波處理,通過中值濾波處理,可以使得基頻段曲線平滑,避免噪點的出現。

第一計算單元330,用于計算所述多個用戶中的目標用戶演繹目標分句的音符值序列分別與所述多個用戶中其他用戶演繹目標分句的音符值序列之間的基頻距離的和,作為所述目標用戶演繹目標分句的清唱音頻數據的基頻距離和。

具體的,第一計算單元330可以分別計算多個用戶中的某一目標用戶演繹的某一目標分句的音符值序列與其他用戶演繹該對應分句的音符值序列之間的基頻距離的和,即作為該目標用戶演繹目標分句的清唱音頻數據的基頻距離和。例如,目標用戶A演繹目標分句G1的清唱音頻數據對應的音符值序列為Y1,演繹目標歌曲的其他用戶包括B、C和D三個用戶,B演繹目標分句G1的清唱音頻數據對應的音符值序列為Y2,C演繹目標分句G1的清唱音頻數據對應的音符值序列為Y3,D演繹目標分句G1的清唱音頻數據對應的音符值序列為Y4,則第一計算單元330可以分別計算Y1與Y2之間的基頻距離,Y1與Y3之間的基頻距離,Y1與Y4之間的基頻距離,然后將上述計算出的基頻距離求和,即為目標用戶A演繹目標分句G1的清唱音頻數據的基頻距離和。

具體實施中,以目標歌曲的第k分句為例,由于大家演唱的是同一句,所以對應的音符值序列的長度相同,設長度為p,意味著第k分句有p幀,第k分句的音符值序列包括p個音符值,則第一計算單元330通過預設的基頻距離公式可以求出針對目標歌曲的演繹中,第i個用戶的第k分句的音符值序列與第j個用戶的第k分句的音符值序列之間的基頻距離。其中,預設的基頻距離公式可以為:

其中,Lijk為第i個用戶的第k分句的音符值序列與第j個用戶的第k分句的音符值序列之間的基頻距離,yitk為第i個用戶的第k分句的音符值序列的第t幀的音符值,yjtk為第j個用戶的第k分句的音符值序列的第t幀的音符值。這里,i∈(1~n),j∈(1~n),其中,n可以指演繹目標歌曲的所有用戶的數量。需要說明的是,第一個基頻距離公式中的12代表一個八度,也就是說,第一個基頻距離公式中認為第i個用戶和第j個用戶對第k分句的演繹在高一個八度或低一個八度的跨度內的音準都是一樣的。

依照上述預設的基頻距離公式的其中一個,第一計算單元330可以依次計算出目標用戶演繹目標分句的音符值序列分別與多個用戶中其他用戶演繹目標分句的音符值序列之間的基頻距離,并將計算得到的基頻距離求和,即為目標用戶演繹目標分句的清唱音頻數據的基頻距離和。其中,以第i個用戶為目標用戶,目標歌曲的第k分句為目標分句為例,基頻距離和的公式可以為:

其中,Sik為第i個用戶演繹第k分句的清唱音頻數據的基頻距離和,Lijk為第i個用戶的第k分句的音符值序列與第j個用戶的第k分句的音符值序列之間的基頻距離,n可以指演繹目標歌曲的所有用戶的數量。

第一分句數據選擇單元340,用于根據各個用戶演繹目標分句的清唱音頻數據的基頻距離和,從所述各個用戶演繹目標分句的清唱音頻數據中確定所述目標歌曲中的目標分句對應的分句清唱音頻數據。

具體的,目標分句對應的分句清唱音頻數據可以指在多個用戶演繹的目標分句的清唱音頻數據中選擇出的一個用于拼接的清唱音頻數據。該目標分句對應的分句清唱音頻數據的確定可以依據之前計算得到的各個用戶演繹的目標分句的清唱音頻數據的基頻距離和,再結合不同的預設算法進行選取。

在第一種可能的實施場景中,第一分句數據選擇單元340可以獲取各個用戶演繹目標分句的清唱音頻數據的基頻距離和中最小的基頻距離和,確定該最小的基頻距離和所對應的目標清唱音頻數據,將該目標清唱音頻數據作為目標歌曲中的目標分句對應的分句清唱音頻數據即可。

可選的,可以一并參見圖5,圖5是本發(fā)明實施例提供的第一分句數據選擇單元的結構示意圖,第一分句數據選擇單元340包括:

數據排序子單元341,用于按照基頻距離和從小到大,對各個用戶演繹目標分句的清唱音頻數據進行排序。

備選數據獲取子單元342,用于獲取排序前N個清唱音頻數據作為所述目標分句的備選清唱音頻數據,從所述備選清唱音頻數據中選擇其中一個清唱音頻數據作為所述目標歌曲中的目標分句對應的分句清唱音頻數據。

在第二種可能的實施場景中,數據排序子單元341可以按照基頻距離和從小到大,對各個用戶演繹目標分句的清唱音頻數據進行排序,從而備選數據獲取子單元342獲取排序前N個清唱音頻數據作為目標分句的備選清唱音頻數據,從備選清唱音頻數據中選擇其中一個清唱音頻數據作為目標歌曲中的目標分句對應的分句清唱音頻數據。具體的,在備選清唱音頻數據中選擇清唱音頻數據作為分句清唱音頻數據時,備選數據獲取子單元342可以根據預先設定的規(guī)則進行依次迭代,從而選擇出各個分句之間匹配度最合適的多個分句清唱音頻數據;備選數據獲取子單元342也可以隨機的從備選清唱音頻數據中選擇清唱音頻數據作為分句清唱音頻數據,在本實施例中不作具體限定。

需要說明的是,在第二種實施場景中的一種情況下,N可以是歌曲音頻拼接設備中預先設定的,例如,備選數據獲取子單元342可以預先設定取排序中用戶數量的一半的清唱音頻數據作為目標分句的備選清唱音頻數據,則若有10個用戶演唱的針對目標分句的清唱音頻數據,將這10個用戶演繹目標分句的清唱音頻數據的基頻距離和從小到大排序后,取前5個清唱音頻數據作為目標分句的備選清唱音頻數據即可。

可選的,在第二種實施場景中的另一種情況下,所述數據排序子單元341用于:

根據各個用戶演繹目標分句的清唱音頻數據的基頻距離和,計算各個用戶演繹目標分句的清唱音頻數據的置信度;

將置信度達到預設置信度閾值的排序前N個清唱音頻數據作為所述目標分句的備選清唱音頻數據,N由置信度達不到預設置信度閾值的基頻距離和最小的清唱音頻數據的排序確定。

在第二種實施場景中的另一種情況下,N可以是根據各個用戶演繹目標分句的清唱音頻數據的置信度來確定的。具體來說,數據排序子單元341可以根據各個用戶演繹目標分句的清唱音頻數據的基頻距離和,計算各個用戶演繹目標分句的清唱音頻數據的置信度,將置信度達到預設置信度閾值的排序前N個清唱音頻數據作為目標分句的備選清唱音頻數據。這里,N可以由置信度達不到預設置信度閾值的基頻距離和最小的清唱音頻數據的排序確定。例如,若有5個用戶演唱的針對目標分句的清唱音頻數據,數據排序子單元341將這5個用戶演繹目標分句的清唱音頻數據的基頻距離和從小到大排序后,分別計算得到5個用戶演繹目標分句的清唱音頻數據的置信度,設排名前三位的用戶演繹目標分句的清唱音頻數據的置信度均大于預設置信度閾值,而排名第四位的用戶演繹目標分句的清唱音頻數據的置信度小于預設置信度閾值,則這里N即為3,也即將置信度達到預設置信度閾值的排序前3個清唱音頻數據作為目標分句的備選清唱音頻數據。

進一步的,在計算置信度時,所述數據排序子單元341用于:

在各個用戶演繹目標分句的清唱音頻數據中,根據排序第1個清唱音頻數據的基頻距離和與排序前M個清唱音頻數據的基頻距離和之間的比較結果,確定排序第1個清唱音頻數據的置信度;

根據所述排序第1個清唱音頻數據的基頻距離和與其他各個清唱音頻數據的基頻距離和的比較結果,確定其他各個清唱音頻數據的置信度。

具體的,數據排序子單元341可以先在各個用戶演繹目標分句的清唱音頻數據中,根據排序第1個清唱音頻數據的基頻距離和與排序前M個清唱音頻數據的基頻距離和之間的比較結果,確定排序第1個清唱音頻數據的置信度。具體來說,在一種情況下,數據排序子單元341可以分別計算排序第1個清唱音頻數據的基頻距離和與排序前M個清唱音頻數據的基頻距離和的比值,若計算得到的比值均大于預設的第一置信度閾值,那么則可以認為排序第1個清唱音頻數據的置信度大于預設置信度閾值,即排序第1個清唱音頻數據可以作為目標分句的備選清唱音頻數據。在另一種情況下,數據排序子單元341可以計算排序第1個清唱音頻數據的基頻距離和與排序前M個清唱音頻數據的基頻距離和的求和結果的比值,M可以是數據排序子單元341預設的,若計算得到的比值大于預設的第二置信度閾值,那么則可以認為排序第1個清唱音頻數據的置信度大于預設置信度閾值,即排序第1個清唱音頻數據可以作為目標分句的備選清唱音頻數據。例如,在計算各個用戶演繹第k分句的清唱音頻數據中排序第1個清唱音頻數據的置信度時,置信度公式可以表示為:

其中,f為第k分句的清唱音頻數據中排序第1個清唱音頻數據的置信度,Sk1為第k分句對應的排名第1個清唱音頻數據的基頻距離和,為第k分句對應的排名前M個清唱音頻數據的基頻距離和的求和結果。

在確定排序第1個清唱音頻數據的置信度達到預設置信度閾值后,數據排序子單元341可以進一步確定其他各個清唱音頻數據的置信度。具體實施中,數據排序子單元341可以根據排序第1個清唱音頻數據的基頻距離和與其他各個清唱音頻數據的基頻距離和的比較結果,確定其他各個清唱音頻數據的置信度。若某一清唱音頻數據的置信度大于預設的第三置信度閾值,那么則可以認為該清唱音頻數據的置信度大于預設置信度閾值,即該清唱音頻數據可以作為目標分句的備選清唱音頻數據。按照該方法,數據排序子單元341可以確定獲取置信度大于預設置信度閾值的排序前N個清唱音頻數據作為目標分句的備選清唱音頻數據。例如,在計算各個用戶演繹第k分句的清唱音頻數據中其他各個清唱音頻數據的置信度時,可以計算排序第1個清唱音頻數據的基頻距離和與其他各個清唱音頻數據的基頻距離和的比值,即置信度公式可以表示為:

其中,vj為第k分句的清唱音頻數據中除排序第1個清唱音頻數據的其他各個清唱音頻數據的置信度,Sk1為第k分句對應的排名第1個清唱音頻數據的基頻距離和,Skj為第k分句對應的除排序第1個清唱音頻數據的其他各個清唱音頻數據的基頻距離和。

數據生成單元350,用于根據目標歌曲的各個分句對應的分句清唱音頻數據,生成所述目標歌曲的拼接音頻數據。

具體的,確定出目標歌曲的各個分句對應的分句清唱音頻數據后,數據生成單元350可以將被選出的各個分句清唱音頻數據按照各個分句對應在目標歌曲中的位置和順序拼接起來。其中,各個分句之間可以根據目標歌曲中各個分句之間的空隙時間補充一定時長的靜音,最后再與目標歌曲的伴奏進行混音,從而生成目標歌曲的拼接音頻數據,該拼接音頻數據包括多個用戶對每個分句演繹的分句清唱音頻數據。例如,目標歌曲有4個分句G1、G2、G3和G4,設總共有3個用戶演唱了該目標歌曲,用戶A對4個分句演繹的清唱音頻數據分別為a1、a2、a3、a4,用戶B對4個分句演繹的清唱音頻數據分別為b1、b2、b3、b4,用戶C對4個分句演繹的清唱音頻數據分別為c1、c2、c3、c4,其中,數據生成單元350根據上述算法最終確定:G1分句對應的分句清唱音頻數據為b1,G2分句對應的分句清唱音頻數據為c2,G3分句對應的分句清唱音頻數據為b3,G4分句對應的分句清唱音頻數據為a4,那么歌曲音頻拼接設備就可以將b1、c2、b3以及a4這四個清唱音頻數據進行拼接,最終生成目標歌曲的拼接音頻數據。

本發(fā)明實施例中,通過獲取多個用戶針對目標歌曲的演繹音頻數據,獲取各個分句的不同用戶的清唱音頻數據的基頻信息對應的音符值序列,以計算每個用戶演繹目標分句的清唱音頻數據的基頻距離和,根據各個用戶演繹目標分句的清唱音頻數據的基頻距離和,從所述各個用戶演繹目標分句的清唱音頻數據中確定所述目標歌曲中的目標分句對應的分句清唱音頻數據,根據目標歌曲的各個分句對應的分句清唱音頻數據,生成所述目標歌曲的拼接音頻數據,實現了從多個用戶針對目標歌曲的演繹音頻數據中挑選出每個分句對應的分句清唱音頻數據,生成目標歌曲的拼接音頻數據,提升清唱音頻數據的利用率。

圖6是本發(fā)明實施例提供的另一種歌曲音頻拼接設備的結構示意圖,所述設備包括:

數據獲取單元310,用于獲取多個用戶針對目標歌曲的演繹音頻數據,所述演繹音頻數據包括所述目標歌曲的各個分句的清唱音頻數據。

具體的,演繹音頻數據可以是用戶演唱目標歌曲時通過具有錄音功能的終端設備錄制的音頻數據,該演繹音頻數據可以是只有用戶演唱的清唱音頻數據。其中,目標歌曲中包括多個分句,對于分句的劃分可以通過目標歌曲的歌詞信息來進行劃分,例如目標歌曲為《新年好》,則“新年好啊,新年好啊,祝福大家新年好”就可以被定義為三個分句。用戶在對目標歌曲演唱完成后,可以將其演唱的演繹音頻數據上傳或者保存在歌曲音頻拼接設備中,數據獲取單元310就可以獲取到多個用戶針對目標歌曲的演繹音頻數據,從而可以獲取到多個用戶針對目標歌曲的各個分句的清唱音頻數據。

第二音符值轉換單元360,用于分別提取各用戶演繹的目標歌曲的演繹音頻數據的基頻信息,獲取不同用戶的演繹音頻數據的基頻信息對應的音符值序列。

具體的,第二音符值轉換單元360可以分別提取各用戶演繹的目標歌曲的演繹音頻數據的基頻信息,并獲取不同用戶的演繹音頻數據的基頻信息對應的音符值序列。也就是說,這里第二音符值轉換單元360獲取的是不同用戶針對目標歌曲演繹的完整的演繹音頻數據對應的音符值序列。可以理解的是,基頻信息可以為清唱音頻數據的基音,用于決定清唱音頻數據中各音符點的音高。其中,音符值指的是針對MIDI(Musical Instrument Digital Interface)樂器數字接口的一種標準值。

具體實施中,第二音符值轉換單元360可以按照預設幀長和預設幀移分別提取各用戶演繹的演繹音頻數據的基頻信息,以生成各用戶演繹的目標歌曲對應的至少一個基頻點,然后對至少一個基頻點中各基頻點的基頻值進行調整,并將調整后的各基頻點的基頻值轉換為各基頻點對應的音符值,從而獲取不同用戶的演繹音頻數據的基頻信息對應的音符值序列。例如,第二音符值轉換單元360可以預設幀長為30ms,幀移為10ms,采集每個用戶演繹的演繹音頻數據的基頻信息,從而每個用戶演繹的演繹音頻數據都對應存在至少一個基頻點。第二音符值轉換單元360對上述至少一個基頻點進行除噪、平滑等處理,然后將調整后的各基頻點的基頻值轉換為各基頻點對應的音符值,則每個用戶演繹的演繹音頻數據對應至少一個基頻點,至少一個基頻點對應了至少一個音符值,至少一個音符值即音符值序列,從而第二音符值轉換單元360就獲取到了不用用戶的演繹音頻數據的基頻信息對應的音符值序列。

在一種可能的實施場景中,第二音符值轉換單元360可以采用預設音符轉換公式,并根據調整后的所述各基頻點的基頻值,計算各基頻點的音符值。其中,預設音符轉換公式可以為:

其中,Y表示為當前基頻點的音符值,x表示為當前基頻點的基頻值。

需要說明的是,第二音符值轉換單元360對至少一個基頻點中各基頻點的基頻值進行調整時,可以是對至少一個基頻點中的奇異基頻點的基頻值進行置零處理,例如,如果一個非0基頻點的前后基頻值均為0,則將此基頻點記為0;還可以是對連續(xù)的幾個基頻點進行中值濾波處理,通過中值濾波處理,可以使得基頻段曲線平滑,避免噪點的出現。

可選的,在提取各用戶的演繹音頻數據的基頻信息之前,第二音符值轉換單元360可以先對每個演繹音頻數據按照預設的格式進行規(guī)整,例如,可以規(guī)整為16k 16bit的PCM格式。

第二計算單元370,用于計算所述多個用戶中的目標用戶的演繹音頻數據的音符值序列分別與所述多個用戶中其他用戶的演繹音頻數據的音符值序列之間的基頻距離的和,作為所述目標用戶的演繹音頻數據的基頻距離和。

具體的,第二計算單元370可以分別計算多個用戶中的某一目標用戶的演繹音頻數據的音符值序列與其他用戶的演繹音頻數據的音符值序列之間的基頻距離的和,即作為該目標用戶的演繹音頻數據的基頻距離和。例如,目標用戶A演繹目標歌曲的演繹音頻數據對應的音符值序列為W1,演繹目標歌曲的其他用戶包括B、C和D三個用戶,B演繹目標歌曲的演繹音頻數據對應的音符值序列為W2,C演繹目標歌曲的演繹音頻數據對應的音符值序列為W3,D演繹目標歌曲的演繹音頻數據對應的音符值序列為W4,則歌曲音頻拼接設備可以分別計算W1與W2之間的基頻距離,W1與W3之間的基頻距離,W1與W4之間的基頻距離,然后將上述計算出的基頻距離求和,即為目標用戶A演繹目標歌曲的演繹音頻數據的基頻距離和。

具體實施中,以目標歌曲為例,由于大家演唱的是同一首歌,所以對應的音符值序列的長度相同,設長度為q,意味著目標歌曲有q幀,演繹音頻數據的音符值序列包括q個音符值,則通過預設的基頻距離公式可以求出針對目標歌曲的演繹中,第i個用戶的演繹音頻數據的音符值序列與第j個用戶的演繹音頻數據的音符值序列之間的基頻距離。其中,預設的基頻距離公式可以為:

其中,Lij為第i個用戶的演繹音頻數據的音符值序列與第j個用戶的演繹音頻數據的音符值序列之間的基頻距離,yit為第i個用戶的演繹音頻數據的音符值序列的第t幀的音符值,yjt為第j個用戶的演繹音頻數據的音符值序列的第t幀的音符值。這里,i∈(1~n),j∈(1~n),其中,n可以指演繹目標歌曲的所有用戶的數量。需要說明的是,基頻距離公式中的12代表一個八度,也就是說,基頻距離公式中認為第i個用戶和第j個用戶對目標歌曲的演繹在高一個八度或低一個八度的跨度內的音準都是一樣的。

依照上述預設的基頻距離公式,第二計算單元370可以依次計算出目標用戶的演繹音頻數據的音符值序列分別與多個用戶中其他用戶的演繹音頻數據的音符值序列之間的基頻距離,并將計算得到的基頻距離求和,即為目標用戶的演繹音頻數據的基頻距離和。其中,以第i個用戶為目標用戶,目標歌曲為例,基頻距離和的公式可以為:

其中,Si為第i個用戶的演繹音頻數據的基頻距離和,Lij為第i個用戶的演繹音頻數據的音符值序列與第j個用戶的演繹音頻數據的音符值序列之間的基頻距離,n可以指演繹目標歌曲的所有用戶的數量。

參考數據選擇單元380,用于根據各個用戶的演繹音頻數據的基頻距離和,將基頻距離和最小的演繹音頻數據作為參考清唱音頻數據。

具體的,參考數據選擇單元380根據計算出的各個用戶的演繹音頻數據的基頻距離和,可以確定出其中基頻距離和最小的一個用戶的演繹音頻數據,則將該用戶的演繹音頻數據作為目標歌曲的參考清唱音頻數據。

第一音符值轉換單元320,用于分別提取各用戶演繹的各個分句的清唱音頻數據的基頻信息,獲取各個分句的不同用戶的清唱音頻數據的基頻信息對應的音符值序列。

具體的,第一音符值轉換單元320可以提取各用戶演繹的各個分句的目標清唱音頻數據的基頻信息,并且根據各個分句的不同用戶的清唱音頻數據的基頻信息獲取對應的音符值序列。可以理解的是,基頻信息可以為清唱音頻數據的基音,用于決定清唱音頻數據中各音符點的音高。其中,音符值指的是針對MIDI(Musical Instrument Digital Interface)樂器數字接口的一種標準值。

在一種可能的實施場景中,第一音符值轉換單元320可以采用預設音符轉換公式,并根據調整后的所述各基頻點的基頻值,計算各基頻點的音符值。其中,預設音符轉換公式可以為:

其中,Y表示為當前基頻點的音符值,x表示為當前基頻點的基頻值。

可選的,在提取各用戶演繹的各個分句的清唱音頻數據的基頻信息之前,第一音符值轉換單元320可以先對每個清唱音頻數據按照預設的格式進行規(guī)整,例如,可以規(guī)整為16k 16bit的PCM格式。

可選的,可以一并參見圖4,圖4是本發(fā)明實施例提供的第一音符值轉換單元的結構示意圖,所述第一音符值轉換單元320包括:

基頻點生成子單元321,用于按照預設幀長和預設幀移分別提取各用戶演繹的各個分句的清唱音頻數據的基頻信息,以生成各用戶演繹的各個分句對應的至少一個基頻點。

具體實施中,基頻點生成子單元321可以按照預設幀長和預設幀移分別提取各用戶演繹的各個分句的清唱音頻數據的基頻信息,以生成各用戶演繹的各個分句對應的至少一個基頻點,然后對至少一個基頻點中各基頻點的基頻值進行調整,并將調整后的各基頻點的基頻值轉換為各基頻點對應的音符值,從而獲取各個分句的不同用戶的清唱音頻數據的基頻信息對應的音符值序列。例如,歌曲音頻拼接設備可以預設幀長為30ms,幀移為10ms,采集每個用戶演繹的每個分句的清唱音頻數據的基頻信息,從而每個用戶演繹的每個分句都對應存在至少一個基頻點。

第一音符值轉換子單元322,用于對所述至少一個基頻點中各基頻點的基頻值進行調整,并將調整后的所述各基頻點的基頻值轉換為所述各基頻點對應的音符值,從而獲取各個分句的不同用戶的清唱音頻數據的基頻信息對應的音符值序列。

第一音符值轉換子單元322對上述至少一個基頻點進行除噪、平滑等處理,然后將調整后的各基頻點的基頻值轉換為各基頻點對應的音符值,則每個用戶演繹的每個分句對應至少一個基頻點,至少一個基頻點對應了至少一個音符值,至少一個音符值即音符值序列,從而歌曲音頻拼接設備就獲取到了各個分句的不用用戶的清唱音頻數據的基頻信息對應的音符值序列。

需要說明的是,第一音符值轉換子單元322對至少一個基頻點中各基頻點的基頻值進行調整時,可以是對至少一個基頻點中的奇異基頻點的基頻值進行置零處理,例如,如果一個非0基頻點的前后基頻值均為0,則將此基頻點記為0;還可以是對連續(xù)的幾個基頻點進行中值濾波處理,通過中值濾波處理,可以使得基頻段曲線平滑,避免噪點的出現。

第一計算單元330,用于計算所述多個用戶中的目標用戶演繹目標分句的音符值序列分別與所述多個用戶中其他用戶演繹目標分句的音符值序列之間的基頻距離的和,作為所述目標用戶演繹目標分句的清唱音頻數據的基頻距離和。

具體的,第一計算單元330可以分別計算多個用戶中的某一目標用戶演繹的某一目標分句的音符值序列與其他用戶演繹該對應分句的音符值序列之間的基頻距離的和,即作為該目標用戶演繹目標分句的清唱音頻數據的基頻距離和。例如,目標用戶A演繹目標分句G1的清唱音頻數據對應的音符值序列為Y1,演繹目標歌曲的其他用戶包括B、C和D三個用戶,B演繹目標分句G1的清唱音頻數據對應的音符值序列為Y2,C演繹目標分句G1的清唱音頻數據對應的音符值序列為Y3,D演繹目標分句G1的清唱音頻數據對應的音符值序列為Y4,則第一計算單元330可以分別計算Y1與Y2之間的基頻距離,Y1與Y3之間的基頻距離,Y1與Y4之間的基頻距離,然后將上述計算出的基頻距離求和,即為目標用戶A演繹目標分句G1的清唱音頻數據的基頻距離和。

具體實施中,以目標歌曲的第k分句為例,由于大家演唱的是同一句,所以對應的音符值序列的長度相同,設長度為p,意味著第k分句有p幀,第k分句的音符值序列包括p個音符值,則第一計算單元330通過預設的基頻距離公式可以求出針對目標歌曲的演繹中,第i個用戶的第k分句的音符值序列與第j個用戶的第k分句的音符值序列之間的基頻距離。其中,預設的基頻距離公式可以為:

其中,Lijk為第i個用戶的第k分句的音符值序列與第j個用戶的第k分句的音符值序列之間的基頻距離,yitk為第i個用戶的第k分句的音符值序列的第t幀的音符值,yjtk為第j個用戶的第k分句的音符值序列的第t幀的音符值。這里,i∈(1~n),j∈(1~n),其中,n可以指演繹目標歌曲的所有用戶的數量。需要說明的是,第一個基頻距離公式中的12代表一個八度,也就是說,第一個基頻距離公式中認為第i個用戶和第j個用戶對第k分句的演繹在高一個八度或低一個八度的跨度內的音準都是一樣的。

依照上述預設的基頻距離公式的其中一個,第一計算單元330可以依次計算出目標用戶演繹目標分句的音符值序列分別與多個用戶中其他用戶演繹目標分句的音符值序列之間的基頻距離,并將計算得到的基頻距離求和,即為目標用戶演繹目標分句的清唱音頻數據的基頻距離和。其中,以第i個用戶為目標用戶,目標歌曲的第k分句為目標分句為例,基頻距離和的公式可以為:

其中,Sik為第i個用戶演繹第k分句的清唱音頻數據的基頻距離和,Lijk為第i個用戶的第k分句的音符值序列與第j個用戶的第k分句的音符值序列之間的基頻距離,n可以指演繹目標歌曲的所有用戶的數量。

第一分句數據選擇單元340,用于根據各個用戶演繹目標分句的清唱音頻數據的基頻距離和,從所述各個用戶演繹目標分句的清唱音頻數據中確定所述目標歌曲中的目標分句對應的分句清唱音頻數據。

可以一并參見圖5,圖5是本發(fā)明實施例提供的第一分句數據選擇單元的結構示意圖,第一分句數據選擇單元340包括:

數據排序子單元341,用于按照基頻距離和從小到大,對各個用戶演繹目標分句的清唱音頻數據進行排序。

具體的,數據排序子單元341根據上述方法計算得到基頻距離和,將基頻距離和從小到大進行排序,該排序也即為各個用戶演繹目標分句的清唱音頻數據的排序。例如,目標分句為G1,有三個用戶演唱,A用戶演唱G1的清唱音頻數據a1的基頻距離和排序為第一,B用戶演唱G1的清唱音頻數據b1的基頻距離和排序為第二,C用戶演唱G1的清唱音頻數據c1的基頻距離和排序為第三。那么,ABC三個用戶演繹目標分句G1的清唱音頻數據排序也即為a1、b1、c1。

備選數據獲取子單元342,用于獲取排序前N個清唱音頻數據作為所述目標分句的備選清唱音頻數據,從所述備選清唱音頻數據中選擇其中一個清唱音頻數據作為所述目標歌曲中的目標分句對應的分句清唱音頻數據。

具體的,N可以是根據各個用戶演繹目標分句的清唱音頻數據的置信度來確定的。具體來說,備選數據獲取子單元342可以根據各個用戶演繹目標分句的清唱音頻數據的基頻距離和,計算各個用戶演繹目標分句的清唱音頻數據的置信度,將置信度達到預設置信度閾值的排序前N個清唱音頻數據作為目標分句的備選清唱音頻數據。

這里,N可以由置信度達不到預設置信度閾值的基頻距離和最小的清唱音頻數據的排序確定。例如,若有5個用戶演唱的針對目標分句的清唱音頻數據,備選數據獲取子單元342將這5個用戶演繹目標分句的清唱音頻數據的基頻距離和從小到大排序后,分別計算得到5個用戶演繹目標分句的清唱音頻數據的置信度,設排名前三位的用戶演繹目標分句的清唱音頻數據的置信度均大于預設置信度閾值,而排名第四位的用戶演繹目標分句的清唱音頻數據的置信度小于預設置信度閾值,則這里N即為3,也即將置信度達到預設置信度閾值的排序前3個清唱音頻數據作為目標分句的備選清唱音頻數據。

進一步的,在計算置信度時,備選數據獲取子單元342可以先在各個用戶演繹目標分句的清唱音頻數據中,根據排序第1個清唱音頻數據的基頻距離和與排序前M個清唱音頻數據的基頻距離和之間的比較結果,確定排序第1個清唱音頻數據的置信度。具體來說,在一種情況下,備選數據獲取子單元342可以分別計算排序第1個清唱音頻數據的基頻距離和與排序前M個清唱音頻數據的基頻距離和的比值,若計算得到的比值均大于預設的第一置信度閾值,那么則可以認為排序第1個清唱音頻數據的置信度大于預設置信度閾值,即排序第1個清唱音頻數據可以作為目標分句的備選清唱音頻數據。在另一種情況下,備選數據獲取子單元342可以計算排序第1個清唱音頻數據的基頻距離和與排序前M個清唱音頻數據的基頻距離和的求和結果的比值,M可以是歌曲音頻拼接設備預設的,若計算得到的比值大于預設的第二置信度閾值,那么則可以認為排序第1個清唱音頻數據的置信度大于預設置信度閾值,即排序第1個清唱音頻數據可以作為目標分句的備選清唱音頻數據。例如,在計算各個用戶演繹第k分句的清唱音頻數據中排序第1個清唱音頻數據的置信度時,置信度公式可以表示為:

其中,f為第k分句的清唱音頻數據中排序第1個清唱音頻數據的置信度,Sk1為第k分句對應的排名第1個清唱音頻數據的基頻距離和,為第k分句對應的排名前M個清唱音頻數據的基頻距離和的求和結果。

在確定排序第1個清唱音頻數據的置信度達到預設置信度閾值后,備選數據獲取子單元342可以進一步確定其他各個清唱音頻數據的置信度。具體實施中,備選數據獲取子單元342可以根據排序第1個清唱音頻數據的基頻距離和與其他各個清唱音頻數據的基頻距離和的比較結果,確定其他各個清唱音頻數據的置信度。若某一清唱音頻數據的置信度大于預設的第三置信度閾值,那么則可以認為該清唱音頻數據的置信度大于預設置信度閾值,即該清唱音頻數據可以作為目標分句的備選清唱音頻數據。按照該方法,備選數據獲取子單元342可以確定獲取置信度大于預設置信度閾值的排序前N個清唱音頻數據作為目標分句的備選清唱音頻數據。例如,在計算各個用戶演繹第k分句的清唱音頻數據中其他各個清唱音頻數據的置信度時,可以計算排序第1個清唱音頻數據的基頻距離和與其他各個清唱音頻數據的基頻距離和的比值,即置信度公式可以表示為:

其中,vj為第k分句的清唱音頻數據中除排序第1個清唱音頻數據的其他各個清唱音頻數據的置信度,Sk1為第k分句對應的排名第1個清唱音頻數據的基頻距離和,Skj為第k分句對應的除排序第1個清唱音頻數據的其他各個清唱音頻數據的基頻距離和。

基調差確定單元390,用于確定所述目標歌曲的各個分句對應的分句清唱音頻數據與所述參考清唱音頻數據的相應分句的清唱音頻數據之間的基調差均小于預設基調閾值。

第二分句數據選擇單元400,用于若所述目標歌曲的各個分句對應的分句清唱音頻數據與所述參考清唱音頻數據的相應分句的清唱音頻數據之間的基調差不能滿足均小于預設基調閾值,則重新從各個分句對應的備選清唱音頻數據中選擇其中的清唱音頻數據作為所述目標歌曲中的目標分句對應的分句清唱音頻數據,直至各個分句對應的分句清唱音頻數據與所述參考清唱音頻數據的相應分句的清唱音頻數據之間的基調差均小于預設基調閾值。

具體的,備選數據獲取子單元342可以首先從目標歌曲的第一個分句的備選清唱音頻數據中確定一個分句清唱音頻數據,然后基調差確定單元390計算第一個分句的分句清唱音頻數據與參考清唱音頻數據的第一分句的清唱音頻數據之間的基調差,并將該第一分句的分句清唱音頻數據對應的基調差作為基調閾值。接著備選數據獲取子單元342從目標歌曲的第二個分句的備選清唱音頻數據中確定一個分句清唱音頻數據,然后基調差確定單元390計算第二個分句的分句清唱音頻數據與參考清唱音頻數據的第二分句的清唱音頻數據之間的基調差,并判斷第二分句的分句清唱音頻數據對應的基調差是否小于基調閾值,若是,則備選數據獲取子單元342繼續(xù)從目標歌曲的下一個分句的備選清唱音頻數據中確定一個分句清唱音頻數據;否則,則第二分句數據選擇單元400重新從第二分句的備選清唱音頻數據中選擇一個清唱音頻數據作為分句清唱音頻數據,直到選擇出的第二分句對應的分句清唱音頻數據與參考清唱音頻數據的第二分句的清唱音頻數據之間的基調差小于基調閾值。

可以理解的,基調差確定單元390可以按照上述原理,分別判斷出備選數據獲取子單元342所選擇的目標歌曲的各個分句對應的分句清唱音頻數據與參考清唱音頻數據的相應分句的清唱音頻數據之間的基調差是否均小于預設基調閾值。當基調差均小于基調閾值時,則說明已經為目標歌曲的每個分句確定了合適的分句清唱音頻數據,這些分句清唱音頻數據之間可以認為不存在基調差或者僅存在微小的基調差,也即這些分句清唱音頻數據拼接生成的拼接音頻數據的基調比較平穩(wěn)。否則,第二分句數據選擇單元400針對基調差不小于基調閾值的分句對應的分句清唱音頻數據,可以重新從該分句的備選清唱音頻數據中選擇一個清唱音頻數據作為分句清唱音頻數據,直到選擇出的該分句對應的分句清唱音頻數據與參考清唱音頻數據的對應分句的清唱音頻數據之間的基調差小于基調閾值。

具體實施中,以目標歌曲的第c分句為例,由于大家演唱的是同一句,所以對應的音符值序列的長度相同,設長度為p,意味著第k分句有p幀,第c分句的音符值序列包括p個音符值,則通過預設的基調差公式可以求出針對目標歌曲的演繹中,第c分句對應的分句清唱數據與參考清唱音頻數據的第c分句的清唱音頻數據之間的基調差。其中,基調差公式可以表示為:

其中,yutc指第c分句對應的分句清唱數據的音符值序列的第t幀的音符值,yrtc參考清唱音頻數據的第c分句的清唱音頻數據的音符值序列的第t幀的音符值,mini表示yutc和yrtc兩個音符值序列匹配度最高的i,即基調閾值。

在一種可能的情況下,即使備選數據獲取子單元342窮盡某一分句(非第一個分句)的備選清唱音頻數據中的所有清唱音頻數據,都無法找到與參考清唱音頻數據的相應分句的清唱音頻數據之間的基調差小于基調閾值的清唱音頻數據,那么說明該分句無法匹配第一分句確定的分句清唱音頻數據。在這種情況下,第二分句數據選擇單元400需要重新從第一個分句的備選清唱音頻數據中確定一個新的分句清唱音頻數據,基調差確定單元390再計算第一個分句的新的分句清唱音頻數據與參考清唱音頻數據的第一分句的清唱音頻數據之間的基調差,并將該第一分句的分句清唱音頻數據對應的基調差作為新的基調閾值,相應的,其他分句根據該基調差重新確定對應的分句清唱音頻數據,直到目標歌曲的各個分句對應的分句清唱音頻數據與參考清唱音頻數據的相應分句的清唱音頻數據之間的基調差均小于基調閾值。

在一種可能的情況下,即使備選數據獲取子單元342窮盡第一個分句的備選清唱音頻數據中的所有清唱音頻數據,都無法使各個分句對應的分句清唱音頻數據與參考清唱音頻數據的相應分句的清唱音頻數據之間的基調差均小于基調閾值。也即無法使每一個分句都匹配第一分句確定的分句清唱音頻數據。那么可以暫停對目標歌曲的拼接處理,等待新的清唱音頻數據補充后,再重新進行迭代挑選。

需要說明的是,在本發(fā)明實施例中,備選數據獲取子單元342在從備選清唱音頻數據中選擇清唱音頻數據作為某一目標分句對應的分句清唱音頻數據時,備選數據獲取子單元342可以先將備選清唱音頻數據中排名第1個清唱音頻數據作為目標分句對應的分句清唱音頻數據,當排名第1個清唱音頻數據作為分句清唱音頻數據達不到匹配要求的時候,再將備選清唱音頻數據中排名第2個清唱音頻數據作為目標分句對應的分句清唱音頻數據。也即按照備選清唱音頻數據排名的先后順序,從排名第1的備選清唱音頻數據開始依次進行挑選。按照該方法在備選清唱音頻數據中確定目標分句對應的分句清唱音頻數據。

數據生成單元350,用于根據目標歌曲的各個分句對應的分句清唱音頻數據,生成所述目標歌曲的拼接音頻數據。

具體的,在確定出目標歌曲的各個分句對應的分句清唱音頻數據后,數據生成單元350可以將被選出的各個分句清唱音頻數據按照各個分句對應在目標歌曲中的位置和順序拼接起來。其中,各個分句之間可以根據目標歌曲中各個分句之間的空隙時間補充一定時長的靜音,最后再與目標歌曲的伴奏進行混音,從而生成目標歌曲的拼接音頻數據,該拼接音頻數據包括多個用戶對每個分句演繹的分句清唱音頻數據。

本發(fā)明實施例中,通過獲取多個用戶針對目標歌曲的演繹音頻數據,獲取各個分句的不同用戶的清唱音頻數據的基頻信息對應的音符值序列,以計算每個用戶演繹目標分句的清唱音頻數據的基頻距離和,根據各個用戶演繹目標分句的清唱音頻數據的基頻距離和,從所述各個用戶演繹目標分句的清唱音頻數據中確定所述目標歌曲中的目標分句對應的分句清唱音頻數據,根據目標歌曲的各個分句對應的分句清唱音頻數據,生成所述目標歌曲的拼接音頻數據,實現了從多個用戶針對目標歌曲的演繹音頻數據中挑選出每個分句對應的分句清唱音頻數據,生成目標歌曲的拼接音頻數據,提升清唱音頻數據的利用率。

圖7是本發(fā)明實施例提供的另一種歌曲音頻拼接設備的結構示意圖。如圖7所示,所述歌曲音頻拼接設備1000可以包括:至少一個處理器1001,例如CPU,至少一個網絡接口1004,用戶接口1003,存儲器1005,至少一個通信總線1002。其中,通信總線1002用于實現這些組件之間的連接通信。其中,用戶接口1003可以包括顯示屏(Display)、鍵盤(Keyboard),可選用戶接口1003還可以包括標準的有線接口、無線接口。網絡接口1004可選的可以包括標準的有線接口、無線接口(如WI-FI接口)。存儲器1005可以是高速RAM存儲器,也可以是非不穩(wěn)定的存儲器(non-volatile memory),例如至少一個磁盤存儲器。存儲器1005可選的還可以是至少一個位于遠離前述處理器1001的存儲裝置。如圖7所示,作為一種計算機存儲介質的存儲器1005中可以包括操作系統(tǒng)、網絡通信模塊、用戶接口模塊以及文件生成應用程序。

在圖7所示的歌曲音頻拼接設備1000中,用戶接口1003主要用于為用戶提供輸入的接口,獲取用戶輸入的數據;而處理器1001可以用于調用存儲器1005中存儲的音頻拼接應用程序,并具體執(zhí)行以下操作:

獲取多個用戶針對目標歌曲的演繹音頻數據,所述演繹音頻數據包括所述目標歌曲的各個分句的清唱音頻數據;

分別提取各用戶演繹的各個分句的清唱音頻數據的基頻信息,獲取各個分句的不同用戶的清唱音頻數據的基頻信息對應的音符值序列;

計算所述多個用戶中的目標用戶演繹目標分句的音符值序列分別與所述多個用戶中其他用戶演繹目標分句的音符值序列之間的基頻距離的和,作為所述目標用戶演繹目標分句的清唱音頻數據的基頻距離和;

根據各個用戶演繹目標分句的清唱音頻數據的基頻距離和,從所述各個用戶演繹目標分句的清唱音頻數據中確定所述目標歌曲中的目標分句對應的分句清唱音頻數據;

根據目標歌曲的各個分句對應的分句清唱音頻數據,生成所述目標歌曲的拼接音頻數據。

在一個實施例中,所述處理器1001根據各個用戶演繹目標分句的清唱音頻數據的基頻距離和,從所述各個用戶演繹目標分句的清唱音頻數據中確定所述目標歌曲中的目標分句對應的分句清唱音頻數據時,具體執(zhí)行以下操作:

按照基頻距離和從小到大,對各個用戶演繹目標分句的清唱音頻數據進行排序;

獲取排序前N個清唱音頻數據作為所述目標分句的備選清唱音頻數據,從所述備選清唱音頻數據中選擇其中一個清唱音頻數據作為所述目標歌曲中的目標分句對應的分句清唱音頻數據。

在一個實施例中,所述處理器1001獲取排序前N個清唱音頻數據作為所述目標分句的備選清唱音頻數據時,具體執(zhí)行以下操作:

根據各個用戶演繹目標分句的清唱音頻數據的基頻距離和,計算各個用戶演繹目標分句的清唱音頻數據的置信度;

將置信度達到預設置信度閾值的排序前N個清唱音頻數據作為所述目標分句的備選清唱音頻數據,N由置信度達不到預設置信度閾值的基頻距離和最小的清唱音頻數據的排序確定。

在一個實施例中,所述處理器1001根據各個用戶演繹目標分句的清唱音頻數據的基頻距離和,計算各個用戶演繹目標分句的清唱音頻數據的置信度時,具體執(zhí)行以下操作:

在各個用戶演繹目標分句的清唱音頻數據中,根據排序第1個清唱音頻數據的基頻距離和與排序前M個清唱音頻數據的基頻距離和之間的比較結果,確定排序第1個清唱音頻數據的置信度;

根據所述排序第1個清唱音頻數據的基頻距離和與其他各個清唱音頻數據的基頻距離和的比較結果,確定其他各個清唱音頻數據的置信度。

在一個實施例中,所述處理器1001根據目標歌曲的各個分句對應的分句清唱音頻數據,生成所述目標歌曲的拼接音頻數據之前,還執(zhí)行以下操作:

分別提取各用戶演繹的目標歌曲的演繹音頻數據的基頻信息,獲取不同用戶的演繹音頻數據的基頻信息對應的音符值序列;

計算所述多個用戶中的目標用戶的演繹音頻數據的音符值序列分別與所述多個用戶中其他用戶的演繹音頻數據的音符值序列之間的基頻距離的和,作為所述目標用戶的演繹音頻數據的基頻距離和;

根據各個用戶的演繹音頻數據的基頻距離和,將基頻距離和最小的演繹音頻數據作為參考清唱音頻數據;

確定所述目標歌曲的各個分句對應的分句清唱音頻數據與所述參考清唱音頻數據的相應分句的清唱音頻數據之間的基調差均小于預設基調閾值。

在一個實施例中,所述處理器1001還用于執(zhí)行以下操作:

若所述目標歌曲的各個分句對應的分句清唱音頻數據與所述參考清唱音頻數據的相應分句的清唱音頻數據之間的基調差不能滿足均小于預設基調閾值,則重新從各個分句對應的備選清唱音頻數據中選擇其中的清唱音頻數據作為所述目標歌曲中的目標分句對應的分句清唱音頻數據,直至各個分句對應的分句清唱音頻數據與所述參考清唱音頻數據的相應分句的清唱音頻數據之間的基調差均小于預設基調閾值。

在一個實施例中,所述處理器1001分別提取各用戶演繹的各個分句的清唱音頻數據的基頻信息,獲取各個分句的不同用戶的清唱音頻數據的基頻信息對應的音符值序列時,具體執(zhí)行以下操作:

按照預設幀長和預設幀移分別提取各用戶演繹的各個分句的清唱音頻數據的基頻信息,以生成各用戶演繹的各個分句對應的至少一個基頻點;

對所述至少一個基頻點中各基頻點的基頻值進行調整,并將調整后的所述各基頻點的基頻值轉換為所述各基頻點對應的音符值,從而獲取各個分句的不同用戶的清唱音頻數據的基頻信息對應的音符值序列。

在一個實施例中,所述處理器1001對所述至少一個基頻點中各基頻點的基頻值進行調整時,具體執(zhí)行以下操作:

對所述至少一個基頻點中的奇異基頻點的基頻值進行置零處理;

對所述各基頻點進行中值濾波處理。

本領域普通技術人員可以理解實現上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory,ROM)或隨機存儲記憶體(Random Access Memory,RAM)等。

以上所揭露的僅為本發(fā)明較佳實施例而已,當然不能以此來限定本發(fā)明之權利范圍,因此依本發(fā)明權利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。

當前第1頁1 2 3 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 福清市| 梨树县| 招远市| 高雄市| 兴山县| 虹口区| 绵阳市| 正镶白旗| 榆林市| 大余县| 安塞县| 大安市| 南木林县| 边坝县| 绍兴县| 汕尾市| 玉屏| 卢氏县| 汉阴县| 正蓝旗| 鲁山县| 普宁市| 温宿县| 铁岭市| 周口市| 古蔺县| 古浪县| 清水河县| 崇明县| 五大连池市| 台中县| 大兴区| 松江区| 平山县| 彩票| 北安市| 永定县| 鄢陵县| 常宁市| 云和县| 伊春市|