我想从波形音频文件中去除噪音(嘶嘶声)。全波音频图如下:

我正在使用下面的代码。这可能是一个愚蠢的尝试,但在matlab中我注意到噪声部分的振幅在0-3000之间变化。所以我试着把它们都归零,然后把新的帧保存到一个新的wav文件中。不知怎的,它没有起作用!在

import wave
import sys
ip = wave.open(sys.argv[1], 'r')
op = wave.open(sys.argv[2], 'w')
op.setparams(ip.getparams())
for i in range(ip.getnframes()):
iframes = ip.readframes(1)
amp = int(iframes.encode('hex'),16)
if amp > 32767:
amp = 65535 - int(iframes.encode('hex'),16)#-ve
print amp
else:
amp = int(iframes.encode('hex'),16)#+ve
print amp
if amp < 2000:
#make it zero
final_frame = '\x00\x00'
else:
#Keep the frame
final_frame = iframe
op.writeframes(final_frame)
op.close()
ip.close()

运行上述脚本后,它变成了:

噪音部分(&lt;=2500)仍然存在。因此请建议我如何移除这些不必要的部分!在

谨致问候