Определение отличия звука, закодированного Speex, от ожидаемых настроек
Я пытаюсь интегрировать приложение с другим приложением, которое кодирует аудио, используя speex. Тем не менее, когда я декодирую аудио, отправленное из первого приложения во второе, я получаю шум (не статичный, больше похожий на звуки бип-блупа).
Мне нужно знать, где искать проблему.
Первое приложение может общаться с другими экземплярами самого себя. Второе приложение может общаться с другими экземплярами самого себя. Они просто не могут разговаривать друг с другом.
Настройки Speex явно не совпадают, но я не могу понять, какие из них. Я сравнил источник построчно, и оказалось, что они выполняют одну и ту же настройку. Они оба используют узкополосный режим. Они оба используют одни и те же параметры для Enhancer (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 ответ
Самостоятельный ответ: проверьте весь путь данных от начала до конца, с регистрацией в каждой точке.
Проблема, с которой мы столкнулись, заключалась в том, что звук был зашифрован в режиме AES CTR, но приложения использовали разные порядковые номера на счетчике. Первые 32 байта аудио прошли через него, создавая впечатление отсутствия кодирования из-за отсутствия шума, но остальные данные были искажены.