钢琴扒带神器 Piano transcription 实战心得
最近偶然间得知字节跳动发布了一个基于机器学习的钢琴扒带神器 Piano transcription ,遂折腾了一晚上在我的笔记本上跑通了这玩意。下面就分享一下折腾这玩意的心得。
首先说一下效果,如果输入的钢琴音源够干净的话效果还是非常不错的,在文后我会用a叔的butter fly来展示效果。
此程序属于开源软件。官方页面 https://github.com/bytedance/piano_transcription 官方页面上有一些文档,但是对与初次接触的人来说非常不友好,照着官方文档几乎没法顺利把程序跑起来。
为了运行此程序首先需要一个 Python 环境,我推荐用Anaconda ,安装后先把pip 和conda换到国内源,不然等会会很蛋疼,换完源后执行 conda install pytorch torchvision torchaudio cudatoolkit=10.2 -c pytorch 命令安装pytorch库,否则程序无法执行,之后前往上方GitHub网址下载 requirements.txt,用cd命令切换到与requirements.txt相同目录下执行 pip install -r requirements.txt 然后执行pip install piano_transcription_inference ,由于anaconda并不能调用电脑上的解码器,因此还要执行 conda install ffmpeg -c conda-forge 以安装FFmpeg包。最后一步,前往https://github.com/qiuqiangkong/piano_transcription_inference 下载example.py ,按照python example.py --audio_path='resources/cut_liszt.mp3' --output_midi_path='cut_liszt.mid' --cuda 这样的格式执行,就可以在example.py的相同目录下找到midi了。
使用a叔的 Butter-Fly 作为演示 具体请见 BV1rA411j7Ft

