gpt4 book ai didi

audio - 带librosa的音频缓冲区

转载 作者:行者123 更新时间:2023-12-02 23:35:43 25 4
gpt4 key购买 nike

在下面的代码中,我创建了一个缓冲区,该缓冲区在每次循环迭代中保存10帧音频文件。

import collections
import librosa
import wave
my_buffer = collections.deque(maxlen=10)
f = wave.open('Desktop/0963.wav',"rb")
num_frames = f.getnframes()
for frame in range(num_frames):
my_buffer.append(f.readframes(frame))

在缓冲区之外,我需要获取一个表示librosa的每个采样点的音频幅度的numpy数组。任何的想法?

最佳答案

如果使用scipy.io.wavfile,它将直接读取wave文件并将数据加载到numpy数组。然后可以根据需要对其进行 slice 。
scipy.io.wavfile读取WAV文件,并从WAV文件返回采样率(以samples / sec为单位)和数据

>>> 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帧,您可以将其输入到下一个块中。

关于audio - 带librosa的音频缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46407583/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com