本發(fā)明屬于歌曲創(chuàng)作方法技術(shù)領(lǐng)域,具體的說是涉及一種使用計(jì)算機(jī)自動(dòng)創(chuàng)作歌曲的方法。
背景技術(shù):
自動(dòng)創(chuàng)作歌曲在流程上分為三種技術(shù),即計(jì)算機(jī)作曲、計(jì)算機(jī)編曲和計(jì)算機(jī)演唱。計(jì)算機(jī)作曲(automated composition)或稱算法作曲(algorithmic composition)是試圖使用某個(gè)形式化的過程,以使普通使用者或作曲家在利用計(jì)算機(jī)進(jìn)行音樂創(chuàng)作時(shí)的介入程度達(dá)到最小的研究?,F(xiàn)有技術(shù)中傳統(tǒng)的自動(dòng)作曲算法所采用的主要技術(shù)有:馬爾克夫鏈、隨機(jī)過程、分層技術(shù)、知識(shí)庫系統(tǒng)、音樂文法、人工神經(jīng)網(wǎng)絡(luò)技術(shù)和遺傳算法,均為使用機(jī)器學(xué)習(xí)算法對(duì)音樂旋律進(jìn)行模擬。由于音樂是難以量化的藝術(shù)品,因此采用機(jī)器學(xué)學(xué)習(xí)算法模擬有著很大的不便,即無法準(zhǔn)確地評(píng)估模型的訓(xùn)練結(jié)果,因?yàn)闃非暮寐牫潭仁欠浅ky以量化的,是一種人類獨(dú)有的感性認(rèn)識(shí),不同人的評(píng)估亦有偏差。因此采用傳統(tǒng)機(jī)器學(xué)習(xí)的方法制作出的樂曲難以符合人們的審美,從而喪失了藝術(shù)性。
計(jì)算機(jī)編曲技術(shù)屬于音樂專業(yè)性非常強(qiáng)的課題,由于算法開發(fā)對(duì)音樂知識(shí)的要求很高,目前在計(jì)算機(jī)領(lǐng)域還沒有成熟的技術(shù)實(shí)現(xiàn)方案。同時(shí)由于算法技術(shù)對(duì)計(jì)算機(jī)知識(shí)的要求同樣嚴(yán)苛,在音樂創(chuàng)作領(lǐng)域中也沒有自動(dòng)編曲的解決方案,所以我們的計(jì)算機(jī)編曲方法在此領(lǐng)域是一種新的嘗試與創(chuàng)新。計(jì)算機(jī)演唱技術(shù)即聲音合成技術(shù),具體是指按照指定的樂譜,使用預(yù)先設(shè)置的音源文件,通過音頻調(diào)頻調(diào)幅操作構(gòu)造出指定音高與時(shí)長的聲音,目前行業(yè)內(nèi)比較通用的解決方案是頻譜建模。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明為了克服現(xiàn)有技術(shù)存在的不足,提供一種能夠幾秒鐘就把文字轉(zhuǎn)換成音樂的使用計(jì)算機(jī)自動(dòng)創(chuàng)作歌曲的方法。
本發(fā)明是通過以下技術(shù)方案實(shí)現(xiàn)的:一種使用計(jì)算機(jī)自動(dòng)創(chuàng)作歌曲的方法,具體包括計(jì)算機(jī)作曲、計(jì)算機(jī)編曲和計(jì)算機(jī)演唱三個(gè)步驟,本發(fā)明通過計(jì)算機(jī)編曲軟件實(shí)現(xiàn);其中計(jì)算機(jī)作曲主要以音樂理論中的和弦走向理論為基本框架,并結(jié)合機(jī)器學(xué)習(xí)算法進(jìn)行參數(shù)計(jì)算;計(jì)算機(jī)編曲是根據(jù)主旋律的MIDI文件與指定的和弦進(jìn)行方式,根據(jù)常用音色的樂器進(jìn)行音軌添加;計(jì)算機(jī)演唱即音樂合成,就是將主旋律與伴奏合成最終歌曲的步驟;
使用計(jì)算機(jī)自動(dòng)創(chuàng)作歌曲的具體流程是:1)計(jì)算機(jī)作曲:首先用戶輸入任意行歌詞,每行歌詞間以分隔符分隔,算法運(yùn)行作曲模塊生成旋律MIDI樂譜文件;2)計(jì)算機(jī)編曲:運(yùn)行編曲模塊為對(duì)應(yīng)的MIDI樂譜文件添加伴奏音軌,并將伴奏文件使用音源庫渲染成為高品質(zhì)的WAVE音頻伴奏文件;然后通過音樂合成算法將MIDI樂譜文件與指定人聲音源文件進(jìn)行合成,生成主旋律;3)計(jì)算機(jī)演唱:最后將主旋律與WAVE音頻伴奏文件進(jìn)行合成,最終合成為一種完整的歌曲WAVE音頻文件。
在計(jì)算機(jī)作曲步驟中:首先需要進(jìn)行算法數(shù)據(jù)的準(zhǔn)備(在之后的運(yùn)行中不需要重復(fù)):收集各類調(diào)式的流行歌曲若干首,并分析每首歌曲的和弦進(jìn)行方式(例如1645),找出旋律中的和弦音組合(比如C大調(diào)中的135),并使用人工的方式對(duì)每首歌進(jìn)行好聽程度打分;使用監(jiān)督學(xué)習(xí)算法,以每首歌的和弦音組合情況為輸入,以每首歌的好聽程度為監(jiān)督信號(hào),最終計(jì)算出每種調(diào)式中的多種最佳和弦音組合序列;以上步驟為算法的前期數(shù)據(jù)準(zhǔn)備,隨著訓(xùn)練歌曲的數(shù)量增加算法的作曲優(yōu)美程度不斷提升。
計(jì)算機(jī)作曲算法的具體計(jì)算邏輯為:用戶輸入歌詞,算法分析歌詞句數(shù)與每句字?jǐn)?shù),并將其作為輸入傳入作曲算法,作曲算法根據(jù)每句不同字?jǐn)?shù)隨機(jī)進(jìn)行最佳和弦音組合匹配,再在每個(gè)和弦音周圍加入該和弦音臨近的隨機(jī)音符,從而為每句歌詞生成獨(dú)有的旋律,將所有樂句的旋律組合在一起,并使用MIDI格式表示,即產(chǎn)出了該曲主旋律的MIDI文件。
計(jì)算機(jī)編曲根據(jù)編曲四大件鋼琴、吉他、貝司和鼓的不同音色的特點(diǎn),采用不同的添加方式,例如吉他與貝司,需要針對(duì)和弦進(jìn)行方式進(jìn)行和弦編配,鼓需要根據(jù)MIDI文件的節(jié)奏進(jìn)行自動(dòng)和弦編配。以吉他音軌添加為例進(jìn)行說明,具體操作方法為:通過將MIDI文件解析成樂譜格式,獲得主旋律的節(jié)奏與音高信息,分析主旋律每個(gè)小節(jié)所對(duì)應(yīng)的和弦走向,然后以鋼琴、吉他、貝司或鼓為音色在每小節(jié)每一拍對(duì)應(yīng)的位置添加和聲音節(jié)(例如domiso)。全部添加完成后即得到了一軌鋼琴、吉他、貝司或鼓的伴奏。根據(jù)風(fēng)格選擇不同,算法為不同風(fēng)格的歌曲搭配不同的配器組合,例如流行風(fēng)格,添加大鋼琴、電吉他、大貝司、鼓等音軌,根據(jù)以上方法為每個(gè)音軌添加音符,完成后即得到完整的伴奏音符信息,將此音符信息以MIDI格式導(dǎo)出,最終通過軟音源渲染為高質(zhì)量音頻文件,即保存為WAVE格式文件。
計(jì)算機(jī)演唱即音樂合成的具體流程為:首先取得作曲模塊的輸出MIDI文件,解析文件得到指定樂譜音符信息;然后程序讀取預(yù)先錄制完成的人聲音源文件,按照樂譜,利用SMS(Spectral Modelling Synthesis)算法等進(jìn)行音頻構(gòu)造,構(gòu)造出按照樂譜指定的音高與時(shí)間的音樂;最終將音樂作為歌曲的主旋律與伴奏WAVE文件進(jìn)行混音操作,從而得到最終的多音軌歌曲文件。
本發(fā)明的有益效果是:本發(fā)明結(jié)合現(xiàn)有技術(shù)中相關(guān)文獻(xiàn)的原理,開發(fā)出一種電子樂譜MIDI形式的旋律與伴奏音軌接口,能夠創(chuàng)作出更加便于合成指定旋律與伴奏的音樂。本發(fā)明中使用計(jì)算機(jī)自動(dòng)創(chuàng)作歌曲的方法是計(jì)算機(jī)音樂領(lǐng)域中的一個(gè)極大創(chuàng)新,由于有了本發(fā)明的歌曲創(chuàng)作方法,標(biāo)志著普通大眾也可以參與到音樂創(chuàng)作中來了,通過計(jì)算機(jī)自動(dòng)創(chuàng)作歌曲,普通人可以在幾秒鐘內(nèi)把自己的文字,轉(zhuǎn)換成具有旋律、具有訂制伴奏并能夠被唱出來的歌曲,真正實(shí)現(xiàn)了幾秒鐘把文字轉(zhuǎn)換成音樂。
本發(fā)明還可以按照自身的感受調(diào)整各種參數(shù)來創(chuàng)造出不同風(fēng)格的音樂,本發(fā)明算法的隨機(jī)性保證了基本不可能創(chuàng)造出兩首完全相同的音樂,每一首歌曲的生成過程都是獨(dú)一無二的。由于人民大眾的數(shù)量千萬倍于專業(yè)音樂人,所以使用本發(fā)明的方法便可以創(chuàng)造出不可想象數(shù)量的歌曲,我們甚至藝術(shù)其實(shí)是一種大量隨機(jī)中的規(guī)律發(fā)現(xiàn)過程,因此使用本發(fā)明的歌曲創(chuàng)造方法,從大量的音樂作品中極有可能發(fā)掘出新的音樂藝術(shù)形態(tài)。
附圖說明
圖1是本發(fā)明使用計(jì)算機(jī)自動(dòng)創(chuàng)作歌曲的方法中軟件編程的原理框圖。
具體實(shí)施方式
以下結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步說明。
一種使用計(jì)算機(jī)自動(dòng)創(chuàng)作歌曲的方法,具體包括計(jì)算機(jī)作曲、計(jì)算機(jī)編曲和計(jì)算機(jī)演唱三個(gè)步驟,其通過計(jì)算機(jī)編曲軟件實(shí)現(xiàn);計(jì)算機(jī)作曲主要以音樂理論中的和弦走向理論為基本框架,并結(jié)合機(jī)器學(xué)習(xí)算法進(jìn)行參數(shù)計(jì)算;計(jì)算機(jī)編曲是根據(jù)主旋律的MIDI文件與指定的和弦進(jìn)行方式,根據(jù)常用音色的樂器進(jìn)行音軌添加;計(jì)算機(jī)演唱即音樂合成,就是將主旋律與伴奏合成最終歌曲的步驟;
使用計(jì)算機(jī)自動(dòng)創(chuàng)作歌曲的具體流程是:1)計(jì)算機(jī)作曲:首先用戶輸入任意行歌詞,每行歌詞間以分隔符分隔,算法運(yùn)行作曲模塊生成旋律MIDI樂譜文件;2)計(jì)算機(jī)編曲:運(yùn)行編曲模塊為對(duì)應(yīng)的MIDI樂譜文件添加伴奏音軌,并將伴奏文件使用音源庫渲染成為高品質(zhì)的WAVE音頻伴奏文件;然后通過音樂合成算法將MIDI樂譜文件與指定人聲音源文件進(jìn)行合成,生成主旋律;3)計(jì)算機(jī)演唱:最后將主旋律與WAVE音頻伴奏文件進(jìn)行合成,最終合成為一種完整的歌曲WAVE音頻文件。
在計(jì)算機(jī)作曲步驟中:首先需要進(jìn)行算法數(shù)據(jù)的準(zhǔn)備(在之后的運(yùn)行中不需要重復(fù)):收集各類調(diào)式的流行歌曲若干首,并分析每首歌曲的和弦進(jìn)行方式(例如1645),找出旋律中的和弦音組合(比如C大調(diào)中的135),并使用人工的方式對(duì)每首歌進(jìn)行好聽程度打分;使用監(jiān)督學(xué)習(xí)算法,以每首歌的和弦音組合情況為輸入,以每首歌的好聽程度為監(jiān)督信號(hào),最終計(jì)算出每種調(diào)式中的多種最佳和弦音組合序列;以上步驟為算法的前期數(shù)據(jù)準(zhǔn)備,隨著訓(xùn)練歌曲的數(shù)量增加算法的作曲優(yōu)美程度不斷提升。
計(jì)算機(jī)作曲算法的具體計(jì)算邏輯為:用戶輸入歌詞,算法分析歌詞句數(shù)與每句字?jǐn)?shù),并將其作為輸入傳入作曲算法,作曲算法根據(jù)每句不同字?jǐn)?shù)隨機(jī)進(jìn)行最佳和弦音組合匹配,再在每個(gè)和弦音周圍加入該和弦音臨近的隨機(jī)音符,從而為每句歌詞生成獨(dú)有的旋律,將所有樂句的旋律組合在一起,并使用MIDI格式表示,即產(chǎn)出了該曲主旋律的MIDI文件。
計(jì)算機(jī)編曲根據(jù)編曲四大件鋼琴、吉他、貝司和鼓的不同音色的特點(diǎn),采用不同的添加方式,例如吉他與貝司,需要針對(duì)和弦進(jìn)行方式進(jìn)行和弦編配,鼓需要根據(jù)MIDI文件的節(jié)奏進(jìn)行自動(dòng)和弦編配。以吉他音軌添加為例進(jìn)行說明,具體操作方法為:通過將MIDI文件解析成樂譜格式,獲得主旋律的節(jié)奏與音高信息,分析主旋律每個(gè)小節(jié)所對(duì)應(yīng)的和弦走向,然后以鋼琴、吉他、貝司或鼓為音色在每小節(jié)每一拍對(duì)應(yīng)的位置添加和聲音節(jié)(例如domiso)。全部添加完成后即得到了一軌鋼琴、吉他、貝司或鼓的伴奏。根據(jù)風(fēng)格選擇不同,算法為不同風(fēng)格的歌曲搭配不同的配器組合,例如流行風(fēng)格,添加大鋼琴、電吉他、大貝司、鼓等音軌,根據(jù)以上方法為每個(gè)音軌添加音符,完成后即得到完整的伴奏音符信息,將此音符信息以MIDI格式導(dǎo)出,最終通過軟音源渲染為高質(zhì)量音頻文件,即保存為WAVE格式文件。
計(jì)算機(jī)演唱即音樂合成的具體流程為:首先取得作曲模塊的輸出MIDI文件,解析文件得到指定樂譜音符信息;然后程序讀取預(yù)先錄制完成的人聲音源文件,按照樂譜,利用SMS(Spectral Modelling Synthesis)等算法進(jìn)行音頻構(gòu)造,構(gòu)造出按照樂譜指定的音高與時(shí)間的音樂;最終將音樂作為歌曲的主旋律與伴奏WAVE文件進(jìn)行混音操作,從而得到最終的多音軌歌曲文件。
實(shí)施例:如圖1所示,本發(fā)明使用計(jì)算機(jī)自動(dòng)創(chuàng)作歌曲的方法中一首歌曲的詳細(xì)創(chuàng)作過程如下:1)作曲引擎模塊:通過使用人工神經(jīng)網(wǎng)絡(luò)算法與相關(guān)音樂理論進(jìn)行模擬作曲,按照指定的和弦走向規(guī)律,計(jì)算出隨機(jī)的節(jié)奏與旋律音高組合,從而生成指定小節(jié)數(shù)的旋律;2)編曲引擎模塊:根據(jù)旋律的和弦走向,在規(guī)則內(nèi)隨機(jī)生成不同音色的伴奏音軌,如鋼琴、吉他、貝司、鼓等,并針對(duì)不同的樂器特性進(jìn)行加花處理;3)演唱引擎模塊:通過自然語言處理中的語音合成技術(shù),將音源文件按照指定曲譜進(jìn)行聲音合成,并輸出波形文件。
最后應(yīng)當(dāng)說明的是,以上內(nèi)容僅用以說明本發(fā)明的技術(shù)方案,而非對(duì)本發(fā)明保護(hù)范圍的限制,本領(lǐng)域的普通技術(shù)人員對(duì)本發(fā)明的技術(shù)方案進(jìn)行的簡單修改或者等同替換,均不脫離本發(fā)明技術(shù)方案的實(shí)質(zhì)和范圍。