当前位置: 首页 > news >正文

使用 piano_transcription_inference将钢琴录音转换为 MIDI

一、简介

  • piano_transcription_inference 是由 Qiuqiang Kong 等人开发的高精度钢琴转录工具,支持音符与踏板信息转 MIDI。
  • 简单易用,通过命令行或 Python API,都能快速完成从音频(MP3/WAV)到 MIDI 的转写。
  • 支持 GPU 加速,转录速度快,适合音乐创作、扒谱、教学等应用场景。

在这里插入图片描述

二、环境与安装

✅ 必备:

  • Python 3.7+
  • PyTorch ≥1.4(推荐 GPU 版本)
  • FFmpeg(处理 MP3 等格式)
pip install piano_transcription_inference
# 安装 PyTorch 和 FFmpeg,可根据实际环境选择

GPU 推荐配置:4GB +,帮助大幅提高速度;无 GPU 可用 CPU 模式,但推理较慢。


三、快速上手

方法一:Python API 示例

from piano_transcription_inference import PianoTranscription, sample_rate, load_audio# 加载音频
audio, _ = load_audio('your_piano.wav', sr=sample_rate, mono=True)# 初始化转录器,选择 cuda 或 cpu
transcriber = PianoTranscription(device='cuda')# 转录并保存 MIDI
transcriber.transcribe(audio, 'output.mid')
  • load_audio:统一采样率、单声道处理
  • transcribe:自动分段、推理、MIDI 写出,包含踏板信号

方法二:命令行调用

python3 example.py \--audio_path="your_piano.wav" \--output_midi_path="output.mid" \--cuda
  • 支持批量处理目录下所有音频
  • 无需改动代码即可快速实验

四、核心原理与可配置项

  • 使用高分辨率 CRNN 模型,结合 onset/offset 精确回归算法

  • 模型兼容踏板检测,生成完整演奏动态

  • 支持调整检测阈值:

    • onset_threshold(音符启动灵敏度)
    • offset_threshold(音符结束判定)
    • frame_threshold(帧级激活判断)
    • pedal_offset_threshold(踏板释放检测)

适当调参数,可提升转录精度或稳定性。


五、进阶技巧

  • GPU 多卡并行:可自定义修改脚本开启多 GPU 加速,大幅提升推理效率
  • 批量处理音频:可编写脚本遍历文件夹,输出目录结构对应的 MIDI 文件
  • 嵌入 DAW 流程:输出 MIDI 后,可导入如 Cubase/FL Studio 等 DAW 进行后期编辑

六、常见问题

  1. NoBackendError → FFmpeg 未安装
  2. 内存不足(Killed) → 降低 batch、关闭 GUI、多段处理
  3. 速度慢 → 优先使用 GPU、或降低 segment_samples(默认 10s 一段)

七、应用场景

  • 📝 扒谱:高速提取古典/流行钢琴曲谱
  • 🎓 音乐教学:学生录音即时转 MIDI,便于分析演奏
  • 🎼 MIDI 数据生成:可用于训练 DAW、音乐生成模型
  • 🛠️ 研究:配合 MAESTRO 数据集训练,支持自定义模型或微调

八、总结

  • 高精度:支持踏板,音符检测 F1 高
  • 易集成:一条命令或几行代码即可完成 MIDI 导出
  • 💻 多平台:支持 Linux/macOS/Windows(推荐)
  • 🔧 可扩展:可自定义训练新模型,适配特殊演奏风格


Windows GUI 工具推荐

若你希望使用无需编程的 GUI 工具,可以尝试社区封装的 Pianotrans

  • 多平台支持:Windows、Linux、macOS
  • 自带踏板信息转录功能
  • Windows 下可直接解压运行 .exe,拖入音频即可输出 MIDI ([dongaigc.com][7])。

使用步骤:

  1. 安装必要运行库(如 Visual C++ Redistributable)
  2. 解压下载的 PianoTrans
  3. 双击运行,选择音频,等待转完即可生成 MIDI 文件。

实用小工具

App Store 截图生成器、应用图标生成器 、在线图片压缩和 Chrome插件-强制开启复制-护眼模式-网页乱码设置编码
乖猫记账,AI智能分类的最佳聊天记账App。

http://www.lryc.cn/news/597305.html

相关文章:

  • 开闭原则在C++中的实现
  • 基于Tornado的WebSocket实时聊天系统:从零到一构建与解析
  • 【js(5)原型与原型链】
  • 自由学习记录(72)
  • JavaEE Spring框架的概述与对比无框架下的优势
  • 大模型开发
  • 【Ansible】Ansible 管理 Elasticsearch 集群启停
  • NAPI node-addon-api 编译报错 error C1083: “napi.h”: No such file or directory
  • 【esp32s3】GPIO 寄存器 开发解析
  • MACOS安装配置Gradle
  • 垃圾回收介绍
  • static 关键字的 特殊性
  • 双流join 、 Paimon Partial Update 和 动态schema
  • 【硬件-笔试面试题】硬件/电子工程师,笔试面试题-2,(电路分析/MOS管)
  • OpenLayers 快速入门(四)View 对象
  • PyTorch中nn.Module详解和综合代码示例
  • 大模型提示词漏洞攻防实战:从注入攻击到智能免疫系统的进化之路
  • mac电脑搭载c、c++环境(基于vs code)
  • 在mac 上zsh 如何安装最新的 go 工具
  • GRE实验
  • 微软Fabric重塑数据管理:Forrester报告揭示高ROI
  • 「iOS」——KVC
  • linxu CentOS 配置nginx
  • 【音视频学习】四、深入解析视频技术中的YUV数据存储方式:从原理到实践
  • 开源UI生态掘金:从Ant Design二次开发到行业专属组件的技术变现
  • 7月23日华为机考真题第二题-200分
  • 7月23日华为机考真题第一题100分
  • 关于原车一键启动升级手机控车的核心信息及注意事项
  • 将AI协作编程从“碰运气”的提示工程(Prompt Engineering)提升到“可预期”的上下文工程(Context Engineering)
  • 驯服AI的“魔法咒语”:Prompt提示词工程使用教程