合并音频是解码,不是计算:每个文件先被解码成同一串原始数字,保留的部分首尾相接,再整体编码回一个文件。音频合并在浏览器里跑完整条管线。放入 3 段片段——0:30 的开头、0:45 的中间、0:15 的结尾——用拖拽手柄修剪每段,用上下按钮排序,合并输出就是 1 个 1 分 30 秒的文件,导出为每秒 176400 字节的 16 位立体声 WAV,或每秒 16000 字节的 128 kbps MP3,体积差距 11 倍。全程无上传:Web Audio API 在持有这些文件的机器上完成解码、重采样与编码。
合并之前:修剪、裁剪与排序
每条轨道渲染出带两个拖拽手柄的波形。左手柄移动起点,右手柄移动终点,选中区域高亮,每个手柄旁跟随 M:SS 格式的时间标签。可选的最短窗口是 0.05 秒,在 44100 赫兹下恰好是 2205 个采样,所以每次裁剪都有一个不会跌破的硬下限。上下按钮重排轨道列表,列表顺序就是输出顺序:排最上面的片段在合并文件里最先播放。点击波形设置播放游标,轨道上的播放按钮从游标处开始,这就是确认裁剪之前的试听方式。如果手里已经有一个要剪短的单文件,音频修剪器把同样的手柄拖拽作为独立步骤做完,把结果作为文件交还给你,随时可以与其他文件合并。
浏览器能解码的格式
合并器接受浏览器解码器能接受的一切:在常见平台上是 MP3、WAV、OGG、AAC 与 M4A,全部走同一条 Web Audio 路径解码成同一种中间形态。解码失败的文件被跳过,而不是当成致命错误——其余轨道照常合并——这是一个有意的不对称。工具优先保证可用片段进入同一个文件,坏文件的代价只是少了一段,修好后重新导入即可。当格式落在解码窗口之外,或容器在当前平台上比较冷门时,先修正是用音频转换器把它转成 WAV 或 MP3,再回来合并。合并前先转换还能提前统一采样率,缩短重采样步骤,让整条管线从一开始就只有一种时钟。
一种采样率对应所有时钟
拼接需要一种时钟。两个不同采样率的片段每秒包含的采样数不同,直接首尾相接会让没被选中的那个速率被拉伸或压缩。合并器用轨道中最高的采样率解决这件事,其余轨道重采样到它:0:30 的 48000 赫兹片段与 0:45 的 44100 赫兹片段放在一起,整个合并就按 48000 赫兹跑,44100 那段被重采样上去。重采样器是浏览器的 OfflineAudioContext,变换速率的同时做低通滤波。这个滤波很关键,因为朴素的分拣——减半速率时直接丢掉每两个采样中的一个——会产生混叠,给高频加上一层金属边。输出为 MP3 时,编码器只认识一张固定速率表,所以高采样率的源走一条干净的减半链:96000 变 48000,88200 变 44100,192000 变 96000 再变 48000,176400 变 88200 再变 44100。
输出分流:WAV 与 MP3
两种输出装的是同一批采样,只是成本结构不同。WAV 在 44 字节的 RIFF 头后面写 16 位 PCM:44100 赫兹立体声下是每秒 176400 字节,所以 1 分 30 秒的合并文件是 15876044 字节,约 15.1 MiB,而且这个体积是精确的——时长乘速率乘 2 个声道乘 2 字节,再加头。MP3 按 128 kbps 编码,折出来是每秒 16000 字节,同样的 1 分 30 秒落在 1440000 字节,约 1.4 MiB。比例是 11 比 1,而且任意时长都保持 11 比 1,因为两种格式都随时长线性增长。取舍在于无损对上有损:WAV 保留每个采样,MP3 保留心理声学模型认为听得见的部分。单声道源被复制到两个声道,而不是用静音填充,所以声像保持居中。留底母版或还要继续编辑选 WAV;发送、嵌入视频或上传到托管平台选 MP3。需要估算工具没显示出来的时长对应的体积时,文件大小转换器做同样的每秒乘法。
从录音到合并
合并是录制工作流的后半段。录音机在同样的浏览器内 Web Audio 路径上录制,录下的片段可以保存后放进合并器,与已有文件并排,剪掉抢拍的部分,合并进最终版本,全程不离开站点,也不经过任何录音服务的中间上传。这正是播客与旁白编辑手工做的事:分开录,再组装。组装放在客户端做,意味着原始录音不必交给任何人,当录音是客户会议、排练或所有者不想贴进网页表单的内容时,这一点尤其重要。
合并模式出现的地方
合并是一个通用模式:解码成公共形态,重排,拼接,重新编码——文件格式只是进出两端的包装。同样的形状在浏览器里也贯穿文档与图片。PDF 合并器把多个 PDF 的页面按你选定的顺序拼到一起,图片转 PDF把一叠图片组装成单个文档,图片裁剪指南覆盖的是相邻的准备工作:图片先被裁到真正重要的区域,再被打包。它们共享的性质是公共中间形态承担全部工作,格式留在两端,而且整条管线都在本地运行:音频、页面与像素都不离开这台机器,这正是合并工具应当具备的性质。