如何从python中的wav文件中获取频率和时间的数据帧?

如何从python中的wav文件中获取频率和时间的数据帧?,python,pandas,dataframe,speech,Python,Pandas,Dataframe,Speech,我已经能够使用librosa读取波形文件,但是能够得到一个缺少最重要部分“时间”的频率和振幅列表,我不知道如何进行旋转 import librosa from matplotlib import pyplot as plt from librosa import display import seaborn as sns sns.set() # Use seaborn's default style to make attractive graphs plt.rcParams['figure.

我已经能够使用librosa读取波形文件,但是能够得到一个缺少最重要部分“时间”的频率和振幅列表,我不知道如何进行旋转

import librosa
from matplotlib import pyplot as plt
from librosa import display
import seaborn as sns

sns.set() # Use seaborn's default style to make attractive graphs
plt.rcParams['figure.dpi'] = 100 # Show nicely large images in this notebook

samples, sampling_rate = librosa.load('last.aac')
plt.figure(figsize=(13,4))
librosa.display.waveplot(y = samples, sr =  sampling_rate)

plt.xlabel("Time (Seconds)")
plt.ylabel("Amplitude")
plt.title("Time Domain Frequency")
plt.show()
print("sampling rate is :", sampling_rate)
print("Number of samples :", len(samples))

max1 = max(samples*10)
print("Maximum amplitude", round(max1, 2))

min1 = min(samples*10)
print("Minimum amplitude", round(min1, 2))

import pandas as pd
d=pd.DataFrame(samples,columns=["Amplitudes"], index=None)
d.head()


Amplitudes  frequencies
0.091039    2756.813965
-0.040613   2427.044189
-0.046945   2347.927002
-0.136473   2323.757080
0.050659    2317.414062
我真正想提取的是以下内容

Time Frequency Amplitude
0   0.00000 -57.72730
0  21.53320 -63.55554
0  43.06641 -85.05077
0  64.59961 -91.29989
0  86.13281 -83.86144
0 107.66602 -81.54240

如果您有采样率(以Hz为单位),则可以使用它以秒为单位创建索引。这是一个使用4秒音频文件的示例

import librosa
import pandas as pd

y,sr = librosa.load('myfile.wav')

df = pd.DataFrame(y, columns=['Amplitude'])

df.index = [(1/sr)*i for i in range(len(df.index))]

print(df.head())
print(df.tail())
输出:

          Amplitude
0.000000  -0.004855
0.000045  -0.007008
0.000091  -0.005919
0.000136  -0.006276
0.000181  -0.005805

          Amplitude
3.999773   0.000892
3.999819   0.000765
3.999864   0.000543
3.999909   0.000428
3.999955   0.000216
索引现在以秒为单位

需要注意的是,示例中没有显示
Frequencies
列的位置,所有绘图内容都与问题无关,因此您应该对其中的一些内容进行修剪,以便在上面发布问题