检测 RTP 负载中的静音

Gre*_*eeg 3 rtp

我正面临基于 Asterisk 的 ToIP 基础架构的问题。有时,我的手机收到“空”RTP(有效负载完全充满 5d)。

我浏览了 RFC (3551, 3389) 并且无法找到/理解相关答案。

我发现有两个与我有相同问题的网页:

https://www.wireshark.org/lists/ethereal-users/200402/msg00142.html

http://www.giacomovacca.com/2013/05/the-sound-of-silence-encoded-with-g711.html

所以:

  • 有人知道官方答案在哪里吗?
  • 谁决定填充0x55或0xd5不会发出声音?
  • 另外,谁能向我解释为什么 0x55 或 0xd5 为 0?

谢谢!

Ant*_*sky 5

这来自 G.711 音频编解码器 PCM 程序。

G.711 定义了两个用于 PCM(脉冲编码调制)音频数据的对数编解码器:a-law 和 u-law。编解码算法基于人耳的感知特性——弱信号被强信号掩盖。

压缩后(从 u-law 中的 14 位样本和 a-law 中的 13 位样本)到 8 位,除符号位外的最后 7 位反转。不反转的位称为符号位。这种位反转增加了传输系统中的位密度,有助于接收器中的定时和时钟恢复电路。

理想的通道噪声使位在 u-law 中的 01111111 (0x7F) 和 11111111 (0xFF) 之间以及 a-law 中的 01010101 (0x55) 和 11010101 (0xD5) 之间切换。我们通常使用精确的 a-law 编码。

在编解码器规范中,负声音样本是 1 的补码,以对齐正负数的动态范围。大小相等的压缩负值和正值由符号位区分。

您可以在此处阅读有关 PCM 示例的更多详细说明

您也可以阅读规范