сопоставление звуковых шаблонов в Matlab

Может кто-нибудь, пожалуйста, дайте мне представление об этой проблеме в Matlab,

У меня есть 4 файла .wav, которые содержат щебетание птиц. Каждый файл .wav представляет отдельную птицу. Имея входной файл .wav, мне нужно решить, что это за птица. Я знаю, что мне нужно провести сравнение частотного спектра, чтобы найти решение. но не совсем понимаю, как я должен использовать спектрограмму, чтобы помочь мне добраться туда.

P.S. Я знаю, как работает спектрограмма, и нарисовал с ней довольно много файлов .wav.


person Prashant    schedule 29.03.2013    source источник
comment
Есть много подходов к подобным проблемам, так что это очень общий вопрос и, вероятно, немного не по теме. Возможно, это следует перенести на dsp.stackexchange.com?   -  person wakjah    schedule 29.03.2013


Ответы (3)


Есть несколько методов решения проблемы распознавания скороговорок, подобных тому, о котором вы говорите.

Вы можете использовать частотный анализ, такой как БПФ, с функцией Matlab
S = SPECTROGRAM(X,WINDOW,NOVERLAP)

В SPECTROGRAM нужно определить временное окно анализируемого сигнала в переменной WINDOW. Вы можете использовать прямоугольное окно (пример WINDOW = [1 1 1 1 1 1 1 ... 1]) с количеством значений, равным желаемой длине. Можно использовать множество окон: hanning, hamming, blackman. Вы должны использовать тот, который лучше подходит для вашей проблемы. NOVERLAP — это количество точек, на которые ваши окна перемещаются за один шаг.

Помимо этого подхода, вейвлет-преобразование также является хорошим методом для решения вашей проблемы. У Matlab также есть хороший набор инструментов для применения дискретных и непрерывных вейвлетов.

person PVaz    schedule 29.03.2013

Вы можете попытаться решить проблему с помощью Deep Belief Networks.

Вот несколько статей, которые могут быть полезны:

Подводя итог, вместо ручной настройки функций используйте RBM или Autoencoder для извлечения функций (баз), которые представляют наблюдаемые аудиосэмплы, а затем запускает алгоритм обучения.

Вам потребуется более 4 аудиосэмплов для обучения DBN, но стоит попробовать, поскольку в прошлом этот подход показывал многообещающие результаты.

это руководство также может оказаться полезным.

person Niko Gamulin    schedule 04.08.2014

это может оказаться сложной проблемой. В качестве отправной точки я советую вам разделить каждую запись на кадры фиксированной длины, например, 20 мс с перекрытием 10 мс, затем извлечь fft из этих кадров и получить максимальную частоту энергии. значения для каждого кадра. В качестве последнего шага сравните частоты кадров друг с другом и определите результат, выбрав максимальную корреляцию.

person fatihk    schedule 29.03.2013