简介
此项目可将钢琴录音(mp3, wav等格式)转录成MIDI文件, 识别的精度非常之高, 扒谱党的福利。相对于人工扒谱效率高了不知道多少倍, AI扒谱的时代已经到来。
前段时间字节跳动发布了全球最大的古典钢琴MIDI数据集 GiantMIDI-Piano, GiantMIDI-Piano 的特点是使用钢琴转谱技术,通过计算机将音频文件自动转为 MIDI 文件,并通过该技术转谱了大规模的 MIDI 数据集。
研究者万余首钢琴作品+一千多小时训练,开发并开源了一套高精度钢琴转谱系统piano_transcription,将所有音频转谱成 MIDI 文件,进而构建了 GiantMIDI-Piano 数据库。
该转谱系统的特点包括:
- 能够将任意声部数目、任意复杂度,甚至双钢琴、多钢琴的钢琴音频转谱为 MIDI 文件。
- 实现了任意时间精度的音符检测,突破了之前算法 32 毫秒识别精度的限制。
- 对每个音符实现了 128 个粒度的力度识别。
- 同时包含了钢琴音符和钢琴踏板的识别。
- 在 MAESTRO 评测数据集上取得 96.72% 的 F1 值,超越了 Google 系统的 94.80%。
- 预训练模型的代码以 Apache 2.0 协议开源。
详细介绍见: https://zhuanlan.zhihu.com/p/269218623
GiantMIDI-Piano: https://github.com/bytedance/GiantMIDI-Piano
piano_transcription: https://github.com/bytedance/piano_transcription
一网友在此基础制作的修改版: https://zhuanlan.zhihu.com/p/270999354
在此基础上, 我再稍微加工了下, 可批量转置, 使得更易使用
下面是一些转置后制作的一些视频
2011年Zetacola《赤色要塞》的钢琴演奏原版视频《魂斗罗》《赤色要塞》钢琴–大小姐Zetacola_哔哩哔哩 (゜-゜)つロ 干杯~-bilibiliwww.bilibili.com/video/BV1Fx411Q74p
音质修复+特效钢琴版FC 赤色要塞 钢琴纯音乐 Zeta演奏扒谱音质修复_哔哩哔哩 (゜-゜)つロ 干杯~-bilibiliwww.bilibili.com/video/BV1u54y1k7ou
使用方法只需三步即可
- 下载资源
- 安装环境
- 使用
下载下面的资源包, 解压
链接: https://pan.baidu.com/s/1aqnlgfFCjB0KIlPEB8RcRg 提取码: xubj
资源包内包括Piano transcription项目,项目所使用的已训练完好模型,python安装包和ffmpeg
安装环境
以64位的windows版本为例, Mac和linux的步骤也是一样的, 只需安装对应系统的软件版本
安装下列环境
01 Python 3.7
使用到了f-string, 需要Python3.6以上版本才支持, 这里选择安装Python3.7.9版本
02 项目所依赖的库
03 ffmpeg
用于读取媒体文件, 使用资源包里的版本即可
04 cuda
限NVIDIA显卡, 使用cuda转置速度更快, 没有可以不装, 使用CPU转置
05 pytorch
需要看Python版本和cuda版本, 选择相应的版本下载
01 安装 Python 3.7
双击附件里边的Python 3.7.9安装即可
在cmd里输入python出现下面提示及安装成功
02 项目所依赖的库
在项目目录根下按住shift在空白处点击powershell打开
输入下面命令, 升级pip版本(我装有多个python版本, 所以图片显示命令不一样, 新手直接输入下面命令即可)
python -m pip install --upgrade pip
安装依赖环境
pip install -r .\requirements.txt
03 安装ffmpeg
需要把ffmpeg的bin目录添加到环境变量
右键点击此电脑—属性 , 点击高级系统设置, 高级里边的环境变量, 双击Path, 选择新建,
将ffmpeg下的bin目录路径复制的里边,
如 F:\钢琴转谱资源包\ffmpeg\bin
(将路径改为你所解压的ffmpeg的bin目录路径)
然后点击确定
在cmd里输入ffmpeg 有显示ffmpeg version 4.3.1字样的即添加好了环境变量
04 安装cuda (使用CPU跳过此步骤)
CUDA 是 NVIDIA 的一种并行计算平台和编程模型。使用显卡转置比用CPU快很多
cuda版本和驱动支持有关,显卡驱动会影响支持cuda的版本 , 为避免不必要的错误, 先去官网更新驱动到最新版本,这里以win10 1909版本的系统为例
win7等其他系统去NVIDIA控制面板查看支持cuda的最高版本, 选择相应的cuda版本
驱动下载地址https://www.nvidia.cn/geforce/drivers/
安装显卡最新驱动, 再去下载cuda工具包11.1安装(有3G大)
下载地址https://developer.nvidia.com/zh-cn/cuda-downloads
在安装界面选择自定义, 如图只勾选cuda当中的那几项, 其他不必勾选, 选了有可能安装失败
安装完成后显示
05 安装pytorch
到官网下载自己系统合适的版本, 如果使用CPU选择cuda版本选择none
这里选择windows系统python3.7 使用pip安装cuda11为例, 按下图选择好版本后下面会有对应的安装命令
在cmd命令行里输入下面命令安装pytorch, 文件挺大有差不多2G, 如果网络不好安装失败, 请看下边的离线包安装
pip install torch===1.7.0+cu110 torchvision===0.8.1+cu110 torchaudio===0.7.0 -f https://download.pytorch.org/whl/torch_stable.html
文件比较大差不多2G, 如果网络不好可以下载离线安装包
下载好后再目录下按住shift在空白处右键点击, 选择powershell打开命令行, 输入下面安装命令
pip install .\torch-1.7.0+cu110-cp37-cp37m-win_amd64.whl
项目使用
把MP3,或wav文件放入input文件夹, 可以放多个音频文件
在项目piano_transcription按住shift在空白处右键点击, 选择powershell打开命令行, 输入以下命令, 等待程序跑完即可
python .\start.py
使用GPU进行转置还是挺快的, 大概10秒~1分多钟一首
跑完后可在output文件夹得到转置好的mid文件, 使用播放器播放即可, 可使用Pianoteq的音源生成高音质的mp3, 如果效果不是很好, 可以使用midi编辑软件进行进一步的修改。midi文件还可以通过一些软件转成琴谱
如果使用CPU转置可以修改start.py文件把第19行里边的cuda改为cpu即可