将频率与音乐分开 [英] 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)
打印频率为0.没有得到实际的频率
it is printing frequencies 0.something. not getting actual frequiencies
推荐答案
您在freq1
上的循环是错误的.要将i
用作freq1
的索引,请尝试以下操作:
Your loop over freq1
is wrong. To use i
as the index for freq1
, try this:
for i in range(len(freq1):
freq = freq1[i]
print freq
或者,
for i in freq1:
print i
这篇关于将频率与音乐分开的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文