Une méthode d'extraction de modèle spécialisée pour l'appariement partiel, qui est un dérivé de ** Dynamic Time Stretching Method (DTW) **. DTW est une métrique qui crée une matrice de distance entre les données de séries chronologiques, trouve un itinéraire minimum et l'utilise comme distance, mais la similarité croisée trouve plusieurs itinéraires pour une correspondance partielle. Une explication facile à comprendre sur DTW ici
Pour la similitude croisée, consultez l'article ci-dessous. Discovery of Cross Similarity in Data Science(Toyoda et al. 2010)
Quand je voulais segmenter uniquement l'écorce à partir des données à long terme de l'écorce d'un oiseau, la forme d'onde de l'écorce a la particularité de répéter le motif, j'ai donc pensé qu'elle conviendrait à cette méthode, j'ai donc expérimenté.
python 3.7.4 librosa 0.7.2 matplotlib 3.1.1
Let's Librosa! Nous avons utilisé l'exemple le plus simple de la documentation Librosa. J'étudie les variables, paramètres, algorithmes, etc ...
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)
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()
Je pense que vous obtiendrez une image semblable à un document. c'est tout. Merci pour la lecture.
Recommended Posts