Basic Pitch 保姆级上手指南:5步实现音频转MIDI,快速搞定多音高与弯音转录 📅 2026/8/17 21:32:13 Basic Pitch 保姆级上手指南5步实现音频转MIDI快速搞定多音高与弯音转录【免费下载链接】basic-pitchA lightweight yet powerful audio-to-MIDI converter with pitch bend detection项目地址: https://gitcode.com/gh_mirrors/ba/basic-pitch你有没有过这样的经历脑子里刚蹦出一段旋律随手用手机录了下来可等到想把它写进编曲软件时却发现对着波形图无从下手或者你从网上找到一段超喜欢的吉他solo想扒成MIDI来学习和声却只能靠耳朵一遍遍硬听。别急这类音频变MIDI的活儿现在可以交给一个专业工具来做。今天要给你介绍的Basic Pitch是 Spotify 音频智能实验室开源的轻量级自动音乐转录库它的看家本领是多音高转录音高弯曲检测——也就是说不但和弦能认出来连滑音、揉弦这类细节都能忠实记录。无论你是刚入门的音乐爱好者、想做翻唱的UP主还是需要扒谱的音乐制作人它都能帮你把宝贵的灵感快速变成可编辑的MIDI文件。在开始之前先说明一点本文所有命令行都可以直接复制运行你只需要准备好一个音频文件WAV、MP3、FLAC、M4A、OGG 都支持。一、为什么选它先看看它能为你解决什么传统音频转MIDI工具大多只能处理单音旋律碰到和弦就抓瞎更别提记录滑音这类细微变化。Basic Pitch 用一套轻量级神经网络解决了这些痛点它的核心差异点可以浓缩成四句话多音高识别能同时识别多个音符弹个和弦也能完整转录而不是只留下最高音或最低音。音高弯曲检测识别吉他滑音、弦乐滑奏等连续音高变化转录结果更接近真实演奏。乐器无关钢琴、吉他、人声、萨克斯……一个模型通吃不需要为每种乐器单独训练。轻量高效模型体积小、加载快普通笔记本就能流畅跑还提供了 TensorFlow、CoreML、ONNX、TFLite 四种格式供你按平台选择。一句话总结它小而美但对音乐转录该有的功能一个不少。而且它是纯 Python 库pip install就能装对新手非常友好。二、快速上手从安装到出MIDI的完整路径第1步安装 Basic Pitch最省事的安装方式就是直接用 pip 安装当前发布版本pip install basic-pitch这条命令会帮你把工具本身和它依赖的核心库librosa、pretty-midi 等一并装好。如果你希望走最新代码或参与开发也可以从源码安装git clone https://gitcode.com/gh_mirrors/ba/basic-pitch cd basic-pitch pip install -e .这条命令把仓库克隆到本地并以可编辑模式安装后续改动源码能立即生效。这里要特别提醒一句如果你用的是 Mac M1 芯片目前官方只支持 Python 3.10 版本其他 Python 版本建议用虚拟环境运行能省去不少兼容性麻烦。第2步准备一份听话的音频转换效果很大程度上取决于输入质量。想要一次成功请尽量满足这三点用清晰的音频源音量正常、无明显底噪、不要严重压缩过的文件。一次只录一件乐器Basic Pitch 在单乐器音频上表现最好多个乐器混在一起时转录难度会明显上升。格式随意但别太怪.wav、.mp3、.flac、.m4a、.ogg都可以模型内部会自动把音频重采样到 22050 Hz 并降为单声道处理。第3步执行第一次转换安装完成、音频就位后只需一行命令basic-pitch output_midi/ my_song.wav这条命令的作用是读取当前目录下的my_song.wav把转录结果保存到output_midi/文件夹里。稍等几秒到几十秒取决于音频长度你会看到终端打印出 ✨ Done ✨代表转换成功。第4步查看你的成果转换完成后打开output_midi/目录正常情况下你会看到一个.mid文件——这就是可以在任意DAWCubase、Ableton、FL Studio、Logic 等里直接打开的 MIDI 文件。第5步把MIDI导入你的音乐软件把.mid文件拖进你的 DAW选择你喜欢的音色播放你会发现旋律、和弦、甚至滑音都在里面了。到这一步你已经完成了人生的第一次音频变MIDI。小技巧如果你不想每次命令都记参数随时可以运行basic-pitch --help查看全部可用选项和默认值。三、核心功能拆解四项能力让你看得懂、用得上1. 三大输出通道模型到底在看什么Basic Pitch 的神经网络会同时输出三张热力图分别对应音符持续、音符起始和音高轮廓最终再由后处理代码把它们合成MIDI。你不需要理解细节但知道这三个概念后面调参时就不会一头雾水输出通道英文标识通俗理解影响什么音符持续note / frame某个音高在每个时刻响不响音符的长度与密度音符起始onset某个音高在哪个瞬间开始响音符的边界是否准确音高轮廓contour音高在音符内部的连续变化弯音、滑音的还原度2. 音高弯曲还原真实演奏的灵魂这是 Basic Pitch 最出彩的地方。默认情况下转录出的 MIDI 会自动带上 pitch bend弯音信息所以你听到的吉他推弦、萨克斯滑音在 MIDI 里不再是僵硬的一格一格音高而是平滑的连续变化。如果你希望重叠的和弦音各自拥有独立的弯音可以加上--multiple-pitch-bends参数——代价是每个音高会被映射到一个独立的 MIDI 轨道。3. 灵活的模型格式不同设备各有最优解模型文件位于basic_pitch/saved_models/icassp_2022/目录下同款模型提供了四种序列化格式。默认情况下工具会按TensorFlow → CoreML → TFLite → ONNX的顺序自动挑选可用的那个你也可以手动指定模型格式指定参数最适合的场景TensorFlow--model-serialization tf桌面端研究分析功能最完整CoreML--model-serialization coremlmacOS / iOS 设备TFLite--model-serialization tflite移动端、嵌入式设备ONNX--model-serialization onnx跨平台部署4. 可选的输出格式按需导出丰俭由人默认只生成 MIDI但你可以在命令后面追加开关让输出更丰富basic-pitch --save-midi --sonify-midi --save-note-events --save-model-outputs output_midi/ my_song.wav这条命令一口气生成了四类文件.midMIDI、.wavMIDI的音频渲染方便快速试听对比、.csv逐音符事件表适合数据分析、.npz模型原始输出供深度研究使用。四、进阶玩法调好这几个参数转录精度立竿见影新手阶段直接用默认参数就能出结果但当你遇到音符糊成一团或多出一堆杂音时就该轮到下面的调参技巧上场了。1. 用阈值控制灵敏度工具内部有两个核心阈值直接决定什么算一个音符参数默认值作用调高调低--onset-threshold0.5音符起始的判定门槛音符更少、更干净音符更多、更灵敏--frame-threshold0.3音符持续的判定门槛过滤弱音保留更多弱音比如你转录的是轻柔的钢琴独奏想多抓住一些轻触键的音符可以这样调basic-pitch --onset-threshold 0.4 --frame-threshold 0.25 output_midi/ gentle_piano.wav这条命令把两个阈值都调低了模型会更愿意认定弱信号为音符。反过来如果转录结果里杂音满天飞就把数值往高处调。2. 用频率范围锁定乐器每种乐器的音域都有边界。给模型限定频率范围能大幅减少跑出乐器音域的误检。吉他标准调弦的演奏范围大致在 82–880 Hzbasic-pitch --minimum-frequency 82 --maximum-frequency 880 output_midi/ guitar.wav这条命令告诉模型只保留 82–880 Hz 之间的音符。人声独唱则可以试试 80–1000 Hz效果类似。3. 用最小音符长度过滤碎音短促的误检音符常常是噪音或打击乐造成的设置一个最小长度就能把它们滤掉basic-pitch --minimum-note-length 200 output_midi/ audio.wav这条命令会丢弃所有短于 200 毫秒的音符转录结果立刻清爽不少。默认值是 127.7 毫秒如果你的音频节奏很快、音很短可以保持默认甚至调小。4. 在Python代码里调用把转录接入你的工作流如果你不想用命令行Basic Pitch 也提供了完善的 Python 接口。最简单的调用只需要三行from basic_pitch.inference import predict model_output, midi_data, note_events predict(my_song.wav)这条代码读取音频文件返回三样东西模型的原始输出、转录出的 MIDI 对象、以及逐音符事件列表。如果你要在循环里批量处理几百个文件建议先把模型加载一次再复用避免反复加载拖慢速度相关实现见basic_pitch/inference.pyfrom basic_pitch.inference import predict, Model from basic_pitch import ICASSP_2022_MODEL_PATH model Model(ICASSP_2022_MODEL_PATH) for audio in audio_list: model_output, midi_data, note_events predict(audio, model)五、实战场景三个真实案例照着做就行场景一把吉他即兴solo变成可学习的MIDI目标扒下一段吉他solo的旋律和弯音供练习和模仿。操作basic-pitch --minimum-frequency 82 --maximum-frequency 880 \ --sonify-midi --save-midi guitar_solo_midi/ my_solo.wav结果输出目录里得到带弯音的.mid文件和一段音频渲染。你可以在 DAW 中打开MIDI直观看到哪些音是滑上去的练习时对照弯音曲线比纯靠耳朵听高效得多。场景二把老师示范的钢琴曲转成乐谱参考目标把示范音频转成MIDI用于分析和弦进行。操作basic-pitch --onset-threshold 0.45 --frame-threshold 0.3 \ --save-note-events piano_ref/ teacher_demo.mp3结果不仅得到 MIDI还导出了音符事件 CSV。把 CSV 按起始时间排序就能看清每一拍同时响了几个音、构成什么和弦分析示范演奏的和声思路一目了然。场景三批量处理一整张专辑的素材目标把多首歌曲统一转成MIDI素材库。操作Basic Pitch 天然支持一次传入多个文件basic-pitch midi_library/ song1.wav song2.mp3 song3.flac结果三个文件依次转录全部输出到midi_library/目录。配合--debug-file debug.log参数还能在出问题时拿到详细的推理日志用于排查。六、避坑指南新手最容易踩的5个坑坑1转换结果里音符又多又乱原因音频含多个乐器、混响过重或阈值太低。解决优先使用单乐器、干声素材把--onset-threshold和--frame-threshold适当调高用--minimum-note-length过滤短音符。坑2装了包却提示模型加载失败原因想用的模型格式对应依赖没装全。解决按需补装对应依赖——TensorFlow 用pip install basic-pitch[tf]CoreML 用pip install basic-pitch[coreml]ONNX 用pip install basic-pitch[onnx]。通用兜底方案是pip install basic-pitch --force-reinstall重装一遍。坑3处理长音频时很慢或报磁盘不足原因模型对音频是按窗口滑动的文件越长中间结果越多。解决长文件建议先切成段落处理这是正常现象工具内部实现见basic_pitch/inference.py中的window_audio_file本身就是流式分窗的你的瓶颈通常只是磁盘空间。坑4Mac M1 上反复出现异常原因M1 芯片上并非所有 Python 版本都被支持。解决官方目前仅支持 Python 3.10其余版本请使用虚拟环境一步到位。坑5转录结果和原曲速度对不上原因MIDI 文件使用固定 tempo默认 120 BPM。解决用--midi-tempo指定与原曲一致的速度例如--midi-tempo 90在DAW里打开时速度就基本对齐了。七、收个尾给你的下一步行动清单到这你已经掌握了 Basic Pitch 的完整使用脉络从pip install basic-pitch一行安装到命令行一键出MIDI再到用阈值、频率范围、音符长度三个旋钮精细调校最后还能通过basic_pitch.inference把它嵌入你自己的代码工作流。从听不准到扒得下这个工具正在悄悄改变普通人获取乐谱的方式。下一步我建议你从这三件事开始找一段自己录的、干净的单乐器音频先跑一遍默认参数看看效果对照本文第四节试着调一两个参数感受阈值变化带来的差异如果你有批量需求把predict循环写成一个小脚本让转录成为你创作流程里顺手的一环。项目资源入口核心调用逻辑在basic_pitch/inference.py音符后处理在basic_pitch/note_creation.py参数定义与模型常量在basic_pitch/constants.py命令行入口在basic_pitch/predict.py官方 README 和tests/目录下的测试用例也是很好的学习材料。Basic Pitch 由 Spotify 音频智能实验室开发并持续维护基于 ICASSP 2022 论文《A Lightweight Instrument-Agnostic Model for Polyphonic Note Transcription and Multipitch Estimation》遵循 Apache License 2.0 开源。它可能不叫basic但它的确让人人都能扒谱这件事变得伸手可及——从今天这个晚上开始把你手机里存了三个月的那段灵感转成MIDI试试吧。【免费下载链接】basic-pitchA lightweight yet powerful audio-to-MIDI converter with pitch bend detection项目地址: https://gitcode.com/gh_mirrors/ba/basic-pitch创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考