繁体   English   中英

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

[英]Filtering frequencies above limit in wav file (Low pass filter)

我需要在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就够了吗? 我不认为那样,我很困惑,很乐意听到任何帮助。

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

from pydub import AudioSegment

song = AudioSegment.from_wav("audio.wav")
new = song.low_pass_filter(5000)

它在effects.py中 “记录”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM