Сопоставление аудио-паттернов в Matlab

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

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

PS Я знаю, как работает спектрограмма, и с ее помощью подготовил довольно много WAV-файлов.

3 ответа

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

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

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

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

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

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

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

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

Этот учебник может быть также полезным.

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

Другие вопросы по тегам