我正在使用一些波24位波浪文件。
我从这里使用了"wavread"功能:https://gist.github.com/WarrenWeckesser/7461781。
下一个代码是一个示例:
示例代码
audio1 = wave.open('13file4.wav')
rate = audio1.getframerate()
nchannels = audio1.getnchannels()
sampwidth = audio1.getsampwidth()
nframes = audio1.getnframes() #.shape[0]
data = audio1.readframes(nframes)
audio1.close()
在"数据"中,你可以找到这样的东西:b'\x00\x00\xffm'
其中 \x00,\x00 和 \xffm 采用十六进制格式。
有没有办法分别获取这些值中的每一个并将它们转换为 int 值?
我知道有int.from_bytes函数,但我无法从数据文件中获取每个值。
非常感谢。
您在这里拥有一个字节对象,并且如文档中所述:
虽然字节文字和表示形式基于 ASCII 文本, 字节对象实际上表现得像不可变的整数序列
因此,您可以通过索引访问任何字节,您将获得一个整数:
data = b'x00x00xffm'
print(data[2])
# 255
或者你可以把它全部变成一个真实的整数列表:
print(list(data))
# [0, 0, 255, 109]