MFCC в распознавании речи

Всю прошлую неделю я потратил на поиск по MFCC и связанным с ним вопросам. Теперь я могу получить функции MFCC из файла .wav в двумерном векторе, скажем, coff[56][12]. 12 — это количество коэффициентов, которые я хочу извлечь, а 56 — это количество кадров. Согласно нескольким документам, которые я читал, мы можем использовать более 12 коэффициентов для распознавания речи (в частности, я хочу распознавать слова «один», «два»... до «десяти»). Но теперь я получаю 56 из 12 фреймов, так какой из 56 фреймов я должен использовать?

Если я что-то не так, пожалуйста, помогите мне!!!


person duong_dajgja    schedule 17.11.2013    source источник


Ответы (1)


Вы пропускаете некоторые важные шаги. Позвольте мне кратко объяснить, как это должно работать. Речевые данные изначально представляют собой дискретный сигнал. Вы разрезаете его на части, называемые «рамками», настолько маленькими, что каждая часть, как мы надеемся, будет содержать не более одного телефона. Часто кадры накладываются друг на друга, чтобы не потерять важную информацию. Затем вы извлекаете признаки — MFCC и с помощью скрытой модели Макова ищете наиболее вероятное слово, содержащее ряд кадров. В это время вам также понадобится словарь произношения слов и акустическая модель. На следующем уровне вы используете языковую модель, описывающую предложения, в которые можно составить слова, и получаете окончательную гипотезу. Это чрезвычайно абстрактное описание, поэтому необходимо рассмотреть каждый шаг декодирования более подробно.

person Alexander Solovets    schedule 17.11.2013
comment
Спасибо за быстрый ответ. Вы имеете в виду, что после извлечения признаков MFCC я должен использовать Скрытую модель Макова, чтобы найти в словаре слов наиболее вероятное слово? - person duong_dajgja; 17.11.2013
comment
Словарь рассказывает, как слова строятся из слогов. Вот вставка из настоящего словаря: здравствуй [ЧЧАХЛЬУ], привет(2) [ЧЧЭХЛЬЯУ]. Теперь, используя MFCC и акустическую модель, можно получить вероятность того, что определенная последовательность кадров соответствует определенному слову. Взгляните на cmusphinx.sourceforge.net. Вас могут заинтересовать sphinxbase и pocketsphinx в частности. Сформированная библиотека представляет собой библиотеку для распознавания речи, а последняя — сквозной декодер речи. Также вы можете прочитать «Обработку разговорного языка», которая является довольно всеобъемлющей. - person Alexander Solovets; 17.11.2013
comment
@AlexanderSolovets Я использовал Librosa для извлечения функций MFCC. Мой аудиофайл wav составляет 22 минуты (1320 секунд). Я извлек 20 коэффициентов MFCC, что дает мне кадры (20 X 56829) . Как сюда попало число 56829? Есть ли на него расчет? - person Rangooski; 01.07.2016
comment
Я не знаю конфигурацию librosa, но обычно один кадр имеет длину 25 мс, а кадры перекрываются на 10 мс, например. первый кадр находится в [0; 25], второй в [10; 35] и так далее. - person Alexander Solovets; 01.07.2016
comment
@Rangooski librosa вычисляет mfcc на «кадр». Этот кадр определяется hop_length и SR. frame_size= hop_length/sr и по умолчанию 512/22050 ~~ 23 мс. Таким образом, mfcc вычисляется каждые 23 мс. ваш звук длится 1320 секунд. Форма mfcc — 20X56829. 20 - количество функций. 56829 — количество таймфреймов. т.е. ваше аудио было разделено на 56829 кадров. 1320/56829 = 0,023227577 секунд, т.е. ~~ 23 мс. Надеюсь это поможет. - person kRazzy R; 25.01.2018