Це правильне тлумачення кроку DCT у розрахунку MFCC?


9

Це продовження дискусії тут . Я б прокоментував там, але у мене немає 50 повторень, тому я задаю нове запитання.

Ось як я розумію крок DCT у процесі обчислення MFCC: Обґрунтуванням цього є розмежування кореляції у величинах лог-спектральних величин (від фільтрабанку) через перекриття фільтрів. По суті, DCT згладжує представлення спектру, заданого цими log-спектральними величинами.

Чи правильно було б сказати, що синя лінія на зображенні нижче представляє спектр, представлений вектором величин log-спектралу, а червона лінія - це вектор, коли його було визначено DCT?

DCT-ідентифіковані log-спектральні величини (тобто MFCC) порівняно з просто log-спектральними величинами ???


де я можу завантажити ваш код для тестування?
аурахам

Зображення нижче? У публікації немає зображення
Ерік Платон

Відповіді:


16

Дозвольте розпочати з початку. Стандартний спосіб розрахунку цепструма наступний:

C(x(t))=F1[log(F[x(t)])]

У випадку з коефіцієнтами MFCC випадок дещо інший, але все одно схожий.

Після попереднього наголосу та віконного обчислення ви обчислюєте коефіцієнт DFT свого сигналу та застосовуєте банк фільтрів перекриваючихся трикутних фільтрів, розділених у масштабі мель (хоча в деяких випадках лінійна шкала краще, ніж мель):

введіть тут опис зображення

Що стосується визначення cepstrum, то ви тепер представляли оболонку спектра (зменшеного спектру) у масштабі мель-частоти. Якщо ви представляєте це, то ви побачите, що це kind'а нагадує ваш вихідний спектр сигналу.

Наступним кроком є ​​обчислення логарифму отриманих вище коефіцієнтів. Це пов’язано з тим, що цепструм повинен бути гомоморфною трансформацією, яка відокремлює сигнал від імпульсної відповіді голосового тракту тощо. Як?

Оригінальний мовленнєвий сигнал здебільшого пов'язаний з імпульсною реакцією голосового тракту:s(t)h(t)

s^(t)=s(t)h(t)

У згортанні частотної області - це множення спектрів:

S^(f)=S(f)H(f)

Це можна розкласти на дві частини, грунтуючись на такій властивості: .log(ab)=log(a)+log(b)

Ми також очікуємо, що імпульсна реакція не змінюється з часом, тому її можна легко усунути, віднісши середнє значення. Тепер ви бачите, чому ми приймаємо логарифми енергій нашого діапазону.

Останнім кроком у визначенні cepstrum було б зворотне перетворення Фур'є . Проблема полягає в тому, що у нас є лише наші енергії логарифмів, ніякої фазової інформації, тому після застосування ми отримуємо складні коефіцієнти - не дуже елегантні, щоб усі ці зусилля були компактними. Хоча ми можемо взяти дискретну косинусну трансформацію, яка є "спрощеною" версією FT та отримаємо реальні значення коефіцієнтів! Цю процедуру можна уявити як узгодження косинусоїдів з нашими коефіцієнтами лог-енергії. Ви можете пам’ятати, що цепструм називають також «спектром спектру»? Це самий крок - ми шукаємо будь-яку періодичність у наших коефіцієнтах обертової енергії.F1ifft

введіть тут опис зображення

Отже, тепер ви бачите, що зараз досить важко зрозуміти, як виглядав початковий спектр. Крім того, ми зазвичай приймаємо лише перші 12 MFCC, оскільки вищі описують швидкі зміни в енергіях журналу, що зазвичай погіршує швидкість розпізнавання. Тож причини, що роблять DCT, були такі:

  • Спочатку ви повинні виконати IFFT, але простіше отримати реальні значення коефіцієнтів від DCT. Крім того, ми вже не маємо повного спектра (всі частотні відрізки), але коефіцієнти енергії в банках з фільтрами, які використовуються, тому використання IFFT є дещо зайвим.

  • На першому малюнку ви бачите, що банки фільтрів перекриваються, тому енергія, що перебуває поруч, поширюється між двома - DCT дозволяє декорувати їх. Пам'ятайте, що це хороша властивість, наприклад, у випадку Гауссових моделей сумішей, де ви можете використовувати діагональні коваріаційні матриці (відсутність кореляції між іншими коефіцієнтами) замість повних (всі коефіцієнти співвідносні) - це значно спрощує речі.

  • Іншим способом декорреляції коефіцієнтів частоти розплавлення буде PCA (аналіз основних компонентів), метод, що використовується виключно для цієї мети. На щастя, було доведено, що DCT є дуже хорошим наближенням PCA, коли мова йде про декорреляційні сигнали, отже, ще одна перевага використання дискретного косинусного перетворення.


Деяка література:

Х'юн-Гук Кім, Ніколя Моро, Томас Сікора - MPEG-7 Audio and more: Індексація та пошук аудіовмісту


1
Чому ми не можемо взяти абсолютне значення комплексних чисел з IFFT? Якщо складні числа набагато складніше розібратися, то чому ми коли-небудь приймаємо IFFT при обчисленні четвірки, а не завжди завжди робимо DCT? Дякую за пояснення. Ця цифра була особливо корисною.
acannon828

1
@ acannon828: Перегляньте останні 3 пункти моєї редагованої відповіді. Я сподіваюся, що зараз це все пояснює.
jojek

Чудова відповідь .. Будь-яка література, яку ви могли до цього долучити.
Боб Берт

1
@BobBurt: Ідеш!
jojek

Спасибі за книгу. Більшість речей, здається, пояснюються саме в цьому. Чи охоплює книга також теорію про голосовий тракт - я, здається, не зможу знайти нічого, пов’язаного з цим.
Боб Берт

3

Більше, ніж згладжування DCT зменшує кількість розмірів, необхідних для представлення спектра. DCT хороший для зменшення розмірності, оскільки має тенденцію до ущільнення більшої частини енергії спектру за перші кілька коефіцієнтів.


Дякую. Це допомогло мені зрозуміти, що означає @pichenettes із зменшення розмірності.
acannon828

3

Обґрунтуванням цього є відокремлення кореляції в лог-спектральних величинах (від фільтрабанку) за рахунок перекриття фільтрів. По суті, DCT згладжує представлення спектру, заданого цими log-спектральними величинами.

Це неправильно. Між логічно-спектральними величинами існує кореляція не тільки тому, що вони перетинаються, а й тому, що не будь-яка послідовність чисел являє собою "значущий" (як, що відбувається у природному мовленні та звуку) ряд журнально-спектральної величини. "значущі" лог-спектральні величини, як правило, досить плавні, із загальним зниженням енергії на більш високих частотах і т. д. Можна сказати, що розмірність простору всіх "значущих" логічно-спектральних векторів величини менша за 40 або яку б кількість гуртів ви не використовували; і DCT можна розглядати як зменшення розмірності для відображення даних 40 каналів на цей менший простір.

По суті, DCT згладжує представлення спектру, заданого цими log-спектральними величинами.

DCT не згладжує. Ви бачите згладжування при реконструкції даних DCT - згладжування відбувається через втрату інформації DCT та наступне відсічення коефіцієнта.

Але коефіцієнти MFCC не зберігають згладжений спектр - він зберігає послідовність некоррельованих коефіцієнтів DCT.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.