Анализ звука птицы - определение соответствия двух клипов

У меня есть ~ 100 аудиофайлов в формате wav с частотой дискретизации 48000 птиц одного и того же вида, между которыми я бы хотел измерить сходство. Я начинаю с волновых файлов, но я знаю (очень немного) больше о работе с изображениями, поэтому я предполагаю, что мой анализ будет на изображениях спектрограмм. У меня есть несколько образцов некоторых птиц из разных дней.

Вот несколько примеров данных вместе с (извинения за немаркированные оси; x - образец, y - линейная частота, умноженная на что-то вроде 10 000 Гц): alt text Эти птичьи пения, по-видимому, происходят в «словах», отдельных частях песни, что, вероятно, является уровнем, на котором мне следовало бы сравнивать; как различия между похожими словами, так и частота и порядок употребления различных слов. alt text

Я хочу попытаться убрать шум цикад - цикады щебечут с довольно постоянной частотой и имеют тенденцию к совпадению фаз, так что это не должно быть слишком сложно. alt text

Кажется, что некоторые пороговые значения могут быть полезны.

Мне сказали, что большая часть существующей литературы использует ручную классификацию, основанную на характеристиках песен, например, Pandora Music Genome Project. Я хочу быть похожим на Echo Nest ; с использованием автоматической классификации. Обновление: многие люди изучают это.

Мой вопрос в том, какие инструменты мне следует использовать для этого анализа? Мне нужно:

  • Отфильтровать / ограничить общий шум и сохранить музыку
  • Отфильтровать определенные шумы, такие как цикады
  • Разделить и классифицировать фразы, слоги и / или ноты в пении птиц
  • Создать меры различия / сходство между частями; что-то, что улавливает различия между птицами, сводя к минимуму различия между разными криками одной и той же птицы

Я предпочитаю numpy / scipy, но может ли здесь пригодиться что-то вроде openCV?

Изменить: обновил свою терминологию и переформулировал подход после некоторых исследований и полезного ответа Стива.

19
задан Thomas 21 December 2010 в 22:01
поделиться