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

时间:2016-06-05 12:45:33

标签: audio compression codec voice-recording opus

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

  

不连续传输(DTX)会在静音期间降低比特率      或背景噪音。启用DTX时,只编码一帧      每400毫秒。

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

我希望在静音或非语音活动期间产生“绝对”静音,并尽量减少标题的开销,所以基本上安静的录音会产生一个几乎空的文件。

如果有其他编解码器可以实现这一点,我很乐意听到它们。

1 个答案:

答案 0 :(得分:3)

我没有对此进行测试,但是我非常有信心做到这一点,但是,您将打破standards的状态:

2.1.9。不连续传输(DTX)

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

Download the source code,打开文件./silk/define.h,然后从第57行[Linux的源代码]更改

#define MAX_CONSECUTIVE_DTX 20 / * eq 400毫秒* /

类似

#define MAX_CONSECUTIVE_DTX 40 / * eq 800毫秒* /

或您觉得足够的任何东西。如果不更改源代码,我认为这是不可能的,因为如上所述here

即使Opus现在已由IETF标准化,但此Opus 实施将在未来不断改善。当然了 未来的版本仍将完全符合Opus IETF 规范。