Как декодировать аудиопоток с помощью веб-сокета торнадо?Python

Программы на Python
Anonymous
Как декодировать аудиопоток с помощью веб-сокета торнадо?

Сообщение Anonymous »

Я получаю аудиопоток в кодировке ogg, полученный частями через Tornado.websocket.WebSocketHandler. Моя задача — на лету декодировать его в образцы PCM для передачи в другой алгоритм. Поэтому идеальным API декодирования для меня было бы что-то вроде:

Код: Выделить всё

class Decoder():
def push_encoded(self, chunk: bytes):
# TODO: Implement this.

def pop_decoded(self) -> PCMSamples:
# TODO: Implement this.
Другими словами, мне нужен декодер, который внутри содержит два буфера: первый предназначен для накопления еще не декодированных байтов, второй — для уже декодированных выборок.
В качестве альтернативы это может быть API, управляемый обратным вызовом, например:

Код: Выделить всё

class Decoder(callback: Callable[[PCMSamples], None]):
def push_encoded(self, chunk: bytes):
# TODO: Implement this.
Я пытался использовать torchaudio.io.StreamReader для реализации описанного выше API, поскольку я уже использую этот пакет, но, как оказалось, добиться этого не так очевидно.
p>
Есть ли простой способ реализовать один из вышеперечисленных API с помощью torchaudio или есть другие пакеты, более подходящие для этой задачи?


Подробнее здесь: https://stackoverflow.com/questions/782 ... -websocket

Вернуться в «Python»