Частотный фильтр для построения WAV-файлов в Python - PullRequest
0 голосов
/ 11 декабря 2018

В настоящее время я учусь строить на питоне.Вот рабочий график частоты для файла WAV.Теперь я хочу сделать фильтр, который обрезает частоты ниже 300 Гц и выше 3400 Гц, что-то вроде полосы пропускания?Кто-нибудь может сказать мне самый простой способ сделать это?Я читал что-то о встроенном фильтре high и lowpassfilter, например

"wav_filename.low_pass_filter (3400)", но это не работает.

%matplotlib inline

from scipy.io import wavfile
from scipy.fftpack import fft, fftfreq
import matplotlib.pyplot as plt
from pydub import AudioSegment

wav_filename = "speech_clean (1).wav"

samplerate, data = wavfile.read(wav_filename)

total_samples = len(data)

limit = int((total_samples /2)-1)

fft_abs = abs(fft(data))

freqs = fftfreq(total_samples,1/samplerate)

fftfreq?

# plot the frequencies
plt.plot(freqs[:limit], fft_abs[:limit])
plt.title("Frequency spectrum of %s" % wav_filename)
plt.xlabel('frequency in Hz')
plt.ylabel('amplitude')
plt.show()
...