機器學習PAI為你自動寫歌詞,媽媽再也不用擔心我的freestyle了(提供數據、代碼)

摘要: 最近互聯網上出現一個熱詞就是「freestyle」,源於一個比拼rap的綜藝節目。在節目中需要大量考驗選手的freestyle能力,freestyle指的是rapper即興的根據一段主題講一串rap。

背景

最近互聯網上出現一個熱詞就是「freestyle」,源於一個比拼rap的綜藝節目。在節目中需要大量考驗選手的freestyle能力,freestyle指的是rapper即興的根據一段主題講一串rap。freestyle除了考驗一個人rap的技巧,其實我覺得最難的是如何在短時間內在腦海中浮現出有韻律的歌詞。

本文會介紹如何自動生成歌詞,到底什麼工具有這樣的功效呢?答案是PAI。PAI平台是阿里雲人工智慧平台,在上面可以通過最簡單的拖拉拽的方式,完成對各種結構化以及非結構化數據的處理。因為有了PAI,這種自動生成歌詞的事情都不再成為難題。我現在不光可以瞬間生成萬首歌詞,我還可以同時融合周杰倫、王力宏、林俊傑、汪峰的歌詞風格在裡面,因為PAI利用深度學習能力可以快速的學習這些歌手的所有歌曲並且實現自己創作歌詞。不信?下面我就來show一下PAI的威力。

執行過程

  • 1. 首先進入PAI:https://data.aliyun.com/product/learn

開通機器學習以及機器學習內的GPU服務。

  • 2. 訓練數據說明

這裡我們的數據是一份txt文件,文件中包含了周杰倫、王力宏、林俊傑、汪峰的歌詞,一共有接近300首歌,歌詞都是去掉標題等干擾因素的(花了好幾個小時整理)。數據截圖:

  • 3. 實驗代碼說明

本實驗使用的是PAI內置的深度學習框架Tensorflow,使用的了seq2seq以及RNN網路進行歌詞語義的學習以及建模。使用train.py文件生成模型,使用predict.py文件進行預測。以下是部分網路結構搭建的截圖,大家可以在下方找到源代碼下載地址進行使用。(PS:實例代碼雖然可以運行,但是數據IO採用的是低效方式,高效方式可以參考此文(https://yq.aliyun.com/articles/126918)

  • 4. 數據上傳

將實驗數據和代碼文件打包上傳到OSS(之所以打包是本文案例使用的是原生PYTHON的數據IO方式,需要代碼和訓練數據組成同一個tar.gz文件)。OSS是PAI可讀的對象存儲工具,具體方式可以參考此視頻鏈接(https://help.aliyun.com/video_detail/54945.html)

  • 5. 搭建實驗

在PAI的畫布拖動OSS以及Tensorflow組件搭建如下實驗,兩個Tensorflow節點分別對應著訓練和預測節點,先訓練生成寫歌模型,然後預測節點獲取模型自動生成歌詞。

配置對應的執行代碼路徑和輸出路徑,跟上面的OSS路徑對應。下圖是負責預測的Tensorflow節點配置。

點擊運行,PAI就開始學習歌詞並且嘗試自己寫作啦。

寫歌結果

經過差不多20分鐘的學習,PAI已經掌握了幾位歌壇大神的歌詞技巧,下面就看看PAI寫出來的歌詞是怎樣的。(歌詞需要在log中查看,可以參考https://yq.aliyun.com/articles/72841)

歌詞來了,

看上去寫的歌還算通暢,沒有出現特別多語病。當然,想寫出更好的詞,需要對訓練模型的迭代次數、詞長等參數進行不斷調試,也可以多為PAI輸送更多的歌詞供訓練,因為300多的樣本還是略顯單薄。

以上就是通過PAI自動寫歌詞的教程,希望對各位喜歡音樂和嘗試做文本自動生成的同學有幫助,讓我們一起freestyle起來!!

下載地址

數據以及代碼已經打包,直接上傳PAI配置路徑即可使用:下載地址

更多技術乾貨敬請關注云棲社區知乎機構號:阿里云云棲社區 - 知乎

推薦閱讀:

驚爆 | 貓哥獨家連線阿里巴巴未來CEO!
Docker常見故障排查指南-基於阿里雲容器服務
【阿里雲大學免費課程】機器學習業務實踐之路! 快收藏起來周末學習!
阿里雙11看不見的精彩:創世界紀錄背後的人、故事和技術
承擔雙11萬億流量,阿里核心技術揭秘:12位大咖告訴你!

TAG:深度学习DeepLearning | 机器学习 | 阿里云 |