概述
import wave
import struct,numpy
from scipy import *
from pylab import *
def Plot_fft_freq_chart(filename,plot=False):
wavefile = wave.open(filename, 'r') # open for writing
nchannels = wavefile.getnchannels()
sample_width = wavefile.getsampwidth()
framerate = wavefile.getframerate()
numframes = wavefile.getnframes()
print("channel",nchannels)
print("sample_width",sample_width)
print("framerate",framerate)
print("numframes",numframes)
y = numpy.zeros(numframes)
for i in range(numframes):
val = wavefile.readframes(1)
left = val[0:2]
#right = val[2:4]
v = struct.unpack('h', left )[0]
y[i] = v
Fs = framerate
try:
data, freqs, bins, im = specgram(y, NFFT=1024, Fs=Fs, noverlap=900)
mm=data[127]
mm=10. * np.log10(mm+1e-4)
except Exception as e:
print("error is: ",e)
return -50
freq1khz_value=mean(mm)
print(freq1khz_value)
if plot:
show()
return freq1khz_value
filename1="test2/music_high.wav"
Plot_fft_freq_chart(filename1,True)
最后
以上就是暴躁板栗为你收集整理的Python绘制wav文件频谱图的全部内容,希望文章能够帮你解决Python绘制wav文件频谱图所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复