在 wav 文件中过滤超过限制的频率(低通滤波器)

nop*_*ope 4 python audio signal-processing fft frequency

我需要在 wav 文件中过滤 5Khz 以上的频率。我做了一些研究,发现了 Butterworth 算法,但无法应用它。

假设我有一个单声道 wav 文件。我读了它,然后我想使用低通滤波器来过滤 5Khz 以上的频率。

到目前为止我所做的是这个。我读取文件,读取帧并将它们转换为数值。

from pydub import AudioSegment

song = AudioSegment.from_wav("audio.wav")
frame_count = int(song.frame_count())
all_frames = [song.get_frame(i) for i in range(frame_count)]

def sample_to_int(sample):
    return int(sample.encode("hex"), 16)

int_freqs = [sample_to_int(frame) for frame in all_frames]
Run Code Online (Sandbox Code Playgroud)

如果我将>5000 的更改值更改为 0 就足够了吗?我不认为是这样,我很困惑,很高兴听到任何帮助。

Lin*_*ios 5

Pydub 包含一个 lopass 过滤器——您无需自己实现它:

from pydub import AudioSegment

song = AudioSegment.from_wav("audio.wav")
new = song.low_pass_filter(5000)
Run Code Online (Sandbox Code Playgroud)

它在effects.py 中被“记录” 。