如果您使用scipy.io.wavfile,它将直接读取波形文件并将数据加载到 numpy 数组中。然后您可以根据您的要求对其进行切片。
scipy.io.wavfile读取 WAV 文件并返回 WAV 文件中的采样率(以样本/秒为单位)和数据
>>> type(f)
<type 'tuple'>
>>> f
(44100, array([-36, 57, 156, ..., 66, 64, 77], dtype=int16))
>>>
源代码
from scipy.io.wavfile import read
import numpy as np
f = read('your_audio.wav')
n = np.array(f[1],dtype=float)
for i in xrange(0,len(n),10):
my_buffer = n[i:i+10]
my_buffer 内容:
>>>
[ -36. 57. 156. 198. 191. 126. 70. 42. 43. 62.]
[ 69. 71. 83. 117. 159. 177. 151. 89. 14. -27.]
[ -33. -4. 21. 38. 42. 66. 94. 134. 144. 142.]
[ 118. 115. 111. 132. 122. 123. 103. 119. 125. 134.]
.....
.....
在这里,我们my_buffer每次迭代有 10 帧,您可以将其输入到下一个块中。