Python - конвертировать аудиоданные Array of Float в файл wav - PullRequest
0 голосов
/ 18 апреля 2020

У меня есть аудиоданные, записанные с микрофона, вот так: (ndarray of float)

> print(data)
[-0.00762939 -0.00817871 -0.00714111 ...  0.0265511   0.02484207   0.02377392]

Это мой код:

while(recording):
   frames.append(data)

waveFile = wave.open(WAVE_OUTPUT_FILENAME + "_" + str(COUNT_FILE) + ".wav", 'wb')
waveFile.setnchannels(CHANNELS)
waveFile.setsampwidth(audio.get_sample_size(FORMAT))
waveFile.setframerate(RATE)
waveFile.wr(b''.join(frames))
waveFile.close()

Но когда я проигрываю звук, он ломается ничего, кроме шума ... как преобразовать его в аудио файл .wav?

1 Ответ

0 голосов
/ 23 апреля 2020

вам нужно сначала упаковать ваши данные, используя struct

заменить ваш waveFile.writeframes этим

data=struct.pack( 'h' * len(frames), *frames )
waveFile.writeframes(data)

и, возможно, также преобразовать ваши данные в целые числа, поскольку я думаю, что в файлах wav используются только целые числа значения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...