Как взять первые 13 коэффициентов в MFCC

У меня проблемы с MFCC. Я следовал за учебником шаг за шагом. После шага «Оконное управление» я вычисляю DFT для каждого кадра. Мой вопрос: будут ли остальные шаги, включая «Банк Mel-фильтра», «Журнал» и «DCT», применяться к каждому кадру? Я запутался, потому что на шаге «DCT» мы возьмем первые 13 коэффициентов, которые были вычислены ранее. Итак, какие кадры мы должны взять? Мне действительно нужно четкое объяснение 🙁

1

Решение

Сначала я хотел бы предложить этот учебник, если вы еще не видели его.

Да, вы должны применить DFT, банк Mel-фильтра, журнал и DCT для КАЖДАЯ И ОЧЕНЬ РАМА а затем получить первые 13 коэффициентов DCT. Коэффициенты могут быть сохранены в массиве массива double (скажем, вектор< вектор< double>> mfcc). Тогда каждый mfcc (i) .size = 13, то есть первые 13 коэффициентов каждого кадра.
Следовательно, каждый mfcc (i) будет содержать 13 коэффициентов каждого кадра, а mfcc будет вектором этих 13 коэффициентов.

Я бы предложил вам использовать c ++ librry для извлечения mfcc вместо того, чтобы делать что-либо с нуля.

1

Другие решения

MFCC — это чисто локальная операция. Это делается многократно на каждом кадре: for (auto f: frames) { std::vector<double> coeff = MFCC(f);, Это означает, что каждая часть MFCC также выполняется неоднократно.

1

По вопросам рекламы [email protected]