为什么要未压缩
会做 MP4 转 WAV 的人,多半并不打算去听这个结果,而是要把它喂给某个东西: Whisper 或别的语音模型、做字幕对齐的强制对齐器、用来粗剪的音频工作站、 量响度的脚本。这些东西处理的都是采样点,而且开工之前都会先把压缩文件解码一遍。
所以给它们一个 MP3,等于在你的链路中间白白插入一次有损编码。 更合理的做法是从 MP4 提取 WAV 一次,在这个基础上工作, 真的需要交付压缩文件时再在最后压一次。
它是什么,不是什么
MP4 里的音频轨几乎总是 AAC,而 AAC 是有损的。把它解码成 WAV,保留的是那段 AAC 解码出来的确切样子,也就是说原始编码引入的每一处痕迹都会跟着过来。什么都没有被还原。 这个操作不存在能把录音棚母带找回来的版本,任何暗示能做到的工具都是在卖东西。
你真正得到的是一个"止损点":从这里往后,不再有任何损失。剪切、淡入淡出、 归一化、各种分析,全都在普通整数上进行,而什么时候要不要做有损编码, 由你自己决定。
体积和上限
未压缩音频很贵。44.1 kHz、16 bit 的立体声大约每分钟 10 MB,所以数字会很快变得难看: 五分钟的片段就是 50 MB,半小时的访谈是 300 MB。
输入接受 500 MB 以内的文件。再大浏览器标签页装不下整个容器, 与其转到一半被系统杀掉,不如开始之前就告诉你。素材很长的话,先把需要的那一段剪出来。
如果只是要把整段内容拿去转写,而不打算再做剪辑,那么 MP3 其实也够用, 体积还小一个数量级。选 WAV 的理由只有一个:后面还有一道会重新编码的处理, 而你不想让那道处理踩在一次有损编码上面。
所有过程都在你的机器上完成。引擎是编译成 WebAssembly 的 ffmpeg, 只下载一次,之后由浏览器缓存。