0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

用AI自動(dòng)生成嘻哈歌詞的隊(duì)伍獲得了“最佳DEMO獎(jiǎng)”

電子工程師 ? 來(lái)源:未知 ? 作者:李倩 ? 2018-08-28 09:14 ? 次閱讀

8月23日,“2018年全球高校學(xué)生DeeCamp AI訓(xùn)練營(yíng)”在北大舉行閉幕式,經(jīng)過(guò)層層評(píng)比,來(lái)自全球高校的300學(xué)生組成的28支隊(duì)伍選出了8支優(yōu)勝隊(duì)伍。其中,一只用AI自動(dòng)生成嘻哈歌詞的隊(duì)伍獲得了“最佳DEMO獎(jiǎng)”。

AI寫嘻哈歌詞的水平如何?能達(dá)到以假亂真的地步嗎?不看廣告看療效,我們先來(lái)猜猜下面的歌詞哪些是AI寫的:

不是樂(lè)理專修 做點(diǎn)兒曲式研究 我們的力量來(lái)自宇宙 自己的節(jié)奏不是樂(lè)理專修 所有聽(tīng)的觀眾 打破他們傳統(tǒng) 進(jìn)到環(huán)球 繼續(xù)讓你感受

再來(lái)一個(gè):

自己就帶上了有色眼鏡 金錢摧毀多少事情 瓦解你的中樞神經(jīng)自己就帶上了有色眼鏡 我只想把世界分的更清 卻發(fā)現(xiàn)自己卻模糊了心

正確答案是:第一行都是模型生成的,第二行是原作。可以看出,AI的效果還是不錯(cuò)的,至少挺押韻的。

那么,這個(gè)有嘻哈精神的團(tuán)隊(duì)到底是怎樣搭建這個(gè) AI 模型的?

首先我們需要定義這個(gè)問(wèn)題,也就是根據(jù)一句歌詞迭代生成一段嘻哈歌詞。另外一個(gè)是押韻,這是嘻哈歌詞一大特點(diǎn)。

清楚了問(wèn)題,我們?nèi)フ{(diào)研一下已經(jīng)有的文本聲稱方案,最終把它的優(yōu)點(diǎn)和缺點(diǎn)列出來(lái),然后我們選擇了SequenceGAN作為基礎(chǔ)模型,并且在這個(gè)之上提出我們的模型——SequenceGAN。

SequenceGAN 有兩個(gè)組件,生成器、判讀器,讓生成器生成足以逼真的歌詞。

我們?cè)谶@個(gè)基礎(chǔ)之上,有一個(gè)嘻哈生成網(wǎng)絡(luò)。第一點(diǎn)是在這個(gè)之前我們?cè)黾恿艘粋€(gè)編碼網(wǎng)絡(luò),將然后生成一些跟主題相關(guān)的歌詞,第二點(diǎn)是把目標(biāo)函數(shù)修改。

以下是SequenceGAN的效果,它有非常多的重復(fù)的語(yǔ)句,這就是GAN的一個(gè)通病,對(duì)于不同的輸入,輸出卻很相同。

我們知道嘻哈歌手不可能一句話唱一整首,所以我們調(diào)研了一些文獻(xiàn),并且借鑒今年SentiGAN的想法,對(duì)生成器的目標(biāo)函數(shù)進(jìn)行修改,最后效果非常顯著,有一個(gè)質(zhì)的變化。

有了多樣化的文本之后,我們下一步要解決的問(wèn)題就是如何去實(shí)現(xiàn)押韻。我們嘗試兩種方案,一種是基于目標(biāo)函數(shù),增加押韻場(chǎng)景項(xiàng),就好像考試的附加題,做對(duì)了給額外得分。但是我們希望它一直能夠去做附加題,實(shí)現(xiàn)押韻的功能。但是它并不能很自主地學(xué)習(xí)到押韻的關(guān)。

最后我們嘗試了基于規(guī)則的方式來(lái)實(shí)現(xiàn)這個(gè)押韻。比如輸入“你真美麗”,我們根據(jù)這個(gè)i的韻腳去構(gòu)建一個(gè)向量,做一個(gè)簡(jiǎn)單的操作,就能夠得到必然是押韻的結(jié)果,同時(shí)可以控制押韻的概率。

▌附完整解讀

項(xiàng)目作者:孫蒙新(廈門大學(xué))、項(xiàng)瑞昌(華中科技大學(xué))、伊瑋雯(北京郵電大學(xué))、陸亦揚(yáng)(合肥工業(yè)大學(xué))、石華(西南石油大學(xué))、汪自力(西安電子科技大學(xué))、龐雲(yún)升(重慶大學(xué))、周子群(東北大學(xué))、王超群(北京林業(yè)大學(xué))、詹玨岑(VanderniltUniversity)

1、數(shù)據(jù)

我們一共使用了 10w 條嘻哈歌詞,并且已經(jīng)將一些不符合社會(huì)主義核心價(jià)值觀的句子標(biāo)注了出來(lái)。數(shù)據(jù)的預(yù)處理主要步驟如下:

在對(duì)句子進(jìn)行篩選之后,我們利用 Jieba 進(jìn)行分詞,觀察到單句長(zhǎng)度集中在 8~10 左右;

在利用 Tensorflow 中的 Tokenizer 進(jìn)行 tokenize 并構(gòu)建 word2idex 字典后,詞表大小在 11000 左右,考慮到這個(gè)大小還可以接受,沒(méi)有做限制詞表大小的操作;

利用 pad_sequence 將句子 padding 到 20(和 SeqGAN 中相同);

構(gòu)建 x-y pair,利用上一句預(yù)測(cè)下一句(導(dǎo)師后來(lái)建議可以借鑒用 Skip-gram 的思路,同時(shí)預(yù)測(cè)上一句和下一句,但沒(méi)有時(shí)間去嘗試了),分割數(shù)據(jù)集。

訓(xùn)練數(shù)據(jù)地址:

https://drive.google.com/drive/folders/1QrO0JAti3A3vlZlUemouOW7jC3K5dFZr)

2、模型

我們的生成模型的整體基于 SeqGAN,并對(duì)其做了一些修改,模型架構(gòu)如下:

主要改動(dòng)有兩點(diǎn):

1.增加輸入語(yǔ)句的編碼:這一點(diǎn)類似 Seq2Seq 的 Encoder,SeqGAN 原本的 initial state 是全 0 的,為了將上文的信息傳遞給生成器,我們采用了一個(gè)簡(jiǎn)單的全連接層(Fully Connected Layer),將輸入句子的 Word Embedding 經(jīng)過(guò)一個(gè)線性變化之后作為生成器的 LSTM。事實(shí)上也可以嘗試使用 RNN(LSTM)來(lái)作為 Encoder,不過(guò)這樣模型的速度可能會(huì)比較慢。

2.將原先 Generator 的 Loss Function 改為 Penalty-based Objective:在訓(xùn)練模型的過(guò)程中我們發(fā)現(xiàn),模型在 Adversarial Training 多輪之后出現(xiàn)了嚴(yán)重的 mode collapse 問(wèn)題,比如:

別質(zhì)疑自己 遮罩錯(cuò)的消息不要過(guò)得消極 世間人都笑我太瘋癲 世間人都笑我太瘋癲 守護(hù)地獄每座墳?zāi)?世間人都笑我太瘋癲你不知道rapper付出多少才配紙醉金迷 世間人都笑我太瘋癲 但卻從來(lái)沒(méi)有心狠過(guò) 如果你再想聽(tīng)你不知道rapper付出多少才配紙醉金迷 你不知道rapper付出多少才配紙醉金迷

可以看到“世間人都笑我太瘋癲”和“你不知道rapper付出多少才配紙醉金迷”占據(jù)了我們生成的結(jié)果。mode collapse,簡(jiǎn)單來(lái)說(shuō)就是輸入的改變不會(huì)影響生成的結(jié)果。為此我們調(diào)研了一些 Paper,最終采用了SentiGAN 中提出的 Penalty-based Objective Function:

3、押韻

嘻哈歌詞非常重要的一個(gè)特點(diǎn)就是句與句之間的押韻,我們?cè)趯?shí)現(xiàn)這一功能的時(shí)候嘗試了兩種方案:

1.Reward based,在 reward 函數(shù)上增加額外的押韻獎(jiǎng)賞項(xiàng), r(rhyme):對(duì) Generator 的生成的句子和輸入的句子進(jìn)行押韻的判斷,如果押韻,則提供額外的獎(jiǎng)賞。

2.Rule-based,生成時(shí)只對(duì)押韻的詞進(jìn)行采樣:在生成句尾的詞的概率分布時(shí)候,通過(guò)獲取和輸入句尾押韻的詞,只在這些押韻的詞進(jìn)行采樣。

方法一,如果能夠通過(guò)設(shè)計(jì) reward function 就能實(shí)現(xiàn)押韻的功能,那模型就是完全 end2end,非常 fancy 了。但是理想很豐滿,現(xiàn)實(shí)很骨感,經(jīng)過(guò)幾天的調(diào)整押韻獎(jiǎng)賞的權(quán)重,都沒(méi)能看到押韻率(我們?cè)O(shè)置的用于檢測(cè)押韻獎(jiǎng)賞效果的指標(biāo),每個(gè) batch 中和 input 押韻的句子的比例)的上升 。我們懷疑是這種獎(jiǎng)賞的結(jié)合會(huì)讓 Generator 產(chǎn)生混淆,并不能明確自己 reward 來(lái)自何處,應(yīng)該需要更加具體的一些限制才能夠?qū)崿F(xiàn)這一方法。

方法二,一開(kāi)始我是拒絕這么做的,用基于規(guī)則的方法不是我的理想。但是為了做出產(chǎn)品來(lái),我還是屈服了。但還有一個(gè)問(wèn)題擺在面前:怎么知道生成的是句尾呢?導(dǎo)師提醒我們,我們可以把輸入倒過(guò)來(lái)。這是 NMT 中常用的一個(gè)手段,對(duì)于 LSTM,句子是真的還是反的差別不大,即使有差別,也可以通過(guò)一個(gè) Bi-LSTM 來(lái)捕獲不同順序的信息。而為了知道哪些字詞是押韻的,我們實(shí)現(xiàn)制作了一張 vocab_size x vocab_size 的大表 rhyme,如果兩個(gè)詞(index 分別為 i, j)押韻,則 rhyme[i, j] 非 0,否則為 0。

如上圖所示,如果我們的輸入為“你真美麗”,句尾詞為“美麗”,韻腳為 i;最終采樣結(jié)果只會(huì)在押韻的詞中采樣,示例的采樣結(jié)果為“春泥”。

據(jù)此,我們就可以對(duì)生成過(guò)程的第一個(gè)詞的詞表分布進(jìn)行一個(gè) mask 操作,使得非押韻的詞的概率都變成 0,就能夠保證押韻了,代碼片段如下:

#獲取input的最后一個(gè)詞first_token=self.inputs[:,0]#(batch_size,1)#控制押韻的概率,現(xiàn)在設(shè)置為1.0,即100%押韻select_sampler=Bernoulli(probs=1.0,dtype=tf.bool)select_sample=select_sampler.sample(sample_shape=self.batch_size)#獲取對(duì)應(yīng)的index押韻行token_rhyme=tf.cast(tf.gather(self.table,first_token),tf.float32)#進(jìn)行maskprob_masked=tf.where(select_sample,tf.log(tf.multiply(token_rhyme,tf.nn.softmax(o_t))),tf.log(tf.nn.softmax(o_t)))#根據(jù)mask之后的概率分布進(jìn)行采樣next_token=tf.cast(tf.reshape(tf.multinomial(prob_masked,1),[self.batch_size])

不過(guò)這個(gè)制表的過(guò)程比較耗費(fèi)時(shí)間(大約跑了 3 個(gè)小時(shí),i7)。另一種思路是可以根據(jù)韻腳對(duì)字詞進(jìn)行分類,將相同韻腳的詞的 index 編到一起,這樣我們可以通過(guò)獲取每個(gè)詞的韻腳來(lái)知道目標(biāo)詞的范圍,而不用挨個(gè)的去判斷是否押韻。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • AI
    AI
    +關(guān)注

    關(guān)注

    87

    文章

    29359

    瀏覽量

    267635
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4256

    瀏覽量

    62223
  • 生成器
    +關(guān)注

    關(guān)注

    7

    文章

    313

    瀏覽量

    20919

原文標(biāo)題:AI有嘻哈!

文章出處:【微信號(hào):rgznai100,微信公眾號(hào):rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    為什么只有藍(lán)色LED獲得了諾貝爾獎(jiǎng)

    電路元器件邏輯電路
    學(xué)習(xí)電子知識(shí)
    發(fā)布于 :2023年08月14日 20:09:04

    慶科智慧應(yīng)用創(chuàng)新設(shè)計(jì)大賽決賽圓滿落幕 S-max智能騎行頭盔斬獲頭獎(jiǎng)

    ,獲得三等獎(jiǎng)的則是施飛峰團(tuán)隊(duì)的夾心餅電子積木項(xiàng)目。周忠S-max智能騎行頭盔路演現(xiàn)場(chǎng)前三甲隊(duì)伍與評(píng)委合影此外,有六支參賽隊(duì)伍的項(xiàng)目獲得了優(yōu)勝
    發(fā)表于 12-21 21:48

    第二屆“全志杯”微創(chuàng)客挑戰(zhàn)賽圓滿落幕,比派科技 Banana Pi作為官方合作伙伴全程參與

    ,來(lái)自中國(guó)科學(xué)院沈陽(yáng)自動(dòng)化研究所的sia-robot,重慶郵電大學(xué)的奶牛護(hù)衛(wèi)隊(duì),電子科技大學(xué)/哈爾濱工業(yè)大學(xué)Robot+,分別獲得了最佳技術(shù)難度獎(jiǎng)
    發(fā)表于 04-20 10:19

    壯大隊(duì)伍呀!

    迅速把隊(duì)伍壯大起來(lái)呀,我們是深圳市阿米諾技術(shù)有限公司,專業(yè)做智能醫(yī)療產(chǎn)品,歡迎大家來(lái)進(jìn)行技術(shù)交流。
    發(fā)表于 09-30 13:27

    為什么我示例項(xiàng)目從EEPROM閱讀只獲得了0xFF?

    示例項(xiàng)目從EEPROM寫和讀。但在閱讀方面,我只獲得了0xFF。
    發(fā)表于 08-05 10:53

    OpenHarmony開(kāi)源開(kāi)發(fā)者成長(zhǎng)計(jì)劃—解決方案學(xué)生挑戰(zhàn)賽Demo Day

    賽制說(shuō)明Demo Day 是配套解決方案學(xué)生挑戰(zhàn)賽的活動(dòng),向全國(guó)各地的開(kāi)發(fā)者展示參賽作品并評(píng)選一等獎(jiǎng)的線上直播活動(dòng)。本次大賽技術(shù)評(píng)審團(tuán)已評(píng)選出十支參賽隊(duì)伍,來(lái)參加成長(zhǎng)計(jì)劃學(xué)生挑戰(zhàn)賽Demo
    發(fā)表于 09-22 10:01

    Demo Day直播 | 成長(zhǎng)計(jì)劃解決方案學(xué)生挑戰(zhàn)賽一等獎(jiǎng)即將揭曉!

    Demo Day直播 | 成長(zhǎng)計(jì)劃解決方案學(xué)生挑戰(zhàn)賽一等獎(jiǎng)即將揭曉!OpenAtom OpenHarmony開(kāi)源開(kāi)發(fā)者成長(zhǎng)計(jì)劃解決方案學(xué)生挑戰(zhàn)賽Demo Day來(lái)襲!每一支隊(duì)伍心懷夢(mèng)想
    發(fā)表于 09-26 11:25

    羅技推出便攜防水藍(lán)牙音箱 十足

    最近極客之選體驗(yàn)了一款音箱,不論是外觀還是聲音都十足,我們一起來(lái)看看它有什么特別。 不得不說(shuō),《中國(guó)有》、《這!就是街舞》等節(jié)目的出現(xiàn),令國(guó)內(nèi)的
    的頭像 發(fā)表于 03-28 10:17 ?4651次閱讀

    5個(gè)AI隊(duì)伍竟然可以在《Dota2》戰(zhàn)勝人類5人隊(duì)伍

    之前AI在中單solo打敗知名選手Dendi的事情過(guò)了很久了,同團(tuán)隊(duì)開(kāi)發(fā)的5個(gè)神經(jīng)網(wǎng)絡(luò)AI隊(duì)伍已經(jīng)能在《Dota2》中戰(zhàn)勝業(yè)余的人類5人隊(duì)伍
    的頭像 發(fā)表于 07-25 11:18 ?3017次閱讀

    AI在以數(shù)據(jù)為中心的極端操作中表現(xiàn)出高度的可靠性

    Gyrfalcon Technology,Inc.(GTI)在Frost&Sullivan享有聲望的2019年最佳實(shí)踐獎(jiǎng)頒獎(jiǎng)典禮上獲得了2019年北美AI加速器芯片新產(chǎn)品創(chuàng)新
    發(fā)表于 03-25 10:04 ?656次閱讀

    億智電子獲評(píng)AI+芯片領(lǐng)域「AI最佳商用成長(zhǎng)獎(jiǎng)

    據(jù)悉,「AI最佳商用成長(zhǎng)獎(jiǎng)」的評(píng)審維度包含:商用落地領(lǐng)域類型與客戶數(shù)、商用問(wèn)題解決能力、項(xiàng)目售前服務(wù)能力、售后客戶評(píng)價(jià)指數(shù)、KA客戶與年度合作金額等。一直以來(lái),億智電子
    的頭像 發(fā)表于 09-07 16:21 ?2353次閱讀

    IBM已獲得認(rèn)證的金牌服務(wù)提供商資格

    IBM已幫助數(shù)百名客戶加快了自動(dòng)化進(jìn)程,包括與 Jaguar Land Rover和Pearson的合作,后者在2019年獲得了Blue Prism的``人民選擇獎(jiǎng)‘’,并且與美國(guó)退
    的頭像 發(fā)表于 09-11 11:05 ?2295次閱讀

    WXYZ 7050隊(duì)獲得了FTC項(xiàng)目的最高獎(jiǎng)項(xiàng)啟迪獎(jiǎng)

    隊(duì)長(zhǎng)。2019賽季遠(yuǎn)征香港斬獲了冠軍聯(lián)盟隊(duì)長(zhǎng)。在2020這個(gè)特殊的賽季,取得了北京市智能機(jī)器人大賽FTC項(xiàng)目一等獎(jiǎng),又獲得FTC南京邀請(qǐng)賽冠軍聯(lián)盟隊(duì)長(zhǎng)和設(shè)計(jì)獎(jiǎng)。最為激動(dòng)人心的是在剛剛結(jié)束的FTC全國(guó)線上評(píng)審活動(dòng)中,第一梯隊(duì)WXY
    的頭像 發(fā)表于 10-10 14:02 ?2524次閱讀

    2020 年度最佳 5G 手機(jī)獎(jiǎng):魅族17系列手機(jī)拿獎(jiǎng)到手軟!

    魅族17系列手機(jī)最近是拿獎(jiǎng)到手軟了,前不久剛剛獲得日本GOOD DESIGN AWARD 2020優(yōu)良設(shè)計(jì)獎(jiǎng),今天魅族17 Pro又獲得了CMC天鵝獎(jiǎng)“ 2020 年度
    的頭像 發(fā)表于 11-05 16:13 ?1747次閱讀

    Seucre-IC與合作伙伴獲得了硬件安全與信任(HOST)的最佳演示獎(jiǎng)!

    Secure-IC與NaghmehKarimi博士的團(tuán)隊(duì)(SECRETS實(shí)驗(yàn)室成員)及巴黎電信的合作者在2023年IEEE國(guó)際研討會(huì)上獲得了硬件安全與信任(HOST)的最佳硬件演示獎(jiǎng),這是具有標(biāo)志性的硬件安全方面的會(huì)議,在加利福
    的頭像 發(fā)表于 05-18 10:04 ?790次閱讀
    Seucre-IC與合作伙伴<b class='flag-5'>獲得了</b>硬件安全與信任(HOST)的<b class='flag-5'>最佳</b>演示<b class='flag-5'>獎(jiǎng)</b>!