确定Speex编码音频与预期设置的不同之处

时间:2013-09-25 18:38:32

标签: debugging audio voip speex

我正在尝试将应用程序与另一个使用speex编码音频的应用程序集成。然而,当我解码从第一个应用程序发送到第二个应用程序的音频时,我得到了噪音(不是静态的,更像是哔哔声)。

我需要知道在哪里寻找问题。

第一个应用程序可以与其他实例进行通信。第二个应用程序可以与其他实例进行通信。他们只是不能互相交谈。

Speex设置显然不匹配,但我无法弄清楚哪些设置。我逐行比较了源代码,看起来他们做了相同的设置。他们都使用窄带模式。它们对增强器(1),可变比特率(0),质量(3),复杂度(1)和采样率(8000)使用相同的参数。观察到的编码帧长度也匹配。

如果有任何帮助,这里有一些示例音频数据,覆盖了一个呼叫开始时的6帧(希望我提到的参数足以解码它):

1dde5c800039ce70001ce7207b60000a39242d95
e8bda0cf21b6ec4629ad0f3b04290474110e70fb
1bdd3a9dfc211845e0ed90dabde11451e191186c
0ba5de5bea933ed1d3675f786947444781407e17
1bd5549fefa91b63d4968b299bf603d7e533b98c
6351b7953f4470d63bbb2b8c49be650ee89488b5
// at this point I get:
// notification: More than two wideband layers found. The stream is corrupted."

我有点失落。我不知道接下来要检查什么。

使用Speex编码的音频数据从一台计算机传输到另一台计算机的其他原因可能最终被误解?我对愚蠢的原因特别感兴趣。

1 个答案:

答案 0 :(得分:1)

自我回答:从头到尾检查整个数据路径,并在每个点进行记录。

我们遇到的问题是音频是使用AES CTR模式加密的,但应用程序在计数器上使用了不同的字节序。音频的前32个字节通过,使一些非噪声看起来像编码问题,但其余的数据都是乱码。