| 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 | |