如何使用开源 OPUS 演示二进制文件中的 opus DTX

how to use opus DTX from opensource OPUS demo binary

我需要 OPUS DTX 方面的帮助

1.how OPUS DTX 正在运行。 2.how opus 编码器和解码器适用于 dtx 3.Is OPUS 中有 DTX 的任何位表示

来自rfc 启用DTX时,只有一帧被编码 每 400 毫秒它对我来说对 opus_demo 二进制文件不起作用。 请帮助 OPUS DTX。

在网络上使用 Opus 时,使用 RTP 等协议,其中数据包带有时间戳,如果您想减少在没有语音期间发送的数据包,可以启用 DTX activity。大约每 400 毫秒仍会发送一个数据包,更新背景噪音。使用数据包时间戳,接收方可以确定任何间隙的持续时间并用背景噪声填充它们以使其听起来自然。

使用 opus_encoder_ctl(enc, OPUS_SET_DTX(1));opus_demo 上的 -dtx 选项在编码器中启用 DTX。然后,简单地不发送编码器生成的长度为 2 个字节或更少的任何数据包。 (这些 "DTX packets" 只是 zero-length 帧,具有正常的 1 或 2 字节数据包 header (TOC),并且不包含任何音频数据。)长度大于的数据包应该像往常一样发送 2 个字节。

接收方应使用正常的丢包隐藏来处理丢失的数据包,其处理方式与处理丢包的方式相同。特别是它可以调用 opus_decode()data = NULLlen = 0frame_size 等于丢失帧的大小,解码器将生成音频数据以隐藏丢失的帧。