如何获得Python(即C的limits.h中的SHRT_MAX)中的最大符号短整数?在Python中查找最大带符号短整数
我想正常化一个*.wav
文件的单个通道的样本,所以我不想使用一堆16位有符号整数,而是需要一组浮点数在1和-1之间。下面是我得到了什么(有关代码是在normalized_samples()
功能):
def samples(clip, chan_no = 0):
# *.wav files generally come in 8-bit unsigned ints or 16-bit signed ints
# python's wave module gives sample width in bytes, so STRUCT_FMT
# basically converts the wave.samplewidth into a struct fmt string
STRUCT_FMT = { 1 : 'B',
2 : 'h' }
for i in range(clip.getnframes()):
yield struct.unpack(STRUCT_FMT[clip.getsampwidth()] * clip.getnchannels(),
clip.readframes(1))[chan_no]
def normalized_samples(clip, chan_no = 0):
for sample in samples(clip, chan_no):
yield float(sample)/float(32767) ### THIS IS WHERE I NEED HELP
如果它们是16位样本,则将它们除以32768,无论最大的常规整数的大小是多少。 python只有两种整数,直到版本3,一个“常规”有限大小的int和一个无限的binint。没有短整型。 – 2010-02-22 01:32:26