Nhận dạng dữ liệu được nhóm lại thành các hình dạng


9

Tôi đang làm việc trên một dự án trong Python để phát hiện và phân loại một số bài hát chim và tôi đã thấy mình ở một vị trí mà tôi cần chuyển đổi một tệp sóng thành tần số so với dữ liệu thời gian. Điều này không phải là quá nhiều vấn đề, nhưng để có thể phân loại các âm tiết khác nhau thành các nhóm, tôi cần phải viết một cái gì đó sẽ phát hiện khi cụm dữ liệu thành một hình dạng nhất định. Để cung cấp cho bạn ý tưởng về dữ liệu trông như thế nào, đây là hình ảnh về dữ liệu trông như thế nào khi được vẽ:

nhập mô tả hình ảnh ở đây

Tôi cần một số cách để có được từng âm tiết riêng lẻ (mỗi hình có một phân tách ở hai bên) và lưu chúng vào một biến hoặc vào các tệp riêng của chúng để tôi có thể chạy tương quan Pearson giữa chúng bằng SciPy.

Ngoài ra, tôi thích Python hơn, nhưng tôi sẵn sàng viết mã bằng các ngôn ngữ khác nếu bạn có cách khác để làm điều đó.

Cảm ơn!


Tôi không hoàn toàn quen thuộc với những gì tôi sắp đề xuất, nhưng có vẻ như Biến đổi Wavelet liên tục với một sóng con có chứa các thuộc tính của âm tiết của bạn là điều đáng để xem xét.
heltonbiker

Bạn có cần tìm một hình dạng hoặc bạn đang cố gắng phân loại chim? Nếu vậy có sử dụng âm thanh của Hidden Markov Model không?
Mikhail

Câu trả lời:


2

Hai câu hỏi:

1 / Gần 8 giây, chúng ta có thể quan sát cao độ ổn định trong 100ms hoặc lâu hơn, sau đó tăng đột ngột giảm xuống còn 8,5 giây. Toàn bộ chuỗi này (8 đến 8,5 giây) tạo thành một thực thể duy nhất, hay bạn xem hai giai đoạn (ổn định sau đó giảm) là hai thực thể?

2 / Bạn có muốn làm việc có hoặc không có sự giám sát. Bạn có biết trước các "mẫu" cần tìm không?

  • Nếu bạn muốn làm việc mà không có sự giám sát (giả sử bạn đã thu thập các bản ghi âm và nhằm mục đích trích xuất một "đại diện có cấu trúc" từ nó), thì bước đầu tiên của bạn là phát hiện hoạt động bằng giọng nói. Chỉ cần sử dụng cường độ tín hiệu, có thể kết hợp với chỉ số "độ cao" (giả sử tỷ lệ tối đa của tự động tương quan trong phạm vi cầu, 1kHz - 5kHz ở đây) để phát hiện các phân đoạn có âm cao mạnh. Median-lọc chuỗi kết quả để làm mịn nó, và sau đó ngưỡng nó để có được các phân đoạn khác nhau. Khi bạn đã chia tín hiệu của mình thành các phân đoạn, bạn có thể làm những điều thú vị với chúng. Ví dụ: bạn có thể trích xuất cho mỗi người một quỹ đạo cao độ (một chuỗi có đỉnh tần số mạnh nhất cho từng khung FFT hoặc một cái gì đó mạnh mẽ hơn được trích xuất bằng một công cụ ước tính độ cao thực sự), sử dụng DTW để tính toán một ma trận khoảng cách theo cặp giữa mỗi khối và sử dụng thuật toán phân cụm (phương tiện k, phân cụm liên kết) để xác định các nhóm có mẫu sân tương tự (các phân đoạn 8: 8,5 và 10: 10,5). Có khả năng một cách tiếp cận không được giám sát sẽ phân đoạn quá mức - ví dụ: 7.6: 8.5 và 9.6: 10.5 sẽ được công nhận là sự lặp lại của hai khối giống nhau, trong khi đối với bạn về cơ bản chúng có thể là một mẫu duy nhất, nhưng bạn có thể sử dụng một cái gì đó nhưSequitur để có một cấp cấu trúc cao hơn.

  • Nếu bạn có một từ điển "mẫu" được xác định trước mà bạn muốn gắn nhãn tín hiệu của mình, bạn nên làm theo cách tiếp cận được sử dụng để nhận dạng giọng nói, với sự khác biệt lớn duy nhất là nhận dạng giọng nói không được tính đến, trong khi đó trường hợp sân là thông tin duy nhất được xem xét! Một hệ thống nhận dạng giọng nói đã xử lý cả các tác vụ phân đoạn và nhận dạng trong một hoạt động giải mã FST duy nhất.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.