前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >干货 | Github项目推荐 : GANSynth: 用GANs创作音乐

干货 | Github项目推荐 : GANSynth: 用GANs创作音乐

作者头像
AI科技评论
发布2019-10-31 15:19:42
7750
发布2019-10-31 15:19:42
举报
文章被收录于专栏:AI科技评论AI科技评论
AI科技评论按,截至翻译开始前,该Github上的Star数已超过12000+。

GANSynth是一种利用生成对抗网络合成音频的算法。 详情可在ICLR 2019论文中查看。它比NSynth数据集上的标准WaveNet基线能获得更好的音频质量,并且合成音频的速度快数千倍。

项目地址:

https://github.com/tensorflow/magenta/tree/master/magenta/models/gansynth

Website:

https://magenta.tensorflow.org/gansynth

Paper《GANSynth: Adversarial Neural Audio Synthesis》:

https://openreview.net/forum?id=H1xQVn09FX

Colab:

https://colab.research.google.com/notebooks/magenta/gansynth/gansynth_demo.ipynb

生成

如果要生成一些声音,首先需要按照Magenta的设置说明进行操作,然后下载预训练检查点,或者训练自己的检查点。 我们有几个(检查点)可供下载:

  • acoustic_only: 如论文所示,仅使用声学仪器24-84(Mel-IF,逐行,高频分辨率)进行训练。
  • all_instruments: 在24-84(Mel-IF,Progressive,High Frequency Resolution)的所有乐器上进行训练。

您可以通过解压缩检查点包并从Magenta目录的根目录中运行生成脚本来生成一些随机声音(随机音高和潜在向量)。

代码语言:javascript
复制
python magenta/models/gansynth/gansynth_generate.py --ckpt_dir=/path/to/acoustic_only --output_dir=/path/to/output/dir --midi_file=/path/to/file.mid

如果指定了MIDI文件,就会合成音符,并在时间内隐向量之间进行插值。 如果没有给出MIDI文件,则会合成随机批处理的音符。

如果你已经从pip包中安装,它将会安装一个控制台脚本,以便可以从任何地方运行。

代码语言:javascript
复制
gansynth_generate --ckpt_dir=/path/to/acoustic_only --output_dir=/path/to/output/dir --midi_file=/path/to/file.mid

训练

GANSynth可以仅用~3-4天内训练单个V100 GPU上的NSynth数据集。如果要进行训练,首先需要使用安装或开发环境,并按照Magenta的设置说明进行操作,然后将NSynth数据集下载为TFRecords。

如果要测试该训练是否生效,请从Magenta repo目录的根目录运行:

代码语言:javascript
复制
python magenta/models/gansynth/gansynth_train.py --hparams='{"train_data_path":"/path/to/nsynth-train.tfrecord", "train_root_dir":"/tmp/gansynth/train"}'

这将会使用合适的超参数运行模型,以便快速测试训练(可以在model.py中找到)。你可以在configs/mel_prog_hires.py中找到论文中最佳表现的超参数配置(Mel-Spectrograms,Progressive Training,High Frequency Resolution)。 你可以通过将其添加为标志来对这个配置进行训练:

代码语言:javascript
复制
python magenta/models/gansynth/gansynth_train.py --config=mel_prog_hires --hparams='{"train_data_path":"/path/to/nsynth-train.tfrecord", "train_root_dir":"/tmp/gansynth/train"}'

你也可以更改它或进行其他配置以研究其他的表示。提醒一下,完整的超参数列表可以在model.py中找到。 默认情况下,该模型仅在声学仪器间距24-84进行训练,如论文中所示。 你可以在datasets.py中更改。

如果你已经从pip包中安装,它将会安装一个控制台脚本,以便可以从任何地方运行。

代码语言:javascript
复制
gansynth_train --config=mel_prog_hires --hparams='{"train_data_path":"/path/to/nsynth-train.tfrecord", "train_root_dir":"/tmp/gansynth/train"}'
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-03-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI科技评论 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 生成
  • 训练
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档