- “RATE”是“采样率”,即数量 帧 每秒
- “ CHUNK”是此示例中(可能非常长的)信号被分成的(任意选择的) 帧数
- 是的,每个帧都有2个样本,例如“ CHANNELS = 2”,但是在这种情况下很少使用术语“样本”(因为这很令人困惑)
- 是的,在此示例中,每个样本的大小为2个字节(= 16位)
- 是的,每帧的大小为4个字节
- 是的,“帧”的每个元素应为4096字节。
sys.getsizeof()
报告Python解释器所需的存储空间,通常比原始数据的实际大小大一点。 RATE * RECORD_SECONDS
是应记录的 帧数 。由于for
循环不是针对每个 帧 而是仅针对每个 块 重复,因此循环数必须除以块大小CHUNK
。这与 样本 无关,因此没有2
涉及因素。- 如果您确实想查看十六进制值,可以尝试使用
[hex(x) for x in frames[0]]
。如果要获取实际的2字节数字'<H'
,请在struct
模块中使用格式字符串。
您可能对我的有关使用
wave模块读取WAV文件的教程感兴趣,该教程更详细地介绍了您的一些问题:http :
//nbviewer.jupyter.org/github/mgeier/python-audio/blob/master/audio-files
/audio-files-with-
wave.ipynb



