在下面的代码中,我创建了一个缓冲区,在每次循环迭代中保存10帧音频文件。
ALTER TABLE post_data MODIFY upd_date datetime null;
在缓冲区之外,我需要得到一个numpy数组,用librosa表示每个采样点的音频幅度。有什么想法吗?
答案 0 :(得分:0)
如果使用scipy.io.wavfile,它将直接读取wave文件并将数据加载到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帧,您可以将其输入下一个块。