顶着鸭舌帽、戴着墨镜,挂着大金链子唱着自己写的rap,这对于从来没有玩过音乐,甚至五音不全的90后程序员芦阳来说,看上去是个非常遥远的梦。

不过最近,他真的在阿里电台和朋友录制了人生第一首rap,主题就是关于双11和人工智能。帮助他完成心愿的,是他自己设计的人工智能MusicGo。

这个能自己写rap的人工智能MusicGo,只要给一个关键词,就能随时随地出来一段儿押韵的FreeStyle。

一个五音不全的程序员要“唱”rap

在这个夏天之前,芦阳对rap的了解几乎为零,他对自己的定位甚至是五音不全,会迷上嘻哈,纯属一次跟风的巧合。

《中国有嘻哈》开播后,成为同事们闲聊的话题,平时对综艺节目关注很少的芦阳为了“能跟得上同事聊天”才去看节目,没想到竟然入了迷。“我的工作地点在北京,但是今年常常来杭州出差。因此有很长时间是在路上,于是我就利用出差路上和每天上下班路上的时间刷这个节目,结果越看越喜欢,反复看了好几遍。”芦阳说,在看节目的同时,也了解了flow、punchline,以及酷炫的双押、三押等很多专业词汇。

芦阳是《中国有嘻哈》的忠实粉丝,嘻哈这种另类的音乐形式,歌手肆意洒脱的态度,他们反复强调的keep real精神,都深深吸引着他

看得越多,芦阳身上程序员不安分的基因开始躁动,对rap进行数据分析的欲望就越来越强烈,“我尤其对押韵感兴趣。我在想,如果我把嘻哈歌手唱的所有押韵的词汇都拿下来,然后只要给一个关键词,就能来一段儿FreeStyle,是不是很酷炫。”

于是,他利用业余时间编写的一个名为MusicGo的人工智能,试图让MusicGo自己写rap:

他先把网上有“嘻哈”标签的歌单都找到,把歌单里的歌曲都调取出来后,再去掉重复的歌曲。然后依次对所歌单中歌曲页面进行“爬取”,得到全部详细歌曲清单。这样总共爬取了10000多首歌曲。接下来,根据歌曲清单,经过几个小时,通过调用歌词API得到10000多首歌词。

接下来,芦阳用算法将歌曲分词,例如“我爱北京天安门”就要分为“我爱”“北京”“天安门”,再把每一组拼音拆分开,例如“天安门”变为“Tian-an-men”。

“这样所有歌曲的词、词出现的次数(词频),以及词对应的拼音都有了。有了拼音之后就是要考虑韵脚了。”芦阳经过观察,发现可以用 “a-e-i-o-u” 作为字的分界,取当前以及后面的部分为韵脚。

于是,芦阳就借鉴《中国有嘻哈》中自己最喜欢的PG One的“炒面”FreeStyle,尝试搜了“炒饭”的韵脚,出现了一系列相关的词汇。“这些词都是和炒饭押韵的,我再用这些词尝试写rap,二十分钟就写了一段双押19次的rap了。”

这篇原本只在技术论坛的文章很快被运营推上了首屏,当天就得到200多个点赞和1000多条浏览。

“喂”了智能文章才“吐”出科技感歌词

不过,让MusicGo利用算法写出与设定主题押韵的歌词,然后自己再做替换,只能算是半自动,这还不是芦阳的终极目标。

“今年双11的主题是人工智能,更多的是人与机器的合作。我想了想,觉得挺酷的。酷就是第一生产力嘛,我就想让人工智能写一首关于双11的rap。”芦阳说。

芦阳加入菜鸟也才仅仅四个月,这是他第一次参加双11备战

于是,他又重新改进了MusicGo。改进后的MusicGo独特之处在于,它并不是依靠开发者手动输入千百种音程关系与节奏型来进行创作,其核心技能在于“机器学习”。

只需将几千上万首完整的音乐作品输入这个系统,人工智能MusicGo就会自行“学习”各种rap的规律和方式(数据),从而建立一个可以创作的“神经元网络”。

当芦阳通过电脑键盘输入关键词之后,它会在神经元网络中寻找并识别类似的歌词、旋律和节奏。

机器学习的本质在于,它是从数据的角度理解“节奏“和“保持调性一致”等音乐概念,而非从声音的角度去理解它。

“‘学习’了一句歌词后,它能‘再造’出另一句歌词,这样一来,我只要再调整一些韵脚,整首歌的歌词就相对完整了。“芦阳说。

MusicGo的采用了机器学习技术,也就是说,人给机器“喂养”什么内容,机器就自动学习什么内容。要产出一个双11和人工智能的歌,就要“喂养”很多科技感的内容,于是芦阳从网上搜索了几百篇与双11、智能、阿里云、菜鸟等相关的文章,喂给MusicGo。果然有成效,MusicGo“吐”出来的歌词内容是富有科技智能感的。

于是,他把想要的节奏、模式先设定好,再输入“双11”的主题,按照先前同样的套路,一段歌词就这样“秒级”生成了。芦阳又用了20几分钟的时间修改了韵脚,完成了这首《天猫双11有嘻哈》的RAP,芦阳把歌词放到内网上,立刻有志同道合的同事前来倾情合唱。

《天猫双11有嘻哈》

芦阳说,虽然MusicGo现在还不能完全智能化,但是人工智能能做的事情已经越来越多。事实上,包含语音识别、图像识别、人脸识别、语音合成、自然语言理解、机器学习在内的阿里云人工智能技术已经应用到交通预测、智能客服、法庭速记、气象预测等领域。

“现在可以写歌词,未来说不定可以自己写个‘女票’。”这个大男孩最后还不忘幽默一把。

阅读原文http://click.aliyun.com/m/34746/

不安分的程序员!阿里90后员工做了个随时FreeStyle的人工智能相关推荐

  1. 华为裁员34岁以上程序员?90后的中年危机,即将到来!

    华为裁员34岁以上程序员?90后的中年危机,即将到来! 原创: 小七 AI商学院 前天 新的职场潜规则! 去年,一条职场潜规则走红网络:不要大声责骂年轻人,他们会立刻辞职的,但是你可以往死里骂那些中年 ...

  2. 华为裁员34岁以上程序员,90后的中年危机,即将在职场引爆

    去年,一条职场潜规则走红网络:不要大声责骂年轻人,他们会立刻辞职的,但是你可以往死里骂那些中年人,尤其是有车有房有娃的那些. 真实感受到程序员的中年危机 在中国,除了从 BAT 出来的牛人,一般经理层 ...

  3. 跟着SY速学Ubuntu系列一:作为程序员,安装Ubuntu后我做的事情。

    sudo apt-get update && sudo apt-get upgrade sudo apt-get install vim sudo apt-get install ax ...

  4. 一线程序员年薪90万,不敢结婚不敢要孩子,被父母怼:堂弟月薪4千二胎都有了,家里最挫的就是我!...

    请点击上面 一键关注! 一线腾讯程序员年薪90万,却依然在一线承受着巨大压力,没结婚不生孩子.父母着急了,对比别人家的孩子,可惜这别人家的孩子居然是月薪只有3-4千的堂哥堂弟,只因为敢生二胎,被拿来当 ...

  5. 程序员入职后千万不要沾沾自喜,不注意这一点,将来很可能后悔!

    程序员入职后千万不要沾沾自喜,不注意这一点,将来很可能后悔! 没错!那就是职业规划,作为一个技术领域的程序员,如果你每天只是为了完成基本的工作的话,那么你肯定会在不久的将来被淘汰的,所以你如果不重视这 ...

  6. 人生理解---2、看《程序员年龄增大后的职业出路是什么》有感

    人生理解---2.看<程序员年龄增大后的职业出路是什么>有感 一.总结 一句话总结: 身体垮掉,才是真的死路一条. 1.身体垮掉,才是真的死路一条.? 每天需要弄一点时间出来锻炼,我太久没 ...

  7. python送程序员收入_程序员学Python后惊叹,这么丰厚的收入是Java给不了的!

    原标题:程序员学Python后惊叹,这么丰厚的收入是Java给不了的! 你都用 Python 来做什么?? 发现很多人都在学习 Python ,但是没有明确的说明可以做什么,主流的功能是什么? 想知道 ...

  8. 成都Java程序员培训毕业后什么水平

    成都Java程序员培训毕业后什么水平?我们参加Java培训的目的就是能够完成学业后找到一份不错的相关工作.那么通过学习之后,我们是一个什么程度了呢?想必这也是同学们比较关心的问题了. 大部分Java培 ...

  9. 程序员穿越 90年代

    原文链接 程序员穿越 90年代 穿越回90年代,这个计算机和互联网刚刚发展的阶段,凭借你的所学所得你会干些什么来改变命运(逆天改命???)或者改变时代改变世界呢? 第一步.世界杯,买彩票去吧 90年西 ...

最新文章

  1. FastJson 简单使用
  2. 想实现高可用?先搞定负载均衡原理
  3. Spring Social入门
  4. nginx正确服务react-router应用
  5. 技术人员转行产品经理读这些书就够了
  6. 3. mysql的注解驱动的三种方式_上手spring boot项目(三)之spring boot整合mybatis进行增删改查的三种方式。...
  7. 英文拼写及语法检查软件
  8. python爬取拼多多数据 verifyauthtoken_拼多多TOKEN授权
  9. 【转】数据库一对一、一对多、多对多关系
  10. vscode更改背景颜色
  11. 关于电商库存扣减的解决方案
  12. Light Emitting Hindenburg(bitset运用)
  13. 描述计算机内存的参数,电脑组装内存知识,你不能不知的内存参数介绍
  14. 马毅:低维模型与深度模型的殊途同归(神经网络、压缩感知和低秩分解与补全)
  15. 五子棋棋谱16*16c语言,五子棋开局棋谱大全
  16. MATLAB在数学建模中的应用
  17. 鹰潭高通量测序建设细节概述
  18. java spring源码_剑指Java自研框架,决胜Spring源码
  19. CSS实现内容强制不换行、自动换行、强制换行
  20. excel中的宏如何用java表示_一文看懂RPA与Excel宏的区别

热门文章

  1. i++和++i的区别
  2. hgame2023 week2 writeup
  3. 20155214曾士轩 2016-2017-2 《Java程序设计》第1周学习总结
  4. yqsc是什么意思_qsc的含义,qsc是什么的缩写,qsc的词语,qsc代表的意思
  5. 计算机应用基础 周凌,计算机基础毕业论文范文
  6. KEGG注释(生信学习)
  7. 跟着沐神学习深度学习
  8. Java运算符——————03
  9. Matlab似然函数
  10. IHERB上待产包准备指南-妈妈篇