一键转换,音律再生——揭秘字节跳动高精度钢琴转谱黑科技,让音乐创作与教育焕发新活力!

一、介绍

字节跳动/piano_transcription 项目是一个高精度钢琴转谱系统,旨在将钢琴录音(如 mp3、wav 等格式)自动转录成 MIDI 文件。

1.项目背景与意义

随着人工智能技术的发展,音乐信息提取(Music Information Retrieval, MIR)领域也迎来了新的突破。piano_transcription 项目作为 MIR 中的一个重要应用,通过深度学习等先进技术,实现了从钢琴音频到电子乐谱(MIDI)的自动转换,为音乐创作者、教育者及音乐爱好者提供了极大的便利。

2.项目技术特点

  1. 高精度转谱 :piano_transcription 项目能够识别任意声部数目、任意复杂度的钢琴音频,并将其转谱为MIDI 文件。该系统在 MAESTRO 评测数据集上取得了 96.72% 的 F1 值,超越了其他系统。
  2. 任意时间精度 :该系统突破了之前算法 32 毫秒识别精度的限制,实现了任意时间精度的音符检测。
  3. 力度识别 :对每个音符实现了 128 个粒度的力度识别,使得转谱结果更加接近原曲的真实演奏效果。
  4. 踏板识别 :除了钢琴音符外,该系统还能识别钢琴踏板的触发和抬起,进一步提高了转谱的准确性和完整性。

3.项目实现过程

  1. 数据采集与处理 :项目团队首先从 IMSLP(International Music Score Library Project)等网站抓取作曲家信息和曲目名,然后在 Youtube 上下载对应的钢琴音频。通过训练 CNN 网络对音频进行分类,筛选出钢琴曲。
  2. 转谱系统开发 :利用深度学习技术,开发了一套高精度钢琴转谱系统。该系统能够识别音频中的音调、琴键的触发与抬起、力度以及踏板操作等信息,并将其转换为 MIDI 格式。
  3. 数据集构建 :通过该系统,将大量钢琴音频转谱为 MIDI 文件,构建了 GiantMIDI-Piano 数据集。该数据集包含了丰富的钢琴作品信息,为音乐研究和创作提供了宝贵资源。

4.项目应用与影响

  1. 音乐教育 :piano_transcription 项目可以应用于音乐教育领域,帮助学生通过音频学习钢琴曲目,提高学习效率。
  2. 音乐创作 :对于音乐创作者而言,该系统可以将他们的即兴演奏或创意灵感快速转换为乐谱,促进音乐创作的发展。
  3. 音乐研究 :GiantMIDI-Piano 数据集的发布为音乐研究提供了丰富的素材和工具,有助于推动音乐信息提取领域的发展。

5.项目资源

钢琴曲音频在线转谱 · 创空间 (modelscope.cn)

二、容器构建说明

建议使用 RTX3060 显卡

1. 安装 miniconda

进入 Anaconda 官网:

Miniconda — Anaconda 文档

找到快速命令行安装,选择 Linux 系统,复制代码进入终端进行安装。

image.png

image.png

等待安装完成。

2. 安装并更新基础命令,让后续使用更快捷: unzip、lsof、git、git-lfs

apt-get update
apt-get install -y unzip
apt-get install -y lsof
apt-get install -y git
apt-get install -y git-lfs

image.png

3. 克隆项目仓库,并打开文件

git clone https://www.modelscope.cn/studios/MuGeminorum/piano_transcription.git
cd piano_transcription

4. 创建 python 为 3.10 版本的虚拟环境,名称为piano

conda create -n piano python=3.10 -y

5. 激活虚拟环境piano

conda activate piano

6. 通过 pip 安装所需的 torch 环境(国内镜像源快一些,以下使用了清华源)

pip install torch torchvision --index-url https://download.pytorch.org/whl/cu121 -i https://pypi.tuna.tsinghua.edu.cn/simp

7. 安装项目依赖文件及相应包

为了安装速度更快可以将 pip 进行永久换源

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip install -r requirements.txt
pip install gradio
pip install modelscope
apt install ffmpeg

8. 指定端口,运行 py 文件(运行项目,首次运行会自动下载模型)

export GRADIO_SERVER_NAME=0.0.0.0
export GRADIO_SERVER_PORT=8080
python app.py

耐心等待

image.png

出现以下页面即为运行成功

image.png

三、网页演示

运行成功后获取访问链接,即可进入 webUI 界面使用

image.png

image.png

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值