SoundCloud 主动砍掉 17kHz 以上高频:频谱看着少了,音乐为什么反而可能更好听?
林岚|OC 开发者生态编辑
林岚|OC 开发者生态编辑
据 SoundCloud 工程团队在 官方博客 解释,平台更换为 Fraunhofer 的 libfdk_aac 编码器后,会在约 17kHz 处对 AAC 转码应用低通滤波。用户在频谱图上会看到高频被切掉,但 SoundCloud 表示,新编码器在其跟踪的感知质量指标上反而更好。
一句话结论: 有损编码的任务不是保存频谱图上的每一条线,而是在固定码率里保住人耳最容易听出差异的部分;砍掉多数成年人几乎听不到的最高频,可以把更多比特留给更重要的中频。
这条新闻看起来很反常。你上传一份无损母带,再下载 SoundCloud 转码后的文件,频谱在 17kHz 以上出现整齐的“断崖”;旧编码器却能一直显示到 20kHz。只看图,当然像新版本偷走了音乐细节。
问题是,频谱分析器对所有频率一视同仁,人耳不是。人类对约 2kHz 到 5kHz 的区域最敏感,年龄增长、听力状态和播放环境还会进一步降低高频感知。AAC 在固定码率下不可能无损保留所有信息,编码器必须决定把有限比特花在哪里。

如果硬要保留 17kHz 以上的能量,编码器就要给它分配比特,复杂段落里的中频因此更可能出现量化误差、噪声和其他伪影。低通滤波相当于先承认“这里要舍弃”,换取更宽、更敏感频段的精度。SoundCloud 展示的对比中,新编码器的主要损失集中在顶部,旧编码器则在中高频和低频散布更多误差。
为什么不砍低音?低频通常相对容易编码,而且既能听见也能感受到,对节奏和音色影响明显。最高频则是成本较低的牺牲。这不是说 17kHz 以上绝对没人听得到,而是在流媒体压缩的预算里,保留它的平均收益通常小于改善其余频段。
即使在 256kbps,libfdk_aac 仍会在 17kHz 左右做较温和的衰减。SoundCloud 也承认这个选择可以讨论,因为较高码率已经接近足够保留全频段。但 Fraunhofer 的编码策略建立在长期听音测试上:受试者通常难以可靠辨别最高频被移除,而释放的比特能降低其他区域误差。
这并不意味着“切得越多越好”。低通点应该随码率、编码器、内容和目标人群调整;打击乐瞬态、特殊音效和年轻听众可能对高频变化更敏感。SoundCloud 的结论针对自己的 AAC 转码配置,不能推广成所有 17kHz 截止都比全带宽好。最终判断仍应依靠匹配响度的盲听,而不是只看频谱,也不是只信平台。
对音乐人而言,发现这条频谱线不代表上传文件损坏,也没有必要通过人为增强 17kHz 以上来“补偿”,那反而可能浪费更多编码预算。更实际的检查是用平台最终转码做盲听,关注人声齿音、镲片、空间感和复杂段落是否出现可闻伪影。
关键事实
- SoundCloud 去年将 AAC 编码器升级为 Fraunhofer
libfdk_aac,转码会在约 17kHz 处低通。 - 低通释放的码率可用于降低人耳更敏感频段的误差。
- 频谱变窄不自动等于听感变差,结论仍与码率、素材、听众和播放设备有关。
OC 判断
这是一个很好的“指标不等于体验”案例。频谱图方便比较,却不能代替听觉模型和盲测。SoundCloud 应当公开更多测试条件,但把完整带宽直接当成音质排名,同样是一种看图下结论。
为什么重要
- 对开发者: 编码优化应围绕感知质量和真实内容测试,不能只追求图表上保留更多数据。
- 对创作者: 不要为填满频谱而抬高超高频,先听平台转码后的复杂段落。
- 对用户: 看到 17kHz 截止不代表文件被粗暴降质,盲听比截图更能回答“是否更好听”。
评论
围绕这篇文章补充信息、提出问题或分享观察。