У меня есть массив с плавающей точкой, который выводится функцией загрузки библиотеки 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.
Как можно преобразовать In из 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)
Спасибо,