console.log(🍺🎉);|

Rayinfos

园龄:2年8个月粉丝:3关注:0

音乐AI深度学习综述

前言:音乐基础




I. 音乐表示 Music Representation

主要有音频(Audio)与符号(Symbolic)两种,对应连续和离散

音频(Audio)

  • 信号波(Signal Waveform)和频谱(Spectrum)
  • 梅尔(Mel)频率分析-倒谱分析

image

符号(Symbolic)

1. MIDI(Musical Instrument Digital Interface):

  • 事件(Event):音符开关表示所演奏音符的开始和结束
  • 音符编号(Note Number):由0到127之间的整数来表示音高
  • 音符事件(Note Event):delta-time值来表示音符的持续时间

2. Piano Roll:Piano Roll是一个时间和音调二维表,不能区分长音符和重复短音符
3. ABCNote每个音符编码作为一个token,英文字母和数字表示音调及其持续时间,每个小节同样由|分隔
4. REMI(revamped MIDI derived events):通过在数据表示中加入度量结构以刻画节拍-小节-乐句的层次结构,并灵活地融入速度变换、和弦等信息,新的数据表示方式能够使现有模型性能进一步提升。
image
5. Compound Words
image

Music21

music21是一个由MIT开发的功能强大的计算音乐学分析Python库,可以处理包括MusicXML,MIDI,abc等多种格式的音乐文件,并可以从零开始构建音乐文件或对音乐进行分析。

MusPy库(2020)

MusPy是生成符号(Symbolic)音乐的工具包。其功能包括:

  1. 数据集准备,可以对接PyTorch和TensorFlow。
  2. 数据的读取和预处理,支持了常见格式,有这和其他库合作的接口。支持数种常见表示。
  3. 模型的评估算法和工具,包括音频渲染、乐谱可视化、pianoroll可视化,以及指标计算。

MusPy库的Class

image

MusPy的数据表示

image

MusPy的评估

  • 音高有关的metrics:polyphony, polyphony rate, pitch-in-scale rate, scale consistency, pitch entropy and pitch class entropy.
  • 节奏有关的metrics:empty-beat rate, drum-inpattern rate, drum pattern consistency and groove consistency.

MidiTok

Github
Convenient MIDI / symbolic music tokenizers for Deep Learning network

音乐信息检索(MIR)

https://blog.csdn.net/qqqeeebbb/article/details/100582684




II. 音乐转录 Automatic Music Transcription (AMT)

Piano Transciption(2020)

【Code】
https://zhuanlan.zhihu.com/p/269218623

MT3: 多乐器转录(2022)

Multi-Task Multitrack Music Transcription
【Paper】 【Code】
image




III. 音乐生成Music Generation

数据集

https://ldzhangyx.github.io/2019/07/21/music-toolkits/
https://zhuanlan.zhihu.com/p/78014428?from_voters_page=true

论文综述

2021

工具库

chorder:mid文件和弦提取

模型

【各个模型解读】

  • CoCoNet(2017)
  • XiaoIce Band(2018)
  • Music Transformer(2019)
  • Jukebox(2020)
  • Pop Music Transformer(2020)
  • Symbolic music generation with diffusion models(2021)
  • Compound Word Transformer (2021)
  • MuseFormer(2022)

论文概览

音乐生成Music Generation
ISMIR 2021

音乐生成评估指标

image

  • Beat标准方差
  • 负对数似然NNL(negative log-likehood)




IV. 语音合成TTS

Text-To-Speech

WaveNet(2017)

WaveNet的核心是扩张的因果卷积层
image

FastSpeech(2019)

模型特点:

  1. 非自回归,并行生成梅尔频谱,极大地加速声学特征的生成
  2. 考虑了鲁棒性,保证了文本和语音之间的对齐性(输入文本的序列和梅尔频谱帧长度)

模型构成

  1. 模型输入音素序列,输出梅尔频谱
  2. 长度调节器(Length Regulator):将音素序列根据对齐结果,将每一维音素特征重复相应的倍数
  3. 持续时长预测器(Duration Predictor):预测每一个音素的持续时长,即后期的重复倍数,为长度调节器提供对齐信息

模型结构

image

FastSpeech 2(2020)

Motivations:

  1. 直接利用外部对齐工具提供时长信息,而非FastSpeech学习教师(Teacher)模型的对齐、合成的频谱。
  2. 除了时长,同时单独建模语音的基频和能量。
  3. 提出了FastSpeech 2s,直接将音素映射为波形,而不像之前工作那样,需要先将音素映射为频谱,再利用声码器将频谱映射为波形。
    image

VITS(2021)

【Code】
image




V. 歌唱合成Singing Voice Synthesis (SVS)

歌声合成 (SVS) 旨在根据歌唱和乐谱生成具有高度表现力的歌声。常规的SVS方案是以歌词乐谱作为输入生成声学特征,例如梅尔语谱图 (mel-spectrogram) 或者直接生成最终波形。而为了训练SVS模型,通常需要一个由专业歌手录制的、用MusicXML或MIDI文件标记的歌唱语料库。

Deepsinger(2020)

模型构成:

  1. Alignment model:获得音素时长
  2. Singing model:音素序列+音高序列+音色信息,生成线性谱特征

1. Alignment model

image

2. Singing model

image

3. Inference

image

DURIAN-sc(2020)

  • 歌唱声音转换(Singing voice conversion)旨在保证歌唱内容的同时,将音色从source speaker转换到 target speaker。
  • DURIAN-sc的亮点是只需要target speaker的讲话数据(speech data),就可以学习到target speaker的音色。

DiffSinger(2022)

  • Parallel WaveGAN (PWG) as vocoder?
  • 扩散模型
  • DiffSinger




VI. 声音转换Singing Voice conversion

VII. 音乐风格迁移Music Translation

https://zhuanlan.zhihu.com/p/65195833




VIII. 音轨分离Music Source Separation

https://paperswithcode.com/task/music-source-separation




产品(部分开源)

相关研究进展

微软AI Music研究
Magenta: 开源demo

推荐阅读

MusPy上手指南
Jukebox论文解读
Music Generation论文概览
语音合成-专栏

开源代码

https://github.com/magenta/magenta/tree/main/magenta/models/improv_rnn
列表汇总:https://github.com/affige/genmusic_demo_list

image

本文作者:Rayinfos

本文链接:https://www.cnblogs.com/rayinfos/p/16622989.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Rayinfos  阅读(753)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 Singing Rib
  2. 2 Focus Rib
  3. 3 fossil Rib
  4. 4 damn 藤井風
  5. 5 きらり 藤井風
  6. 6 帰ろう 藤井風
帰ろう - 藤井風
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.