Как составить алгоритм MFCC?

Я хочу сделать алгоритм кепстра Mel-Frequency, но есть некоторые вещи, которых я не понимаю.

После завершения FTT нам нужно «отобразить мощность спектра, полученного выше, на шкалу мела, используя треугольные перекрывающиеся окна».

Я знаю, как вычислять треугольники, и я также знаю, как перейти к меловой шкале. Я просто не знаю, что с ними делать.

Если треугольники определены, как мне отобразить мощность спектра, полученного выше, на шкалу мела?

Это как это: суммировать частоты внутри треугольника, а затем передать это шкале мела? или суммировать частоты внутри треугольника в соответствии со значением веса (определяемым высотой треугольника в этой точке), а затем передать его в шкалу мела? или передать все частоты внутри треугольника в шкалу mel в соответствии со значением веса? Еще одна вещь?

Может ли кто-нибудь разъяснить мне это


person aF.    schedule 28.10.2009    source источник
comment
Я предлагаю быть прямым и любезным членом сообщества. Прекратите публиковать сообщения под разными именами пользователей (Andre, Andre Ferreira и aF); поблагодарите людей за их помощь в ваших предыдущих трех похожих вопросах, а также проголосуйте и примите их ответы, если это уместно (этот текущий вопрос явно следует за моими предыдущими ответами, но без подтверждения или голосов); и будьте честны (не отвечайте на свои вопросы, как будто вы кто-то другой). Для подобных вопросов это очень маленькое сообщество. В противном случае заплатите кому-нибудь, чтобы он помог вам... хотите узнать мои расценки?   -  person tom10    schedule 28.10.2009
comment
Я был незарегистрирован и не мог получить доступ после выхода из системы. Я действительно не очень хорошо понимаю эту часть, и я благодарен за то, что вы сказали до сих пор. Так что, пожалуйста, вы можете помочь мне понять это вообще? Я уже много чего прочитал, но эту часть я действительно не понимаю.   -  person aF.    schedule 28.10.2009
comment
Конечно. 1) Пометка вопросов очень важна. Я думаю, чтобы больше людей увидели ваш вопрос, пометьте его также с помощью БПФ и обработки сигналов. 2) люди на SO мотивированы помогать людям и получать баллы, поэтому проголосуйте за то, что вам нравится, нажав на стрелку рядом с вопросом или ответом, и примите ответ на свой собственный вопрос, который работает для вас (нажмите на галочку, я считать). 3) следите за своими вопросами даже после того, как на них ответили, чтобы люди чувствовали себя признанными.   -  person tom10    schedule 28.10.2009
comment
4) люди более серьезно относятся к вопросам людей с некоторыми пунктами, имхо, так что только по этой причине помогает не менять все время имена пользователей, а участвовать шире. 5) если вы можете, участвуйте в более широкой цели SO, отвечая на вопросы других (это также поможет вам получить некоторые баллы - см. 4). Я думаю, что об этом (с моей точки зрения). Это то, что вы имели в виду, верно?   -  person tom10    schedule 28.10.2009
comment
Спасибо за разговор о СО. Теперь я понимаю. Я был с незарегистрированными учетными записями, но это больше не повторится. Я не видел, как голосовать за ответ, и я могу дать репутацию только за вопрос, который я не задавал. Проходя это, не могли бы вы помочь мне понять алгоритм. Любая из моих идей верна?   -  person aF.    schedule 28.10.2009


Ответы (1)


Я думаю, что этот шаг процесса немного странный и не имеет полного смысла (во всяком случае, для меня). Центры полос фильтра равномерно распределены по мел-шкале, но представляют собой треугольники на линейной шкале, т.е. как на рисунке здесь.

Затем вычислите взвешенную сумму, используя эти треугольники вдоль линейной оси x. (На этом предыдущем шаге я думаю, что некоторые подходы нормализуются по площади треугольника фильтра, а некоторые нет, и я, честно говоря, не уверен в окончательных последствиях здесь, хотя я подозреваю, что это может не иметь большого значения, кроме изменения окончательная интерпретация, которая в любом случае является относительным сравнением.Один поддерживает общую энергию, а другой дает одинаково взвешенные вклады в каждую полосу.) Затем возьмите журнал этого (который преобразует общий объемный коэффициент в смещение).

Изменить: чтобы было понятнее применять фильтры... Каждый треугольник представляет собой отдельный фильтр, производящий отдельную взвешенную сумму. Если в вашем банке фильтров двадцать фильтров, будет двадцать треугольников и двадцать взвешенных сумм для расчета. Чтобы применить каждый фильтр, для каждого значения по оси x умножьте значение фильтра в этом местоположении x на значение функции в этом местоположении x и добавьте это к сумме для этого конкретного фильтра. Большинство значений по оси x имеют два фильтра, которые присутствуют там, поэтому в каждом положении x вносит вклад два фильтра.

person tom10    schedule 28.10.2009
comment
Надеюсь, я отредактировал свой ответ, чтобы ответить на ваш вопрос. Если это не так, пожалуйста, очень внимательно переформулируйте свой вопрос, чтобы я понял, что неясно. - person tom10; 29.10.2009
comment
Кроме того, вы, вероятно, все еще можете принять мой ответ, даже без 15 баллов. Не то чтобы я умираю от желания получить здесь баллы, честно говоря, это больше для того, чтобы вы были вовлечены, но посмотрите на это... meta.stackexchange.com/questions/8396/ Но не принимайте в любом случае это займет около дня, так что больше людей увидят вопрос и, возможно, кто-то скажет что-то просветляющее. - person tom10; 29.10.2009
comment
Спасибо еще раз! Конечно, я принимаю ваш ответ. Вы были велики для меня. Последнее сомнение касается преобразования частоты в мел-гамму. Это делается путем применения фильтров и суммы весов? или мне нужно сделать что-то вроде этого: en.wikipedia.org/wiki/Mel_scale в любом месте? - person aF.; 29.10.2009
comment
Насколько я понимаю, шкала Мела предназначена только для определения расстояния между фильтрами в банке фильтров. Когда у вас есть этот интервал, треугольные фильтры и взвешенные суммы, к которым они приводят, выполняются по линейной шкале. - person tom10; 29.10.2009
comment
Да, теперь это то, что я думаю об этом. И с более чем 15 баллов есть голосование. Вы это заслужили :P Большое спасибо!! :д - person aF.; 29.10.2009
comment
Андре - Я рад помочь, и я надеюсь, что вы сделаете что-то интересное с MFCC. Удачи с этим. - person tom10; 29.10.2009