本發(fā)明涉及多媒體技術(shù)領域,具體涉及一種歌詞文件生成方法及裝置。
背景技術(shù):
唱歌類應用是目前深受用戶尤其是年輕用戶喜愛與追捧的一類應用,其具備在線獨唱和在線合唱等多種功能。通常情況下,用戶在演唱歌曲時需要對照著歌詞進行,而現(xiàn)有的歌詞文件只有每個句子的起始時間,用戶在對照歌詞文件進行演唱時,很難把握歌曲的演唱細節(jié),這樣會降低用戶演唱的精準度。因此,如何輔助用戶以提高演唱的精準度已成為亟待解決的問題。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例提供了一種歌詞文件生成方法及裝置,可以提供一種歌詞文件,能夠輔助用戶演唱以提高演唱的精準度。
本發(fā)明實施例第一方面提供了一種歌詞文件生成方法,包括:
獲取針對目標歌曲上傳的音頻數(shù)據(jù)集合,所述音頻數(shù)據(jù)集合包括多個音頻數(shù)據(jù)。
對所述音頻數(shù)據(jù)集合中的每個音頻數(shù)據(jù)進行語音切分,得到所述每個音頻數(shù)據(jù)中每個字的時間信息。
根據(jù)所述時間信息計算所述每個音頻數(shù)據(jù)與第一音頻數(shù)據(jù)之間的切分距離,并根據(jù)所述切分距離獲得所述每個音頻數(shù)據(jù)的切分距離和,所述第一音頻數(shù)據(jù)為所述音頻數(shù)據(jù)集合中除所述每個音頻數(shù)據(jù)之外的任一音頻數(shù)據(jù)。
按照切分距離和從小到大的順序?qū)λ鲆纛l數(shù)據(jù)集合中的每個音頻數(shù)據(jù)進行排序,并確定排序首位的第二音頻數(shù)據(jù)。
利用所述第二音頻數(shù)據(jù)中每個字的時間信息生成所述目標歌曲的歌詞文件。
本發(fā)明實施例第二方面提供了一種歌詞文件生成裝置,包括:
獲取模塊,用于獲取針對目標歌曲上傳的音頻數(shù)據(jù)集合,所述音頻數(shù)據(jù)集合包括多個音頻數(shù)據(jù)。
切分模塊,用于對所述音頻數(shù)據(jù)集合中的每個音頻數(shù)據(jù)進行語音切分,得到所述每個音頻數(shù)據(jù)中每個字的時間信息。
計算模塊,用于根據(jù)所述時間信息計算所述每個音頻數(shù)據(jù)與第一音頻數(shù)據(jù)之間的切分距離,并根據(jù)所述切分距離獲得所述每個音頻數(shù)據(jù)的切分距離和,所述第一音頻數(shù)據(jù)為所述音頻數(shù)據(jù)集合中除所述每個音頻數(shù)據(jù)之外的任一音頻數(shù)據(jù)。
排序模塊,用于按照切分距離和從小到大的順序?qū)λ鲆纛l數(shù)據(jù)集合中的每個音頻數(shù)據(jù)進行排序。
確定模塊,用于確定排序首位的第二音頻數(shù)據(jù)。
生成模塊,用于利用所述第二音頻數(shù)據(jù)中每個字的時間信息生成所述目標歌曲的歌詞文件。
本發(fā)明實施例中,用戶在針對目標歌曲上傳清唱版本的音頻數(shù)據(jù)后,歌詞文件生成裝置可以對音頻數(shù)據(jù)進行語音切分,得到每個字的時間信息,然后根據(jù)時間信息計算該音頻數(shù)據(jù)與其他音頻數(shù)據(jù)之間的切分距離,從而得到該音頻數(shù)據(jù)的切分距離和,從而從多個音頻數(shù)據(jù)中選擇出切分距離和最小的音頻數(shù)據(jù),利用其對應的每個字的時間信息生成目標歌曲的歌詞文件。這樣得到的歌詞文件就包括了歌曲的每個字的時間信息,用戶就可以根據(jù)該時間信息進行歌曲演唱,從而能夠輔助用戶以提高用戶演唱的精準度。
附圖說明
為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例提供的一種歌詞文件生成方法的流程示意圖;
圖2a為本發(fā)明實施例提供的歌詞信息的示意圖;
圖2b為本發(fā)明實施例提供的一種歌詞文件的示意圖;
圖3為本發(fā)明實施例提供的另一種歌詞文件生成方法的流程示意圖;
圖4為本發(fā)明實施例提供的一種歌詞文件生成設備的結(jié)構(gòu)示意圖;
圖5為本發(fā)明實施例提供的一種歌詞文件生成裝置的結(jié)構(gòu)示意圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
本發(fā)明實施例提供了一種歌詞文件生成方法及裝置,可以提供一種歌詞文件,能夠輔助用戶演唱以提高演唱的精準度。以下分別進行詳細說明。
請參閱圖1,為本發(fā)明實施例提供的一種歌詞文件生成方法的流程示意圖。本實施例中所描述的方法,包括以下步驟:
101、歌詞文件生成裝置獲取針對目標歌曲上傳的音頻數(shù)據(jù)集合。
本發(fā)明實施例中,歌詞文件生成裝置可以應用于客戶端、唱歌類應用的服務器等,其中,客戶端可以為唱歌類應用、可以為安裝唱歌類應用的終端設備,該終端設備可以是筆記本電腦、臺式電腦、手機、平板電腦、車載終端、智能可穿戴設備等,本發(fā)明實施例不做限定。
本發(fā)明實施例中,目標歌曲是指用戶需要演唱的歌曲,可以是用戶指定的需要演唱的歌曲,也可以是歌詞文件生成裝置的數(shù)據(jù)庫中的任意一首歌曲,本發(fā)明實施例不做限定。其中,音頻數(shù)據(jù)是指用戶演唱目標歌曲的清唱數(shù)據(jù),即,演唱中不包括音樂部分演唱數(shù)據(jù)。
本發(fā)明實施例中,用戶可以針對目標歌曲演唱,從而將演唱版本上傳到歌詞文件生成裝置,歌詞文件生成裝置從而可以從演唱版本中提取出用戶清唱的音頻數(shù)據(jù),從而獲取多個用戶針對目標歌曲上傳的清唱版本,得到目標歌曲的音頻數(shù)據(jù)集合,該音頻集合中包括了多個音頻數(shù)據(jù)。
作為一種可行的實施方式,歌詞文件生成裝置可以檢測針對目標歌曲上傳的音頻數(shù)據(jù)的數(shù)量,如果該數(shù)量達到數(shù)量閾值,獲取該數(shù)量個音頻數(shù)據(jù),得到該目標歌曲的音頻數(shù)據(jù)集合。
其中,音頻數(shù)據(jù)的數(shù)量閾值越大,音頻數(shù)據(jù)集合中出現(xiàn)效果較好的清唱音頻數(shù)據(jù)的概率就越高。
作為另一種可行的實施方式,歌詞文件生成裝置在獲取到針對目標歌曲上傳的音頻數(shù)據(jù)后,還可以執(zhí)行以下操作:
計算音頻數(shù)據(jù)集合中每個音頻數(shù)據(jù)的噪聲能量,將噪聲能量大于噪聲能量閾值的音頻數(shù)據(jù)從音頻數(shù)據(jù)集合中剔除,得到目標音頻數(shù)據(jù)集合,然后對目標音頻數(shù)據(jù)集合中的每個音頻數(shù)據(jù)進行語音切分,得到每個音頻數(shù)據(jù)中每個字的時間信息。
具體實現(xiàn)中,由于用戶上傳的清唱音頻數(shù)據(jù)在錄制的時候可能會有較大的背景噪聲,這些背景噪聲對后續(xù)的聚類效果會產(chǎn)生很大的影響,此步驟目的是將噪聲過大的音頻數(shù)據(jù)(即噪聲能量超過噪聲能量閾值的音頻數(shù)據(jù))過濾掉,步驟如下:
請一并參閱圖2a,為本發(fā)明實施例提供的一種LRC歌詞文件的歌詞信息的示意圖。從圖2a中的歌詞可以看出,正式歌詞中每行就是連續(xù)演唱的一句話,在歌詞開始就標識了這句話在目標歌曲中的起始毫秒數(shù)與持續(xù)毫秒數(shù),如第一句是從第27.77秒開始,也就是說從開始到第27.77秒是沒有歌詞只有伴奏的。理論上在目標歌曲的伴奏階段用戶是不會演唱的,那么清唱音頻數(shù)據(jù)中對應的伴奏階段的能量會很低,如果能量較高的話,即表明該音頻數(shù)據(jù)存在噪聲,從而需要從獲取的音頻數(shù)據(jù)集合中過濾掉這些在伴奏階段噪聲能量較大超過噪聲能量閾值的音頻數(shù)據(jù)。
具體的,歌詞文件生成裝置首先會獲取每個伴奏階段在目標歌曲中的起止時間,然后根據(jù)起止時間對應獲取音頻數(shù)據(jù)中這段時間所對應的數(shù)據(jù)。
進一步的,歌詞文件生成裝置判斷音頻數(shù)據(jù)中伴奏階段的能量是否超過噪聲能量閾值的具體方式為:從該音頻數(shù)據(jù)中確定出所有伴奏階段對應的采樣點,然后獲取每個采樣點對應的能量,記為xe,e∈[1,g],g為采樣點的數(shù)量,為正整數(shù),從而計算出該音頻數(shù)據(jù)伴奏部分的平均能量,得到該音頻數(shù)據(jù)的噪聲能量,記為u,即:
當u大于噪聲能量閾值時,表明該音頻數(shù)據(jù)的噪聲過大,從而將該音頻數(shù)據(jù)從音頻數(shù)據(jù)集合中剔除。
歌詞文件生成裝置對每個音頻數(shù)據(jù)進行上述處理,將噪聲能量大于噪聲能量閾值的音頻數(shù)據(jù)從音頻數(shù)據(jù)集合中剔除,最終得到目標音頻數(shù)據(jù)集合,目標音頻數(shù)據(jù)集合中的音頻數(shù)據(jù)的數(shù)量要小于音頻數(shù)據(jù)集合中音頻數(shù)據(jù)的數(shù)量。需要說明的是,后續(xù)的所提及的音頻數(shù)據(jù)可以是指目標音頻數(shù)據(jù)集合中的每個音頻數(shù)據(jù),本發(fā)明實施例在此不再贅述。
102、歌詞文件生成裝置對音頻數(shù)據(jù)集合中的每個音頻數(shù)據(jù)進行語音切分,得到每個音頻數(shù)據(jù)中每個字的時間信息。
需要說明的是,由于用戶是針對同一首歌曲進行演唱,那么上傳的音頻數(shù)據(jù)中所包含的字(即歌詞)或者字的數(shù)量是相同的。
因此,歌曲文件生成裝置在獲取到用戶針對目標歌曲上傳的音頻數(shù)據(jù)集合后,可以對每個音頻數(shù)據(jù)進行語音切分,這樣每個音頻數(shù)據(jù)都對應得到目標歌曲的每個字的時間信息。其中,該時間信息包括了起始時間和持續(xù)時間。
具體的,歌詞文件生成裝置對音頻數(shù)據(jù)集合中的每個音頻數(shù)據(jù)進行語音切分,得到每個音頻數(shù)據(jù)中每個字的時間信息的具體方式可以為:
歌詞文件生成裝置將音頻數(shù)據(jù)集合中的每個音頻數(shù)據(jù)轉(zhuǎn)換得到對應的音素列表,將該每個音頻數(shù)據(jù)對應的音素列表映射到預先建立的音素模型,得到該每個音頻數(shù)據(jù)對應的音素模型序列。歌詞文件生成裝置通過將該每個音頻數(shù)據(jù)語音切分后得到多幀音頻數(shù)據(jù),將該多幀音頻數(shù)據(jù)中的每幀音頻數(shù)據(jù)與該音素模型序列進行匹配,得到該每幀音頻數(shù)據(jù)與該音素模型序列的匹配度,再確定出使得該每幀音頻數(shù)據(jù)與該音素模型序列的匹配度最大化的最優(yōu)匹配路徑,進而根據(jù)該最優(yōu)匹配路徑得到該每個音頻數(shù)據(jù)中每個音素的時間信息,通過將音素合并后即可確定該每個音頻數(shù)據(jù)中每個字的時間信息。
具體實現(xiàn)中,歌詞文件生成裝置收集大量語料,例如用戶上傳的20個小時的歷史音頻數(shù)據(jù),將語料切分(如人工切分)成音素,為每個音素訓練對應的音素模型,音素模型具體可以采用高斯混合模型(Gaussian Mixture Mode,GMM)-隱馬爾科夫模型(Hidden Markov Model,HMM)或者深度神經(jīng)網(wǎng)絡(Deep Neural Network,DNN)-HMM,也可以選擇基于梅爾頻率倒譜系數(shù)(Mel Frequency Cepstrum Coefficient,MFCC)等特征,由于每個音素的具體發(fā)音情況受到上下文的影響,在訓練的時候把不同上下文的音素分開訓練,例如對于音素a,在不同上下文的情況下,x-a+m(表示音素a前面的音素是x,后面的音素是m)和k-a+m(表示音素a前面的音素是k,后面的音素是m)是訓練成兩個音素模型的,這樣音素總數(shù)為n時,實際訓練得到的音素模型數(shù)為n3。對于一些較為生僻的音素可以將其音素模型映射到其它音素模型上,以減少數(shù)據(jù)的運算量。
進一步的,歌詞文件生成裝置將音頻數(shù)據(jù)集合中的每個音頻數(shù)據(jù)轉(zhuǎn)換得到對應的音素列表,例如,將“我們”轉(zhuǎn)換成“sil-w+o”、“w-o+m”、“o-m+en”、“m-en+sil”,將該音素列表映射到上述音素模型,從而得到該每個音頻數(shù)據(jù)對應的音素模型序列。歌詞文件生成裝置通過將該每個音頻數(shù)據(jù)語音切分后得到多幀音頻數(shù)據(jù),例如切分為10ms一幀,將該多幀音頻數(shù)據(jù)中的每幀音頻數(shù)據(jù)與該音素模型序列進行匹配,得到該每幀音頻數(shù)據(jù)與該音素模型序列的匹配度,一個音素模型可以對應多幀音頻數(shù)據(jù),每幀音頻數(shù)據(jù)與一個音素模型都有一個0~1的匹配度,將每幀音頻數(shù)據(jù)與一個音素模型的匹配度的乘積作為一種匹配路徑對應的置信度,例如共有5幀音頻數(shù)據(jù),有2個模型,則一共可能有5種不同的匹配路徑,分別是(5,0)、(4,1)、(3,2)、(2,3)和(1,4),其中(5,0)表示5幀音頻數(shù)據(jù)對應模型1,0幀音頻數(shù)據(jù)對應模型2,其它類似,則(5,0)這種匹配路徑的置信度就是5幀音頻數(shù)據(jù)中每幀音頻數(shù)據(jù)與模型1的匹配度的乘積,將置信度最大的匹配路徑作為使得該每幀音頻數(shù)據(jù)與該音素模型序列的匹配度最大化的最優(yōu)匹配路徑,進而根據(jù)該最優(yōu)匹配路徑可以得到該每個音頻數(shù)據(jù)中每個音素的時間信息,通過將音素合并后即可確定該每個音頻數(shù)據(jù)中每個字的時間信息,即用戶在哪個時間演唱了哪個字。
103、歌詞文件生成裝置根據(jù)該時間信息計算每個音頻數(shù)據(jù)與第一音頻數(shù)據(jù)之間的切分距離,并根據(jù)該切分距離獲得該每個音頻數(shù)據(jù)的切分距離和。
本發(fā)明實施例中,第一音頻數(shù)據(jù)為音頻數(shù)據(jù)集合中出該每個音頻數(shù)據(jù)本身之外其他任意一個音頻數(shù)據(jù),本發(fā)明實施例不做限定。歌詞文件生成裝置在對音頻數(shù)據(jù)進行語音切分得到該音頻數(shù)據(jù)的每個字的時間信息后,可以針對每個音頻數(shù)據(jù),根據(jù)得到的該音頻數(shù)據(jù)的每個字的時間信息分別計算該音頻數(shù)據(jù)與其他音頻數(shù)據(jù)之間的切分距離。
具體的,歌詞文件生成裝置根據(jù)時間信息計算每個音頻數(shù)據(jù)與第一音頻數(shù)據(jù)之間的切分距離的具體方式可以為:
針對音頻數(shù)據(jù)集合中的每個音頻數(shù)據(jù),以及目標歌曲所包含的每個字,歌詞文件生成裝置分別獲得該音頻數(shù)據(jù)中每個字的第一起始時間和第一持續(xù)時間,以及第一音頻數(shù)據(jù)中每個字的第二起始時間和第二持續(xù)時間。然后分別計算第一起始時間與第二起始時間之間的第一時間差,以及第一持續(xù)時間和第二持續(xù)時間的第二時間差,從而根據(jù)第一時間差和第二時間差計算該音頻數(shù)據(jù)與第一音頻數(shù)據(jù)之間的切分距離。
具體實現(xiàn)中,歌詞文件生成裝置會分別針對音頻數(shù)據(jù)集合中的每個音頻數(shù)據(jù),計算該音頻數(shù)據(jù)的每個字的起始時間和持續(xù)時間與其他音頻數(shù)據(jù)(如第一音頻數(shù)據(jù))的起始時間和持續(xù)時間之間的時間差,利用這種方式可以得到該音頻數(shù)據(jù)與第一音頻數(shù)據(jù)之間目標歌曲的所有字的起始時間差之和以及持續(xù)時間差之和,從而根據(jù)該起始時間差之和以及持續(xù)時間差之和計算得到該音頻數(shù)據(jù)與第一音頻數(shù)據(jù)之間的切分距離。
可以理解的是,假設音頻數(shù)據(jù)集合中的音頻數(shù)據(jù)有n個,目標歌曲所包含的所有字的數(shù)量有m個,用sji表示對第i個音頻數(shù)據(jù)進行歌詞切分后第j個字的起始時間,單位為毫秒;用Iji表示對第i個音頻數(shù)據(jù)進行歌詞切分后第j個字的持續(xù)時間,單位為毫秒。其中,n、m、i以及j均為正整數(shù),且i∈[1,n],j∈[1,m]。那么第i個音頻數(shù)據(jù)與第t個音頻數(shù)據(jù)的第j個字的起始時間之間的時間差為|sji-sjt|;第i個音頻數(shù)據(jù)與第t個音頻數(shù)據(jù)的第j個字的持續(xù)時間之間的時間差為|Iji-Ijt|,其中t為正整數(shù),t∈[1,n],當t=i時,得到的起始時間差以及持續(xù)時間差為0。通過這種方式可以計算出第i個音頻數(shù)據(jù)與第t個音頻數(shù)據(jù)之間關(guān)于目標歌曲所包含的所有字的起始時間差以及持續(xù)時間差,據(jù)此得到第i個音頻數(shù)據(jù)與第t個音頻數(shù)據(jù)之間的切分距離,用wik表示,具體為:
進一步的,歌詞文件生成裝置根據(jù)第一時間差和第二時間差計算每個音頻數(shù)據(jù)與第一音頻數(shù)據(jù)之間的切分距離的具體方式可以理解為:
獲取預設的起始時間的第一權(quán)重和預設的持續(xù)時間的第二權(quán)重,并利用第一權(quán)重、第二權(quán)重、第一時間差和第二時間差計算每個音頻數(shù)據(jù)與第一音頻數(shù)據(jù)之間的切分距離。
具體實現(xiàn)中,歌詞文件生成裝置還可以預先設置起始時間的權(quán)重和持續(xù)時間的權(quán)重,該權(quán)重用以表示在計算音頻數(shù)據(jù)與其他音頻數(shù)據(jù)之間的切分距離時,起始時間和持續(xù)時間的重要程度,其取值范圍為(0,1)。歌詞文件生成裝置在計算出某一音頻數(shù)據(jù)與其他音頻數(shù)據(jù)(第一音頻數(shù)據(jù))之間的每個字的起始時間和持續(xù)時間之差,即第一時間差和第二時間差后,可以得到該音頻數(shù)據(jù)的起始時間差之和以及持續(xù)時間差之和,從而將第一權(quán)重(用u1表示)與起始時間差之和相乘,并將第二權(quán)重(用u2表示,u2=1-u1)與持續(xù)時間差之和相乘,從而合并得到該音頻數(shù)據(jù)與第一音頻數(shù)據(jù)之間的切分距離。那么第i個音頻數(shù)據(jù)與第t個音頻數(shù)據(jù)之間的切分距離就為:
因此,以上述兩種方式可以求得該音頻數(shù)據(jù)與每個其他音頻數(shù)據(jù)之間的切分距離,從而得到該音頻數(shù)據(jù)的切分距離和,用Si表示第i個音頻數(shù)據(jù)的切分距離和,那么:
104、歌詞文件生成裝置按照切分距離和從小到大的順序?qū)σ纛l數(shù)據(jù)集合中的每個音頻數(shù)據(jù)進行排序,并確定排序首位的第二音頻數(shù)據(jù)。
本發(fā)明實施例中,歌詞文件生成裝置在計算出每個音頻數(shù)據(jù)的切分距離和后,會按照切分距離和從小到大的順序?qū)σ纛l數(shù)據(jù)集合中的所有音頻數(shù)據(jù)進行排序,這樣就可以確定出每個音頻數(shù)據(jù)在音頻數(shù)據(jù)集合中時間切分排序的位置。從而可以確定出排序首位的第二音頻數(shù)據(jù)。
需要說明的是,如果音頻數(shù)據(jù)的時間切分在音頻數(shù)據(jù)集合中是最好的,那么該音頻數(shù)據(jù)與其他音頻數(shù)據(jù)之間的切分距離和應該是最小的,例如,某一歌曲的歌詞為“只剩下鋼琴”,原唱中“只”的起始時間為25570,持續(xù)時間為360,“?!钡钠鹗紩r間為25930,持續(xù)時間為370,“下”的起始時間為26300,持續(xù)時間為100,“鋼”的起始時間為26790,持續(xù)時間為390,“琴”的起始時間為27180,持續(xù)時間為420。假設用戶上傳的音頻數(shù)據(jù)有A、B、C三個,其時間信息依次為[(25570,360),(25930,365),(26300,120),(26795,383),(27180,420)]、[(25570,355),(25930,370),(26300,110),(26795,390),(27185,415)]以及[(25569,350),(25926,370),(26300,100),(26790,390),(27173,427)],假設起始時間的權(quán)重為0.7,持續(xù)時間的權(quán)重0.3,那么A與B的切分距離為13.1;A與C的切分距離為26.6;B與C的切分距離為23.5,那么A的切分距離和為39.7,B的切分距離和為36.6,C的切分距離和為50.1,從而可得到音頻數(shù)據(jù)A、B和C之間的排列順序,B排列在首位,即B更加接近原唱。
其中,n越大,第二音頻數(shù)據(jù)為時間切分最好的音頻數(shù)據(jù)的說服力也就越大。
105、歌詞文件生成裝置利用第二音頻數(shù)據(jù)中每個字的時間信息生成目標歌曲的歌詞文件。
本發(fā)明實施例中,歌詞文件生成裝置在確定出排序首位的第二音頻數(shù)據(jù)后,可以進一步獲取步驟102中進行語音切分后得到的第二音頻數(shù)據(jù)中每個字的時間信息,從而利用該時間信息生成目標歌曲的歌詞文件,如圖2b所示,圖2b為本發(fā)明實施例提供的一種歌詞文件的示意圖。由圖2b可以看出,利用本發(fā)明實施例所生成的歌詞文件展示了歌詞中每個字的起始時間和持續(xù)時間,這樣用戶就可以對照著該歌詞文件進行演唱。
也就是說,在確定出第二音頻數(shù)據(jù)后,可以利用第二音頻數(shù)據(jù)的語音切分結(jié)果,即第二音頻數(shù)據(jù)所包含的每個字的時間信息(起始時間和持續(xù)時間)輸出為目標歌曲的QRC文件。從用戶上傳的清唱數(shù)據(jù)中篩選出較好的音頻數(shù)據(jù),以此生成目標歌曲的QRC文件,不僅能夠節(jié)省QRC的制作成本,還可以提高制作效率。
可見,在圖1所描述的方法中,用戶在針對目標歌曲上傳清唱版本的音頻數(shù)據(jù)后,歌詞文件生成裝置可以對音頻數(shù)據(jù)進行語音切分,得到每個字的時間信息,然后根據(jù)時間信息計算該音頻數(shù)據(jù)與其他音頻數(shù)據(jù)之間的切分距離,從而得到該音頻數(shù)據(jù)的切分距離和,從而從多個音頻數(shù)據(jù)中選擇出切分距離和最小的音頻數(shù)據(jù),利用其對應的每個字的時間信息生成目標歌曲的歌詞文件。這樣得到的歌詞文件就包括了歌曲的每個字的時間信息,用戶就可以根據(jù)該時間信息進行歌曲演唱,從而能夠輔助用戶以提高用戶演唱的精準度。
請參閱圖3,為本發(fā)明實施例提供的另一種歌詞文件生成方法的流程示意圖。本實施例中所描述的方法,包括以下步驟:
301、歌詞文件生成裝置獲取針對目標歌曲上傳的音頻數(shù)據(jù)集合。
302、歌詞文件生成裝置對音頻數(shù)據(jù)集合中的每個音頻數(shù)據(jù)進行語音切分,得到每個音頻數(shù)據(jù)中每個字的時間信息。
303、歌詞文件生成裝置根據(jù)該時間信息計算每個音頻數(shù)據(jù)與第一音頻數(shù)據(jù)之間的切分距離,并根據(jù)該切分距離獲得該每個音頻數(shù)據(jù)的切分距離和。
304、歌詞文件生成裝置按照切分距離和從小到大的順序?qū)σ纛l數(shù)據(jù)集合中的每個音頻數(shù)據(jù)進行排序,并確定排序首位的第二音頻數(shù)據(jù)。
步驟301~304同上一實施例中步驟101~104,本發(fā)明實施例在此不再贅述。
305、歌詞文件生成裝置從音頻數(shù)據(jù)集合中獲取排序前k個音頻數(shù)據(jù)。
本發(fā)明實施例中,歌詞文件生成裝置在確定出排序首位的第二音頻數(shù)據(jù)后,可以進一步獲取排序前k個音頻數(shù)據(jù),其中,k可以為3、5或者10,本發(fā)明實施例不做限定。例如,歌詞文件生成裝置獲取排序前5的所有音頻數(shù)據(jù),其中,包括第二音頻數(shù)據(jù)。
306、歌詞文件生成裝置根據(jù)第二音頻數(shù)據(jù)的切分距離和與排序前k個音頻數(shù)據(jù)的切分距離和計算第二音頻數(shù)據(jù)的可用度。
本發(fā)明實施例中,歌詞文件生成裝置在獲取排序前k個音頻數(shù)據(jù)后,可以根據(jù)第二音頻數(shù)據(jù)的距離和以及排序前k個音頻數(shù)據(jù)的距離和來計算第二音頻數(shù)據(jù)的可用度,用f表示。
其中,S1表示排序首位的音頻數(shù)據(jù)的距離和,Sj表示排序第j位的音頻數(shù)據(jù)的距離和。
需要說明的是,可用度用于表示排序前k個音頻數(shù)據(jù)時間切分的穩(wěn)定程度,其值越大,越穩(wěn)定,即說明排序首位的音頻數(shù)據(jù)與排序前k個音頻數(shù)據(jù)之間的差距越小,排序首位的音頻數(shù)據(jù)作為時間切分效果較好的音頻數(shù)據(jù)的力度也就越大,從而可以利用其語音切分結(jié)果生成目標歌曲的QRC歌詞文件,用戶以該歌詞文件進行演唱,可以提高演唱的準確度。
307、歌詞文件生成裝置判斷該可用度是否超過預設可用度門限,若是,執(zhí)行步驟308;若否,結(jié)束本流程。
本發(fā)明實施例中,歌詞文件生成裝置可以預先設定可用度門限,當歌詞文件生成裝置計算出第二音頻數(shù)據(jù)的可用度后,會判斷該可用度是否超過預設的可用度門限,如果超過,則說明第二音頻數(shù)據(jù)與排序前k個音頻數(shù)據(jù)之間的差距較小,第二音頻數(shù)據(jù)的時間切分較好,將其語音切分結(jié)果生成目標歌曲的QRC歌詞文件的準確度較高,如果沒有超過,則不會將其語音切分結(jié)果生成目標歌曲的QRC歌詞文件,只有在存在更多的音頻數(shù)據(jù)時再篩選時間切分較好的音頻數(shù)據(jù),從而將其語音切分結(jié)果生成目標歌曲的QRC歌詞文件。
也即是說,第二音頻數(shù)據(jù)是n個音頻數(shù)據(jù)中時間切分較好的音頻數(shù)據(jù),如果n個音頻數(shù)據(jù)的時間切分普遍都比較差,以第二音頻數(shù)據(jù)的語音切分結(jié)果來生成目標歌曲的QRC歌詞文件的準確力度就不夠大,如果n個音頻數(shù)據(jù)的時間切分普遍都比較好,以第二音頻數(shù)據(jù)的語音切分結(jié)果來生成目標歌曲的QRC歌詞文件的準確力度就大。
308、歌詞文件生成裝置利用第二音頻數(shù)據(jù)中每個字的時間信息生成目標歌曲的歌詞文件,并結(jié)束本流程。
進一步的,為了不斷完善目標歌曲歌詞文件中每個字的時間信息的準確度,無論第二音頻數(shù)據(jù)的可用度是否達到可用度閾值,歌詞文件生成裝置都可以檢測針對該目標歌曲再次上傳的音頻數(shù)據(jù),如果新上傳的音頻數(shù)據(jù)達到一定數(shù)量閾值后,可以對新上傳的音頻數(shù)據(jù)進行語音切分,得到每個音頻數(shù)據(jù)所包含的每個字的時間信息,然后將這些音頻數(shù)據(jù)與之前上傳的音頻數(shù)據(jù)集合合并,再次執(zhí)行步驟303~步驟308,從而得到更加準確的歌詞文件。
通過這種方式,每次聚類都可以得到時間切分較好的指導音頻數(shù)據(jù),經(jīng)過多次聚類后,篩選出的音頻數(shù)據(jù)的時間切分效果更好,以該音頻數(shù)據(jù)所包含的每個字的時間信息生成目標歌曲的QRC歌詞文件的準確度更高,更適合用戶以此進行演唱。
可見,在圖3所描述的方法中,用戶在針對目標歌曲上傳清唱版本的音頻數(shù)據(jù)后,歌詞文件生成裝置可以對音頻數(shù)據(jù)進行語音切分,得到每個字的時間信息,然后根據(jù)時間信息計算該音頻數(shù)據(jù)與其他音頻數(shù)據(jù)之間的切分距離,從而得到該音頻數(shù)據(jù)的切分距離和,從而從多個音頻數(shù)據(jù)中選擇出切分距離和最小的音頻數(shù)據(jù),利用其對應的每個字的時間信息生成目標歌曲的歌詞文件。這樣得到的歌詞文件就包括了歌曲的每個字的時間信息,用戶就可以根據(jù)該時間信息進行歌曲演唱,從而能夠輔助用戶以提高用戶演唱的精準度。
基于上述實施例所示的歌詞文件生成方法,本發(fā)明實施例還提供了一種歌詞文件生成設備,可用于執(zhí)行上述圖1和圖3所示方法流程的相應步驟。請參見圖4,該歌詞文件生成設備的內(nèi)部結(jié)構(gòu)可包括但不限于:處理器、網(wǎng)絡接口及存儲器。其中,歌詞文件生成設備內(nèi)的處理器、網(wǎng)絡接口及存儲器可通過總線或其他方式連接,在本發(fā)明實施例所示圖4中以通過總線連接為例。
其中,處理器(或稱CPU(Central Processing Unit,中央處理器))是歌詞文件生成設備的計算核心以及控制核心。網(wǎng)絡接口可選的可以包括標準的有線接口、無線接口(如WI-FI、移動通信接口等)。存儲器(Memory)是音歌詞文件生成設備中的記憶設備,用于存放程序和數(shù)據(jù)??梢岳斫獾氖?,此處的存儲器可以是高速RAM存儲器,也可以是非不穩(wěn)定的存儲器(non-volatile memory),例如至少一個磁盤存儲器;可選的還可以是至少一個位于遠離前述處理器的存儲裝置。存儲器提供存儲空間,該存儲空間存儲了歌詞文件生成的操作系統(tǒng),可包括但不限于:Windows系統(tǒng)(一種操作系統(tǒng))、Linux(一種操作系統(tǒng))系統(tǒng)等等,本發(fā)明對此并不作限定。存儲器的存儲空間還存儲了歌詞文件生成裝置。
在本發(fā)明實施例中,歌詞文件生成設備通過運行存儲器中的歌詞文件生成裝置來執(zhí)行上述圖1和圖3所示方法流程的相應步驟。請一并參見圖5,在執(zhí)行如挑選時間切分較好的清唱音頻數(shù)據(jù),以該音頻數(shù)據(jù)的每個字的時間信息生成目標歌曲的歌詞文件的過程中,該裝置運行如下單元:
獲取模塊501,用于獲取針對目標歌曲上傳的音頻數(shù)據(jù)集合,所述音頻數(shù)據(jù)集合包括多個音頻數(shù)據(jù)。
切分模塊502,用于對所述音頻數(shù)據(jù)集合中的每個音頻數(shù)據(jù)進行語音切分,得到所述每個音頻數(shù)據(jù)中每個字的時間信息。
計算模塊503,用于根據(jù)所述時間信息計算所述每個音頻數(shù)據(jù)與第一音頻數(shù)據(jù)之間的切分距離,并根據(jù)所述切分距離獲得所述每個音頻數(shù)據(jù)的切分距離和,所述第一音頻數(shù)據(jù)為所述音頻數(shù)據(jù)集合中除所述每個音頻數(shù)據(jù)之外的任一音頻數(shù)據(jù)
排序模塊504,用于按照切分距離和從小到大的順序?qū)λ鲆纛l數(shù)據(jù)集合中的每個音頻數(shù)據(jù)進行排序。
確定模塊505,用于確定排序首位的第二音頻數(shù)據(jù)。
生成模塊506,用于利用所述第二音頻數(shù)據(jù)中每個字的時間信息生成所述目標歌曲的歌詞文件。
可選的,該裝置還可以包括剔除模塊507,其中:
計算模塊503,還用于計算所述音頻數(shù)據(jù)集合中每個音頻數(shù)據(jù)的噪聲能量。
剔除模塊507,用于將噪聲能量大于噪聲能量閾值的音頻數(shù)據(jù)從所述音頻數(shù)據(jù)集合中剔除,得到目標音頻數(shù)據(jù)集合。
其中,切分模塊502對所述音頻數(shù)據(jù)集合中的每個音頻數(shù)據(jù)進行語音切分,得到所述每個音頻數(shù)據(jù)中每個字的時間信息的具體方式可以為:
對所述目標音頻數(shù)據(jù)集合中的每個音頻數(shù)據(jù)進行語音切分,得到所述每個音頻數(shù)據(jù)中每個字的時間信息。
可選的,切分模塊502對所述音頻數(shù)據(jù)集合中的每個音頻數(shù)據(jù)進行語音切分,得到所述每個音頻數(shù)據(jù)中每個字的時間信息的具體方式可以為:
將所述音頻數(shù)據(jù)集合中的每個音頻數(shù)據(jù)轉(zhuǎn)換得到對應的音素列表。
將所述每個音頻數(shù)據(jù)對應的音素列表映射到預先建立的音素模型,得到所述每個音頻數(shù)據(jù)對應的音素模型序列。
將所述每個音頻數(shù)據(jù)語音切分后得到多幀音頻數(shù)據(jù),獲取所述多幀音頻數(shù)據(jù)中的每幀音頻數(shù)據(jù)與所述音素模型序列的匹配度。
確定所述每幀音頻數(shù)據(jù)與所述音素模型序列的匹配度最大化的最優(yōu)匹配路徑,根據(jù)所述最優(yōu)匹配路徑得到所述每個音頻數(shù)據(jù)中每個音素的時間信息,將音素合并后確定所述每個音頻數(shù)據(jù)中每個字的時間信息。
可選的,該裝置還可以包括判斷模塊508,其中:
獲取模塊501,還用于從所述音頻數(shù)據(jù)集合中獲取排序前k個音頻數(shù)據(jù)。
計算模塊503,還用于根據(jù)所述第二音頻數(shù)據(jù)的切分距離和與所述排序前k個音頻數(shù)據(jù)的切分距離和計算所述第二音頻數(shù)據(jù)的可用度。
判斷模塊508,用于判斷所述可用度是否超過預設可用度門限,若是,則觸發(fā)生成模塊506執(zhí)行所述利用所述第二音頻數(shù)據(jù)中每個字的時間信息生成所述目標歌曲的歌詞文件的操作。
可選的,計算模塊503根據(jù)所述時間信息計算所述每個音頻數(shù)據(jù)與第一音頻數(shù)據(jù)之間的切分距離的具體方式可以為:
針對所述目標歌曲所包含的每個字,根據(jù)所述時間信息分別獲得所述每個音頻數(shù)據(jù)中所述每個字的第一起始時間和第一持續(xù)時間,以及第一音頻數(shù)據(jù)中所述每個字的第二起始時間和第二持續(xù)時間。
分別計算所述第一起始時間和所述第二起始時間的第一時間差,以及所述第一持續(xù)時間和所述第二持續(xù)時間的第二時間差。
根據(jù)所述第一時間差和所述第二時間差計算所述每個音頻數(shù)據(jù)與所述第一音頻數(shù)據(jù)之間的切分距離。
可選的,計算模塊503根據(jù)所述第一時間差和所述第二時間差計算所述每個音頻數(shù)據(jù)與所述第一音頻數(shù)據(jù)之間的切分距離的具體方式可以為:
獲取預設的起始時間的第一權(quán)重和預設的持續(xù)時間的第二權(quán)重。
利用所述第一權(quán)重、所述第二權(quán)重、所述第一時間差和所述第二時間差計算所述每個音頻數(shù)據(jù)與所述第一音頻數(shù)據(jù)之間的切分距離。
本發(fā)明實施例中,用戶在針對目標歌曲上傳清唱版本的音頻數(shù)據(jù)后,歌詞文件生成裝置可以對音頻數(shù)據(jù)進行語音切分,得到每個字的時間信息,然后根據(jù)時間信息計算該音頻數(shù)據(jù)與其他音頻數(shù)據(jù)之間的切分距離,從而得到該音頻數(shù)據(jù)的切分距離和,從而從多個音頻數(shù)據(jù)中選擇出切分距離和最小的音頻數(shù)據(jù),利用其對應的每個字的時間信息生成目標歌曲的歌詞文件。這樣得到的歌詞文件就包括了歌曲的每個字的時間信息,用戶就可以根據(jù)該時間信息進行歌曲演唱,從而能夠輔助用戶以提高用戶演唱的精準度。
本領域普通技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關(guān)的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory,ROM)或隨機存取存儲器(Random Access Memory,簡稱RAM)等。
以上所揭露的僅為本發(fā)明一種較佳實施例而已,當然不能以此來限定本發(fā)明之權(quán)利范圍,本領域普通技術(shù)人員可以理解實現(xiàn)上述實施例的全部或部分流程,并依本發(fā)明權(quán)利要求所作的等同變化,仍屬于發(fā)明所涵蓋的范圍。