Project Icon

pop2piano

Transformer模型将流行乐音频转化为钢琴翻版

Pop2Piano借助Transformer网络,直接从流行音乐音频波形生成钢琴改编。该方法省略传统的旋律和和弦提取步骤,通过基于T5的编码器-解码器架构,采用高效的音频处理和自动回归方法生成MIDI文件。不仅适合处理韩流音乐,同样适用于西方流行乐与嘻哈音乐。

Pop2Piano项目介绍

Pop2Piano是一个Transformer网络,旨在通过流行音乐的波形生成钢琴伴奏。这项创新的技术由Jongho Choi和Kyogu Lee在论文《Pop2Piano : Pop Audio-based Piano Cover Generation》中提出。人们普遍喜欢流行音乐的钢琴演奏版本,但要直接从音频生成这样的伴奏并非易事,通常需要对钢琴和音乐特性有深入的了解。然而,Pop2Piano通过其独特的方法,能够直接从歌曲音频中生成钢琴伴奏。

模型细节

Pop2Piano是首个可以直接从流行音乐音频生成钢琴伴奏的模型,它不需要传统的旋律与和弦提取模块。该模型基于T5的编码器-解码器Transformer架构。输入音频会被转换为波形,然后传入编码器进行隐藏表示的转换。解码器则利用这些隐藏表示以自回归的方式生成token id。每个token id对应四种不同的token类型:时间、力度、音符和“特殊”。这些token id最终会被解码为对应的MIDI文件。

模型资源

使用方法

为使用Pop2Piano,需要安装🤗 Transformers库及以下第三方模块:

pip install git+https://github.com/huggingface/transformers.git
pip install pretty-midi==0.2.9 essentia==2.1b6.dev1034 librosa scipy

注意,安装后可能需要重启运行环境。

将流行音乐转换为钢琴伴奏

代码示例
  • 使用自定义音频
import librosa
from transformers import Pop2PianoForConditionalGeneration, Pop2PianoProcessor

audio, sr = librosa.load("<your_audio_file_here>", sr=44100)  # 可根据需要改变采样率
model = Pop2PianoForConditionalGeneration.from_pretrained("sweetcocoa/pop2piano")
processor = Pop2PianoProcessor.from_pretrained("sweetcocoa/pop2piano")

inputs = processor(audio=audio, sampling_rate=sr, return_tensors="pt")
model_output = model.generate(input_features=inputs["input_features"], composer="composer1")
tokenizer_output = processor.batch_decode(
    token_ids=model_output, feature_extractor_output=inputs
)["pretty_midi_objects"][0]
tokenizer_output.write("./Outputs/midi_output.mid")
  • 从Hugging Face Hub获取音频
from datasets import load_dataset
from transformers import Pop2PianoForConditionalGeneration, Pop2PianoProcessor

model = Pop2PianoForConditionalGeneration.from_pretrained("sweetcocoa/pop2piano")
processor = Pop2PianoProcessor.from_pretrained("sweetcocoa/pop2piano")
ds = load_dataset("sweetcocoa/pop2piano_ci", split="test")

inputs = processor(
    audio=ds["audio"][0]["array"], sampling_rate=ds["audio"][0]["sampling_rate"], return_tensors="pt"
)
model_output = model.generate(input_features=inputs["input_features"], composer="composer1")
tokenizer_output = processor.batch_decode(
    token_ids=model_output, feature_extractor_output=inputs
)["pretty_midi_objects"][0]
tokenizer_output.write("./Outputs/midi_output.mid")

示例

以下为生成的MIDI实例:

  • 实际流行音乐
  • 生成的MIDI

小贴士

  1. Pop2Piano是基于T5的编码器-解码器模型。
  2. Pop2Piano可用于为给定的音频序列生成MIDI文件。
  3. Pop2PianoForConditionalGeneration.generate()中选择不同的作曲者可能会导致多样化的结果。
  4. 加载音频文件时将采样率设为44.1 kHz可获得良好性能。
  5. 虽然Pop2Piano主要通过韩国流行音乐进行训练,但在其他西方流行音乐或嘻哈歌曲上也表现良好。

引用

BibTeX:

@misc{choi2023pop2piano,
      title={Pop2Piano : Pop Audio-based Piano Cover Generation}, 
      author={Jongho Choi and Kyogu Lee},
      year={2023},
      eprint={2211.00895},
      archivePrefix={arXiv},
      primaryClass={cs.SD}
}
项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

白日梦AI

白日梦AI提供专注于AI视频生成的多样化功能,包括文生视频、动态画面和形象生成等,帮助用户快速上手,创造专业级内容。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

讯飞绘镜

讯飞绘镜是一个支持从创意到完整视频创作的智能平台,用户可以快速生成视频素材并创作独特的音乐视频和故事。平台提供多样化的主题和精选作品,帮助用户探索创意灵感。

Project Cover

讯飞文书

讯飞文书依托讯飞星火大模型,为文书写作者提供从素材筹备到稿件撰写及审稿的全程支持。通过录音智记和以稿写稿等功能,满足事务性工作的高频需求,帮助撰稿人节省精力,提高效率,优化工作与生活。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号