音频可视化:发送音频数据以在pygame中进行可视化

时间:2019-02-01 17:21:35

标签: python-3.x audio pygame fft audio-player

我正在尝试使用pygame制作音频可视化程序,但我感到很困惑。我有以下困惑:

  1. 分析音频数据的正确方法是什么?

    在我目前的方法中,我已执行以下操作:

    • 读取.wav文件
    • 对数据样本进行了FFT
    • 排序输出
    • 通过将最小值,中值和最大值归一化为要绘制的圆的半径来发送
  2. 如果要基于数据创建各种矩形块,如何发送数据?

    在方法1中,由于我已经整理了数据,因此实际上并没有给我必要的可视化效果。如果要绘制60个矩形(例如),应切列表的哪一部分?

我当前的代码:

def analyze(a,b):
rate,audData = scipy.io.wavfile.read("songs/wav/second.wav")
channel = audData[:,0] #left channel

CHUNK = 1024

a += CHUNK
b += CHUNK

print(len(channel))

fft_data = np.fft.fft(channel[a:b])
freq = np.absolute(fft_data)
freq = freq[freq <= 25000]
sorted_freq = np.sort(freq)
#print(sorted_freq)
#sorted_freq = sorted_freq
#print(sorted_freq)

r1 = int(( sorted_freq[0] / 22000 ) * 100)
r2 = int(( sorted_freq[int(len(sorted_freq)/2)+50] / 22000 ) * 100)
r3 = int(( sorted_freq.max()/ 22000) * 100)

return r1,r2,r3

这真的是我第一次处理音频数据,如果您还可以对音频可视化整体进行概述,我将不胜感激。我经历了不少文章了,但无法把握的概念。

0 个答案:

没有答案
相关问题