一、简介
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 进行后期编辑
六、常见问题
NoBackendError
→ FFmpeg 未安装- 内存不足(Killed) → 降低 batch、关闭 GUI、多段处理
- 速度慢 → 优先使用 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])。
使用步骤:
- 安装必要运行库(如 Visual C++ Redistributable)
- 解压下载的
PianoTrans
- 双击运行,选择音频,等待转完即可生成 MIDI 文件。
实用小工具
App Store 截图生成器、应用图标生成器 、在线图片压缩和 Chrome插件-强制开启复制-护眼模式-网页乱码设置编码
乖猫记账,AI智能分类的最佳聊天记账App。