Scientific journal
Modern high technologies
ISSN 1812-7320
"Перечень" ВАК
ИФ РИНЦ = 0,940

IMPLEMENTATION OF THE ALGORITHM PROCESSING AND SPEECH RECOGNITION

Alyunov D.Yu. 1 Sergeev E.S. 1 Pigachev P.V. 1 Mytnikov A.N. 1
1 Chuvash State University named after I.N. Ulyanov
Questions of processing, allocation of informative parameters and mechanisms of recognition of the speech are considered. In article algorithm bases for practical realization of some methods taking into account the wave nature of a signal are stated and allocation of the most essential frequencies perceived by the person presented calculations of the MEL filter, calculations of the entropy applied at delimitation of words, cosinusoidal transformation, algorithm of dynamic transformation of time, the acoustic model of words is presented. On the basis of the presented algorithm the console application is developed. The appendix works with the dictionary, the accuracy of recognition depends on the dictionary size. Schedules of dependence of a MEL scale on frequency, the schedule MEL frequency the kepstaralnykh of coefficients are provided, results of calculation are tabulated. The result of experiment on determination of quality of recognition of the speech when using this algorithmis presented.
speech recognition
cepstral analysis
speech processing
entropy
mel-transformation
the Fourier transform

При распознавании речи в первую очередь необходимо разбить ее на слова. Упростим задачу: пусть речь содержит в себе паузы (промежутки между словами), которые будут разделять слова. В этом случае нужно понять величину порога – значения, выше которого элемент сигнала является словом, а все, что ниже, – паузой между словами [2].

Энтропией будем считать меру беспорядка, меру неопределенности. В нашем случае энтропия показывает, как сильно осциллирует сигнал в пределах конкретного фрейма. Фреймом является малый отрезок, на которые мы разделяем исследуемый сигнал, следует указать, что фреймы идут не друг за другом, а накладываются. Для подсчета энтропии пронормируем сигнал, построим график плотности распределения значений сигнала в пределах одного фрейма, а энтропию рассчитаем следующим образом:

alyunov01.wmf (1)

Для того чтобы отделить звук от тишины, её нужно с чем-то сравнивать. Опытным путем была подобрана величина порога, равная (0.1).

Таким образом, на вход нашей системы подается звуковой сигнал. Звук делится на фреймы – участки по 25 мс с перекрытием фреймов равным 10 мс. Для обработки звукового сигнала его следует преобразовать либо в виде спектра сигнала, либо в виде прологарифмированного спектра, с последующим масштабированием, поскольку это соответствует особенностям человеческого восприятия звука (Mel-шкала). Затем сигнал представляется в виде MFCC (Мел кепстральные коэффициенты) путем применения дискретного косинусоидального преобразования. MFCC обычно является вектором из тринадцати вещественных чисел, он представляют собой энергию спектра сигнала. Данный метод учитывает волновую природу сигнала, mel-шкала выделяет наиболее существенные частоты, воспринимаемые человеком, а количество MFCC коэффициентов можно задать любым числом, что позволяет сжать фрейм и уменьшить количество обрабатываемой информации [3].

Рассмотрим алгоритм MFCC-преобразования получаемого звукового сигнала.

Получаемый звуковой сигнал дискретизируется:

x[n], 0 ≤ n < N. (2)

Представляем его в качестве Фурье преобразования:

alyunov02.wmf 0 ≤ k < N. (3)

Рассчитываем гребенку фильтров, используя окно:

alyunov03.wmf (4)

где f[m] будет равно

alyunov04.wmf (5)

В(b) – представляем наши частоты в виде Мел-шкалы:

alyunov05.wmf (6)

Где энергия окон будет равна

alyunov06.wmf

0 ≤ m < M. (7)

Получаем коэффициенты MFCC [4]:

alyunov07.wmf

0 ≤ n < M. (8)

Пусть наш фрейм представляется в виде дискретного вектора значения согласно формуле (2).

Вычислим спектр сигнала:

alyunov08.wmf 0 ≤ k < N. (9)

Обработаем сигнал окном Хэмминга, чтобы сгладить пульсации сигнала на краях [6].

alyunov09.wmf (10)

alyunov10.wmf 0 ≤ k < N. (11)

По оси ОХ откладывается частота в Герцах, по оси ОY – магнитуда, чтобы не связываться с комплексными величинами (рис. 1):

Mel представление показывает значимость отдельных частот звука для человека, зависит и от конкретных частот звука, и от громкости, и от тембра человека. Mel-шкала вычисляется следующим образом (прямое и обратное преобразование):

alyunov11.wmf (12)

alyunov12.wmf (13)

pic_1.tif

Рис. 1. Представление исходного сигнала в качестве Фурье преобразования

pic_2.tif

Рис. 2. График зависимости Мел-шкалы от частоты

График зависимости Мел-шкалы от частоты представлен на рис. 2.

Наибольшее распространение в системах распознавания речи получили именно эти единицы измерения, поскольку они соответствуют особенностям восприятия звука человеком.

Рассмотрим пример: дан фрейм длиной 256 отсчетов (выборок), частота звука 16 кГц. Пусть человеческая речь сосредоточена в диапазоне частот от 300 Гц до 8 кГц. Наиболее часто используемое количество Mel-коэффициентов равно десяти, его и будем использовать.

Сначала необходимо рассчитать гребенку фильтров, чтобы представить спектр в формате mel-шкалы. Мел-фильтр является треугольным окном, которое суммирует энергию на своем диапазоне частот и вычисляет mel-коэффициенты. Поскольку мы знаем количество коэффициентов, то сможем построить набор из десяти фильтров (рис. 3).

В области низких частот (те частоты, которые нам наиболее интересны) количество окон больше, что обеспечивает высокое разрешение. Это позволяет существенно повысить качество распознавания.

Для того чтобы найти энергию сигнала, перемножим вектор спектра сигнала и функцию окна, в результате чего получим вектор коэффициентов. Если их возвести в квадрат, представить в виде логарифма и получить из них кепстральные коэффициенты, то получим искомые mel-коэффициенты. Кепстральные коэффициенты можно получить как с помощью Фурье-преобразования, так и с помощью дискретного косинусоидального преобразования [6].

pic_3.tif

Рис. 3. Mel-частотные кепстральные коэффициенты

Диапазон частот составляет от 300 Гц до 8 кГц. На mel-шкале этот диапазон соответствует от 401,25 до 2834,99. Теперь строим двенадцать опорных точек для постройки десяти треугольных фильтров (Мел-шкала и шкала в герцах):

alyunov13.wmf (14)

alyunov14.wmf (15)

Как мы уже говорили, длина фрейма составляет 256 отсчетов сигнала, частота 16 кГц (откладывается по оси ОХ). Наложим рассчитанную шкалу на спектр сигнала.

alyunov15.wmf (16)

что соответствует

alyunov16.wmf (17)

По опорным точкам построим фильтры:

alyunov17.wmf (18)

Фильтр перемножается со спектром:

alyunov18.wmf

0 ≤ m < M. (19)

Мел-фильтры применяются к энергии спектра, затем полученные значения логарифмируются.

Дискретное косинусоидальное преобразование (ДКТ) применяется для получения кепстральных коэффициентов, оно сжимает полученные результаты, повышает вклад первых коэффициентов и понижает вклад последних.

alyunov19.wmf

0 ≤ l < M. (20)

Получается, что у нас имеется 12 коэффициентов (рис. 3):

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

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

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

pic_4.tif

Рис. 4. Результаты расчетов

Допустим, у нас есть два числовых ряда (a1, a2, ..., an) и (b1, b2, ..., bm). Их длина может отличаться. Будем использовать Евклидово расстояние для расчета локальных отклонений между соответствующими элементами двух числовых рядов. В итоге получим матрицу отклонений N×M:

alyunov20.wmf alyunov21.wmf alyunov22.wmf (21)

Критерий оптимизации для расчета минимального расстояния:

alyunov23.wmf (22)

где aij – min расстояние между последовательностями (a1, a2, ..., an) и (b1, b2, ..., bm). Данный способ позволяет вычислить минимальную длину траектории движения от элемента а11 до элемента bnm (рис. 4).

Алгоритмы динамической трансформации времени полезны для распознавания отдельно стоящих слов при наличии словаря. В случае проблемы распознавания и обработки слитной речи гораздо более полезны СММ (скрытые марковские модели).

На основе представленного алгоритма разработано консольное приложение, позволяющее реализовать представленный алгоритм (рис. 5).

Для запуска приложения Sound необходимо вызвать командную строку при помощи RUN.BAT. Далее из командной строки вызываем команду: Sound -h. Возможны следующие вызовы команд: Список всех доступных моделей: Sound -l; Разделение источника в образцы: Sound -i samples/female1.wav -s_split; Добавление образца в модель: Sound -i samples/female1/1.wav -a odin; Распознавание образца: Sound -i samples/female1/1.wav -r; Модульные тесты: unit_tests --gtest_filter=MATH_MFCC.

pic_5.tif

Рис. 5. Работа разработанной программы в командной строке

В первую очередь из main создается экземпляр класса Command Processor. Процессор создает команды, основанные на входных параметрах. Работа начинается вывода команды input. При этом происходит вызов метода Audio Data Command::read Data. При этом происходит запись данных в структуру wavData и поле wavData, класса context заполняется данными wavData. Данные очищаются от шумов, нормализуются.

Все этапы получения MFCC-коэффициентов выполняются в методе MFCC::transform().

Таким образом, принцип работы заключается в разбивке речи на слова на основе вычисления энтропии, эмпирическим методом было вычислено пороговое значение 0,1, затем идет разбивка на фреймы и вычисляются mel-коэффициенты. Затем идет сравнение со словарем. В качестве эксперимента брались записи слитной речи мужских и женских голосов, записанных в тихой комнате с отсутствующим шумом. Качество распознавания, показанное данным методом составило 75 %.