from scipy.signal import butter, lfilter | |
import scipy.signal | |
# def high_pass_filter(audio, sr, cutoff=100, order=5): | |
# """ | |
# Applies a high-pass filter to an audio signal. | |
# Parameters: | |
# audio (numpy array): The input audio signal. | |
# sr (int): The sample rate of the audio signal. | |
# cutoff (float): The cutoff frequency in Hz. Default is 100 Hz. | |
# order (int): The order of the filter. Default is 5. | |
# Returns: | |
# numpy array: The filtered audio signal. | |
# """ | |
# # Design the high-pass filter using a Butterworth filter design | |
# sos = scipy.signal.butter(order, cutoff, btype='highpass', fs=sr, output='sos') | |
# # Apply the filter using sosfilt (second-order sections filter) | |
# filtered_audio = scipy.signal.sosfilt(sos, audio) | |
# return filtered_audio | |
def high_pass_filter(audio, sr, cutoff=300): | |
# Design a Butterworth high-pass filter | |
nyquist = 0.5 * sr | |
normal_cutoff = cutoff / nyquist | |
b, a = butter(1, normal_cutoff, btype='high', analog=False) | |
filtered_audio = lfilter(b, a, audio) | |
return filtered_audio | |