简介

此项目可将钢琴录音(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-Piano: https://github.com/bytedance/GiantMIDI-Piano

piano_transcription: https://github.com/bytedance/piano_transcription

一网友在此基础制作的修改版: https://zhuanlan.zhihu.com/p/270999354

在此基础上, 我再稍微加工了下, 可批量转置, 使得更易使用

下面是一些转置后制作的一些视频

2011年Zetacola《赤色要塞》的钢琴演奏原版视频

《魂斗罗》《赤色要塞》钢琴--大小姐Zetacola_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili​www.bilibili.com

音质修复+特效钢琴版

FC 赤色要塞 钢琴纯音乐 Zeta演奏扒谱音质修复_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili​www.bilibili.com

使用方法只需三步即可

  1. 下载资源
  2. 安装环境
  3. 使用

下载下面的资源包, 解压

链接: 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:钢琴转谱资源包ffmpegbin(将路径改为你所解压的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

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

文件比较大差不多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即可

此版本的visual studio无法打开下列项目_深度学习实现高精度钢琴曲转谱Piano transcription项目简明使用教程...相关推荐

  1. 此项目与visual studio的当前版本不兼容_忘掉GOPATH,迎接Go modules,进入Go项目依赖库版本管理新时代...

    Go SDK 1.13测试版已经发布了.从此版本开始,Go modules依赖库版本管理特性将正式开始推荐使用.本文将解释一些和Go modules相关的一些命令和概念. Module(模块)定义为一 ...

  2. DirectX SDK版本与Visual Studio版本

    DirectX SDK版本与Visual Studio版本 对于刚刚接触 DirectShow 的人来说,安装配置是一个令人头疼的问题,经常出现的情况是最基本的 baseclass 就无法编译. 一开 ...

  3. Visual Studio Code 打开程序文件中文乱码解决方法

    文章原始地址: http://feotech.com/?p=76 \ 使用Visual Studio Code打开程序文件后对应的中文乱码,造成这种现象的原因是文件的编码方式不同. 可以通过调整打开文 ...

  4. 删除右键菜单中的选项:在Visual Studio中打开

    删除右键菜单中的选项:在Visual Studio中打开 1. 通过新增注册表中项目来解决 按下Win + R键 > 输入regedit > OK > 系统会跳出一个弹框,选择&qu ...

  5. Visual Studio Code打开项目

    Visual Studio Code打开项目:

  6. 清理Visual Studio最近打开的项目、文件、查找内容和最近引用组件

    清理Visual Studio最近打开的项目.文件.查找内容和最近引用组件

  7. Visual Studio 2015打开ASP.NET MVC的View提示“Object reference not set to an instance of an object“错误的解决方案

    Visual Studio 2015打开ASP.NET MVC的View提示"Object reference not set to an instance of an object&quo ...

  8. 关掉visual studio 在桌面上右键---在visual studio中打开

    关掉visual studio 在桌面上右键-在visual studio中打开 visual studio 在桌面上右键-会出现在visual studio中打开 看这里,就可以 1.新建个文本文档 ...

  9. Visual Studio 2010打开工程提示“未知错误”解决办法

    Visual Studio 2010打开工程,提示"未知错误"弹窗,原因是整理电脑时,误删除.NET Framework. 打不开工程是因为缺少.NET Framework,安装上 ...

最新文章

  1. python if else格式_Python if else条件语句详解
  2. 论文浅尝 - EMNLP2020 | 通过词重排序跨语言解析
  3. Specificity考量
  4. 详述SaltStack Salt 命令注入漏洞(CVE-2020-16846/25592)
  5. 如何借助大数据进行宏观经济分析
  6. java环境变量配置不成功,已经解决
  7. NoSQL数据库知识
  8. 计算机id dns知识,智能DNS解析知识集锦
  9. 【redis:二】持久化
  10. 《阿凡达》超越《泰坦尼克号》冠影史(图)
  11. linux mint19内核,aria2的Linux Mint 19安装过程完整总结
  12. The JSON value could not be converted to System.Int64
  13. Platform 概述
  14. python hook(钩子)函数
  15. 日化用品行业数智化B2B系统简化分销流程,提升日化用品企业供应链竞争力
  16. 2017年中国智能家居行业十大预测
  17. “创新实践”项目介绍3:《利用深度学习进行VR手柄光点检测》
  18. Ubuntu无桥接模式或连不上网(详细解决方法
  19. php 调用java 接口
  20. 有关于计算机英语的论文题目,容易写的计算机英语论文选题 计算机英语论文题目哪个好...

热门文章

  1. 高质量响应式的 HTML/CSS 网站模板
  2. 前端怎么自我介绍_实习|猫眼前端面试经历,问问题很关键(已拿offer)
  3. php如何定义和使用常量,PHP中如何定义和使用常量_PHP教程
  4. 理解 Linux 条件变量
  5. [cs231n][Module 1: Neural Networks] Image Classification
  6. centos7之关于时间和日期以及时间同步的应用
  7. Spring Cloud Feign 1(声明式服务调用Feign 简介)
  8. spring boot 多数据源分布式事务处理
  9. [iOS-UI]点击清空按钮,却会有提交的感觉
  10. ServerSocketChannel的使用例子