### [使用AI实现高精度钢琴曲转谱Piano Transcription项目简明使用教程](https://pmself.com/article/3549) **Published:** 2024-01-15T09:35:54 **Author:** chifat **Excerpt:** 简介 此项目可将钢琴录音(mp3, wav等格式)转录成MIDI文件, 识别的精度非常之高, 扒谱党的福利。相… ![](https://pmself.com/wp-content/uploads/2024/01/20240115173433.jpg) ## 简介 此项目可将钢琴录音(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](https://zhuanlan.zhihu.com/p/269218623) **GiantMIDI-Piano:** [https://github.com/bytedance/GiantMIDI-Piano](https://link.zhihu.com/?target=https%3A//github.com/bytedance/GiantMIDI-Piano) **piano\_transcription:** [https://github.com/bytedance/piano\_transcription](https://link.zhihu.com/?target=https%3A//github.com/bytedance/piano_transcription) 一网友在此基础制作的修改版: [https://zhuanlan.zhihu.com/p/270999354](https://zhuanlan.zhihu.com/p/270999354) 在此基础上, 我再稍微加工了下, 可批量转置, 使得更易使用 下面是一些转置后制作的一些视频 2011年Zetacola《赤色要塞》的钢琴演奏原版视频[《魂斗罗》《赤色要塞》钢琴–大小姐Zetacola\_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili​www.bilibili.com/video/BV1Fx411Q74p](https://link.zhihu.com/?target=https%3A//www.bilibili.com/video/BV1Fx411Q74p) 音质修复+特效钢琴版[FC 赤色要塞 钢琴纯音乐 Zeta演奏扒谱音质修复\_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili​www.bilibili.com/video/BV1u54y1k7ou](https://link.zhihu.com/?target=https%3A//www.bilibili.com/video/BV1u54y1k7ou) 使用方法只需三步即可 1. 下载资源 2. 安装环境 3. 使用 下载下面的资源包, 解压 链接: [https://pan.baidu.com/s/1aqnlgfFCjB0KIlPEB8RcRg](https://link.zhihu.com/?target=https%3A//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安装即可 ![](https://pic4.zhimg.com/80/v2-0a10dd3cb88c20ec8d697e86fc039da7_720w.webp) 在cmd里输入python出现下面提示及安装成功 ![](https://pic2.zhimg.com/80/v2-71fd0ed236aeee53b1d63596e096fd55_720w.webp) ### 02 项目所依赖的库 在项目目录根下按住shift在空白处点击powershell打开 ![](https://pic3.zhimg.com/80/v2-2e1fca66f81d036a4c11acc44f036e0e_720w.webp) 输入下面命令, 升级pip版本(我装有多个python版本, 所以图片显示命令不一样, 新手直接输入下面命令即可) ``` python -m pip install --upgrade pip ``` ![](https://pic4.zhimg.com/80/v2-2ac1054622773d6558fd6ae8f6b3175b_720w.webp) 安装依赖环境 ``` pip install -r .\requirements.txt ``` ![](https://pic3.zhimg.com/80/v2-4dee9104275efdc6155ebb4979461cf2_720w.webp) ### 03 安装ffmpeg 需要把ffmpeg的bin目录添加到环境变量 右键点击**此电脑**—**属性** , 点击**高级系统设置**, 高级里边的**环境变量**, 双击**Path**, 选择新建, 将ffmpeg下的bin目录路径复制的里边, 如 `F:\钢琴转谱资源包\ffmpeg\bin`(将路径改为你所解压的ffmpeg的bin目录路径) 然后点击确定 ![](https://pic3.zhimg.com/80/v2-0b8404fe7b9f4a8726733e18d817d732_720w.webp) ![](https://pic3.zhimg.com/80/v2-fee67376af076794f7b9ae26fc205c3e_720w.webp) ![](https://pic2.zhimg.com/80/v2-bd67fea70f7b0c9b4a63db730e4df145_720w.webp) ![](https://pic3.zhimg.com/80/v2-be49227d4e6694ac5e8ec5d82975a7c2_720w.webp) ![](https://pic3.zhimg.com/80/v2-adc74151ae8e2c7b8269b42a87e05ad2_720w.webp) 在cmd里输入ffmpeg 有显示ffmpeg version 4.3.1字样的即添加好了环境变量 ![](https://pic1.zhimg.com/80/v2-ac1a3bebed96cfdb99d2cbf9d5ab9484_720w.webp) ### 04 安装cuda (使用CPU跳过此步骤) > _CUDA_ 是 NVIDIA 的一种并行计算平台和编程模型。使用显卡转置比用CPU快很多 cuda版本和驱动支持有关,显卡驱动会影响支持cuda的版本 , 为避免不必要的错误, 先去官网更新驱动到最新版本,这里以win10 1909版本的系统为例 win7等其他系统去NVIDIA控制面板查看支持cuda的最高版本, 选择相应的cuda版本 驱动下载地址[https://www.nvidia.cn/geforce/drivers/](https://link.zhihu.com/?target=https%3A//www.nvidia.cn/geforce/drivers/) 安装显卡最新驱动, 再去下载cuda工具包11.1安装(有3G大) 下载地址[https://developer.nvidia.com/zh-cn/cuda-downloads](https://link.zhihu.com/?target=https%3A//developer.nvidia.com/zh-cn/cuda-downloads) ![](https://pic2.zhimg.com/80/v2-8e15ab6832cd38194ae0d009a4724c55_720w.webp) 在安装界面选择自定义, 如图只勾选cuda当中的那几项, 其他不必勾选, 选了有可能安装失败 ![](https://pic2.zhimg.com/80/v2-740843d37cd5b546c1fc041826ee8d7d_720w.webp) ![](https://pic3.zhimg.com/80/v2-be53de6a68a82624e7ae1e3f80cb2a7e_720w.webp) 安装完成后显示 ![](https://pic2.zhimg.com/80/v2-08240fd59ac0d1b41a42daf818626f91_720w.webp) ### 05 安装pytorch 到官网下载自己系统合适的版本, **如果使用CPU**选择cuda版本选择none https://pytorch.org/ 这里选择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 ``` ![](https://pic3.zhimg.com/80/v2-ea72194614c387f0d77e2d3997f6e6fe_720w.webp) 文件比较大差不多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 ``` ![](https://pic1.zhimg.com/80/v2-42fdface1502d3a025ce3605e30a13fc_720w.webp) * * * ## 项目使用 把MP3,或wav文件放入input文件夹, 可以放多个音频文件 ![](https://pic4.zhimg.com/80/v2-388042340af4afc2083e9833434a439b_720w.webp) 在项目piano\_transcription按住shift在空白处右键点击, 选择powershell打开命令行, 输入以下命令, 等待程序跑完即可 ``` python .\start.py ``` ![](https://pic1.zhimg.com/80/v2-2507884906c9f79329191dd63a92c45c_720w.webp) 使用GPU进行转置还是挺快的, 大概10秒~1分多钟一首 跑完后可在output文件夹得到转置好的mid文件, 使用播放器播放即可, 可使用Pianoteq的音源生成高音质的mp3, 如果效果不是很好, 可以使用midi编辑软件进行进一步的修改。midi文件还可以通过一些软件转成琴谱 如果使用CPU转置可以修改start.py文件把第19行里边的cuda改为cpu即可 ![](https://pic2.zhimg.com/80/v2-09aee1174cbb38b4e66e6cc23c1c3f11_720w.webp) **Tags:** Transcription, 钢琴曲转谱 **Categories:** AI, 开源项目, 资源 ---