2016-01-08 8 views
5

Я понимаю основные этапы создания автоматизированного механизма распознавания речи. Однако мне нужна четкая идея о том, как выполняется сегментация и каковы рамки и образцы. Я напишу, что знаю, и ожидаю, что ответчик исправит меня в тех местах, где я ошибаюсь, и буду вести меня дальше.Как разбить речевые данные на фреймы и вычислить MFCC

Основные этапы распознавания речи, как я знаю, что это:

(я предполагаю, что входные данные представляют собой WAV/OGG (или какой-то аудио файл))

  1. Пре- подчеркнуть речевой сигнал: т. е. применить фильтр, который будет акцентировать внимание на высокочастотных сигналах. Возможно, что-то вроде: y [n] = x [n] - 0,95 x [n-1]
  2. Найдите время, с которого начинаются произнесения и изменяются размеры клипа. (Interchangable with Step 1)
  3. Сегмент клипа в меньшие временные рамки, каждый сегмент имеет длину 30 мс. Кроме того, каждый сегмент будет иметь около 256 кадров, а два сегмента будут разделены на 100 кадров? (т. е. 30 * 100/256 мсек?)
  4. Применить окно Хэмминга к каждому кадру (1/256 часть сегмента)? Результатом является массив кадров сигналов.
  5. быстрое преобразование Фурье сигнала каждого кадра, представленного X (т)
  6. Mel Фильтр банка Обработка: (еще не Пошел в деталях)
  7. дискретного косинусного преобразования (пока не Пошел в деталях - но знаю, что это даст мне набор коэффициентов MFCC, называемые также акустические векторов для каждого входного высказывания
  8. Delta Energy и Delta Spectrum:. Я знаю, что это используется для расчета дельты и коэффициентов двойной дельты коэффициентов MFCC, не так много
  9. После этого. , Я думаю, что мне нужно использовать HMM или ANN для классификации коэффициентов кепструма Mel (дельта и двойную дельта) для соответствующих фонем и выполнять анализ t o сопоставлять фонемы с словами и соответственно словами с предложениями.

Хотя это ясно для меня, я смущен, если шаг 3 верен. Если это правильно, выполните следующие шаги 3, примените ли это к каждому кадру? Кроме того, после шага 6 я думаю, что каждый кадр имеет свой собственный набор MFCC, верно?

Спасибо заранее!

+0

Как построить mfcc из файла .wav/.mp4? –

+1

@kRazzyR Не знаю, как ответить на это в комментарии, но вам нужно прочитать аудиофайл (если необходимо, сначала распаковать его) в качестве временного ряда. Затем примерно примените шаги, указанные в этом вопросе и ответе. – cipher

+0

Хорошо, я выяснил это. существует пакет python под названием librosa. Мне удалось генерировать mfcc, используя 'import librosa y, sr = librosa.load ('./ data/tring/abcd.wav') mfcc = librosa.feature.mfcc (y = y, sr = sr)' –

ответ

6

Сегмент клипа на меньшие временные рамки, каждый сегмент имеет длину 30 мсек. Кроме того, каждый сегмент будет иметь около 256 кадров, а два сегмента будут разделены на 100 кадров? (т. е. 30 * 100/256 мсек?)

Не рамы, а образцы. Каждый кадр 30 мс с частотой выборки 8 кГц составляет 30/1000 * 8000 = 240 выборок. Фреймы перекрываются, а сдвиг между кадрами составляет 10 мс или 80 выборок. Вот как это выглядит на картинке:

Signal split on frames

Здесь Q 80 и К 240 образцов.

Если это правильно, выполните шаги, указанные ниже 3, для каждого кадра?

Да

Кроме того, после шага 6, я думаю, что каждый кадр имеет свой собственный набор MFCC, я прав.

Да.