开源音频编解码器Opus迎来重大更新,正式发布 1.6 版本。此次更新带来了诸多新功能和改进,同时完全兼容 RFC 6716 标准。以下是一些值得关注的升级亮点:
1. 基于机器学习的语音带宽扩展(BWE)
Opus 1.6 引入了一种实验性的宽带至全频带语音增强器,该技术曾在 WASPAA 2025 会议上发布。它是 Opus 语音编码增强算法家族的新增成员,相关算法已包含在IETF 草案中。新的带宽扩展 (BWE) 模型基于一个神经网络,该网络经过训练,无需任何辅助信息即可从宽带语音 (0-8 kHz) 生成高频语音内容 (8-20 kHz)。因此,它可以用于增强任何先前 Opus 版本的语音,并且随着模型未来的改进,不会出现兼容性问题。从宽带语音生成高频内容是可行的,因为所有音素信息都已包含在较低频率范围内。这与窄带(电话)到宽带的扩展问题不同,后者难以实现且往往不可靠。
该模型可用于选择性地将宽带语音解码为采样率为 48 kHz 的全频带语音,如下所示。此外,它还可以与 Opus 1.5 中引入的宽带增强方法结合使用。但是,它并非旨在取代以混合模式编码的高频段内容,且永远不会在超宽带或全频带音频中激活。

BWE 模型的第二项应用扩展了用于深度丢包隐藏(PLC)和深度冗余(DRED)解码的 FARGAN 宽带语音编解码器。值得注意的是,当与 BWE 结合使用时,这使 DRED 能够实现全频段质量,从而确保全频段传输具有更稳定的输出质量。

结合NoLACE和 BWE 技术可显著提升语音质量。即使码率低至 9 kb/s,也能实现高质量的全频带语音传输。以下是对比结果:

上图为新带宽扩展方案的主观 MOS 评估。对于未编码语音,BWE 能弥合宽带与全频带之间约一半的质量差距。对于编码语音,结合NoLACE,在 9 kb/s 的码率下,其质量可媲美双倍码率(18 kb/s)的 Opus 1.4 全频带编码,同时缩小了与 EVS 编解码器的差距。值得注意的是,在 9 kb/s 及以上码率下,Opus现已能超越 EnCodec 等纯神经网络编解码器的音质表现。
要使用BWE,需在构建时通过--enable-osce配置选项启用该功能。运行时需显式启用-enable_osce_bwe 参数,并将解码器复杂度(Opus 1.5版本引入)设置为 4 或更高。此时 BWE 仅适用于采用 SILK 宽带模式编码的语音,前提是解码器配置为 48kHz 采样率。
2. DRED 改进
深度冗余编码(DRED)最初作为实验性扩展功能引入 Opus 1.5 版本。此后该功能持续优化,Opus 1.6 带来了诸多改进。由于 DRED 通过比特流进行标记,新模型与 Opus 1.5 版本不兼容。得益于模型版本化设计,使用 1.5 编码器与 1.6 解码器(或反之)不会产生异常噪音,但不兼容的解码器将无法获取 DRED 信息。好消息是,官方希望(但尚未承诺)最终 DRED 标准中无需修改新模型。更多DRED详情请参阅此论文及IETF草案。以下是 Opus 1.6 引入的 DRED 改进内容。
更佳的可懂度
1.5 版本的原始模型存在过度平滑时间频谱变化的倾向,尤其在极低比特率下更为明显。这有时会导致语音模糊不清,可懂度降低。新版 1.6 模型采用改进的损失函数进行训练,该函数对较大误差更为敏感(使用四次方误差项)。虽然它没有提高感知质量(听起来没有更好),但语音可懂度有所提高。

如上图,与 Opus 1.5 中的原始模型相比,更新后的 DRED 模型的可懂度有所提升。混淆矩阵中蓝色区域表示新模型可懂度更高的配对,红色区域则表示可懂度更低。这些结果均在低比特率下测得,结果取自draft-lechler-mlcodec-test-battery
增强鲁棒性
如今基于深度神经网络的语音增强技术已无处不在,我们很少遇到需要编码噪声或混响语音的情况。尽管如此,针对此类语音的鲁棒性对某些应用仍具潜在价值,只要不损害清晰语音的处理效果,这便是一项有益的特性。为此,1.6 版本的模型在清晰语音和噪声/混响语音的混合数据集上进行了训练。新的增强训练显著提高了模型在复杂环境下的语音质量和清晰度,同时又不影响清晰语音的处理效果(甚至可能略有提升)。
更小模型
在编解码器中应用深度神经网络的主要障碍之一是模型大小。尽管实现了上述改进,新版 DRED 编码器和解码器模型体积仍比 1.5 版本缩小约 3 倍(从 1800KB 降至 600KB)。这一缩减得益于架构微调、稀疏性增强以及卷积层采用瓶颈层等技术组合。
3. 实验性 Opus HD 支持(开发中)
本次版本新增的另一项实验性功能(参见IETF草案)是支持编码 96 kHz 音频,其带宽可超越标准 20 kHz 音频范围,并支持高达 2 Mb/s 的比特率。虽然 48kHz 音频已能满足多数需求,但更高采样率和比特率在特定场景具有应用价值,例如涉及传感器和/或超声波的应用。为保持向后兼容性,Opus HD作为扩展层构建于 Opus 之上。常规 Opus 解码器可完美处理 Opus HD 流,但无法利用更高的比特率和带宽。
除了扩展的带宽外,Opus HD 还提高了 0-20 kHz 可听频段的分辨率。RFC 6716 中的标准 Opus 量化器在比特率达到 510 kb/s 最大值时,每个系数的分辨率最高可达约 8 位。而 Opus HD 的量化器分辨率最高可达 20 位。此外,由于新增的分辨率是以层的形式实现的,因此 Opus 可以作为可扩展的编解码器使用。需要注意的是,量化器的分辨率与 PCM 采样比特分辨率不同。即使比特深度低于 8 位,Opus 仍然能够轻松编码 24 位音频的完整动态范围,甚至更高。
要启用 Opus HD 支持,请在构建 Opus 时使用 --enable-qext 配置选项。要使用 Opus HD 进行编码,可在 opus_demo 中使用 -qext 选项,或通过编码器 API 调用OPUS_SET_QEXT(1)。若编译时启用了 Opus HD 支持,解码器将自动识别并使用所有发现的 Opus HD 层,除非使用了OPUS_SET_IGNORE_EXTENSIONS(1)设置。
4. 新的 24 位音频 API
Opus 1.6 引入了全新的 24 位整数音频 API,用于编码和解码。虽然原有的 16 位整数和 32 位浮点调用仍然可用,但这一新选项主要面向那些希望避免浮点运算的高分辨率音频处理流程。它在浮点运算成本较高的平台上,或者对于维护纯整数处理流程的应用程序来说,尤其有用。
此外,Opus 1.6 新增了一些其它改进,您可通过 Opus-Codec.org 下载 Opus 1.6 版本及更多详细信息。
以上内容源自:https://opus-codec.org/demo/opus-1.6/
原创文章,作者:ZEGO即构科技,如若转载,请注明出处:https://market-blogs.zego.im/reports-info/3072/