本發(fā)明涉及互聯(lián)網技術領域,尤其涉及一種歌曲的合成方法及終端。
背景技術:
隨著通信及信息技術的高速發(fā)展,手機也日漸普及,其功能也日益增加,各種音樂類產品也應運而生,特別是K歌類音樂產品,其中,用戶可通過K歌類進行錄制歌曲,并分享錄制歌曲。
目前,用戶在通過K歌類音樂產品進行錄制歌曲時,大都是用戶選擇相應的音樂伴奏并跟隨音樂伴奏及字幕進行演唱錄制。但是,有些用戶由于自身演唱水平不高而導致用戶不滿意其所錄制的歌曲,從而降低了用戶使用K歌類音樂產品進行分享錄制歌曲的熱情。
技術實現(xiàn)要素:
本發(fā)明實施例所要解決的技術問題在于,提供一種歌曲合成方法及終端??墒沟媒K端可僅根據(jù)用戶的音頻數(shù)據(jù)即能合成歌曲,提高錄制歌曲的效果,并提高用戶體驗度。
本發(fā)明實施例第一方面提供了一種歌曲的合成方法,可包括:
對用戶輸入的音頻數(shù)據(jù)進行識別,獲取預置歌詞信息中每個文字對應的文字音頻數(shù)據(jù);
獲取所述歌詞信息對應的樂譜信息;
按所述樂譜信息對所述每個文字對應的文字音頻數(shù)據(jù)進行合成,獲得歌曲音頻數(shù)據(jù)。
本發(fā)明實施例第二方面提供了一種終端,可包括:
第一獲取單元,用于對用戶輸入的音頻數(shù)據(jù)進行識別,獲取預置歌詞信息中每個文字對應的文字音頻數(shù)據(jù);
第二獲取單元,用于獲取所述歌詞信息對應的樂譜信息;
合成單元,用于按所述樂譜信息對所述每個文字對應的文字音頻數(shù)據(jù)進行合成,獲得歌曲音頻數(shù)據(jù)。
在本發(fā)明實施例中,終端對用戶輸入的音頻數(shù)據(jù)進行識別,獲取預置歌詞信息中每個文字對應的文字音頻數(shù)據(jù),獲取所述歌詞信息對應的樂譜信息,按所述樂譜信息對所述每個文字對應的文字音頻數(shù)據(jù)進行合成,獲得歌曲音頻數(shù)據(jù),使得終端可僅根據(jù)用戶的音頻數(shù)據(jù)即能合成歌曲,提高錄制歌曲的效果,并提高用戶體驗度。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明實施例提供的一種網絡構架示意圖;
圖2是本發(fā)明實施例提供的一種歌曲的合成方法的流程示意圖;
圖3是本發(fā)明實施例提供的一種終端的結構示意圖;
圖4是本發(fā)明實施例提供的另一種終端的結構示意圖。
具體實施方式
下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
本發(fā)明實施例提供的一種歌曲的合成方法可以應用于終端錄制歌曲的場景。
在本發(fā)明實施例中,所描述的終端可包括:手機、平板電腦、掌上電腦或者移動互聯(lián)網設備(Mobile Internet Device,MID)等,上述終端僅是舉例,而非窮舉,包含但不限于上述終端。
為了更好理解本發(fā)明實施例公開的方案,下面先對本發(fā)明實施例適用的網絡構架進行描述。請參閱圖1,圖1是本發(fā)明實施例公開的一種網絡構架示意圖。在圖1所示的網絡構架中,可以包括終端和歌曲服務器,終端可以通過網絡與歌曲服務器進行連接,終端可向歌曲服務器請求獲取數(shù)據(jù)。
基于圖1所示的網絡構架,本發(fā)明實施例公開了一種歌曲的合成方法。下面將結合附圖2,對本發(fā)明實施例提供的一種歌曲的合成方法進行詳細介紹,其中,實施例的執(zhí)行主體為終端。
參見圖2,是本發(fā)明實施例提供的一種歌曲的合成方法一種實施例流程示意圖。本發(fā)明實施例的一種歌曲的合成方法包括如下步驟:
S100,對用戶輸入的音頻數(shù)據(jù)進行識別,獲取預置歌詞信息中每個文字對應的文字音頻數(shù)據(jù)。
在本發(fā)明實施例中,當用戶需通過自身語音進行合成歌曲時,用戶可操作終端輸入合成歌曲指令,其中,指令可攜帶歌曲標識。當終端接收到合成歌曲指令時,終端可根據(jù)歌曲標識獲取歌曲標識對應的歌曲的歌詞信息,并顯示歌詞信息,以使用戶根據(jù)終端顯示的歌詞信息進行朗讀,以向終端輸入音頻數(shù)據(jù)。同時,當終端接收到合成歌曲指令時,終端可開啟終端內置的麥克風,通過麥克風采集用戶針對顯示的歌詞信息進行輸入的音頻數(shù)據(jù)從而獲取音頻數(shù)據(jù)。其中,歌詞信息可以是一句歌詞或多句歌詞,在此不進行限制。
在本發(fā)明實施例中,當終端獲取到音頻數(shù)據(jù)后,終端可對音頻數(shù)據(jù)進行識別,獲得歌詞信息所包括的每個文字對應的文字音頻。具體的,終端可對音頻數(shù)據(jù)的音素進行識別切分,獲得歌詞信息中所包括的每個文字對應的文字音頻數(shù)據(jù)。
在本發(fā)明實施例中,終端對音頻數(shù)據(jù)的音素進行識別切分,獲得歌詞信息中所包括的每個文字對應的文字音頻數(shù)據(jù)具體可以是:終端首先收集大量語料,對語料進行切分為音素,為每個音素進行訓練模型獲得音素模型,其中,模型可以是GMM-HMM模型,或者DNN-HMM模型等,在此不進行限制。其中,由于每個音素的具體發(fā)音情況受到上下文的影響,因此,終端在訓練模型的時候可把不同上下文的因素分開訓練,如同樣是音素a,在不同上下文環(huán)境中,如n-a+m(表示在此語料中a音素前面的音素是音素n,后面的音素是m)、k-a+m這兩個同一音素在實際情況下是訓練成兩個模型的,這樣的話,如果音素總數(shù)是n個的話,實際訓練的模型數(shù)是n^3(由于訓練集可能不夠,所以會讓一些比較難出現(xiàn)的音素映射到其他音素的模型上)。
在本發(fā)明實施例中,當終端對音素進行訓練后,終端可將歌詞信息所包括的文字轉換為音素序列,比如文字內容“我們”轉成的音素序列為sil-w+o w-o+m m-en+sil(其中sil表示靜音),之后終端可以將該音素序列輸入至上述所生成的音素模型中,獲得音素模型序列。
在本發(fā)明實施例中,終端可將音頻數(shù)據(jù)進行分幀,并對每幀的音頻數(shù)據(jù)進行特征提取,獲得每幀的音頻特征。當獲得每幀的音頻特征后,終端可將每幀的音頻特征輸入至上述獲得的音素模型序列中進行計算計算置信度,其中,一個音素模型序列可以對應多幀的音頻特征,每一幀的音頻特征與一個音素模型序列都可以算出一個0~1的匹配度,由于按順序經過音素模型序列進行計算,故終端最終可以得到一條與所有幀的音頻特征匹配度最大化的路徑,即是最優(yōu)路徑。具體可如:有5幀音頻特征,有兩個音素模型序列,則一共可能有5種不同的路徑,分別是(5,0)(表示5幀的語音特征對應音素模型序列1,0幀對應音素模型序列2,此中情況的總置信度就是5幀的語音特征中的每一幀的語音特征與音素模型序列1的匹配度的乘積)、(4,1)…,最后根據(jù)最優(yōu)路徑終端可獲取用戶在什么時間讀了哪個音素,因此終端將音素合并后即可獲得用戶讀取每個文字所對應的時間信息,從而終端可根據(jù)每個文字所對應的時間信息對獲取到的音頻數(shù)據(jù)進行切分,獲取歌詞信息中的每個文字所對應的文字音頻數(shù)據(jù)。其中,每個文字所對應的文字音頻數(shù)據(jù)xii∈[1,n],其中n為該句的字數(shù)。
S101,獲取所述歌詞信息對應的樂譜信息。
終端可獲取歌詞信息對應的歌曲標識,根據(jù)歌曲標識獲取歌曲標識對應的樂譜信息,其中,樂譜信息可以是MIDI(Musical Instrument Digital Interface,樂器數(shù)字接口)文件,MIDI文件包括目標歌曲對應的歌詞信息中的每個文字對應的音符的起始時間和持續(xù)時間以及每個音符的音高值,具體的,可參見下表一所示的樂譜信息。
表一
表一第一列所示的為歌詞信息所包括的文字,如表一所示,歌詞信息包括的文字為“明朝清風”,表一第二列所示音符為每個文字所對應的音符,其中,歌詞信息中的大部分文字在歌曲音頻數(shù)據(jù)中只有一個音符,但是也有一個文字在歌曲音頻數(shù)據(jù)中有多個音符(在歌曲中一個字的也會變調),如表一中的樂譜信息顯示歌詞中的“清”字對應的歌曲音頻數(shù)據(jù)包括兩個頻率69和67,即是兩個音符,其中每個音符都有各自對應的時間信息,兩個音符加起來的時間信息就是“清”字對應的歌曲音頻的時間信息。
S102,按所述樂譜信息對所述歌詞所包括的每個文字對應的文字音頻數(shù)據(jù)進行合成,獲得歌曲音頻數(shù)據(jù)。
在本發(fā)明實施例中,當終端獲取到歌詞信息所包括的每個文字所對應的文字音頻數(shù)據(jù),終端可按樂譜信息記錄的每個文字在歌曲音頻數(shù)據(jù)中的時間信息以及音符對每個文字的文字音頻數(shù)據(jù)進行拉伸處理,獲得每個文字對應的第一文字音頻數(shù)據(jù)。
其中,終端按樂譜信息記錄的每個文字在歌曲音頻數(shù)據(jù)中的時間信息以及音符對每個文字的文字音頻數(shù)據(jù)進行拉伸處理,獲得每個文字對應的第一文字音頻數(shù)據(jù)具體可以是:首先,終端獲取每個文字對應的文字音頻數(shù)據(jù)的時間長度,將每個文字對應的文字音頻數(shù)據(jù)的時間長度以及該文字在樂譜信息中對應的音符的時間長度轉化為幀數(shù),如一個文字所對應的文字音頻數(shù)據(jù)的時間長度tx,該文字在樂譜信息中對應的音符的時間長度為ty,一幀為5ms,則該文字對應的文字音頻數(shù)據(jù)的幀數(shù)fx=tx/5,同樣文字在樂譜信息中對應的音符的幀數(shù)fy=ty/5,其中,若是最后一片不足5ms的按一幀處理。因此,終端可定義每一幀的文字音頻數(shù)據(jù)為dxii∈[1,fx]。
進一步的,由于人在發(fā)聲時聲帶震動產生的頻率經過聲道過濾后會產生大量泛音。因此為了避免這些泛音影響終端數(shù)據(jù)處理,終端需要從文字音頻數(shù)據(jù)中提取直接表現(xiàn)聲帶震動頻率的基頻信息,基頻信息也決定了整幀文字音頻數(shù)據(jù)的音高。因此,終端可對每一幀文字音頻數(shù)據(jù)進行提取基頻信息,具體的終端可定義每一幀的文字音頻數(shù)據(jù)的基頻信息為pxii∈[1,fx]。同理,終端可定義每幀的文字在樂譜信息中對應的音符的基頻信息為pyii∈[1,fy]。定義每一幀處理后的文字音頻數(shù)據(jù)為dyi,則從而終端可根據(jù)每一幀處理后的文字音頻數(shù)據(jù)以及幀的寬度獲得第一文字音頻數(shù)據(jù)。其中,終端可根據(jù)預置公式進行提取基頻信息,具體可如,參見表一,如文字“明”在歌曲中的文字音頻數(shù)據(jù)的頻率為69,利用樂譜信息中的頻率與實際頻率的對應公式計算得到文字“明”在歌曲中的文字音頻數(shù)據(jù)的實際頻率為440,由于此字只有這一個基頻,即基頻信息pyi=440i∈[1,fy]。
在本發(fā)明實施例中,當終端對每個文字對應的文字音頻數(shù)據(jù)進行拉伸處理,獲得每個文字對應的第一文字音頻數(shù)據(jù)后,終端對每個文字對應的第一文字音頻數(shù)據(jù)進行音高調整,即是進行頻率調整,獲得每個文字對應的第二文字音頻數(shù)據(jù)。具體可如:終端根據(jù)目標幀頻率將每個文字對應的第一文字音頻數(shù)據(jù)切分為n個周期,如某一時刻的頻率為440hz,則意味著該時段每秒鐘有440個周期,將每個文字整個輸出時間按照這樣的方式切分為n個周期并定義為ojj∈[1,n],根據(jù)每個周期所屬的幀id獲取周期對應的原始音頻幀dyj,也就得到了對應的dyj對于周期j,其對應的原始音頻幀為dxi,其原始頻率為pxii∈[1,fx],以原始幀中最大的采樣點值為中心點,截取出一個時長為的數(shù)據(jù)塊ki i∈[1,m],其中m為此周期采樣點的個數(shù),加窗后得到新的數(shù)據(jù)快設目標音頻句子的采樣點個數(shù)為ny,初始時各采樣點值均為0,按照時間信息將上一步獲取到的每個字的每一周期對應的ri累加到y(tǒng)的采樣點中,其中靜音部分不處理,只填充樂譜信息中有歌詞的時間部分,這樣就得到了調整頻率后的第二文字音頻數(shù)據(jù),也就是音高轉換后的第二文字音頻數(shù)據(jù)。
在本發(fā)明實施例中,當終端獲取到每個文字所對應的第二文字音頻數(shù)據(jù)后,終端可按歌詞信息所包括的文字順序將每個文字對應的第二文字音頻數(shù)據(jù)進行合成,獲得音頻數(shù)據(jù)片段,并從樂譜信息中獲取該音頻數(shù)據(jù)片段對應的伴奏數(shù)據(jù)與音頻數(shù)據(jù)片段進行合成混音后即可得到該歌詞對應的歌曲音頻數(shù)據(jù),終端可播放歌曲音頻數(shù)據(jù)給用戶進行試聽。
在本發(fā)明實施例中,終端對用戶輸入的音頻數(shù)據(jù)進行識別,獲取預置歌詞信息中每個文字對應的文字音頻數(shù)據(jù),獲取所述歌詞信息對應的樂譜信息,按所述樂譜信息對所述歌詞所包括的每個文字對應的文字音頻數(shù)據(jù)進行合成,獲得歌曲音頻數(shù)據(jù),使得終端可僅根據(jù)用戶的音頻數(shù)據(jù)即能合成歌曲,提高錄制歌曲的效果,并提高用戶體驗度。
下面將結合附圖3和4,對本發(fā)明實施例提供的一種終端進行介紹。需要說明的是,附圖3和4所示的一種終端,用于執(zhí)行本發(fā)明圖2所示實施例的方法,為了便于說明,僅示出了與本發(fā)明實施例相關的部分,具體技術細節(jié)未揭示的,請參照本發(fā)明圖2所示的實施例。
請參見圖3,為本發(fā)明實施例提供了一種終端的結構示意圖。如圖3所示,本發(fā)明實施例的所述終端可以包括:
第一獲取單元100,用于對用戶輸入的音頻數(shù)據(jù)進行識別,獲取預置歌詞信息中每個文字對應的文字音頻數(shù)據(jù);
第二獲取單元200,用于獲取所述歌詞信息對應的樂譜信息;
合成單元300,用于按所述樂譜信息對所述歌詞所包括的每個文字對應的文字音頻數(shù)據(jù)進行合成,獲得歌曲音頻數(shù)據(jù)。
其中,所述第一獲取單元100包括:
輸出子單元,用于輸出所述歌詞信息;
接收子單元,用于接收用戶針對所述歌詞信息輸入的所述音頻數(shù)據(jù)。
其中,所述樂譜信息包括所述歌詞信息中的每個文字所對應的音頻時長;
所述合成單元300包括:
第一獲取子單元,用于從所述樂譜信息中獲取所述歌詞信息中的每個文字所對應的音頻時長;
第一調整子單元,用于按所述每個文字所對應的音頻時長對每個文字所對應的目標文字音頻數(shù)據(jù)的時長進行調整,獲得每個文字所對應的第一文字音頻數(shù)據(jù);
第一合成子單元,用于按所述樂譜信息對所述每個文字對應的第一文字音頻數(shù)據(jù)進行合成,獲得歌曲音頻數(shù)據(jù)。
其中,所述樂譜信息包括所述歌詞信息中的每個文字所對應的音高信息;
所述第一合成子單元包括:
第二獲取子單元,用于從所述樂譜信息中獲取所述歌詞信息中的每個文字所對應的音高信息;
第二調整子單元,用于按所述每個文字所對應的音高信息對每個文字所對應的第一文字音頻數(shù)據(jù)的音高進行調整,獲得每個文字所對應的第二文字音頻數(shù)據(jù);
第二合成子單元,用于按所述樂譜信息對所述每個文字對應的第二文字音頻數(shù)據(jù)進行合成,獲得所述歌曲音頻數(shù)據(jù)。
其中,所述樂譜信息包括伴奏數(shù)據(jù);
所述第二合成子單元包括:
第三獲取子單元,用于按所述歌詞信息所包括的文字順序將每個文字所對應的第二文字音頻數(shù)據(jù)進行合成,獲得音頻數(shù)據(jù)片段;
第四獲取子單元,用于從所述樂譜信息中獲取所述音頻數(shù)據(jù)片段對應的伴奏數(shù)據(jù);
第三合成子單元,用于將所述音頻數(shù)據(jù)片段對應的伴奏數(shù)據(jù)與所述音頻數(shù)據(jù)片段進行合成,獲得所述歌曲音頻數(shù)據(jù)。
其中,可以理解的是,本實施例的終端中的單元的各功能模塊的功能可根據(jù)圖2述的方法實施例中的方法具體實現(xiàn),其具體實現(xiàn)過程可以參照上述方法實施例的相關描述,此處不再進行贅述。
在本發(fā)明實施例中,終端對用戶輸入的音頻數(shù)據(jù)進行識別,獲取預置歌詞信息中每個文字對應的文字音頻數(shù)據(jù),獲取所述歌詞信息對應的樂譜信息,按所述樂譜信息對所述歌詞所包括的每個文字對應的文字音頻數(shù)據(jù)進行合成,獲得歌曲音頻數(shù)據(jù),使得終端可僅根據(jù)用戶的音頻數(shù)據(jù)即能合成歌曲,提高錄制歌曲的效果,并提高用戶體驗度。
請參見圖4,為本發(fā)明實施例提供了又一種終端的結構示意圖。如圖4所示,終端1000可以包括:至少一個處理器1001,例如CPU,至少一個網絡接口1004,用戶接口1003,存儲器1005,至少一個通信總線1002。其中,通信總線1002用于實現(xiàn)這些組件之間的連接通信。其中,用戶接口1003可以包括顯示屏(Display)、鍵盤(Keyboard),可選用戶接口1003還可以包括標準的有線接口、無線接口。網絡接口1004可選的可以包括標準的有線接口、無線接口(如WI-FI接口)。存儲器1005可以是高速RAM存儲器,也可以是非不穩(wěn)定的存儲器(non-volatile memory),例如至少一個磁盤存儲器。存儲器1005可選的還可以是至少一個位于遠離前述處理器1001的存儲裝置。如圖4所示,作為一種計算機存儲介質的存儲器1005中可以包括操作系統(tǒng)、網絡通信模塊、用戶接口模塊以及通信連接應用程序。
在圖4所示的終端1000中,用戶接口1003主要用于為用戶提供輸入的接口,獲取用戶輸入的數(shù)據(jù);網絡接口1004用于與新聞服務器相連接,獲取新聞服務器發(fā)送的數(shù)據(jù);而處理器1001可以用于調用存儲器1005中存儲的通信連接應用程序,并具體執(zhí)行以下操作:
對用戶輸入的音頻數(shù)據(jù)進行識別,獲取預置歌詞信息中每個文字對應的文字音頻數(shù)據(jù);
獲取所述歌詞信息對應的樂譜信息;
按所述樂譜信息對所述每個文字對應的文字音頻數(shù)據(jù)進行合成,獲得歌曲音頻數(shù)據(jù)。
其中,所述處理器1001對用戶輸入的音頻數(shù)據(jù)進行識別,獲取預置歌詞信息中每個文字對應的文字音頻數(shù)據(jù)包括:
輸出所述歌詞信息;
接收用戶針對所述歌詞信息輸入的所述音頻數(shù)據(jù)。
其中,所述樂譜信息包括所述歌詞信息中的每個文字所對應的音頻時長;
所述處理器1001按所述樂譜信息對所述每個文字對應的文字音頻數(shù)據(jù)進行合成,獲得歌曲音頻數(shù)據(jù)包括:
從所述樂譜信息中獲取所述歌詞信息中的每個文字所對應的音頻時長;
按所述每個文字所對應的音頻時長對每個文字所對應的目標文字音頻數(shù)據(jù)的時長進行調整,獲得每個文字所對應的第一文字音頻數(shù)據(jù);
按所述樂譜信息對所述每個文字對應的第一文字音頻數(shù)據(jù)進行合成,獲得歌曲音頻數(shù)據(jù)。
其中,所述樂譜信息包括所述歌詞信息中的每個文字所對應的頻率信息和伴奏信息;
所述處理器1001按所述樂譜信息對所述每個文字對應的第一文字音頻數(shù)據(jù)進行合成,獲得歌曲音頻數(shù)據(jù)包括:
從所述樂譜信息中獲取所述歌詞信息中的每個文字所對應的頻率信息;
按所述每個文字所對應的頻率信息對每個文字所對應的第一文字音頻數(shù)據(jù)的頻率進行調整,獲得每個文字所對應的第二文字音頻數(shù)據(jù);
按所述歌詞信息所包括的文字順序將每個文字所對應的第二文字音頻數(shù)據(jù)進行合成,獲得音頻數(shù)據(jù)片段;
從所述樂譜信息中獲取伴奏信息進行合成,獲得所述歌曲音頻數(shù)據(jù)。
其中,在所述處理器1001按所述樂譜信息對所述每個文字對應的文字音頻進行合成,獲得歌曲音頻之后,所述處理器1001還執(zhí)行:
播放所述歌曲音頻。
其中,可以理解的是,本實施例的終端中的單元的各功能模塊的功能可根據(jù)圖2所述的方法實施例中的方法具體實現(xiàn),其具體實現(xiàn)過程可以參照上述方法實施例的相關描述,此處不再進行贅述。
在本發(fā)明實施例中,終端對用戶輸入的音頻數(shù)據(jù)進行識別,獲取預置歌詞信息中每個文字對應的文字音頻數(shù)據(jù),獲取所述歌詞信息對應的樂譜信息,按所述樂譜信息對所述歌詞所包括的每個文字對應的文字音頻數(shù)據(jù)進行合成,獲得歌曲音頻數(shù)據(jù),使得終端可僅根據(jù)用戶的音頻數(shù)據(jù)即能合成歌曲,提高錄制歌曲的效果,并提高用戶體驗度。
本領域普通技術人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory,ROM)或隨機存儲記憶體(Random Access Memory,RAM)等。
以上所揭露的僅為本發(fā)明較佳實施例而已,當然不能以此來限定本發(fā)明之權利范圍,因此依本發(fā)明權利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。