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

小编:听说中央音乐学院将于2019年首次招收“音乐人工智能与音乐信息科技”方向的博士生,所以我们今天为你推荐的就是利用生成对抗网络合成音频的算法。截至翻译开始前。本项目在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目录的根目录中运行生成脚本来生成一些随机声音(随机音高和潜在向量)。

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包中安装,它将会安装一个控制台脚本,以便可以从任何地方运行。

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目录的根目录运行:

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)。 你可以通过将其添加为标志来对这个配置进行训练:

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包中安装,它将会安装一个控制台脚本,以便可以从任何地方运行。

gansynth_train --config=mel_prog_hires --hparams='{"train_data_path":"/path/to/nsynth-train.tfrecord", "train_root_dir":"/tmp/gansynth/train"}'

本文分享自微信公众号 - AI研习社(okweiwu)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-03-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券