如何将音频字节流转换为torch张量



我正在尝试将bytes音频流转换为PyTorch张量,作为PyTorch的forward()函数的输入。

(更具体地说,我使用Nemo扬声器模型来识别扬声器:

audio_signal, audio_signal_length = torch.tensor([audio]), torch.tensor([audio_length]))

有人知道怎么做吗?

这对我有效,尽管我相信有一种更简单的方法

import io
import numpy as np
import scipy as sc
import torch
import torchaudio

SAMPLE_RATE = 16000
def bytes_to_audio_tensor(audio_bytes:bytes) -> torch.Tensor:
bytes_io = io.BytesIO()
raw_data = np.frombuffer(
buffer=audio_bytes, dtype=np.int32
)
sc.io.wavfile.write(bytes_io, SAMPLE_RATE, raw_data)
audio, _ = torchaudio.load(bytes_io)
return audio.squeeze(0)

最新更新