2017-04-12 437 views
0

我有一个.wav音频文件,我正在将音频转换为文本。我需要减少/消除噪音以获得更准确的结果。如何从python中的.wav音频文件中删除/减少噪声

请让我知道如何去了解它

import wave 
import sys 

import binascii 

ip = wave.open('C:\\Users\\anagha\\Documents\\Python Scripts\\a1.wav', 'r') 

op = wave.open('C:\\Users\\anagha\\Documents\\Python Scripts\\r_1.wav', 'w') 
op.setparams(ip.getparams()) 

for i in range(ip.getnframes()): 
iframes = ip.readframes(1) 
amp = int(binascii.hexlify(iframes)) 
if amp > 32767: 
    amp = 65535 - int(binascii.hexlify(iframes))#-ve 
    print(amp) 
else: 
    amp = int(binascii.hexlify(iframes))#+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() 

收到错误:

ValueError: invalid literal for int() with base 10: b'ffff' 

回答

0

你试图非数字转换成整型,

也许,你意思。

amp = int(len(binascii.hexlify(iframes))) 
0

转换为int时,不带前导'0x'的十六进制字符串手动指定基础。如下:

int(binascii.hexlify(iframes), 16)