简介
此项目可将钢琴录音(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-Pianohttps://github.com/bytedance/GiantMIDI-Piano
piano_transcriptionhttps://github.com/bytedance/piano_transcription
一网友在此基础制作的修改版https://zhuanlan.zhihu.com/p/270999354
在此基础上, 我再稍微加工了下, 可批量转置, 使得更易使用
下面是一些转置后制作的一些视频
2011年Zetacola《赤色要塞》的钢琴演奏
音质修复+特效钢琴版
使用方法只需三步即可
- 下载资源
- 安装环境
- 使用
下载下面的资源包, 解压
链接: 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, 如果网络不好可以下载离线安装包
https://download.pytorch.org/whl/cu110/torch-1.7.0%2Bcu110-cp37-cp37m-win_amd64.whl
下载好后再目录下按住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即可
为什么我的在安装依赖环境这一步卡住了...
PS C:\钢琴转谱资源包\piano_transcription> pip install -r .\requirements.txt
pip : 无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,
然后再试一次。
所在位置 行:1 字符: 1
+ pip install -r .\requirements.txt
+ ~~~
+ CategoryInfo : ObjectNotFound: (pip:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
python 安装没安装好重新卸载安装 或找到python目录将pip.exe所在的文件夹添加到系统变量
谢谢大佬! 很有用!
yeah 成功了
这个需要是纯钢琴曲吗,如果有鼓会不会影响精度很大,钢琴的音色也会影响精度吗,另外这个算法适合做其他乐器的音频转谱吗
需要纯钢琴,我拿了和《夜的钢琴曲五》实验了下,前者有鼓点,后者纯钢琴;对比转录出来的midi,发现前者弄得不是很好,有鼓点的地方会比较的混乱,而后者则几乎完全听不出和原曲的区别QAQ。当然,这只是随便拿的两首试的,效果应该也和音符速率有关,比如十六分音符比较密集可能效果就会差一些(猜测