文档章节

机器学习PAI,妈妈再也不用担心我的freestyle了

阿里云云栖社区
 阿里云云栖社区
发布于 2017/07/21 10:19
字数 1073
阅读 10
收藏 1
点赞 1
评论 0

  背景

  最近互联网上出现一个热词就是“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配置路径即可使用:http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/

   文章链接:http://click.aliyun.com/m/26320/

© 著作权归作者所有

共有 人打赏支持
阿里云云栖社区
粉丝 30
博文 576
码字总数 1248216
作品 0
朝阳
机器学习PAI为你自动写歌词,妈妈再也不用担心我的freestyle了(提供数据、代码)

摘要: 背景 最近互联网上出现一个热词就是“freestyle”,源于一个比拼rap的综艺节目。在节目中需要大量考验选手的freestyle能力,freestyle指的是rapper即兴的根据一段主题讲一串rap。 背景...

音染
2017/07/20
156
0
一张图读懂阿里巴巴一站式研发协同云——云效

摘要: 程序员、测试员、项目经理,你们有freestyle吗?阿里云云效,一站式企业协同研发云,“需求->开发->测试->发布->运维->运营”端到端的协同服务和研发工具支撑,助力企业快速创新迭代和...

阿里云云栖社区
01/31
0
0
ip2region 数据库文件更新至 2016/04/21 版本

ip2region是一个准确率达99.9%的ip到地名的映射库,0.0x毫秒级查询,数据库文件大小只有3.5M,提供了java,php,c,python查询绑定。妈妈再也不用担心我的ip地址定位! 更新内容: 数据库文件...

狮子的魂
2016/04/26
807
2
ip2region-ip 数据库文件更新

ip2region是一个准确率达99.9%的ip到地名的映射库,0.0x毫秒级查询,数据库文件大小只有3.5M,提供了java,php,c,python查询绑定。妈妈再也不用担心我的ip地址定位! 更新内容: 数据库文件...

Koma
2016/04/11
3.1K
18
ip2region 1.2.1 发布,新增 Python 内存查询

ip2region 1.2.1 发布了,新增 Python 内存查询+数据文件更新。 准确率99.9%的ip地址定位库,0.0x毫秒级查询,数据库文件大小只有1.5M,提供了java, php, c, python, nodejs查询绑定和Binar...

狮子的魂
2016/07/14
2K
5
linux 连接无线网

不知道怎么回事,于是我的电脑就不能连接无线来,启用无线无连链接也仍旧没反映,通过不断的查询资料,ifconfig 和iwconfig 都能获取到一些无线网卡的信息和信号。通过iwconfig,我察觉到我的...

天才的实力
2014/07/20
0
0
Office Online 体验

Office Online 上线!替代之前的 Office Web App!无需安装 Office 即可通过浏览器使用 Word、OneNote、Excel、PowerPoint!! 输入https://office.com/start/default.aspx地址,使用live ID...

peterceo
06/26
0
0
JFinal一行代码搞定增删改,要的就是快

一、拓展篇 首先需要重写getModel方法,但是这有个问题,重写之后的方法和getModel的参数有点冲突,所以选择不重写,另外写个方法占且叫getBaseModel吧,getBaseModel的实现如下 这里面有两个...

小兵成长记
2016/11/08
1K
16
如何用腾讯电脑管家备份微信聊天记录

  微信发布了5.2.1版本更新,其中一个很人性化的功能是支持腾讯电脑管家备份微信聊天记录到电脑上,可将语音、文字、图片、视频等聊天记录快速加密备份到本地电脑中,相比微信自带的7天云备...

ytkahcom
2014/03/25
0
0
adb shell——Android虚拟机调试必须知道的命令

之前开发Android的时候喜欢用自己的手机来调试,特别是数据库!!!因为是自己的手机嘛,可以安装一些类似数据库编辑器的工具,调试起来非常方便,可惜自己写的程序有经常有bug,就这样一个应...

leaf志良
2013/07/21
0
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

回想过往,分析当下,着眼未来

好久没有真正的在纸质笔记本上写过东西了,感觉都快不会写字了,笔画都不知道怎么写了。接下来就说说咱们的正事。 2018年7月22日,我做了一个决定,那就是去参加安全培训(可能是我职业生涯中...

yeahlife
43分钟前
4
0
关于工作中的人际交往

关于工作中的人际交往 Intro 写了篇发泄情绪的博客,但不会发布出来。 大概就是,要么忍,要么滚。 以及一些不那么符合社会主义核心价值观,不满于大资本家与小资本家剥削的废话。

uniqptr
49分钟前
0
0
springMVC的流程

1.用户发送请求至前端控制器DispatcherServlet 2.DispatcherServlet收到请求调用HandlerMapping处理器映射器。 3.处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(...

JavaSon712
今天
0
0
大数据教程(3.2):Linux系统软件安装之自动化脚本

博主前面文章有介绍过软件的安装,可以帮助IT人员顺利的完成功能软件安装;但是,对于我们运维人员或者需要管理软件安装的项目经理来说,有些应用一次行需要搭建很多台相同的软件环境(如tom...

em_aaron
今天
0
1
Spring Boot 2.0.3 JDBC整合Oracle 12

整合步骤 1. Oracle驱动引入 Oracle驱动一般不能通过maven仓库直接下载得到,需自行下载并导入到项目的lib目录下,建议通过如下pom依赖引入下载的Oracle驱动 <!-- Oracle 驱动 -->...

OSC_fly
今天
0
0
java 8 并行流 - 1

下面创建一个并行流,与顺序流 //顺序流Stream.iterate(0L, i -> i + 1) .limit(Integer.MAX_VALUE) .reduce(0L, Long::sum);//并行流Stream.iterate(0L, i -> i......

Canaan_
今天
0
0
数据结构与算法5

二分法采用向下取整的方法 使用有序数组的好处是查找的速度比无序数组快的多,不好的方面是因为要将所有靠后的数据移开,所以速度较慢,有序数组和无序数组的删除操作都很慢。 有序数组在查找...

沉迷于编程的小菜菜
昨天
1
1
SpringBoot | 第十一章:Redis的集成和简单使用

前言 上几节讲了利用Mybatis-Plus这个第三方的ORM框架进行数据库访问,在实际工作中,在存储一些非结构化或者缓存一些临时数据及热点数据时,一般上都会用上mongodb和redis进行这方面的需求。...

oKong
昨天
5
0
对基于深度神经网络的Auto Encoder用于异常检测的一些思考

一、前言 现实中,大部分数据都是无标签的,人和动物多数情况下都是通过无监督学习获取概念,故而无监督学习拥有广阔的业务场景。举几个场景:网络流量是正常流量还是攻击流量、视频中的人的...

冷血狂魔
昨天
0
0
并发设计之A系统调用B系统

A-->B A在发送请求之前,用乐观锁,减少对B的重复调用,这样一定程度上是幂等性。 比如A系统支付功能,要调用B系统进行支付操作,但是前端对"支付"按钮不进行控制,即用户会不断多次点击支付...

汉斯-冯-拉特
昨天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部