Каковы различия между MFCC и BFCC? - PullRequest
2 голосов
/ 02 июня 2011

Я реализовал алгоритм MFCC и хочу реализовать BFCC.В чем разница между ними и , достаточно ли просто использовать другую функцию вместо частоты, чтобы плавить (2595 * Math.log10 (1 + частота / 700)) и преобразовывать в функции частоты (700 * (математика).pow (10, mel / 2595) - 1)) Я следую этому коду: MFCC

PS: Нужно ли менять код для треугольных фильтров?

Ответы [ 2 ]

5 голосов
/ 02 июня 2011

Это просто разные шкалы представления частотных интервалов фильтров.MFCC использует фильтры, центральные частоты которых расположены вдоль шкалы плавления, а BFCC будет использовать фильтры с центральными частотами, расположенные вдоль шкалы коры.

Шкала коры будет просто представлена ​​как:

  Bark(f)=13*arctan(0.00076*f)+3.5*arctan((f/(7500))*(f/(7500)))   

, где f - частота в Гц.
Хотя вы можете использовать шкалу коры для представления разносов центральной частоты, исследования показывают, что использование mfcc или bfcc для представления векторов признаков входного речевого образца очень мало влияет на производительность систем ASR.Отраслевой стандарт остается MFCC.На самом деле, я не слышал много о BFCC.

Если код для вычисления коэффициентов фильтра является относительно общим, и он принимает центральные частоты в качестве входного параметра, то я бы сказал, что вы в порядке.Но всегда лучше перепроверить.Используйте MATLAB и постройте частотные характеристики и проверьте!Вы можете проверить [следующий документ] [1] для сравнения между MFCC, BFCC и равномерными частотными интервалами.

Обновление 1: Центральная частота фильтра представляет собой среднее арифметическое / геометрическое значение между верхней и нижней частотой среза полосового фильтра / полосового фильтра.Кроме того, обратное уравнение для решения для f с учетом частот Барка не является тривиальным.Это будет квадратное уравнение, которое нужно будет решить.Один из способов - создать таблицу для различных значений f и Барка, а затем выполнить поиск по таблице.Но я не смог найти никаких ссылок на обратное уравнение.

[1]: http://148.204.64.201/paginas%20anexas/voz/articulos%20interesantes/front%20end/MFCC/a-comparative-study-of.pdf
0 голосов
/ 15 июля 2011

Вместо этого вы можете просто выбрать частоты вручную для каждой критической полосы коры (частичное совпадение «если» и «еще»), поскольку нет точного уравнения для критических полос коры (для Мел тоже, но есть довольно близкое),затем получите логарифм значения для каждой полосы, а затем примените dct, помните, что это для каждого кадра, шкала плавности использует также логарифмическую шкалу, так что между mfcc или bfcc нет особой точки.

...