GiantMIDI(AI 转谱工具)配置与使用

一、简介

转谱是指将音乐录音转为对应的音乐乐谱,也称作扒谱。

2020 年 10月 字节跳动科学家为构建全球最大的古典钢琴数据集 GiantMIDI-Piano 1,开发了一套高精度钢琴转谱系统。该系统可以实现纯钢琴曲高精度的乐谱转化。

其对应的项目已开源至 github 1,名字同为 GiantMIDI-Piano。关于该项目具体的介绍分析,这里推荐一篇文章,见脚注 2

​对于音乐爱好者或音乐制作人,亦或是单纯想扒自己喜欢的乐曲的人来说,使用这套系统可以很大程度地减少工作量。配置好后,只需要提供钢琴曲,就可以获得曲子转录的 midi 文件了。我个人使用一段时间后,发现体验确实非常不错。

​总的来说,转出的 midi 文件播放听感如下:

  • 音高、力度识别极其准确
  • 节奏识别有极微小的偏差

二、注意事项

​首先注意一点:该项目只适用于纯钢琴乐曲,有其他任何乐器或人声的乐曲,都会对转化有不同程度的影响。

如果不是纯钢琴乐曲,转化结果基本都很差。

​如果你有 NVIDIA 系独显,那么转谱速度将会很快(一首 5min 曲子用时 2 min)。但如果你的设备使用的是集成显卡或非 NVIDIA 系显卡,将无法使用 cuda 配置,只能使用 CPU 转谱。

这样速度将会大打折扣,至于打多大的折扣,和你的 CPU 性能有关。关于这一点,请做好心理准备!

​转谱速度参考(同时转谱一首 5min 左右的曲子):

  • 独显:NVIDIA 1650 TI,用时:124.680s
  • 无独显:Intel Xeon 8269CY,用时:1043.910s

三、配置

1、Python 环境安装

​该项目的核心是 python 构建的深层神经网络模型,因此运行需要 Python 环境支持。因为从 Python 官网下载极慢,这里演示从镜像站下载 Python。

下载一个符合你操作系统的版本就好,我这边是 windows x64 平台,我就选择 python-3.8.5-amd64.exe

​镜像站地址:https://npm.taobao.org/mirrors/python/3.8.5/

​下载后安装,注意安装的时候先勾上 Add Python 3.8 to PATH,然后选择 Install Now,完成后直接点 close 就好。

2、clone 项目

​会魔法上网且熟悉 github 的同学,直接 clone:
https://github.com/bytedance/GiantMIDI-Piano

​暂时不会魔法上网的同学,请到这里下载:
https://glowmem.com/files/GiantMIDI-Piano/GiantMIDI-Piano-master.zip

​下载完成后解压到一个位置存放。打开,应该是这样的:

​请注意,我们之后提到项目目录,都指这个目录。

3、安装配置相关依赖库

​在项目目录下,点击地址栏,输入 cmd 按下回车,在当前目录下打开命令提示符窗口。
依次输入以下内容执行:

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install numpy==1.20 -i https://pypi.tuna.tsinghua.edu.cn/simple/

​全部安装完成后,关闭 cmd 窗口。

4、导入启动文件

​对于配置和启动运行,我写了些批处理和辅助程序来完成一键操作。

到这里下载:midiTool_Init.zip

请注意!以下批处理和辅助程序的操作,由于是我设计的,出现配置失败、错误,请与我联系。请不要去 github 打扰项目作者。

​下载完成后,解压,得到一个 files 文件夹,点击里面的 init.bat 执行(右键选择以管理员身份执行),以完成初始化配置。
执行失败显示红色,执行成功为绿色,灰色为正在执行中。

​完成初始化后,选择当前目录下的 works 文件夹,将其整个复制到项目目录

四、使用

​将需要转谱的 mp3 音乐文件(注意,只能是 mp3 型文件),放入项目目录下的:works\mp3s_piano_solo 文件夹中。可以一次多放几个。它会按顺序执行转化任务。

​进入项目目录下的 works 目录, 点击 start.bat 运行。这里一开始有个模块要检查更新,可能会比较慢,多等一下就好。

​结束后转出的 midi 文件,在项目目录下的:works\midis 文件夹中。

五、参考引用

​ [1] bytedance/GiantMIDI-Piano

​ [2] 机器之心.万余首钢琴作品、一千多个小时,字节跳动发布全球最大钢琴MIDI数据集 - 知乎

我们弹下的每段旋律,终将在某个时刻回归。