Python: преобразовать np.ndarray из float32 в последовательность байтов

У меня есть массив с плавающей запятой, который выводится функцией загрузки библиотеки librosa, которую я хотел бы преобразовать в AudioData, необходимую для библиотеки Google SpeechRecognition.

Форматы данных показаны ниже

Примечание: они читаются из комментариев в файлах библиотеки, я не могу найти строгие определения, как в C

Librosa.load возвращается

Returns
-------
y    : np.ndarray [shape=(n,) or (2, n)]
    audio time series

Класс SpeechRecognition.AudioData принимает frame_data, который представляет собой строку байтов. Я понимаю

The raw audio data is specified by ``frame_data``, which is a sequence of bytes representing audio samples. This is the frame data structure used by the PCM WAV format.

Как преобразовать ndaarray of floats в sequence of bytes в python

В коде Visual Studio audio, возвращаемое librosa, равно

dtype:dtype('float32')
alignment:4
base:dtype('float32')
byteorder:'='
char:'f'
descr:[('', '<f4')]
fields:None
flags:0
hasobject:False
isalignedstruct:False
isbuiltin:1
isnative:True
itemsize:4
kind:'f'
metadata:None
name:'float32'
names:None

Полный код, который я пытаюсь запустить:

# importing libraries 
import speech_recognition as spr 
import librosa

audio, sr = librosa.load('sample_data.mp3')

print(audio)

# create a speech recognition object 

#conversion needed here
audio2 = spr.AudioData() 

r = spr.Recognizer() 
r.recognize_google(audio2)

Спасибо,


person Mich    schedule 27.03.2020    source источник
comment
Вы задали тот же вопрос, правильно stackoverflow.com/questions/60879469/   -  person Nikolay Shmyrev    schedule 28.03.2020
comment
Отвечает ли это на ваш вопрос? 'Аудиоданные должны быть аудиоданными. ошибка данных при распознавании речи Google в Python   -  person Jon Nordby    schedule 29.03.2020