Использование Opus с Python для декодирования аудио пакетов - PullRequest
0 голосов
/ 26 февраля 2019

Я написал некоторый код, который подключается к API Zello (https://github.com/zelloptt/zello-channel-api/blob/master/API.md) и может транслироваться с каналов. Я могу получать аудиоданные (пакеты со звуком минус первые 9 байтов для заголовка). После удаления заголовка Iсжал пакеты в один файл и сохранил его в формате .ogg, который я пытаюсь декодировать в файл wav с помощью Opus. https://github.com/svartalf/python-opus. Я раньше не использовал opus и не знаю, что делать.Я не знаю, каким должен быть размер моего кадра, и я думаю, что это одна из моих проблем.

Вот что у меня есть для кода:

from opuslib.api import decoder as opus_decoder
from opuslib.api import encoder as opus_encoder
from opuslib.api import ctl
import wave


with open("/Users/usr/Desktop/s2t/packets/38.ogg", 'rb') as f:
        contents = f.read()
print(len(contents))

dec = opus_decoder.create_state(48000, 1)
opus_decoder.decoder_ctl(dec, ctl.set_gain, -15)
gain_value = opus_decoder.decoder_ctl(dec, ctl.get_gain)


de = opus_decoder.decode(dec, contents, len(contents), 160, 0)

print(de)

wav = wave.open("/Users/usr/Desktop/s2t/q.ogg", 'wb')
wav.setparams((1, 2, 16000, 0, 'NONE', 'NONE'))
wav.writeframes(de)
...