繁体   English   中英

struct.error: unpack 需要 1024 字节的缓冲区

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM