Как взять первые 13 коэффициентов в MFCC
У меня проблемы с MFCC. Я следовал за учебником шаг за шагом. После шага "Оконное управление" я вычисляю DFT для каждого кадра. Мой вопрос: будут ли остальные шаги, включая "Банк Mel-фильтра", "Журнал" и "DCT", применяться к каждому кадру? Я запутался, потому что на шаге "DCT" мы возьмем первые 13 коэффициентов, которые были вычислены ранее. Так какие кадры мы должны взять? Мне действительно нужно четкое объяснение:(
2 ответа
Сначала я хотел бы предложить этот учебник, если вы еще не видели его.
Да, вы должны применить DFT, банк Mel-фильтра, журнал и DCT к КАЖДОЙ И ОЧЕНЬ РАМЕ, а затем получить первые 13 коэффициентов DCT. Коэффициенты могут быть сохранены в массиве массива double (скажем, vector
Я бы предложил вам использовать C++ librry для извлечения mfcc вместо того, чтобы делать что-либо с нуля.
MFCC - это чисто локальная операция. Это делается многократно на каждом кадре: for (auto f: frames) { std::vector<double> coeff = MFCC(f);
, Это означает, что каждая часть MFCC также выполняется неоднократно.