How to clustering syllable types with python?

2019-09-13 01:17发布

问题:

This is my second question in stack overflow. I don't have to much experience with python, but had excellent results with my first question and I was able to implement the code from the answer, so I will try again with this new problem:

I am trying to classify syllable types from a canary song, in order to use each types as templates to find and classify large sets of data with similar behavior. I use the envelope of the singing. My data is a sampled array, with time and amplitude (a plot of the data is posted in http://ceciliajarne.web.unq.edu.ar/envelope-problem/ ). I try to use singular value decomposition algorithm from Numpy:

U,s,V = linalg.svd(A) # SVD decomposition of A

I'm not sure how to build a meaningful A matrix with the data of time series in order to follow this approach. How to cut the time series to obtain a matrix to analyze it?

I thought a possible second approach: the Hierarchical clustering. It may be a better solution, but I don't know how to use a clustering criteria. What I know is that:

  • There are around 10 different syllable types.
  • The distance between the minims and relative maximum in each type changes.
  • Also the length of each syllable. -Similar syllable has similar frequency behavior.

Which information can I use to fed the scipy.cluster.hierarchy. Function? I want to group the common syllable types in clusters.

I was inspired by: Unsupervised clustering with unknown number of clusters

But now I don't know how to implement a first test... Any idea could be very useful, this is the first time for me with patterns and time series.