我刚刚读了一个scipy的wav文件,现在我想使用matplotlib绘制该文件的图,在“ y比例”上,我想查看倾斜度,在“ x比例”上,我想查看帧数!任何帮助我该怎么做?谢谢!
from scipy.io.wavfile import read
import numpy as np
from numpy import*
import matplotlib.pyplot as plt
a=read("C:/Users/Martinez/Desktop/impulso.wav")
print a
您可以调用wave lib来读取音频文件。
要绘制波形,请使用matplotlib中的“绘图”功能
import matplotlib.pyplot as plt
import numpy as np
import wave
import sys
spf = wave.open("wavfile.wav", "r")
# Extract Raw Audio from Wav File
signal = spf.readframes(-1)
signal = np.fromstring(signal, "Int16")
# If Stereo
if spf.getnchannels() == 2:
print("Just mono files")
sys.exit(0)
plt.figure(1)
plt.title("Signal Wave...")
plt.plot(signal)
plt.show()
您将看到类似以下内容:
要以秒为单位绘制x轴,您需要获得帧频并除以信号大小,您可以使用numpy的linspace函数创建一个与音频文件的大小线性间隔的时间向量,最后可以再次使用plot喜欢 plt.plot(Time,signal)
import matplotlib.pyplot as plt
import numpy as np
import wave
import sys
spf = wave.open("Animal_cut.wav", "r")
# Extract Raw Audio from Wav File
signal = spf.readframes(-1)
signal = np.fromstring(signal, "Int16")
fs = spf.getframerate()
# If Stereo
if spf.getnchannels() == 2:
print("Just mono files")
sys.exit(0)
Time = np.linspace(0, len(signal) / fs, num=len(signal))
plt.figure(1)
plt.title("Signal Wave...")
plt.plot(Time, signal)
plt.show()
以秒为单位的新图x轴:
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句