[PYTHON] [Analyse vocale] Trouvez une similitude croisée avec Librosa

Qu'est-ce que la similitude croisée?

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)

Pourquoi croiser la similitude

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é.

environnement

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 ...

Calcul de la similitude croisée

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)

terrain

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

[Analyse vocale] Trouvez une similitude croisée avec Librosa
Analyse vocale par python
Analyse vocale par python
Trouver la similitude d'image avec Python + OpenCV
[Analyse vocale] Collectez des données sur le chant des oiseaux avec xeno-canto
Analyse de données avec python 2
Validation croisée avec scikit-learn
Analyse dynamique par Valgrind
Effectuer une analyse de régression avec NumPy
Analyse de données avec Python