V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
yufengzi
V2EX  ›  分享创造

业余时间开发了一套人工智能作词程序,可以写饶舌歌。。。V 友们看看

  •  1
     
  •   yufengzi · 2017-11-09 17:58:38 +08:00 · 9125 次点击
    这是一个创建于 2574 天前的主题,其中的信息可能已经有所发展或是发生改变。

    当然不是我哈哈 阿里一个 90 后工程师,芦阳,虽然长得不帅,但是很牛。。。

    [开发了一套人工智能作词程序——名字叫做 MusicGo,这个程序经过芦阳的“喂养”和设定,可以自己写饶舌歌曲。]

    是为双 11 写的歌,先放下成果大家感受下,不知道怎么放视频,就放个视频链接吧: http://www.miaopai.com/show/eqedj5IHparuJmcdTC4VdLdn3xSX8iD5Tym3Xw__.htm

    !!!!!!!!!太牛了!!!!!!!!!!一定要看啊!!!!!!!

    这个程序能分析 Hip-hop 的歌词,将歌词进行分词以及拼音解析,从而进一步获取每个词的韵脚,形成庞大的分词词库,扔进去一个词就能出来很多押韵的相关词汇。

    用他的话说: 把 AI 写歌儿这个事儿抽象起来看,其实是有一个模型,或者更通俗一点讲,是有一个函数。就像 Y=WX+B,给一个 X,就可以产出一个 Y。所以,问题的关键是我如何抽象出这个函数,并使其尽可能的精准。

    深度学习可以做到的是抽象模型。举例,我给出一段序列 A 作为 X,给出一段序列 B 作为 Y,它会通过不断的有监督学习从而获得函数 Y=WX+B。接着,我又给出一段序列 C 作为 X,给出一段序列 D 作为 Y,它通过调整函数的参数尽力去满足 A->B && C->D。当学习的量达到一定阶段的时候,模型也就基本可用了。

    最终想要的效果是,一个比较合理的模型。这个模型可以做到,给一个序列 X,它可以去生成序列 Y1,同时生成隐状态 H1。接着,用 Y1 以及 H1 作为输入,继续生成 Y2 和 H2,以此类推。最终达到所定义序列长度标准。

    附上他的步骤:

    1.收集歌词

    用 Python 爬取了 XX 音乐上的 Hip-hop 歌单,分析 rapper 如何押韵,收集到了几万首嘻哈歌词。

    2.数据预处理

    原始的歌词因为都是网友们上传上去的,所以格式并不完全统一,而且还会有一些非主流符号。因此,需要把所有歌词都进行同样的预处理,过滤了标点符号、特殊字符,写入到文件中,目的是使剩下的文本足够的整洁。

    3.训练模型

    首先是建立 LSTM 模型。

    根据传入的引状态 initial_state 与序列 inputs_split,执行 rnn 的 decoder 获得输出 outputs_split。

    把输出用 softmax 层处理,得到 logits,与原本要学习的文本训练 targets,计算总损失函数值 total_loss。

    循环去学习 feed 的文本,不断调整模型,降低损失函数值。

    生成模型过程:

    将足够满足目标的结果模型保存下来,后续就可以用该模型去生成序列了。

    4.产出歌词

    用上述产生的模型生成嘻哈歌曲,结果不太理想,给人的感觉是有点儿乱。因为嘻哈歌曲本身写的东西都比较杂,并且由于时间原因,我也没训练模型太久,损失函数值不足够低,导致最后生成的歌曲,更杂了。

    5.调整思路

    同时,还有个问题:嘻哈有了,“双 11 ”和“智能”呢?就是让模型学一辈子嘻哈,它也写不出双 11 和人工智能的东西,因为市面上并没有同类型歌曲。因此,我决定回到原点,改变想法,目标导向。

    用“人工智能”、“双 11 ”、“阿里云”、“阿里小蜜”、“菜鸟机器人”等关键词去爬科技类文章来 feed 模型,模型学会产出双十一智能等相关的句子。同时,用嘻哈的句式长度去约束它,产出嘻哈歌曲。最后挑一些句子,加一点“韵脚”,就作为词了。

    6.人工修正智能

    当然,用程序跑出的词,和人工写成的作品仍有些偏差。因此,对机器自动生成的歌曲句式进行调整,使其更通顺(手动捂脸)。

    附上最终版歌词: 天猫双 11 有嘻哈 (歌词节选)

    又来到一年 双 11 让我买买买 花光所有力气 又来到这一年双 11 让我把指挥权交给智能机器

    黑科技改变生活 打破包围我们地域的封锁 智能的技术连接你我 点亮双 11 夜里万家灯火

    Yeah 太多无法计算的价值 成千上万订单在指尖飞驰 Yeah 太多无法计算的价值 阿里云让所有订单在云端飞驰

    阿里小蜜 会语音文字图像识别 学习能力 全部一整年都在线 人海战术 全被科技改变 好用又百变 用户舍不得说再见

    还有机器人总动员在菜鸟仓库上演 累计足够智能 它们开始掌握主动权 拣选打包 顺利通关 从杭州到东莞 从上海到中原

    嗯嗯,我觉得还是很厉害的。。。 感觉 AI 代替人类不远了额。。。

    17 条回复    2017-11-13 23:39:08 +08:00
    PGvYIql
        1
    PGvYIql  
       2017-11-09 18:02:06 +08:00
    感觉我要失业。。。。
    PGvYIql
        2
    PGvYIql  
       2017-11-09 18:03:42 +08:00 via iPhone   ❤️ 1
    工程师界最牛逼的作词家………
    PeggyB
        3
    PeggyB  
       2017-11-09 18:06:22 +08:00 via iPhone
    哟哟切克闹
    其实我也会唱
    ballshapesdsd
        4
    ballshapesdsd  
       2017-11-09 18:08:01 +08:00
    这是机器生成的?感觉很有逻辑嘛
    w2GvCF
        5
    w2GvCF  
       2017-11-09 18:13:08 +08:00
    这样的程序员肯定没有女朋友
    不然怎么会写双 11
    cctvsmg
        6
    cctvsmg  
       2017-11-09 18:19:02 +08:00
    对子反党完了,又来歌词了
    19zero
        7
    19zero  
       2017-11-09 18:19:44 +08:00
    @w2GvCF 这样的程序员可以自己写个女朋友啊!
    graetdk
        8
    graetdk  
       2017-11-09 18:32:12 +08:00
    「最后挑一些句子」「对机器自动生成的歌曲句式进行调整,使其更通顺」这就不是很厉害了
    ichanne
        9
    ichanne  
       2017-11-09 19:24:51 +08:00   ❤️ 1
    听了一下,没有『劲』,感觉没吃中饭在唱歌
    Keyblade
        10
    Keyblade  
       2017-11-09 22:00:22 +08:00
    “虽然长得不帅”
    这种话只能自己说自己吧?
    davy1995
        11
    davy1995  
       2017-11-09 22:26:12 +08:00 via Android
    所以韵脚还是自己挑的句子吗
    90safe
        12
    90safe  
       2017-11-10 08:45:57 +08:00
    跟隔壁的对联有点相似?
    gao117348222
        13
    gao117348222  
       2017-11-10 10:11:52 +08:00
    没有试用链接,这是炫耀来着的?
    sobigfish
        14
    sobigfish  
       2017-11-10 11:54:27 +08:00
    @gao117348222 #13 炫耀都算不上,因为作者不是他
    wac81
        15
    wac81  
       2017-11-10 16:56:42 +08:00
    前面说了这么多,后面还是人工去修正,我在 2015 年做的诗词生成,已经不需要人修正,生成出来的就押韵
    sensui7
        16
    sensui7  
       2017-11-10 21:23:08 +08:00
    对联 -> 歌词

    什么时候有工口小说
    goodniuniu
        17
    goodniuniu  
       2017-11-13 23:39:08 +08:00
    逻辑性很强的说。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4143 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 05:19 · PVG 13:19 · LAX 21:19 · JFK 00:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.