2017-11-12 32 views
0

私は時間に「サンプル」から、このグラフ上にx軸を変更する必要があります。 enter image description herex軸をサンプル/フレームから時間に変更するにはどうすればいいですか?

私はこのプロセスを使用してグラフを作成しました:

y, _ = librosa.load('sound/data/kea-song.mp3', 48000) 
y /= y.max() 

# compute the rmse 
e = librosa.feature.rmse(y=y)[0] 
e -= e.min()#what does this really do, guessing a kind of normalisation? 
e /= e.max() 
plt.plot(e) 
plt.show() 

私はRMSEを計算していない場合は、これは、時間にx軸を変換します

y, _ = librosa.load('sound/data/kea-song.mp3', 48000) 
plt.plot(np.arange(len(y))/48000, y) 

しかし、RMSE関数の後、私は、変換を行う方法がわかりません。私はフレームとグループ化されてyのサンプルとは何かを推測していますが、私は私の人生はこれらのフレーム(フレームの場合)から時間に変換する方法を考え出すことはできません!

どうすればよいですか?事前に おかげで(:

  • plt.plotためHERESにプロット(Y): enter image description here

答えて

2

私はこれのいずれかをテストしていませんが、ドキュメントを読んで、それは機能と思われますフレームのFFTを2048サンプル、ホップ長が512サンプルのフレームで計算する

つまり、len(y)のサンプルがオリジナルのオーディオに含まれている場合、出力には(len(y)-2048)//512フレームが必要です。最初のフレームはサンプルになります。 0、第2サンプル512のフレームなど、これを行うことができます:

e_time = np.arange(len(e))*512/48000 
plt.plot(e_time, e) 
関連する問題