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