サウンドファイルの分析では、リスニングに加えて、サウンドをグラフィックに変換することをお勧めします。これにより、サウンドファイル間の違いが視覚的に認識され、その後の分析に非常に役立ちます。
Pythonは、SCIPYライブラリを使用してwavファイルをロードし、matplotlibを使用してグラフィックを描画できます。まず、このWebサイトからwavサンプルファイルとして1Mおよび2Mのwavファイルをダウンロードしました:https://file-examples.com/index.php/sample-audio-files/sample-wav-download/
次に、次のコードを使用して、wavファイルの色調グラフをインストールして描画します。
from scipy.io import wavfile
from matplotlib import pyplot as plt
from matplotlib.pyplot import figure
# load wav files
fs_1m,data_1m = wavfile.read("./wav/file_example_WAV_1MG.wav")
fs_2m,data_2m = wavfile.read("./wav/file_example_WAV_2MG.wav")
# set plt style
plt.style.use('seaborn-whitegrid')
# plot data
fig,(ax1, ax2)= plt.subplots(1,2)
ax1.plot(data_1m, color='b')
ax1.set_title("auido with 1M size")
ax2.plot(data_2m, color='y')
ax2.set_title("auido with 2M size")
plt.savefig('audio.png', dpi=150)
出力グラフィックは次のとおりです。
2つのグラフィックは基本的に同じですが、2MファイルのX座標は1MファイルのX座標の2倍であることがわかります。
次に、fastdtwライブラリを使用して、2つのオーディオデータ間のユークリッド距離を簡単に計算できます。
from fastdtw import fastdtw
from scipy.spatial.distance import euclidean
# calculate euclidean distance
distance,path =fastdtw(data_1m, data_2m, dist=euclidean)print("the distance between the two clips is %s"% distance)
出力は次のとおりです。
the distance between the two clips is 4093034781.337242
Recommended Posts