[英]struct.error: unpack requires a buffer of 1024 bytes
import pyaudio
import struct
import numpy
import matplotlib.pyplot as plt
import wave
import array
filaname=".test.wav"
wf=wave.open(filaname,"rb")
CHUNK=512*2
FORMAT=pyaudio.paInt16
CHANNELS=1
RATE=44100
p=pyaudio.PyAudio()
stream=p.open(
format=FORMAT,
channels=CHANNELS,
rate=RATE,
input=True,
output=True,
frames_per_buffer=CHUNK
)
data=wf.readframes(CHUNK)
data_int=struct.unpack(str(CHUNK)+ 'B',data)
print(data_int)
以上是我尝试将音频字节转换为整数的代码,但出现错误“ data_int=struct.unpack(str(CHUNK)+ 'B',data)
struct.error: unpack 需要 1024 字节的缓冲区"
struct.unpack
在这里是不必要的。 字节字符串已经被索引为整数,所以data[index]
返回一个 integer。 如果这些整数需要一个可变列表,则list(data)
将返回它。 bytearray
也是bytes
的可变版本。
例子:
>>> data = b'\x01\x02\x03abc'
>>> data[0]
1
>>> list(data)
[1, 2, 3, 97, 98, 99]
>>> ba = bytearray(data)
>>> ba
bytearray(b'\x01\x02\x03abc')
>>> ba[3]=5
>>> ba
bytearray(b'\x01\x02\x03\x05bc')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.