处理一个音频文件

语音备忘、采访、课程录音等包含人声和室内噪音的文件都可以处理。 这一页介绍支持的文件、处理流程、输出格式, 以及这一步在你其余的工作流程里该放在哪。

什么文件能进去

mp3、wav、m4a、aac、flac 和 ogg,以及大多数视频文件的音轨。 把这当成参考而不是保证:我们是靠读文件本身的开头来判断的,不是信任它的扩展名, 所以一个被改过名的文件会按它的实际内容来处理。

如果你的浏览器压根解不开某个文件,你会看到一条说明这件事的错误,而先转成 mp3 或 wav 基本都能解决。那是一条真的退路,不是打发你 —— 那种情况下缺的是一个容器解包器, 不是降噪本身。

我们读什么,跳过什么

对 mp4、m4a 以及裸的 aac 或 mp3,我们只解开真正需要的那一段:顺着文件自己的索引找过去, 只读那些字节。长录音不必整个装进内存 —— 在一个大文件上,这样实测比整个解码少用约 103 倍内存。

无损和开放格式 —— wav、flac、ogg、webm —— 目前还没有这条捷径,所以会被整个解码。 正常长度没问题,而这是唯一一种「非常长的文件可能把浏览器内存撑爆」的情况。 真遇上了,同一段录音的 mp3 或 m4a 走的是省事的那条路。

每个文件在模型看到它之前都会经历两件事,两件都值得知道:

输出格式

一个 48 kHz 的 16 位单声道 WAV,30 秒大约 2.9 MB。用 WAV 是因为浏览器没有通用的 音频编码器 —— 要给你一个 mp3,就得在 9 MB 的引擎之外再塞一个编码器给你, 一个下载按钮不值这个代价。

**我们不对两个版本做响度匹配。**在我们首页那条样例上,原版测得 −11.6 LUFS, 处理后是 −13.7,大约低 2 LU。这不是 bug:去掉噪音就是去掉能量,你的文件也会这样。 把两者电平拉齐会让对比显得好看,也会藏起一件你在调电平之前就该知道的事。

这一步在你的流程里放哪