我需要在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]
如果我更改值> 5000到0就够了吗?我不认为这样,我很困惑,很乐意听到任何帮助。
答案 0 :(得分:4)
Pydub包含一个lopass过滤器 - 你不需要自己实现它:
from pydub import AudioSegment
song = AudioSegment.from_wav("audio.wav")
new = song.low_pass_filter(5000)
它"记录"在effects.py。