Конвертировать байты в ndarray в python - PullRequest
0 голосов
/ 03 мая 2018

У меня есть скрипт на python, в котором я получаю байты, соответствующие аудио (я делаю вызов API другой программы, которая возвращает аудио байты в формате wav). Я хочу сделать некоторую обработку сигнала, используя numpy на этом аудио. В настоящее время я записываю байты в файл и загружаю файл wav обратно с помощью librosa. Но из-за промежуточного дискового ввода-вывода существует задержка. Могу ли я получить ndarray из этих аудио байтов без записи в файл? Ниже мой код, в котором я пишу в файл и читаю ndarray

def func1():
    audioBytes = api_call_to_another_program()
    fp = open("tmp.wav", "wb")
    fp.write(audioBytes)
    return path

def func2(path, sample_rate=someNumber):
    myNdArray = librosa.core.load(path, sr=sample_rate)[0]
    # some signal processing stuff..

Я хочу что-то вроде этого

def func1():
    audioBytes = api_call_to_another_program()
    interRep = someFunction(audioBytes) # an intermediate representation for compressing the data a bit
    return interRep

def func2(interRep):
    myNdArray = inverseOfSomeFunction(interRep)
    # some signal processing stuff..
...