附件(15.2KB) hq89f2JX1av0oF2NVKL9CiuHRwJt1ud8_加100.mp3(在新窗口打开)
我用小波去噪,只保留高频的,也不行。麻烦大佬出手帮帮忙,谢谢
def wavelet_highpass(signal, wavelet='db1'):
"""使用小波变换进行高频信号提取"""
# 分解信号
coeffs = pywt.wavedec(signal, wavelet)
print("coeffs=",coeffs)
# 只保留高频成分,将低频成分置为零
coeffs_highpass = [coeffs[0]] + [np.zeros_like(c) for c in coeffs[1:]]
# 重构信号
highpassed_signal = pywt.waverec(coeffs_highpass, wavelet)
return highpassed_signal
# 加载音频
y, sr = librosa.load(temp_加100, sr=None) # sr=None 保持采样率
# 高频保留处理
y_highpass = wavelet_highpass(y, wavelet='db1') # 使用小波去掉低频
# 保存高频音频,使用 soundfile 保存为 .wav 格式
sf.write(temp_高频, y_highpass, sr)
# 使用 pydub 将 WAV 转换为 MP3
sound = AudioSegment.from_wav(temp_高频)
sound.export(temp_高频_mp3, format="mp3")
--
FROM 120.242.238.*
有大佬有什么好方法吗?或者提提建议?目前用小波去噪,加上 去掉低频coeffs[0]--[15]和16的前2分之1,确实能去掉前面的噪音,后面的猫叫保留了。但这个似乎没有通用性啊?有的音频可能没有16 ,或者猫叫在音频文件的前半部分,怎么办?谢谢
--
FROM 120.242.238.*