我想在音乐文件中打印单独的频率。如果是频率放大器 比门槛更重要。然后就会亮了。
import pyaudio
import wave
import numpy as np
chunk = 2048
wf = wave.open('/home/pi/music.wav', 'rb')
swidth = wf.getsampwidth()
RATE = wf.getframerate()
window = np.blackman(chunk)
p = pyaudio.PyAudio()
stream = p.open(format =
p.get_format_from_width(wf.getsampwidth()),
channels = wf.getnchannels(),
rate = RATE,
output = True)
data = wf.readframes(chunk)
while len(data) != '':
stream.write(data)
indata = np.array(wave.struct.unpack("%dh"%(len(data)/swidth),\
data))
fftdata=abs(np.fft.rfft(indata))**2
freq1=np.fft.fftfreq(len(indata))
for i in range(len(freq1)):
freq = freq1[i]
print freq
data = wf.readframes(chunk)
打印频率为0.something。没有得到实际的经常性
答案 0 :(得分:1)
您对freq1
的循环错误。要使用i
作为freq1
的索引,请尝试以下操作:
for i in range(len(freq1):
freq = freq1[i]
print freq
或者,
for i in freq1:
print i