Audio 有没有办法比DTX更好地优化Opus中的静默期?

Audio 有没有办法比DTX更好地优化Opus中的静默期?,audio,compression,codec,voice-recording,opus,Audio,Compression,Codec,Voice Recording,Opus,我正在对Opus中的DTX选项进行一些研究: 不连续传输(DTX)降低了静默期间的比特率 或背景噪音。启用DTX时,仅对一帧进行编码 每400毫秒 我想知道是否有一种简单的方法可以让Opus在整个静默期内只编码一个帧,而不是每400毫秒编码一个无用的静默帧 我希望在静默或非言语活动期间产生“绝对”静默,并最小化标题的开销,因此基本上静默录制将产生几乎为空的文件 如果有其他编解码器可以做到这一点,我很高兴听到他们的消息。我没有测试这一点,但我非常有信心可以做到,但是,您将打破以下状态: 2.1.9

我正在对Opus中的DTX选项进行一些研究:

不连续传输(DTX)降低了静默期间的比特率 或背景噪音。启用DTX时,仅对一帧进行编码 每400毫秒

我想知道是否有一种简单的方法可以让Opus在整个静默期内只编码一个帧,而不是每400毫秒编码一个无用的静默帧

我希望在静默或非言语活动期间产生“绝对”静默,并最小化标题的开销,因此基本上静默录制将产生几乎为空的文件


如果有其他编解码器可以做到这一点,我很高兴听到他们的消息。

我没有测试这一点,但我非常有信心可以做到,但是,您将打破以下状态:

2.1.9。不连续传输(DTX)

不连续传输(DTX)降低了静默期间的比特率 或背景噪音。启用DTX时,仅对一帧进行编码
每400毫秒

,打开文件./silk/define.h并将第57行[Linux源代码]从

#定义最大连续DTX 20/*eq 400毫秒*/

差不多

#定义最大连续DTX 40/*eq 800毫秒*/

或者你觉得合适的。如果不改变源代码,我认为这是不可能的,因为

尽管Opus现在已被IETF标准化,但该Opus 今后执行情况将不断改进。当然,所有 未来版本仍将完全符合Opus IETF 规格


我认为如果你扩大DTX窗口,它将受益很少,400ms已经非常大了。格式不是被压缩了吗?这意味着连续的“空白”帧不会占用任何空间。我还应该注意,Opus在协议规范中是不寻常的,因为它是根据参考实现而不是散文标准定义的。在撰写本文时,Opus的参考实现在RFCs 6716和8251中给出。格式不是被压缩了吗?这意味着连续的“空白”帧不会占用任何空间。通过更改此值并查看是否存在任何尺寸差异,很容易进行测试。。。我强烈怀疑会有。