我需要在 wav 文件中过滤 5Khz 以上的频率。我做了一些研究,发现了巴特沃斯算法,但无法应用它。
假设我有一个单声道 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 就足够了吗?我不这么认为,我很困惑,很高兴听到任何帮助。
最佳答案
Pydub 包含一个 lopass 过滤器——您无需自己实现它:
from pydub import AudioSegment
song = AudioSegment.from_wav("audio.wav")
new = song.low_pass_filter(5000)
它被“记录”在 effects.py 中.
关于python - 过滤 wav 文件中高于限制的频率(低通滤波器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37139455/