[英]separate frequencies from music
i want to print separate frequency present in a music file. 我想打印音乐文件中存在的单独频率。 if freq amp is grater than threshold.
如果频率放大器比阈值更小。 then it will brinted.
然后它会发亮。
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)
it is printing frequencies 0.something. 它是打印频率0.something。 not getting actual frequiencies
没有得到实际的频率
Your loop over freq1
is wrong. 您在
freq1
上的循环是错误的。 To use i
as the index for freq1
, try this: 要将
i
用作freq1
的索引,请尝试以下操作:
for i in range(len(freq1):
freq = freq1[i]
print freq
Or alternatively, 或者,
for i in freq1:
print i
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.