Позвольте мне начать с самого начала. Стандартный способ расчета кепстра заключается в следующем:
С( х ( т ) ) = F- 1[ журнал( F[ x ( t ) ] ) ]
В случае коэффициентов MFCC случай немного отличается, но все же похож.
После предварительного выделения и оконного режима вы вычисляете ДПФ вашего сигнала и применяете банк фильтров из перекрывающихся треугольных фильтров, разделенных по шкале плавности (хотя в некоторых случаях линейная шкала лучше, чем плавность):
Что касается определения кепстра, вы теперь представили огибающую спектра (уменьшенный спектр) в мелкочастотной шкале. Если вы представите это, то увидите, что это своего рода напоминает ваш исходный спектр сигналов.
Следующим шагом является вычисление логарифма коэффициентов, полученных выше. Это связано с тем, что кепстр считается гомоморфным преобразованием, отделяющим сигнал от импульсного отклика голосового тракта и т. Д. Как?
Исходный речевой сигнал в основном свернут с импульсным откликом голосового тракта:s(t)h(t)
s^(t)=s(t)⋆h(t)
В частотной области свертка представляет собой умножение спектров:
S^(f)=S(f)⋅H(f)
Это можно разложить на две части, основываясь на следующем свойстве: .log(a⋅b)=log(a)+log(b)
Мы также ожидаем, что импульсный отклик не меняется со временем, поэтому его можно легко удалить, вычтя среднее значение. Теперь вы понимаете, почему мы берем логарифмы энергий нашей группы.
Последним шагом в определении кепстра будет обратное преобразование Фурье . Проблема в том, что у нас есть только наши логарифмические энергии, а не фазовая информация, поэтому после применения мы получаем комплексные коэффициенты - не очень элегантно для всех этих усилий быть компактным представлением. Хотя мы можем взять дискретное косинусное преобразование, которое является «упрощенной» версией FT, и получить действительные коэффициенты! Эта процедура может быть визуализирована как сопоставление косинусоидов с нашими логарифмическими коэффициентами. Возможно, вы помните, что кепстр также называется «спектр спектра»? Это самый шаг - мы ищем любую периодичность в наших коэффициентах огибающей логарифмической энергии.F−1ifft
Итак, теперь вы видите, что сейчас довольно сложно понять, как выглядел оригинальный спектр. Кроме того, мы обычно принимаем только первые 12 MFCC, поскольку более высокие описывают быстрые изменения логарифмов, что обычно ухудшает скорость распознавания. Итак, причины для проведения DCT были следующие:
Первоначально вы должны выполнить IFFT, но проще получить действительные коэффициенты из DCT. Кроме того, у нас больше нет полного спектра (все частотные интервалы), но есть энергетические коэффициенты в мелких фильтрах, поэтому использование IFFT немного избыточно.
На первом рисунке видно, что банки фильтров перекрываются, поэтому энергия соседних друг с другом распределена между двумя - DCT позволяет их декоррелировать. Помните, что это хорошее свойство, например, в случае гауссовых моделей смесей, где вы можете использовать диагональные ковариационные матрицы (без корреляции между другими коэффициентами) вместо полных (все коэффициенты коррелированы) - это сильно упрощает ситуацию.
Другим способом декорреляции коэффициентов частоты плавления может быть PCA (анализ основных компонентов), метод, используемый исключительно для этой цели. К счастью, было доказано, что DCT является очень хорошим приближением к PCA, когда речь идет о декорреляционных сигналах, что является еще одним преимуществом использования дискретного косинусного преобразования.
Немного литературы:
Хёнг Гук Ким, Николас Моро, Томас Сикора - Аудио MPEG-7 и не только: индексация и поиск аудиоконтента