如何使用波形库从波形文件中的字节数据类型中获取整数值



我正在使用一些波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]

最新更新