Не могу записать aiff-файл с плавающей запятой в Python

Я разработчик аудио и хотел бы читать и записывать 32-битные аудиофайлы с плавающей запятой из python для тестирования. После нескольких часов пукания я понял, что мои проблемы ограничены форматом с плавающей запятой. Я могу успешно написать 16-битный файл с фиксированной запятой из массива numpy (хотя в документации aifc нет примеров).

Я также видел пару других библиотек PySoundFile и Audiolab, хотя они или были очень старыми и / или не устанавливались должным образом.

Как правильно сделать это в Python? Поражает отсутствие результатов Google по написанию звуковых файлов на python.

Следующий код не работает, но основан на очень похожем коде, который работает для 16-битных данных с фиксированной точкой.

 def write_test_float_aiff(data):
   f = aifc.open('test.aiff', 'w')
   f.setframerate(44100)
   f.setnchannels(1)
   f.setsampwidth(4)
   f.writeframes(data)
   f.close()

r = np.arange(0,1000,.1)
s = np.sin(r)
write_test_float_aiff(s.byteswap().tostring())  

0 ответов

Другие вопросы по тегам