Я изучаю преобразования Фурье и как их использовать в python для обработки звука. Но просто взяв fft и ifft аудиоданных преобразует их в сложную форму, и я не могу сохранить его как wav. Код и ошибка приведены ниже.
import librosa
import scipy
audio,sr=librosa.load("sample2.wav")
aud_fft=scipy.fft.fft(audio)
ref_aud=scipy.fft.ifft(aud_fft)
librosa.output.write_wav("test.wav",ref_aud,sr)
Ошибка:
File "fft_test.py", line 6, in <module>
librosa.output.write_wav("test.wav",ref_aud,sr)
File "<decorator-gen-10>", line 2, in write_wav
File "/home/vineeth/.local/lib/python3.8/site-packages/librosa/util/decorators.py", line 58, in __wrapper
return func(*args, **kwargs)
File "/home/vineeth/.local/lib/python3.8/site-packages/librosa/output.py", line 239, in write_wav
util.valid_audio(y, mono=False)
File "/home/vineeth/.local/lib/python3.8/site-packages/librosa/util/utils.py", line 264, in valid_audio
raise ParameterError('Audio data must be floating-point')
librosa.util.exceptions.ParameterError: Audio data must be floating-point
Все, что я делаю, это беру fft, а затем беру ifft из вывода. Это должно вернуться к аудио данным, верно? Куда я иду не так или чего мне не хватает?