我正在编写以下python代码:
import wave
from bitstring import BitArray
w = wave.open('file.wav','rb')
totalFrames = w.getnframes() #Total number of samples
bytesData = w.readframes(totalFrames)
binData = BitArray(bytesData)
bin2Data = (binData.bin)
那个文件.wav有88200个样本,采样率为44.1KHz。
我的目标是能够从二进制数据中得到2的补充文件.wav. 'binData.bin文件'给出通过w.readframes
获得的字节(\x00\x00N\x00n\xff..
)的二进制形式,但采用字符串格式。你知道吗
我用这个来获得2's补偿:
2comp = ~(bin2Data) + 0b1
但这是徒劳的。它将显示以下错误:
Traceback (most recent call last):
File "speaker_bin.py", line 16, in <module>
bin2Data = ~((binData.bin)) + 0b1
TypeError: bad operand type for unary ~: 'str'
我试图int(bin2Data)
转换它,但它不起作用(它根本不会打印任何东西)。我想是因为数据太大了。)
我做错什么了?你知道吗
如果有任何反馈,我将不胜感激。(即使是一个简单的轻推在正确的方向)
你需要使用
要创建int,可以将base指定为第二个参数,否则它只会假定该值以10为基数。从docs中可以看到,默认的基数是10,这就是为什么需要指定除10以外的其他基数
对
0b1
也要这样做相关问题 更多 >
编程相关推荐