Skip to content

中文歌词生成, Tensorflow, Seq2Seq, Bahdanau注意力

Notifications You must be signed in to change notification settings

dengxiuqi/Lyricist-tensorflow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Lyricist

基于Tensorflow、Seq2Seq、Bahdanau注意力机制的 中文歌词生成研究

训练数据集来自我收集整理的中文歌词数据库: https://github.com/dengxiuqi/ChineseLyrics
基于Pytorch和Luong注意力的另一个项目: https://github.com/dengxiuqi/Lyricist-torch

方法

  • 采用Seq2Seq模型, 输入上句或歌名直接生成下句。反复将生成的下句输入网络, 循环往复, 可以得到整首歌曲
  • 注意力机制使用的是Bahdanau Attention, 在解码器生成下句的时候, 会根据当前语境信息对上文的一些词汇进行重点关注
  • 对词语的向量化编码采用的是提前训练好的Word2Vec模型
  • 在测试阶段只展示了根据上句生成下句单个词语的阶段, 如需生成完整歌词, 只需循环进行此步骤即可

工程

Lyricist-tensorflow
│── data 数据集
│  │── songs_cut.json 分词后的歌词数据
│  │── words.json 歌词数据库词典
│  ` ── word2vec.txt word2vec数据, 请从 https://pan.baidu.com/s/1h_7P7Iypv9HAQAJPayCkWw 下载
│── model 存放训练好的模型
│  ` ── ......
│── config.py 数据集合网络结构的一些参数
│── data.py 数据集处理
│── network.py 网络结构
│── train.py 训练
` ── test.py 测试

效果

根据不同上句生成下句单个词语的阶段
1
上句: 迎接早晨灿烂的阳光   
下句: 我的……  
上句 迎接 早晨 灿烂 阳光
注意力 0.20360762 0.3191696 0.14018247 0.09243581 0.24460447
生成的候选词: ['祖国', '阳光', '太阳', '新疆', '家庭']    
2
上句: 眼角留着你给的泪水  
下句: 我的……  
上句 眼角 泪水
注意力 0.29617822 0.0401211 0.09877114 0.15365875 0.07016596 0.12643187 0.21467307
生成的候选词: ['眼角', '眼泪', '心里', '心碎', '泪水']    
3
上句: 我在黑夜之中寻找出口  
下句: 我的……  
上句 黑夜 之中 寻找 出口
注意力 0.129262 0.08518599 0.46715733 0.09963258 0.09444849 0.12431359
生成的候选词: ['迷惘', '孤独', '寂寞', '黑夜', '星光']    
4
上句: 给我甜蜜笑容  
下句: 我的……  
上句 甜蜜 笑容
注意力 0.15871677 0.16507187 0.32744813 0.34876317
生成的候选词: ['爱人', '人生', '快乐', '美梦', '小'] 

About

中文歌词生成, Tensorflow, Seq2Seq, Bahdanau注意力

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages