[PYTHON] [Sprachanalyse] Finden Sie Kreuzähnlichkeit mit Librosa

Was ist Kreuzähnlichkeit?

Eine auf die teilweise Anpassung spezialisierte Musterextraktionsmethode, die eine Ableitung der ** Dynamic Time Stretching Method (DTW) ** ist. DTW ist eine Metrik, die eine Entfernungsmatrix zwischen Zeitreihendaten erstellt, eine Mindestroute findet und diese als Entfernung verwendet. Cross Similarity findet jedoch mehrere Routen für die teilweise Übereinstimmung. Eine leicht verständliche Erklärung der DTW hier

Informationen zur Kreuzähnlichkeit finden Sie im folgenden Artikel. Discovery of Cross Similarity in Data Science(Toyoda et al. 2010)

Warum Kreuzähnlichkeit?

Als ich nur die Rinde aus den Langzeitdaten der Rinde eines Vogels segmentieren wollte, hat die Wellenform der Rinde die Eigenschaft, das Muster zu wiederholen, und ich dachte, dass es für diese Methode geeignet wäre, also experimentierte ich.

Umgebung

python 3.7.4 librosa 0.7.2 matplotlib 3.1.1

Let's Librosa! Wir haben das einfachste Beispiel aus der [Librosa-Dokumentation] verwendet (https://librosa.org/doc/latest/generated/librosa.segment.cross_similarity.html#librosa.segment.cross_similarity). Ich studiere über Kreuzähnlichkeitsvariablen, Parameter, Algorithmen usw.

Berechnung der Kreuzähnlichkeit

import librosa
import librosa.feature
import librosa.segment
import librosa.display

hop_length = 1024
y_ref, sr = librosa.load("path to sound file")
y_comp, sr = librosa.load("path to sound file")
chroma_ref = librosa.feature.chroma_cqt(y=y_ref, 
  sr=sr,hop_length=hop_length)
chroma_comp = librosa.feature.chroma_cqt(y=y_comp, 
  sr=sr, hop_length=hop_length)

x_ref = librosa.feature.stack_memory(
  chroma_ref, n_steps=10, delay=3)
x_comp = librosa.feature.stack_memory(
  chroma_comp, n_steps=10, delay=3)
xsim = librosa.segment.cross_similarity(x_comp, x_ref)

Handlung

import matplotlib.pyplot as plt
fig, ax = plt.subplots()

librosa.display.specshow(xsim, x_axis='s', y_axis='time', hop_length=hop_length, ax=ax)
plt.show()

Ich denke, Sie erhalten ein dokumentähnliches Bild. das ist alles. Danke fürs Lesen.

Recommended Posts

[Sprachanalyse] Finden Sie Kreuzähnlichkeit mit Librosa
Sprachanalyse mit Python
Sprachanalyse mit Python
Finden Sie Bildähnlichkeit mit Python + OpenCV
[Sprachanalyse] Sammeln Sie Vogellieddaten mit Xeno-Canto
Datenanalyse mit Python 2
Kreuzvalidierung mit Scikit-Learn
Dynamische Analyse von Valgrind
Führen Sie eine Regressionsanalyse mit NumPy durch
Datenanalyse mit Python