音乐AI深度学习综述
前言:音乐基础
- 音节、音素和音标:音素(phone)分为元音和辅音
- 梅尔频谱 (mel-spectrum):频谱刻度变化到适合人耳
- 音乐处理原理(FMP)
I. 音乐表示 Music Representation
主要有音频(Audio)与符号(Symbolic)两种,对应连续和离散
音频(Audio)
- 信号波(Signal Waveform)和频谱(Spectrum)
- 梅尔(Mel)频率分析-倒谱分析
符号(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):通过在数据表示中加入度量结构以刻画节拍-小节-乐句的层次结构,并灵活地融入速度变换、和弦等信息,新的数据表示方式能够使现有模型性能进一步提升。
5. Compound Words
Music21
music21是一个由MIT开发的功能强大的计算音乐学分析Python库,可以处理包括MusicXML,MIDI,abc等多种格式的音乐文件,并可以从零开始构建音乐文件或对音乐进行分析。
MusPy库(2020)
MusPy是生成符号(Symbolic)音乐的工具包。其功能包括:
- 数据集准备,可以对接PyTorch和TensorFlow。
- 数据的读取和预处理,支持了常见格式,有这和其他库合作的接口。支持数种常见表示。
- 模型的评估算法和工具,包括音频渲染、乐谱可视化、pianoroll可视化,以及指标计算。
MusPy库的Class
MusPy的数据表示
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】
III. 音乐生成Music Generation
数据集
https://ldzhangyx.github.io/2019/07/21/music-toolkits/
https://zhuanlan.zhihu.com/p/78014428?from_voters_page=true
论文综述
工具库
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
音乐生成评估指标
- Beat标准方差
- 负对数似然NNL(negative log-likehood)
IV. 语音合成TTS
Text-To-Speech
WaveNet(2017)
WaveNet的核心是扩张的因果卷积层
FastSpeech(2019)
模型特点:
- 非自回归,并行生成梅尔频谱,极大地加速声学特征的生成
- 考虑了鲁棒性,保证了文本和语音之间的对齐性(输入文本的序列和梅尔频谱帧长度)
模型构成:
- 模型输入音素序列,输出梅尔频谱
- 长度调节器(Length Regulator):将音素序列根据对齐结果,将每一维音素特征重复相应的倍数
- 持续时长预测器(Duration Predictor):预测每一个音素的持续时长,即后期的重复倍数,为长度调节器提供对齐信息
模型结构
FastSpeech 2(2020)
Motivations:
- 直接利用外部对齐工具提供时长信息,而非FastSpeech学习教师(Teacher)模型的对齐、合成的频谱。
- 除了时长,同时单独建模语音的基频和能量。
- 提出了FastSpeech 2s,直接将音素映射为波形,而不像之前工作那样,需要先将音素映射为频谱,再利用声码器将频谱映射为波形。
VITS(2021)
V. 歌唱合成Singing Voice Synthesis (SVS)
歌声合成 (SVS) 旨在根据歌唱和乐谱生成具有高度表现力的歌声。常规的SVS方案是以歌词和乐谱作为输入生成声学特征,例如梅尔语谱图 (mel-spectrogram) 或者直接生成最终波形。而为了训练SVS模型,通常需要一个由专业歌手录制的、用MusicXML或MIDI文件标记的歌唱语料库。
Deepsinger(2020)
模型构成:
- Alignment model:获得音素时长
- Singing model:音素序列+音高序列+音色信息,生成线性谱特征
1. Alignment model
2. Singing model
3. Inference
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
产品(部分开源)
- Spleeter:通道分离 Huggingface API
- mvsep:开源模型集合,多音器人声通道分离
- X-Minue:人声分离
- MuseNet:GPT-2模型:编曲
- Fastsinging(基于Fastspeech):声音合成
- ACEStudio:虚拟歌姬
- hifive音乐开放平台
- AIVA AI
- Mubert
- AC-chan:根据文本生成音乐
- Huggingface:img2music:图片生成音乐
相关研究进展
推荐阅读
MusPy上手指南
Jukebox论文解读
Music Generation论文概览
语音合成-专栏
开源代码
https://github.com/magenta/magenta/tree/main/magenta/models/improv_rnn
列表汇总:https://github.com/affige/genmusic_demo_list
本文作者:Rayinfos
本文链接:https://www.cnblogs.com/rayinfos/p/16622989.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步