如何使用tornado websocket解码音频流?
我正在通过 tornado.websocket.WebSocketHandler
接收一个逐块到来的ogg编码音频流。我的任务是实时解码这些音频流,把它们转换成PCM样本,以便输入到另一个算法中。所以,我理想中的解码接口应该像这样:
class Decoder():
def push_encoded(self, chunk: bytes):
# TODO: Implement this.
def pop_decoded(self) -> PCMSamples:
# TODO: Implement this.
换句话说,我需要一个解码器,它内部有两个缓冲区:第一个用来存放还没解码的字节,第二个用来存放已经解码的样本。
另外,它也可以是一个基于回调的接口,比如:
class Decoder(callback: Callable[[PCMSamples], None]):
def push_encoded(self, chunk: bytes):
# TODO: Implement this.
我尝试使用 torchaudio.io.StreamReader
来实现上面的接口,因为我已经在使用这个包,但结果发现实现起来并不那么简单。
有没有简单的方法可以用 torchaudio
实现上述接口,或者有没有其他更合适的包可以完成这个任务?
0 个回答
暂无回答