1

我正在尝试将一个应用程序与另一个使用 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 编码的从一台计算机传输到另一台计算机的音频数据最终可能会被误解的其他原因是什么?我对愚蠢的原因特别感兴趣。

4

1 回答 1

1

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

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

于 2013-09-26T18:38:47.937 回答