我不想使用任何其他应用程序(如sox) - 我想在纯Python中执行此操作.安装所需的Python库很好.
我试图直接从python 2.7.3(使用ubuntu)中的mp3文件绘制一个视频.我可以从wav文件中执行以下操作.
#!/usr/bin/python
from scikits.audiolab import wavread
from pylab import *
signal, fs, enc = wavread('XC124158.wav')
specgram(signal)
show()
Run Code Online (Sandbox Code Playgroud)
从mp3文件而不是wav做同样事情最干净的方法是什么?如果我可以避免它,我不想将所有mp3文件转换为wav.
我正在尝试获取wavpython 中文件的频谱图。但它给出了错误:
“模块”对象没有属性“频谱图”。
这是代码:
import scipy.io.wavfile
from scipy.io.wavfile import read
from scipy import signal
sr_value, x_value = scipy.io.wavfile.read("test.wav")
f, t, Sxx= signal.spectrogram(x_value,sr_value)
Run Code Online (Sandbox Code Playgroud)
还有什么方法可以获取wav文件的频谱图吗?
我计算了 uint8 I/Q 数据的 STFT,并将其存储在一个 numpy 矩阵中,其中每一行存储一个窗口的 STFT,如下面的 sudo 代码所示。
#k= length of window
#fs= Sampling frequency
#n= Number of STFT calculated
#matrix= Initially empty numpy array
for i in range(0,n):
t=data[start:end,:] #start & end calculated with each iteration
t=t.flatten()
t=t-127.5
array = np.empty(t.shape[0]//2, dtype=np.complex128)
array.real = t[::2]
array.imag = t[1::2]
transform=(np.fft.fft(temp_array))
line = 2*abs(transform)/k
#Inserting row into numpy array
if(i==0):
matrix = np.hstack((matrix, line))
else:
matrix = np.vstack((matrix, line))
Run Code Online (Sandbox Code Playgroud)
现在如何绘制频率与时间的频谱图?