Как обучить алгоритм машинного обучения с использованием векторов коэффициентов MFCC?

В своем проекте последнего года я пытаюсь идентифицировать звуки собаки / лая / птицы в реальном времени (путем записи звуковых клипов). Я использую MFCC в качестве звуковых функций. Первоначально я извлек всего 12 векторов MFCC из звукового клипа с помощью библиотеки jAudio. Теперь я пытаюсь обучить алгоритм машинного обучения (на данный момент я не определился с алгоритмом, но, скорее всего, это SVM). Размер звукового клипа составляет около 3 секунд. Мне нужно уточнить некоторую информацию об этом процессе. Они есть,

  1. Должен ли я обучать этот алгоритм с использованием MFCC на основе кадров (12 на кадр) или или общих MFCC на основе клипов (12 на звуковой клип)?

  2. Чтобы обучить алгоритм, мне нужно рассматривать все 12 MFCC как 12 различных атрибутов или мне нужно рассматривать эти 12 MFCC как один атрибут?

Эти MFCC являются общими MFCCS для клипа,

-9.598802712290967 -21.644963856237265 -7.405551798816725 -11.638107212413201 -19.441831623156144 -2.780967392843105 -0.5792847321137902 -13.14237288849559 -4.920408873192934 -2.7111507999281925 -7.336670942457227 2.4687330348335212

Мы будем благодарны за любую помощь, чтобы преодолеть эти проблемы. Я не мог найти хорошей помощи в Google. :)


person nayakPan    schedule 07.02.2016    source источник
comment
не могли бы вы поделиться своим кодом, если возможно, я работаю над чем-то похожим.   -  person kRazzy R    schedule 19.01.2018


Ответы (1)


  1. Вы должны рассчитать MFCC на кадр. Поскольку ваш сигнал меняется во времени, переносить их на весь клип не имеет смысла. Хуже того, у вас может получиться схожее представление собаки и птицы. Я бы поэкспериментировал с несколькими длинами кадра. Обычно это миллисекунды.

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

Помните, что MFCC чувствительны к шуму, поэтому сначала проверьте, как звучат ваши сэмплы. Намного более богатый выбор аудиофункций для извлечения предлагают, например, Библиотека Yaafe, многие из которых будут лучше служить в вашем случае. Что конкретно? Вот что я нашел наиболее полезным при классификации криков птиц:

  • спектральная плоскостность
  • перцепционный разброс
  • спектральный спад
  • спектральное уменьшение
  • статистика формы спектра
  • спектральный наклон
  • Кодирование с линейным предсказанием (LPC)
  • Линейные спектральные пары (LSP)

Возможно, вам будет интересно проверить этот проект, особенно ту часть, где я взаимодействую с Yaafe.

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

person Lukasz Tracewski    schedule 07.02.2016
comment
это действительно полезно, а также каков предполагаемый размер окна для этого случая? Обычно я думал о трехсекундном окне, потому что некоторые птицы издают длинные звуки. а также что касается обучения, не могли бы вы объяснить мне, как создать матрицу? поэтому мне нужно создать 12 разных атрибутов, потому что все они - отдельные функции, верно? - person nayakPan; 08.02.2016
comment
Думайте о размере окна как о кратчайшем интервале, в котором хранится информация, о кванте звука. За 3 секунды вы можете сказать целое предложение. Как объяснено в моем ответе: порядок миллисекунд, например. 16 мс. Окна должны перекрываться не менее чем на 50%. Для примеров того, как создать матрицу, обратитесь к фрагменту кода, которым я поделился. - person Lukasz Tracewski; 09.02.2016
comment
содержит информацию означает полный звук, что мне нужно, или небольшую часть звука, которую мне нужно распознать? Допустим, длина уникального звука конкретной птицы составляет 2 секунды. если я использую размер окна в 1 секунду, нет ни единого шанса услышать настоящий звук птиц, не так ли? :( - person nayakPan; 09.02.2016
comment
Я бы порекомендовал сначала прочитать введение в DSP. Короче говоря, размер вашего окна должен быть как минимум в несколько раз больше (например, в 5 раз), чем период звука - чем ниже высота звука, тем длиннее должно быть окно. Однако чем длиннее окно, тем ниже ваше разрешение. - person Lukasz Tracewski; 09.02.2016