Итак, я пытаюсь заставить librosa работать с микрофонным входом, а не просто с файлом wav, и у меня возникло несколько проблем. Сначала я использую библиотеку pyaudio для подключения к микрофону, но у меня возникают проблемы с переводом этих данных для использования librosa. Есть какие-нибудь предложения о том, как к этому подойти, или это вообще возможно?
Несколько вещей, которые я пробовал, включают получение данных от pyaudio mic, декодирование их в массив с плавающей запятой и передачу их в librosa (как видно из документации, это то, что librosa делает с wav-файлами с .load), но это не работает как выдает следующую ошибку: "librosa.util.exceptions.ParameterError: Аудиобуфер не является конечным везде"
FORMAT = pyaudio.paInt16
RATE = 44100
CHUNK = 2048
WIDTH = 2
CHANNELS = 2
RECORD_SECONDS = 5
stream = audio.open(format=FORMAT,
channels = CHANNELS,
rate = RATE,
input=True,
output=True,
frames_per_buffer=CHUNK)
while True:
data = stream.read(CHUNK)
data_float = np.fromstring(data , dtype=np.float16)
data_np = np.array(data_float , dtype='d')
# data in 1D array
mfcc = librosa.feature.mfcc(data_np.flatten() , 44100)
print(mfcc)