本發(fā)明涉及計算機技術領域,特別涉及一種獲取人聲音高數據的方法和裝置。
背景技術:
隨著計算機技術的發(fā)展,歌唱類應用程序得到了廣泛的應用。很多歌唱類應用程序為用戶提供了歌唱打分功能。
歌唱類應用程序進行歌唱打分的過程是:在原唱歌曲音頻(由原唱人聲音頻和伴奏音頻組成)中提取人聲音高數據,并在用戶歌唱的人聲音頻中提取人聲音高數據,將分別提取的人聲音高數據進行對比,基于它們之間的匹配度,確定打分的分值。其中,人聲音高數據是音頻中不同時間點處的人聲音高,一般可以用頻率來表示,即音頻中提取出來的人聲音高數據可以是一組頻率數據。
在實現本發(fā)明的過程中,發(fā)明人發(fā)現現有技術至少存在以下問題:
原唱歌曲音頻由原唱人聲音頻和伴奏音頻兩部分組成,由于唱片公司提供的原唱歌曲音頻中這兩部分一般是混合好的,無法分離,所以,無法單獨在原唱人聲音頻中提取人聲音高數據,只能在混合好的原唱歌曲音頻中提取人聲音高數據,而由于原唱歌曲音頻中混有伴奏音頻,這就會影響人聲音高數據的提取準確度,人聲音高數據準確度受影響最突出的一種表現形式是音高丟失,即原唱歌曲音頻中某個時間點實際存在人聲歌唱,可是提取出來的人聲音高數據在此時間點的音高值為0。在原唱歌曲音頻中提取的人聲音高數據的音高丟失率比較高,其中,缺少很多音高值,從而,在原唱歌曲音頻中提取的人聲音高數據的準確度較差。
技術實現要素:
為了解決現有技術的問題,本發(fā)明實施例提供了一種獲取人聲音高數據的方法和裝置。所述技術方案如下:
第一方面,提供了一種獲取人聲音高數據的方法,所述方法包括:
提取目標歌曲的原唱歌曲音頻的人聲音高數據,并分別提取所述目標歌曲的多個人聲音頻的人聲音高數據;
在所述多個人聲音頻的人聲音高數據中,選取與所述原唱歌曲音頻的人聲音高數據匹配度最高的目標人聲音高數據;
基于所述目標人聲音高數據,對所述原唱歌曲音頻的人聲音高數據中丟失的音高值進行補充,得到所述原唱歌曲音頻的修正后的人聲音高數據。
可選的,所述在所述多個人聲音頻的人聲音高數據中,選取與所述原唱歌曲音頻的人聲音高數據匹配度最高的目標人聲音高數據,包括:
確定所述多個人聲音頻的人聲音高數據中每個人聲音高數據,與所述原唱歌曲音頻的人聲音高數據之間的數據距離;
在所述多個人聲音頻的人聲音高數據中,選取對應數據距離最小的目標人聲音高數據。
這樣,通過數據距離確定人聲音高數據之間的匹配度,可以使匹配度計算更精確。
可選的,所述在所述多個人聲音頻的人聲音高數據中,選取對應數據距離最小的目標人聲音高數據,包括:
如果確定出的數據距離中存在小于預設閾值的數據距離,則在所述多個人聲音頻的人聲音高數據中,選取對應數據距離最小的目標人聲音高數據。
這樣,可以保證選取的目標人聲音高數據與原唱歌曲音頻的人聲音高數據,具有足夠的匹配度,可以提高修正后的人聲音高數據的準確性。
可選的,所述數據距離為范數距離、歐式距離或余弦距離。
可選的,所述基于所述目標人聲音高數據,對所述原唱歌曲音頻的人聲音高數據中丟失的音高值進行補充,得到所述原唱歌曲音頻的修正后的人聲音高數據,包括:
在所述原唱歌曲音頻的人聲音高數據所對應的各時間點中,確定包含于所述目標歌曲的歌詞時間段內、且在所述原唱歌曲音頻的人聲音高數據中對應的音高值為0的目標時間點;
將所述原唱歌曲音頻的人聲音高數據中所述目標時間點對應的音高值,替換為所述目標人聲音高數據中所述目標時間點對應的音高值,得到所述原唱歌曲音頻的修正后的人聲音高數據。
這樣,可以更準確的確定原唱歌曲音頻的人聲音高數據中丟失音高值的時間點。
可選的,所述提取目標歌曲的原唱歌曲音頻的人聲音高數據,并分別提取所述目標歌曲的多個人聲音頻的人聲音高數據,包括:
通過多音部音高提取算法,提取目標歌曲的原唱歌曲音頻的人聲音高數據,并通過單音部音高提取算法,分別提取所述目標歌曲的多個人聲音頻的人聲音高數據。
可選的,所述方法還包括:
接收多個終端分別上傳的所述目標歌曲的多個人聲音頻。
這樣,可以獲取到更多人聲音頻,有助于提高選取的目標人聲音高數據與原唱歌曲音頻的人聲音高數據的匹配度。
第二方面,提供了一種獲取人聲音高數據的裝置,所述裝置包括:
提取模塊,用于提取目標歌曲的原唱歌曲音頻的人聲音高數據,并分別提取所述目標歌曲的多個人聲音頻的人聲音高數據;
選取模塊,用于在所述多個人聲音頻的人聲音高數據中,選取與所述原唱歌曲音頻的人聲音高數據匹配度最高的目標人聲音高數據;
修正模塊,用于基于所述目標人聲音高數據,對所述原唱歌曲音頻的人聲音高數據中丟失的音高值進行補充,得到所述原唱歌曲音頻的修正后的人聲音高數據。
可選的,所述選取模塊,用于:
確定所述多個人聲音頻的人聲音高數據中每個人聲音高數據,與所述原唱歌曲音頻的人聲音高數據之間的數據距離;
在所述多個人聲音頻的人聲音高數據中,選取對應數據距離最小的目標人聲音高數據。
可選的,所述選取模塊,用于:
如果確定出的數據距離中存在小于預設閾值的數據距離,則在所述多個人聲音頻的人聲音高數據中,選取對應數據距離最小的目標人聲音高數據。
可選的,所述數據距離為范數距離、歐式距離或余弦距離。
可選的,所述修正模塊,用于:
在所述原唱歌曲音頻的人聲音高數據所對應的各時間點中,確定包含于所述目標歌曲的歌詞時間段內、且在所述原唱歌曲音頻的人聲音高數據中對應的音高值為0的目標時間點;
將所述原唱歌曲音頻的人聲音高數據中所述目標時間點對應的音高值,替換為所述目標人聲音高數據中所述目標時間點對應的音高值,得到所述原唱歌曲音頻的修正后的人聲音高數據。
可選的,所述提取模塊,用于:
通過多音部音高提取算法,提取目標歌曲的原唱歌曲音頻的人聲音高數據,并通過單音部音高提取算法,分別提取所述目標歌曲的多個人聲音頻的人聲音高數據。
可選的,所述裝置還包括:
接收模塊,用于接收多個終端分別上傳的所述目標歌曲的多個人聲音頻。
本發(fā)明實施例提供的技術方案帶來的有益效果是:
本發(fā)明實施例中,提取目標歌曲的原唱歌曲音頻的人聲音高數據,并分別提取目標歌曲的多個人聲音頻的人聲音高數據,在多個人聲音頻的人聲音高數據中,選取與原唱歌曲音頻的人聲音高數據匹配度最高的目標人聲音高數據,基于目標人聲音高數據,對所述原唱歌曲音頻的人聲音高數據中丟失的音高值進行補充,得到原唱歌曲音頻的修正后的人聲音高數據。這樣,可以通過人聲音頻的人聲音高數據,對原唱歌曲音頻的人聲音高數據進行丟失音高值的補償,從而,可以提高獲取的人聲音高數據的準確度。
附圖說明
為了更清楚地說明本發(fā)明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1是本發(fā)明實施例提供的一種獲取人聲音高數據的方法的流程示意圖;
圖2A是本發(fā)明實施例提供的原唱歌曲音頻的人聲音高數據的示意圖;
圖2B是本發(fā)明實施例提供的目標人聲音高數據的示意圖;
圖2C是本發(fā)明實施例提供的修正后的人聲音高數據的示意圖;
圖3是本發(fā)明實施例提供的一種獲取人聲音高數據的裝置的結構示意圖;
圖4是本發(fā)明實施例提供的一種服務器的結構示意圖。
具體實施方式
為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面將結合附圖對本發(fā)明實施方式作進一步地詳細描述。
本發(fā)明實施例提供了一種獲取人聲音高數據的方法,該方法可以由服務器或終端設備實現,本發(fā)明實施例以服務器作為執(zhí)行主體為例進行方案的說明。其中,服務器可以是某歌唱類應用程序的后臺服務器,服務器可以包括處理器、存儲器。處理器,可以用于提取人聲音高數據的處理,可以用于比較用戶的人聲音頻的人聲音高數據與原唱歌曲音頻的人聲音高數據的匹配度的處理,可以用于對原唱歌曲音頻的人聲音高數據中丟失的音高值進行補充,存儲器,可以用于對原唱歌曲音頻和人聲音頻進行存儲。服務器還可以包括收發(fā)器,收發(fā)器可以包括天線、匹配電路、調制解調器等組成部件,可以用于向各終端獲取不同歌曲的人聲音頻。
本發(fā)明實施例提供的獲取人聲音高數據的方法,可以如圖1所示,包括如下步驟:
步驟101,提取目標歌曲的原唱歌曲音頻的人聲音高數據,并分別提取所述目標歌曲的多個人聲音頻的人聲音高數據。
其中,目標歌曲可以是任意歌曲。原唱歌曲音頻可以是目標歌曲由原唱歌手演唱并結合有伴奏的音頻。原唱歌曲音頻是由原唱人聲音頻(歌曲原歌手的清唱音頻)和伴奏音頻兩部分組成多音部音頻。人聲音頻是目標歌曲的清唱音頻,屬于單音部音頻,可以是用戶在使用上述歌唱類應用程序時錄制并上傳服務器的清唱音頻。
在實施中,歌唱類應用程序的提供商可以從唱片公司獲取不同歌曲的原唱歌曲音頻。另外,用戶在使用歌唱類應用程序的過程中,可以通過歌唱類應用程序進行某歌曲的歌唱,終端會播放該歌曲的伴奏音頻,用戶則可以隨著伴奏音頻進行歌唱,此時終端還可以對用戶唱的人聲音頻進行錄制,并可以將錄制的人聲音頻上傳至服務器進行保存。服務器對于每一首歌曲,都可以存儲大量的用戶上傳的人聲音頻。也就是說,在執(zhí)行步驟101之前,對于任一目標歌曲,服務器可以存儲有終端上傳的大量人聲音頻。
在執(zhí)行本實施例的方法時,服務器可以分別對其存儲的每首歌曲,進行本流程的處理。在一首歌曲在此歌唱類應用程序中上線以后,當用戶上傳的人聲音頻的數量達到預設閾值(如500)的時候,服務器可以對該歌曲進行本流程的處理,此時該歌曲即為目標歌曲,此后,還可以每達到一定的周期時長,對該歌曲進行一次本流程的處理。或者,服務器也可以設置一個總周期,每達到總周期的時長時,對服務器存儲的每一首歌曲都分別進行一次本流程的處理。
可選的,對于原唱歌曲音頻和人聲音頻,可以采用不同的音高提取算法,進行人聲音高數據的提取,相應的,步驟101的處理可以如下:通過多音部音高提取算法,提取目標歌曲的原唱歌曲音頻的人聲音高數據,并通過單音部音高提取算法,分別提取目標歌曲的多個人聲音頻的人聲音高數據。
在實施中,可以獲取目標歌曲的原唱歌曲音頻,基于polyphonic music(多音部)音高提取算法,提取原唱歌曲音頻的人聲音高數據,多音部音高提取算法可以是melodia(一種算法名稱)算法等。獲取的原唱歌曲音頻的人聲音高數據可以記做X=[x(1),x(2)…x(N)],其中,N為正整數,x(n)為目標歌曲的原唱歌曲音頻中不同時間點的音高值。
同時,可以獲取上述存儲的目標歌曲的多個人聲音頻,基于monophnic music(單音部)音高提取算法,分別提取每個人聲音頻的人聲音高數據,單音部音高提取算法可以是pYIN(一種算法名稱)算法等。獲取的人聲音頻的人聲音高數據可以記做Yk=[yk(1),yk(2)…yk(N)],其中,N為正整數,k=1、2、…k,yk(n)為目標歌曲的任一人聲音頻中不同時間點的音高值。
步驟102,在多個人聲音頻的人聲音高數據中,選取與原唱歌曲音頻的人聲音高數據匹配度最高的目標人聲音高數據。
在實施中,在提取原唱歌曲音頻的人聲音高數據以及多個人聲音頻的人聲音高數據后,可以將每個人聲音頻的人聲音高數據,分別與原唱歌曲音頻的人聲音高數據進行對比,確定匹配度。具體可以將人聲音頻的人聲音高數據與原唱歌曲音頻的人聲音高數據中相同時間點對應的音高值進行對比,確定接近程度。
可選的,該匹配度可以采用各種能夠反應數據接近度的參數,當匹配度采用數據距離時,步驟102的處理可以如下:確定多個人聲音頻的人聲音高數據中每個人聲音高數據,與原唱歌曲音頻的人聲音高數據之間的數據距離;在多個人聲音頻的人聲音高數據中,選取對應數據距離最小的目標人聲音高數據。
在實施中,可以計算原唱歌曲音頻的人聲音高數據X與每個人聲音頻的人聲音高數據Yk之間的數據距離ek,ek=distance(X,Yk),distance(x,y)為數據距離公式,可以選擇任意數據距離公式,如范數距離、歐式距離、余弦距離等。數據距離可以反應出兩個數據之間的近似程度,即上述匹配度。經過以上計算,則可以對應每個人聲音頻的人聲音高數據得到一個數據距離,進而,可以在這些數據距離中選取最小的數據距離,進而,選取此最小的數據距離對應的人聲音高數據(即目標人聲音高數據)。
可選的,在上述選取目標人聲音高數據時,如果各個人聲音頻的人聲音高數據與原唱歌曲音頻的人聲音高數據的匹配度都比較低,可以不在這些人聲音頻的人聲音高數據中,選取目標人聲音高數據,相應的處理可以如下:如果確定出的數據距離中存在小于預設閾值的數據距離,則在多個人聲音頻的人聲音高數據中,選取對應數據距離最小的目標人聲音高數據。
在實施中,技術人員可以預先設置一個數據距離的閾值,用于判斷兩個人聲音高數據是否足夠接近。在上述處理過程中,經過計算得出每個人聲音頻的人聲音高數據對應的數據距離之后,如果計算得到的各數據距離中,存在小于預設閾值的數據距離,則可以在這些數據距離中選取最小的數據距離,進而,選取此最小的數據距離對應的人聲音高數據(即目標人聲音高數據)。如果計算得到的各數據距離中,不存在小于預設閾值的數據距離,則說明上述多個人聲音頻中,沒有人聲音高數據與原唱歌曲音頻足夠接近的人聲音頻,這時,可以在另外獲取多個人聲音頻,重新執(zhí)行本方法流程的處理。
步驟103,基于目標人聲音高數據,對原唱歌曲音頻的人聲音高數據中丟失的音高值進行補充,得到原唱歌曲音頻的修正后的人聲音高數據。
在實施中,在原唱歌曲音頻的人聲音高數據中,音高值為0的時間點即為沒有檢測到人聲的時間點,這些音高值為0的時間點中,有一部分是確實沒有人聲的時間點,如間奏過程中的某時間點,而這些音高值為0的時間點中,還有一部分則是丟失音高值的時間點,這些時間點實際有人聲,可以由于伴奏干擾等原因,導致沒有檢測到人聲的音高值,導致其音高值為0??梢韵却_定原唱歌曲音頻的人聲音高數據中丟失音高值的時間點。然后,可以基于目標人聲音高數據中相應時間點的音高值,對原唱歌曲音頻的人聲音高數據中丟失的音高值進行補充。
可選的,可以基于目標歌曲的歌詞時間段,來確定原唱歌曲音頻的人聲音高數據中丟失的音高值,相應的步驟103的處理可以如下:
步驟一,在原唱歌曲音頻的人聲音高數據所對應的各時間點中,確定包含于目標歌曲的歌詞時間段內、且在原唱歌曲音頻的人聲音高數據中對應的音高值為0的目標時間點。
歌詞時間段是指歌詞中記錄的目標歌曲中人聲歌唱的時間段,可以包括目標歌曲中的多個時間段,每個時間段可以對應歌詞中的一個字或多個字,歌詞時間段能反映目標歌曲的原唱歌曲音頻的人聲音高數據中哪些時間點是應該具有音高值的。所以,在原唱歌曲音頻的人聲音高數據所對應的各時間點中,包含于目標歌曲的歌詞時間段內的時間點,應該都是音高值非零的時間點,那么,在這些時間點中音高值為0的時間點即為丟失音高值的時間點??梢?,按照步驟一的方式,可以在原唱歌曲音頻的人聲音高數據中,確定丟失音高值的時間點(即目標時間點)。如圖2A所示,為原唱歌曲音頻的人聲音高數據存在音高值丟失的示意圖(圖中時間點的密度比實際情況低很多,僅作為示意圖使用)。
步驟二,將原唱歌曲音頻的人聲音高數據中目標時間點對應的音高值,替換為目標人聲音高數據中目標時間點對應的音高值,得到原唱歌曲音頻的修正后的人聲音高數據。
在實施中,在確定丟失音高值的時間點(即目標時間點)后,可以在目標人聲音高數據中,獲取目標時間點對應的音高值,用獲取的音高值,替換原唱歌曲音頻的人聲音高數據中目標時間點對應的音高值,從而對原唱歌曲音頻的人聲音高數據中丟失的音高值進行補充,得到原唱歌曲音頻的修正后的人聲音高數據。如圖2B所示,為目標人聲音高數據的示意圖,如圖2C所示,為原唱歌曲音頻的修正后的人聲音高數據的示意圖(兩圖中時間點的密度比實際情況低很多,僅作為示意圖使用)。
在獲取原唱歌曲音頻的修正后的人聲音高數據之后,可以基于修正后的人聲音高數據,對后續(xù)用戶錄制的目標歌曲的人聲音頻進行打分。具體的,服務器可以獲取用戶錄制并上傳的目標歌曲的人聲音頻,提取該人聲音頻的人聲音高數據(稱作第一人聲音高數據),計算第一人聲音高數據與修正后的人聲音高數據的匹配度(可以采用數據距離作為匹配度),根據匹配度確定用戶上傳的人聲音頻的得分,匹配度越高,得分越高,匹配度月底,得分越低?;蛘?,服務器也可以將修正后的人聲音高數據發(fā)送給每個終端,由終端進行上述計算匹配度并確定得分的處理,處理過程不再累述。
本發(fā)明實施例中,提取目標歌曲的原唱歌曲音頻的人聲音高數據,并分別提取目標歌曲的多個人聲音頻的人聲音高數據,在多個人聲音頻的人聲音高數據中,選取與原唱歌曲音頻的人聲音高數據匹配度最高的目標人聲音高數據,基于目標人聲音高數據,對所述原唱歌曲音頻的人聲音高數據中丟失的音高值進行補充,得到原唱歌曲音頻的修正后的人聲音高數據。這樣,可以通過人聲音頻的人聲音高數據,對原唱歌曲音頻的人聲音高數據進行丟失音高值的補償,從而,可以提高獲取的人聲音高數據的準確度。
基于相同的技術構思,本發(fā)明實施例還提供了一種獲取人聲音高數據的裝置,如圖3所示,該裝置包括:
提取模塊310,用于提取目標歌曲的原唱歌曲音頻的人聲音高數據,并分別提取所述目標歌曲的多個人聲音頻的人聲音高數據;
選取模塊320,用于在所述多個人聲音頻的人聲音高數據中,選取與所述原唱歌曲音頻的人聲音高數據匹配度最高的目標人聲音高數據;
修正模塊330,用于基于所述目標人聲音高數據,對所述原唱歌曲音頻的人聲音高數據中丟失的音高值進行補充,得到所述原唱歌曲音頻的修正后的人聲音高數據。
可選的,所述選取模塊320,用于:
確定所述多個人聲音頻的人聲音高數據中每個人聲音高數據,與所述原唱歌曲音頻的人聲音高數據之間的數據距離;
在所述多個人聲音頻的人聲音高數據中,選取對應數據距離最小的目標人聲音高數據。
可選的,所述選取模塊320,用于:
如果確定出的數據距離中存在小于預設閾值的數據距離,則在所述多個人聲音頻的人聲音高數據中,選取對應數據距離最小的目標人聲音高數據。
可選的,所述數據距離為范數距離、歐式距離或余弦距離。
可選的,所述修正模塊330,用于:
在所述原唱歌曲音頻的人聲音高數據所對應的各時間點中,確定包含于所述目標歌曲的歌詞時間段內、且在所述原唱歌曲音頻的人聲音高數據中對應的音高值為0的目標時間點;
將所述原唱歌曲音頻的人聲音高數據中所述目標時間點對應的音高值,替換為所述目標人聲音高數據中所述目標時間點對應的音高值,得到所述原唱歌曲音頻的修正后的人聲音高數據。
可選的,所述提取模塊310,用于:
通過多音部音高提取算法,提取目標歌曲的原唱歌曲音頻的人聲音高數據,并通過單音部音高提取算法,分別提取所述目標歌曲的多個人聲音頻的人聲音高數據。
可選的,所述裝置還包括:
接收模塊,用于接收多個終端分別上傳的所述目標歌曲的多個人聲音頻。
本發(fā)明實施例中,提取目標歌曲的原唱歌曲音頻的人聲音高數據,并分別提取目標歌曲的多個人聲音頻的人聲音高數據,在多個人聲音頻的人聲音高數據中,選取與原唱歌曲音頻的人聲音高數據匹配度最高的目標人聲音高數據,基于目標人聲音高數據,對所述原唱歌曲音頻的人聲音高數據中丟失的音高值進行補充,得到原唱歌曲音頻的修正后的人聲音高數據。這樣,可以通過人聲音頻的人聲音高數據,對原唱歌曲音頻的人聲音高數據進行丟失音高值的補償,從而,可以提高獲取的人聲音高數據的準確度。
需要說明的是:上述實施例提供的獲取歌曲信息的裝置在獲取歌曲信息時,僅以上述各功能模塊的劃分進行舉例說明,實際應用中,可以根據需要而將上述功能分配由不同的功能模塊完成,即將設備的內部結構劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。另外,上述實施例提供的獲取歌曲信息的裝置與獲取歌曲信息的方法實施例屬于同一構思,其具體實現過程詳見方法實施例,這里不再贅述。
圖4是本發(fā)明實施例提供的服務器的結構示意圖。該服務器1900可因配置或性能不同而產生比較大的差異,可以包括一個或一個以上中央處理器(central processing units,CPU)1922(例如,一個或一個以上處理器)和存儲器1932,一個或一個以上存儲應用程序1942或數據1944的存儲介質1930(例如一個或一個以上海量存儲設備)。其中,存儲器1932和存儲介質1930可以是短暫存儲或持久存儲。存儲在存儲介質1930的程序可以包括一個或一個以上模塊(圖示沒標出),每個模塊可以包括對服務器中的一系列指令操作。更進一步地,中央處理器1922可以設置為與存儲介質1930通信,在服務器1900上執(zhí)行存儲介質1930中的一系列指令操作。
服務器1900還可以包括一個或一個以上電源1926,一個或一個以上有線或無線網絡接口1950,一個或一個以上輸入輸出接口1958,一個或一個以上鍵盤1956,和/或,一個或一個以上操作系統(tǒng)1941,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
服務器1900可以包括有存儲器,以及一個或者一個以上的程序,其中一個或者一個以上程序存儲于存儲器中,且經配置以由一個或者一個以上處理器執(zhí)行所述一個或者一個以上程序包含用于進行以下操作的指令:
提取目標歌曲的原唱歌曲音頻的人聲音高數據,并分別提取所述目標歌曲的多個人聲音頻的人聲音高數據;
在所述多個人聲音頻的人聲音高數據中,選取與所述原唱歌曲音頻的人聲音高數據匹配度最高的目標人聲音高數據;
基于所述目標人聲音高數據,對所述原唱歌曲音頻的人聲音高數據中丟失的音高值進行補充,得到所述原唱歌曲音頻的修正后的人聲音高數據。
可選的,所述在所述多個人聲音頻的人聲音高數據中,選取與所述原唱歌曲音頻的人聲音高數據匹配度最高的目標人聲音高數據,包括:
確定所述多個人聲音頻的人聲音高數據中每個人聲音高數據,與所述原唱歌曲音頻的人聲音高數據之間的數據距離;
在所述多個人聲音頻的人聲音高數據中,選取對應數據距離最小的目標人聲音高數據。
可選的,所述在所述多個人聲音頻的人聲音高數據中,選取對應數據距離最小的目標人聲音高數據,包括:
如果確定出的數據距離中存在小于預設閾值的數據距離,則在所述多個人聲音頻的人聲音高數據中,選取對應數據距離最小的目標人聲音高數據。
可選的,所述數據距離為范數距離、歐式距離或余弦距離。
可選的,所述基于所述目標人聲音高數據,對所述原唱歌曲音頻的人聲音高數據中丟失的音高值進行補充,得到所述原唱歌曲音頻的修正后的人聲音高數據,包括:
在所述原唱歌曲音頻的人聲音高數據所對應的各時間點中,確定包含于所述目標歌曲的歌詞時間段內、且在所述原唱歌曲音頻的人聲音高數據中對應的音高值為0的目標時間點;
將所述原唱歌曲音頻的人聲音高數據中所述目標時間點對應的音高值,替換為所述目標人聲音高數據中所述目標時間點對應的音高值,得到所述原唱歌曲音頻的修正后的人聲音高數據。
可選的,所述提取目標歌曲的原唱歌曲音頻的人聲音高數據,并分別提取所述目標歌曲的多個人聲音頻的人聲音高數據,包括:
通過多音部音高提取算法,提取目標歌曲的原唱歌曲音頻的人聲音高數據,并通過單音部音高提取算法,分別提取所述目標歌曲的多個人聲音頻的人聲音高數據。
可選的,還包括:
接收多個終端分別上傳的所述目標歌曲的多個人聲音頻。
本發(fā)明實施例中,提取目標歌曲的原唱歌曲音頻的人聲音高數據,并分別提取目標歌曲的多個人聲音頻的人聲音高數據,在多個人聲音頻的人聲音高數據中,選取與原唱歌曲音頻的人聲音高數據匹配度最高的目標人聲音高數據,基于目標人聲音高數據,對所述原唱歌曲音頻的人聲音高數據中丟失的音高值進行補充,得到原唱歌曲音頻的修正后的人聲音高數據。這樣,可以通過人聲音頻的人聲音高數據,對原唱歌曲音頻的人聲音高數據進行丟失音高值的補償,從而,可以提高獲取的人聲音高數據的準確度。
本領域普通技術人員可以理解實現上述實施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質中,上述提到的存儲介質可以是只讀存儲器,磁盤或光盤等。
以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。