前阵子体验了下站里的MP3转MIDI,发现这个转换效果非常好,但有时间限制。站里给了原项目的链接,经过简单翻找了解到用的是字节做的GiantMIDI-Piano的一个AI项目,针对钢琴训练了上千小时的音频数据集。得益于神经网络得天独厚的优势,其效果出类拔萃。站里是有示例的
[钢琴转谱技术]夜空的寂静
看了他们的介绍后,我的第一反应是:无论如何,弄到本地,跑起来。
经过数小时的摸爬滚打,我顺利在本地跑起来了这个模型。模型很小,老爷机也能跑。我是用CPU跑的,速度还过得去,比站里的快不少。后续有时间用上CUDA拿显卡跑会更快。
步骤大概是这样的:
git和python这些软件我已经有了
先用git把项目的仓库克隆到本地(其实就是一种复制粘贴)
接下来用python的包管理器pip安装依赖(我这里还部署了其他乱七八糟的项目,所以用了venv创建虚拟环境把GiantMIDI-Piano的python环境隔离开)
安装torch(这个是最基本的依赖,没有在pip的源里,要另外装)虽然显卡是N卡,但我装了CPU only的版本,第一次搞不求快,求稳
下载权重文件(即模型本身或者模型的参数)放在指定位置
安装wget(如果是Linux系统里本来就有)和ffmpeg(一个开源编解码器)
然后就可以用了
这个项目对软件的版本宽容度很高,python大于等于3.7,torch大于等于1.4.0都行,但是,唯独librosa这个依赖好像不能用最新的。我用0.9.2是可以的。
后续,
花几分钟又装了torch2.0.1+cu118,用显卡跑上了(GTX1650),非常快,三分半的曲子,半分钟就直接秒了。
懒得扒的钢琴曲子也可以扔我邮箱:ziphouse@qq.com
无偿,但人是住校牲,回复周期高达两周以上