Vì vậy, tôi đã làm việc với FFT, và tôi hiện đang cố gắng để có được một dạng sóng âm thanh từ một tập tin với FFT, (sửa đổi nó cuối cùng), nhưng sau đó đầu ra sửa đổi dạng sóng trở lại một tập tin. Tôi đã nhận được FFT của soundwave và sau đó sử dụng một chức năng FFT nghịch đảo trên nó, nhưng các tập tin đầu ra không âm thanh ở tất cả. Tôi đã không thực hiện bất kỳ lọc trên dạng sóng - Tôi chỉ kiểm tra ra nhận được dữ liệu tần số và sau đó đưa nó trở lại vào một tập tin - nó sẽ âm thanh giống nhau, nhưng nó âm thanh cực kỳ khác nhau. Bất kỳ ý tưởng?Python NumPy - FFT và FFT nghịch đảo?
- EDIT -
Tôi đã làm việc trong dự án này một chút nhưng chưa nhận được kết quả mong muốn. Các tập tin âm thanh xuất ra là ồn ào (cả lớn hơn, cũng như tiếng ồn thêm không có trong tập tin gốc), và âm thanh từ một kênh bị rò rỉ vào kênh khác (trước đây đã bị tắt tiếng). Tệp âm thanh đầu vào là tệp âm thanh nổi, 2 kênh có âm thanh chỉ phát ra từ một kênh. Đây là mã của tôi:
import scipy
import wave
import struct
import numpy
import pylab
from scipy.io import wavfile
rate, data = wavfile.read('./TriLeftChannel.wav')
filtereddata = numpy.fft.rfft(data, axis=0)
print (data)
filteredwrite = numpy.fft.irfft(filtereddata, axis=0)
print (filteredwrite)
wavfile.write('TestFiltered.wav', rate, filteredwrite)
Tôi không hiểu tại sao điều này không hiệu quả ...?
EDIT: Tôi đã nén lên tệp .py và tệp âm thanh có vấn đề, nếu điều đó có thể giúp giải quyết vấn đề here.
thử thêm 'filterwrite = numpy.round (filterwrite) .astype ('int16')' trước khi bạn lưu –
@Bago - Cảm ơn rất nhiều! Điều đó hoàn toàn khắc phục được vấn đề. Tôi đã tự hỏi, không buộc ifft lọc để 'int16' có nghĩa là nó sẽ là một tập tin âm thanh sâu 16-bit? – SolarLune
Tôi không biết nhiều về các tệp wav, tôi luôn cho rằng chúng là dữ liệu thô, không nén, nhưng bạn sẽ phải đọc kỹ thông số định dạng wav để biết chắc chắn. –