文档章节

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

阿里云官方博客
 阿里云官方博客
发布于 2017/07/21 09:52
字数 1073
阅读 13
收藏 0
点赞 0
评论 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/

© 著作权归作者所有

共有 人打赏支持
阿里云官方博客
粉丝 114
博文 110
码字总数 142487
作品 0
杭州
程序员
机器学习PAI为你自动写歌词,妈妈再也不用担心我的freestyle了(提供数据、代码)

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

音染 ⋅ 2017/07/20 ⋅ 0

一张图读懂阿里巴巴一站式研发协同云——云效

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

阿里云云栖社区 ⋅ 01/31 ⋅ 0

ip2region 数据库文件更新至 2016/04/21 版本

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

狮子的魂 ⋅ 2016/04/26 ⋅ 2

ip2region-ip 数据库文件更新

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

Koma ⋅ 2016/04/11 ⋅ 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 ⋅ 5

linux 连接无线网

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

天才的实力 ⋅ 2014/07/20 ⋅ 0

Office Online 体验

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

peterceo ⋅ 2014/02/21 ⋅ 0

JFinal一行代码搞定增删改,要的就是快

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

小兵成长记 ⋅ 2016/11/08 ⋅ 16

如何用腾讯电脑管家备份微信聊天记录

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

ytkahcom ⋅ 2014/03/25 ⋅ 0

adb shell——Android虚拟机调试必须知道的命令

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

leaf志良 ⋅ 2013/07/21 ⋅ 1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Python模块/包/库安装(6种方法)

Python模块/包/库安装(6种方法) 冰颖机器人 2016-11-29 21:33:26 一、方法1: 单文件模块 直接把文件拷贝到 $python_dir/Lib 二、方法2: 多文件模块,带setup.py 下载模块包(压缩文件zip...

cswangyx ⋅ 26分钟前 ⋅ 0

零基础学习大数据人工智能,学习路线篇!系统规划大数据之路?

大数据处理技术怎么学习呢?首先我们要学习Python语言和Linux操作系统,这两个是学习大数据的基础,学习的顺序不分前后。 Python:Python 的排名从去年开始就借助人工智能持续上升,现在它已经...

董黎明 ⋅ 34分钟前 ⋅ 0

openJdk和sun jdk的区别

使用过LINUX的人都应该知道,在大多数LINUX发行版本里,内置或者通过软件源安装JDK的话,都是安装的OpenJDK, 那么到底什么是OpenJDK,它与SUN JDK有什么关系和区别呢? 历史上的原因是,Ope...

jason_kiss ⋅ 43分钟前 ⋅ 0

梳理

Redux 是 JavaScript 状态容器,提供可预测化的状态管理。 它是JS的状态容器,是一种解决问题的方式,所以即可以用于 react 也可以用于 vue。 需要理解其思想及实现方式。 应用中所有的 stat...

分秒 ⋅ 56分钟前 ⋅ 0

Java 后台判断是否为ajax请求

/** * 是否是Ajax请求 * @param request * @return */public static boolean isAjax(ServletRequest request){return "XMLHttpRequest".equalsIgnoreCase(((HttpServletReques......

JavaSon712 ⋅ 今天 ⋅ 0

Redis 单线程 为何却需要事务处理并发问题

Redis是单线程处理,也就是命令会顺序执行。那么为什么会存在并发问题呢? 个人理解是,虽然redis是单线程,但是可以同时有多个客户端访问,每个客户端会有 一个线程。客户端访问之间存在竞争...

码代码的小司机 ⋅ 今天 ⋅ 0

到底会改名吗?微软GVFS 改名之争

微软去年透露了 Git Virtual File System(GVFS)项目,GVFS 是 Git 版本控制系统的一个开源插件,允许 Git 处理 TB 规模的代码库,比如 270 GB 的 Windows 代码库。该项目公布之初就引发了争...

linux-tao ⋅ 今天 ⋅ 0

笔试题之Java基础部分【简】【二】

1.静态变量和实例变量的区别 在语法定义上的区别:静态变量前要加static关键字,而实例变量前则不加。在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变...

anlve ⋅ 今天 ⋅ 0

Lombok简单介绍及使用

官网 通过简单注解来精简代码达到消除冗长代码的目的 优点 提高编程效率 使代码更简洁 消除冗长代码 避免修改字段名字时忘记修改方法名 4.idea中安装lombnok pom.xml引入 <dependency> <grou...

to_ln ⋅ 今天 ⋅ 0

【转】JS浮点数运算Bug的解决办法

37.5*5.5=206.08 (JS算出来是这样的一个结果,我四舍五入取两位小数) 我先怀疑是四舍五入的问题,就直接用JS算了一个结果为:206.08499999999998 怎么会这样,两个只有一位小数的数字相乘,怎...

NickSoki ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部