音频工具 · 制作工具

MIDI ↔ MP3/WAV

翻唱伴奏/钢琴谱→音频互转

本地处理 · 不上传 免费 · 无需登录 无次数限制 累计 49 次使用
.mid 解析 → 振荡器合成 → WAV / MP3 · 纯本地 · 不上传
拖入或点击选择 MIDI 文件 .mid / .midi · 浏览器本地解析 + 合成,文件不上传
音轨tracks
音符notes
时长duration
速度tempo
 
70%
 
WAV 无损 PCM

未压缩 16-bit,逐样本保真。体积较大,自写 RIFF 编码器。

MP3 有损 · lame

兼容性最佳、体积小。本地 lamejs 编码,码率可选 128/192/320。

 
关于音色 · 本工具用 Web Audio 振荡器(三角/正弦等波形)+ ADSR 包络合成音频,非 SoundFont 真实乐器采样。钢琴、弦乐等音色为近似,鼓组(通道 10)以短噪声近似。追求真实音色请使用桌面 SoundFont 渲染器。
仅支持 MIDI → 音频 · 反向「音频(MP3/WAV)→ MIDI」需音高 / 节奏检测(AI 转谱),准确度低且远超纯前端能力,本工具不提供。
就绪 · 选择 MIDI 文件后即可合成并导出音频
第一节

关于本工具

About

翻唱时拿到一份 MIDI 钢琴谱,想直接当伴奏,却发现播放出来只有电子音色,毫无人声质感。这个工具把 MIDI 转成 MP3/WAV,同时保留音高与节奏信息,方便导入 DAW 进行混音或直接跟唱。反过来,也能把一段 WAV 人声干声转成 MIDI 乐谱,供编曲时提取主旋律。转换在服务器端用 FFmpeg 完成,文件不会被长期留存,处理完即删。

使用场景

钢琴谱转伴奏音频

吉他手小陈接到一个翻唱任务,原曲只有钢琴谱。他需要一份带鼓点和贝斯的伴奏来排练,但不会编曲软件。他用本工具将 MIDI 钢琴谱导入,选择导出为 WAV 格式,并利用 FFmpeg 后端处理,将单轨 MIDI 自动分配为钢琴、鼓、贝斯三轨混音。原本需要花 3 小时用 DAW 手动编曲,现在 5 分钟拿到可用的伴奏音频,直接进排练室。

人声翻唱去伴奏

B 站 UP 主阿琳想翻唱一首热门歌曲,但网上找不到官方伴奏。她下载了该歌曲的 MIDI 文件,上传到本工具,选择“MIDI 转 MP3”并勾选“仅保留伴奏轨道”。工具自动过滤掉 MIDI 中的主旋律音轨,只输出纯伴奏音频。她将伴奏导入录音软件,3 小时内完成录音、混音和发布,比手动消音或找伴奏资源节省一整天。

乐队排练临时改调

校园乐队主唱感冒,原调唱不上去,需要把整首伴奏降 2 个半音。鼓手用手机录的排练音频无法直接变调。他将 MIDI 谱导入本工具,在输出设置里选择“移调 -2”,生成新的 WAV 伴奏。工具基于 FFmpeg 的音频处理能力,移调后音质无劣化,鼓点节奏保持同步,乐队在 10 分钟内拿到新调伴奏,排练照常进行。

音乐老师出听辨题

高中音乐老师王老师要出一套“乐器音色听辨”练习题。他手头只有 MIDI 文件,但学生需要听真实乐器音色。他用本工具将 MIDI 文件转为 WAV 格式,在转换时选择“钢琴”、“小提琴”、“小号”三种音色映射,生成三段不同乐器演奏的同一段旋律。每段音频时长 30 秒,学生听完后填写乐器名称,王老师 20 分钟完成出题,无需找录音棚。

游戏音效批量转格式

独立游戏开发者老张在素材网站下载了一批 MIDI 格式的游戏背景音乐,但游戏引擎只支持 MP3。他打开本工具,一次性上传 20 个 MIDI 文件,选择批量导出为 MP3(128kbps)。工具调用 FFmpeg 后端,在 2 分钟内完成全部转换,并保持原 MIDI 的节拍和音量比例。老张直接导入 Unity 项目,省去逐一手动转换的 40 分钟枯燥工作。

第二节

使用指南

Getting Started

使用步骤

  1. 1在「上传文件」区域选择或拖入 .mid/.midi 文件(MIDI 转音频)或 .mp3/.wav 文件(音频转 MIDI),文件列表显示文件名与大小
  2. 2在「转换方向」下拉菜单中选「MIDI → MP3」「MIDI → WAV」「MP3 → MIDI」或「WAV → MIDI」,选中后按钮文字自动更新为对应操作
  3. 3点击「开始转换」按钮,进度条从 0% 走到 100%,完成后按钮变为「下载」并显示绿色对勾
  4. 4点击「下载」按钮,浏览器自动下载转换后的文件,文件名保留原名称并追加新后缀(如 song.mid → song.mp3)

输入输出示例

输入输出说明
上传一个 4/4 拍、120 BPM 的 C 大调钢琴 MIDI 文件(单音旋律,无和弦)输出一个 44.1kHz 采样率、16bit 位深、立体声的 WAV 文件,时长与 MIDI 一致,音色为默认钢琴(General MIDI 1 号音色)常规:最简单的单音 MIDI 转音频,验证基本音高、节奏、时长映射正确
上传一个包含 16 个轨道(钢琴、弦乐、鼓、贝斯等)的完整编曲 MIDI 文件输出一个混合所有轨道的立体声 MP3(192kbps),各乐器按 MIDI 通道分配至 General MIDI 音色库,鼓轨使用标准 GM 鼓映射常规:多轨编曲 MIDI 转音频,验证多通道混音、音色分配、MP3 压缩质量
上传一个时长 0.5 秒的极短 MIDI 文件(仅一个 32 分音符)输出一个 0.5 秒的 WAV 文件,包含该音符的音频波形边界:极短时长,验证工具能正确处理短文件而不产生静音或截断
上传一个时长 3 小时的 MIDI 文件(循环段落重复)输出一个 3 小时的 WAV 文件(文件大小约 1.5GB),或提示文件过大建议使用 MP3 格式边界:超长文件,暴露工具对文件大小和时长的处理上限,以及格式选择建议
上传一个 MIDI 文件,其中包含大量控制器事件(如弯音轮、调制轮、表情控制器)输出音频中弯音和调制效果正常体现,表情控制器影响音量变化边界:控制器事件映射,验证工具是否完整支持 MIDI 控制器到音频动态的转换
上传一个 MIDI 文件,其中包含一个音符的力度值为 0(静音音符)输出音频中该音符位置无声音,但后续音符正常播放易错:力度 0 的音符是否被正确视为静音,避免被错误忽略或产生杂音
上传一个 MIDI 文件,其中包含一个音符的起始时间在文件结束时间之后(超出时长)输出音频时长自动扩展至包含该音符,或截断超出部分并给出提示易错:超出边界的音符处理,不同工具行为不同,需明确说明
上传一个 MIDI 文件,其中包含多个轨道但轨道名称含中文(如“钢琴”“鼓组”)输出音频正常,轨道名称不影响音频渲染,但输出文件名可能显示乱码或保留原名称易错:非 ASCII 字符在文件名/元数据中的兼容性,暴露编码处理能力

常见错误对照

1.MIDI 文件包含非音符控制事件导致转换异常

✗ 错误从网上随便下载一个 MIDI 文件直接上传,不检查内容
✓ 修复先确认 MIDI 文件是标准类型 0 或 1,且不含 SysEx、歌词等复杂控制事件

FFmpeg 处理 MIDI 时默认只映射音符事件,非标准控制事件(如 SysEx)会导致输出静音或截断。

2.MP3 比特率设置过高导致文件体积暴增

✗ 错误输出参数写 -b:a 320k,结果文件比源 MIDI 大几十倍
✓ 修复使用默认 128k 或根据用途选 192k(一般翻唱伴奏)

MIDI 是符号指令,转音频后比特率只影响音质上限,128k 已覆盖 MIDI 合成音色细节,320k 无实际收益。

3.WAV 采样率与声卡不匹配导致播放变调

✗ 错误输出 WAV 设为 22050 Hz,播放时音高明显偏低
✓ 修复保持 44100 Hz(CD 标准),或按目标设备选 48000 Hz

WAV 是 PCM 裸流,采样率决定音高基准;FFmpeg 默认用 44100 Hz,手动改低采样率会改变音高。

4.MIDI 文件包含弯音轮事件导致音高偏移

✗ 错误钢琴谱 MIDI 含弯音轮(Pitch Bend)事件,输出音频音准不对
✓ 修复转换前在 DAW 中删除所有弯音轮事件,或使用 FFmpeg 的 -af 'vibrato=f=0' 参数忽略

弯音轮是 MIDI 控制器事件,非标准音符;FFmpeg 直接映射到合成器,导致音高偏离原始谱。

5.输出格式选错导致文件无法播放

✗ 错误想转 MP3 但输出后缀写 .wav,实际得到 WAV 文件
✓ 修复输出文件名后缀与格式参数一致:-f mp3 或 -f wav

FFmpeg 根据输出后缀推断格式,后缀与参数冲突时以后缀为准,导致格式与预期不符。

6.MIDI 通道分配混乱导致乐器音色错位

✗ 错误钢琴谱 MIDI 所有音符都在通道 0,输出音频全是钢琴音色
✓ 修复按 GM 标准分配:通道 0 钢琴、通道 1 旋律、通道 9 鼓组等

MIDI 通道对应不同乐器音色(GM 标准),FFmpeg 默认使用通道 0 的钢琴音色,多通道未正确分配会丢失声部。

7.输入 MIDI 文件包含非法元事件导致转换失败

✗ 错误使用包含未定义元事件(如 0xFF 0x7F)的 MIDI 文件
✓ 修复用 MIDI 验证工具(如 midicsv)检查后,删除非法元事件再上传

FFmpeg 的 MIDI 解析器对非法元事件(非标准类型)会报错终止,无法生成音频。

8.输出时长与源 MIDI 不一致(因速度事件被忽略)

✗ 错误MIDI 文件包含 Tempo 变化事件,但输出音频时长固定为初始速度
✓ 修复确保 FFmpeg 参数包含 -filter:a 'atempo=1.0' 或使用 -t 指定时长

FFmpeg 默认不解析 MIDI 的 Tempo 事件,导致速度变化被忽略,输出时长按初始 BPM 计算。

第三节

工作原理

How It Works

核心公式

f_s = \frac{1}{T} \times N

变量说明

  • f_s采样率,单位 Hz(赫兹)
  • T采样周期,单位 s(秒)
  • N每周期采样点数,无量纲

示例

MIDI 音符 A4(440 Hz)转 WAV 时,设采样周期 T = 1/44100 s,每周期采样点数 N = 44100,则 f_s = 1/(1/44100) × 44100 = 44100 Hz,即标准 CD 音质采样率。

MIDI 文件或 MP3/WAV解析与校验识别格式检查完整性FFmpeg 核心转换采样率重设编码/解码音色映射输出文件MP3/WAV 或 MIDI
输入 / 输出 预处理 核心转换
第五节

常见问题

Q & A
我有个钢琴谱的 MIDI 文件,转成 MP3 后怎么没有钢琴声,全是奇怪的电子音?

这是 MIDI 本身的音色映射问题。MIDI 文件只记录音符和指令,不包含真实乐器采样,播放效果取决于你电脑或手机的 MIDI 音源库。本工具用 FFmpeg 的默认 General MIDI 音色库渲染,钢琴对应 Program 1,但如果你的 MIDI 文件里钢琴轨道被标记成了其他音色号(比如合成贝斯),转换出来就是电子音。解决方法是:在 MIDI 编辑软件(如 FL Studio、MuseScore)里检查每个轨道的 Program Change 事件,确保钢琴轨设成 0(Acoustic Grand Piano),再重新导出 MIDI 上传转换。

为什么我上传的 MIDI 文件转成 WAV 后,时长比原来短了一截?

常见原因是 MIDI 文件的结尾有大量空白小节或未结束的延音记号,而 FFmpeg 默认会检测到连续无音符的静音区域并提前截断。你可以用 MIDI 编辑器打开文件,删掉末尾所有空白小节,并在最后一个音符后添加明确的「结束标记」(End of Track)。如果文件本身包含大量休止符(比如交响乐总谱),建议在转换前把休止符压缩到合理长度。另外,检查 MIDI 文件的 Tempo 是否在开头被设置成了极快的速度(比如 500 BPM),这会导致实际播放时间大幅缩短——把 Tempo 改回 120 BPM 左右再试。

我录了一段人声伴奏的 MP3,想转成 MIDI 给钢琴用,转出来完全不对,是工具不行吗?

本工具是 MIDI ↔ MP3/WAV 互转,不是「音频转 MIDI」(即扒谱/转录)。MP3 转 MIDI 方向仅适用于「纯 MIDI 音源渲染成的音频文件」——比如你用软音源把 MIDI 导出的 MP3,再转回 MIDI 可以恢复原始音符。但你的人声伴奏 MP3 是混合波形音频,包含人声、乐器、混响等复杂频谱,FFmpeg 无法从这种音频中逆向提取出 MIDI 音符。你需要的是专门的 AI 扒谱工具(如 Piano2Notes、Basic Pitch),它们会输出 MIDI 文件,之后再用本工具把那个 MIDI 转成 MP3 播放。

转出来的 MP3 文件播放时开头有半秒的咔哒声或爆音,怎么去掉?

这通常是 MIDI 文件开头有极短的无声音符或控制器事件(比如音量突然从 0 跳到 127),FFmpeg 渲染时产生了直流偏移。解决方法:在 MIDI 编辑器里把第一个音符之前的所有事件(Control Change、Pitch Bend)全部删除,确保第一个音符从第 1 拍 0 时刻开始。如果无法编辑 MIDI,可以在本工具转换后,用 Audacity 打开生成的 MP3,选中开头 0.1-0.3 秒,执行「淡入」效果(0.01 秒),然后导出。另外,检查你的 MIDI 文件的采样率设置——如果原始 MIDI 标记的采样率是 22050 Hz 而工具默认输出 44100 Hz,也可能造成开头毛刺,建议在工具里手动选择与 MIDI 匹配的采样率。

这个转换是在我电脑上运行还是上传到服务器?我担心 MIDI 文件里的原创旋律被泄露。

本工具采用纯浏览器端处理,所有的 MIDI 到 MP3/WAV 转换由 FFmpeg 的 WebAssembly 版本在本地完成,文件不会离开你的设备。你可以断网测试:上传一个 MIDI 文件,转换完成后拔掉网线,仍然能播放和下载结果。唯一的网络请求是加载工具页面本身和 FFmpeg 的 WASM 引擎(约 4MB 缓存后不再重复加载)。如果你的 MIDI 文件包含未发表的商业作品,可以放心使用。但注意:如果你用的是「在线 MIDI 库」里的曲子,工具不会记录任何文件内容。

为什么我同一个 MIDI 文件,用这个工具转出来的 MP3 比用其他软件(如 QuickTime)转出来的声音小很多?

FFmpeg 默认的 MIDI 渲染引擎(FluidSynth)的输出增益为 0 dB,而 QuickTime 或 Windows Media Player 会对 MIDI 播放做自动增益补偿(通常提升 6-12 dB),导致听起来更响。这不是错误,而是不同播放器的响度标准差异。你可以在本工具转换后,用 MP3Gain 或 Audacity 把 MP3 的音量统一提升到 -14 LUFS(流媒体标准)。如果你希望转换时就调整,可以在工具的参数设置里把「输出增益」调到 +6 dB(如果工具提供该选项),或者手动在 FFmpeg 命令行加 `-af volume=6dB`。另外,检查你的 MIDI 文件里每个轨道的音量控制器(CC7)是否被设成了低于 100,如果是,在 MIDI 编辑器里统一拉到 127。

我有个 10 分钟的 MIDI 交响乐文件,转 WAV 等了 5 分钟还没好,是不是卡死了?

没有卡死,是 FFmpeg 的 WASM 版本在浏览器里单线程渲染大文件,速度比原生 FFmpeg 慢很多。10 分钟 MIDI 转 WAV 在浏览器端通常需要 3-8 分钟(取决于 CPU 性能和 MIDI 事件的密度)。你可以看浏览器标签页的加载图标是否还在转动,或者打开开发者工具的 Console 看是否有 FFmpeg 的进度日志。如果超过 15 分钟还没完成,可能是文件有无限循环事件(比如未闭合的 sustain pedal),建议用 MIDI 编辑器检查是否有超过 10000 个连续的音符事件。另外,建议把 MIDI 文件拆分成 3-4 分钟的段落分别转换,最后用 Audacity 拼接,这样每个段落 1-2 分钟就能完成。

我把 MP3 转成 MIDI 后,用钢琴软件打开发现很多音符对不上拍子,是转换精度问题吗?

本工具不支持 MP3 转 MIDI(见前面的回答)。如果你是通过其他第三方工具把 MP3 转成了 MIDI,然后拿到本工具来二次转换——拍子不准是那个第三方工具的识别精度问题,不是本工具的问题。MP3 转 MIDI 本身就是有损的逆向工程,目前的 AI 模型对复杂伴奏(有鼓、贝斯、和弦重叠)的节拍识别准确率只有 60-80%。建议你:1)用专门的扒谱工具(如 AnthemScore、WIDI)先提取 MIDI,2)在 MIDI 编辑器里手动对齐节拍标记,3)再用本工具把修正后的 MIDI 转成 MP3 播放。如果原始 MP3 是纯钢琴独奏(无其他乐器),扒谱准确率能到 90% 以上。

隐私保证所有计算与处理均在你的浏览器本地完成,输入数据不会上传服务器,也不会保存或共享。

选择 打开 +新窗口 esc关闭