Предакцент в обработке речи с помощью андроида

Я работаю над приложением, в котором мне нужно реализовать кепстральные коэффициенты Mel Frequency (MFCC) для распознавания речи.

Первым шагом в MFCC является применение Pre-Emphasis.

Pre-Emphasis увеличит энергию сигнала на более высокой частоте. Потому что полоса низких частот занята бесполезными/вредными для распознавания речи звуками.

Я нашел это уравнение для этого процесса:

 Y[n]=X[n]−0.95⋅X[n−1]

Мой вопрос: я должен просто применить это уравнение к исходному сигналу?? Так что это увеличит энергию сигнала на более высокой частоте. Или я должен применить определенный фильтр к входному сигналу перед применением этого уравнения? и если да, то как мне его запрограммировать?


person Ala Abojaradeh    schedule 16.09.2013    source источник


Ответы (1)


Это уравнение уже является фильтром предыскажения.

В c-коде реализация может выглядеть так:

float last_input = 0;

float filter (float input)
{
  float output = input - 0.95 * last_input;
  last_input = input;
  return output;
}

Вот частотная характеристика фильтра при частоте дискретизации 44,1 кГц:

Частотный отклик

person Nils Pipenbrinck    schedule 17.09.2013
comment
так что я собираюсь ввести весь сигнал в этот фильтр?? или я должен просто ввести высокочастотные компоненты исходного сигнала в этот фильтр??, чтобы увеличить энергию высокочастотных компонентов исходного сигнала?? - person Ala Abojaradeh; 18.09.2013
comment
Пропустите весь сигнал через фильтр. - person Nils Pipenbrinck; 18.09.2013
comment
Спасибо Нильсу Пипенбринку за вашу помощь :) - person Ala Abojaradeh; 18.09.2013