УДК 681.3
Н. Д. Торгашин
ПОСТРОЕНИЕ СИСТЕМЫ РАСПОЗНАВАНИЯ СЛОВ ТЕМАТИЧЕСКОГО СЛОВАРЯ НА ОСНОВЕ МНОГОСЛОЙНОЙ НЕЙРОННОЙ СЕТИ
Рассматриваются общие принципы построения систем распознавания речи, исследуется возможность применения многослойной нейронной сети для распознавания отдельно произносимых слов конечного словаря. Затрагиваются аспекты выбора оптимальной структуры сети, осуществления этапа обучения и уменьшения затрат времени на распознавание. Приводятся результаты тестирования программной реализации системы распознавания речи.
На современном этапе развития компьютерной техники все более актуальной становится проблема диалога и эффективного взаимодействия человека с компьютером. При этом большое внимание уделяется проблеме распознавания речи, в данном направлении постоянно ведутся исследования, идет поиск новых подходов к решению задачи. Искусственные нейронные сети представляют собой эффективный и мощный инструмент, применяемый для предсказания, оптимизации, аппроксимации функций, кластеризации данных и распознавания образов. Автором была предпринята попытка применения многослойной нейронной сети для распознавания отдельно произносимых слов конечного тематического словаря.
Персональный компьютер со звуковой картой и подключенным к ней микрофоном является мощным инструментом для создания системы распознавания речи (рис. 1). Произнесенное пользователем слово воспринимается микрофоном, затем проходит последовательную обработку в ряде модулей и в итоге преобразуется либо в распознанное слово на экране монитора, либо инициирует некоторую последовательность действий, закрепленных за данной речевой командой.
Обработка и анализ звука на компьютере требует предварительной оцифровки поступающей от микрофона аналоговой амплитуды звуковых колебаний. Для оцифровки аналогового сигнала применяется дискретизация
по времени и квантование по уровню. Выборка мгновенного значения аналогового сигнала проводится регулярно с частотой дискретизации. Квантование осуществляется при помощи аналогово-цифрового преобразователя (АУП), на выходе которого информация представляется числом, принимающим одно из множества дискретных значений. Процедуру оцифровки аналогового звукового сигнала позволяет осуществлять стандартная звуковая карта компьютера.
Полученные после оцифровки данные подвергают анализу с целью получения каких-либо характерных признаков, по которым можно осуществлять распознавание речи. Набор вычисляемых признаков зависит от конкретной системы. Наиболее часто применяются коэффициенты линейного предсказания, коэффициенты гармонических составляющих ряда Фурье (спектральный анализ), кепстральные параметры. Весь набор вычисляемых признаков образует характеристический вектор V:
V = ^ к,^} , (1)
где - значения отдельных признаков; h - количество признаков.
Работа большинства существующих систем основана на представлении речи как сигнала, медленно изменяющего свои характеристики во времени. Вследствие этого произносимые слова разбиваются по времени на короткие фрагменты (кадры), и считается, что внутри фраг-
Произнесенное слово (звуковые колебания)
Аналоговая амплитуда звуковых колебаний
Оцифрованная амплитуда звуковых колебаний
Распознанное слово
Рис. 1. Функциональная схема системы распознавания отдельно произносимых слов речи
мента характеристический вектор имеет постоянное значение. Обычно размер кадра составляет 10.. .20 мс.
Вычисляемые характеристические векторы поступают в модуль формирования образов, который сохраняет их значения в специальном массиве. Когда все кадры произнесенного слова будут оцифрованы и проанализированы, из значений всех полученных характеристических векторов формируется образ слова - двухмерная матрица признаков М:
М = \¥?
К1
К
■]-
т,1 т1,2 • • т1, „
т2,1 т2,1 • •• т2,. , (2)
Щ,1 тм •• Щ,* _
где V) - характеристические векторы кадров; ™ - количе-
ство кадров;
значения отдельных признаков;
h - количество признаков в характеристическом векторе.
В каждом столбце матрицы находятся значения отдельных признаков соответствующего характеристического вектора. Векторы характерных признаков предварительно упорядочиваются по времени, т. е. в порядке расположения соответствующих им кадров в произнесенном слове. Если, в качестве характеристического вектора будет выступать, например, спектр сигнала, получаемый при помощи преобразования Фурье, то двухмерная матрица признаков будет представлять собой спектрограмму, отражающую изменение частотного представления сигнала во времени.
Если набор признаков характеристического вектора подобран правильно, то двухмерная матрица признаков однозначно описывает произнесенное слово, для которого она была построена. Таким образом, задача распознавания речи переходит в задачу распознавания образов и изображений, для решения которой в настоящее время достаточно эффективно используются нейронные сети. Автором была исследована возможность применения для распознавания речи многослойной нейронной сети, называемой также многослойным персептроном (рис. 2).
В общем случае входной слой сети содержит N нейронов, на которые подаются значения элементов матрицы признаков М произнесенного слова. Таким образом,
N = w ■ И, (3)
где - количество кадров; h - количество признаков в характеристическом векторе.
Количество скрытых слоев сети и нейронов в скрытом слое К строго не определено и зависит от числа слов, распознавание которых должна осуществлять нейронная сеть. Слишком маленькое количество скрытых слоев уменьшает достоверность распознавания, а слишком большое - увеличивает время, необходимое для моделирования работы нейронной сети на персональном компьютере. Наиболее целесообразно использовать от 2 до 5 скрытых слоев [1].
Выходной слой сети содержит Z нейронов, каждый из которых соответствует классу распознаваемых образов, т. е. определенному слову. Все скрытые слои и выходной слой нейронной сети являются полносвязными слоями: в них каждый нейрон соединен синаптическими связями со всеми аксонами нейронов предыдущего слоя.
Обучение нейронной сети осуществляется по концепции обучения с учителем, при этом применяется алгоритм обратного распространения ошибки. Данный подход предполагает, что для каждого входного образа существует целевой вектор, представляющий собой требуемый выход сети. Входной образ и соответствующий ему выход сети называются обучающей парой. Некоторое количество этих пар и предъявляется нейронной сети на этапе обучения. При обучении распознаванию речи обучающая пара формируется по следующему алгоритму. Произнесенное пользователем слово воспринимается и анализируется системой, далее выполняется построение двухмерной матрицы признаков М. Значения элементов этой матрицы подаются на вход нейронной сети. Для нейрона выходного слоя, соответствующего произнесенному слову, устанавливается требуемое значение, равное 1, для остальных нейронов выходного слоя - значение, равное 0.
Для того чтобы обучить сеть распознаванию некоторого конечного набора слов, необходимо перед началом этапа обучения подготовить обучающую выборку. Для достижения большей достоверности распознавания рекомендуется, чтобы каждое распознаваемое системой слово было произнесено и проанализировано несколько раз с построением соответствующего числа обучающих пар. Проведенное тестирование системы показало, что необходимо делать не менее 2.3 звукозаписей различных вариантов произнесения слова для каждого пользователя системы [2].
Скрытые слои
Входной слой Выходной слой
Рис. 2. Структура полносвязной многослойной нейронной сети
Слово 1
Слово 2
Слово 3
Слово Z
т. . -
Нейронная сеть, имеющая описанную выше структуру, успешно обучается и выполняет распознавание предъявляемых образов при обьеме словаря в несколько сотен слов. К несомненным достоинствам такой сети относится способность к обобщению входных образов одного класса. За счет этого включение в обучающую выборку новых вариантов произнесения слов потребует лишь незначительного увеличения количества нейронов в скрытых слоях. Что касается недостатков, то самым существенным из них является рост сложности задачи при расширении словаря распознаваемых слов, ограничивают возможность для применения этой сети. В таком случае возрастает количество нейронов и синаптических связей между ними, для хранения сети потребуется больше памяти, да и время обучения и функционирования сети может стать неприемлемо большим. Практически все современные системы распознавания речи должны работать в реальном масштабе времени, поэтому требования, накладываемые на производительность подсистемы распознавания образов, являются очень жесткими.
Решением данной проблемы, по мнению автора, является применение для распознавания речи неполносвязной многослойной нейронной сети [3] (рис. 3). В скрытых слоях нейронной сети каждый нейрон связан только с нейронами из небольшой области предыдущего слоя, называемой областью связей. Это ограничение согласуется с анатомией коры головного мозга, отвечающей за зрительное восприятие, в которой нейроны, располагающиеся друг от друга на расстоянии более 1 мм, соединяются между собой редко.
Область связей нейрона может быть различной. Например, она может представлять собой квадрат или ромб со стороной несколько нейронов. Конкретная форма области связей, ее размер и другие параметры задаются экспертом на этапе разработки структуры сети исходя из поставленной задачи. Основным критерием служит количество слов, распознаванию которых будет обучаться система. Алгоритм задания области связей строго не формализован, при этом увеличение количества включаемых в нее нейронов не всегда приводит к повышению достоверности распознавания.
Входной слой сети по-прежнему содержит N нейронов, на которые подаются значения матрицы признаков М.
Каждый нейрон выходного слоя соответствует распознаваемому системой слову. Следует обратить внимание на то, что выходной слой нейронной сети является полносвязным. Попытка введения области связей для нейронов выходного слоя приводит к существенному понижению достоверности распознавания системы.
Механизм работы с неполносвязной сетью имеет следующие особенности. Для обучения нейронной сети по методу обратного распространения ошибки, а также распознавания предъявляемых образов произносимых слов можно использовать стандартные алгоритмы. При этом необходимо считать, что сеть является полносвязной и между несоединенными нейронами соседних слоев существует синаптическая связь, но ее вес равен нулю. Преимущество такого подхода заключается в возможности применения уже существующих программ и библиотек. Недостатком же является то, что фактическое количество синаптических связей по сравнению с полносвязной сетью не изменяется, а значит при функционировании сети на персональном компьютере с последовательной архитектурой выигрыш по скорости работы и объему занимаемой памяти отсутствует. Выходом из ситуации является использование специализированных алгоритмов, учитывающих разряженность матриц весовых коэффициентов нейронов неполносвязных слоев сети.
При использовании специального программного обеспечения, реализующего все преимущества неполносвязной нейронной сети, система распознавания речи, построенная на основе такой сети может работать со словарем объемом в несколько тысяч слов. Данная система может служить, например, для голосового набора текстов на компьютере. Конечно, обучить систему распознаванию произвольного текста затруднительно по причине большого числа слов в любом языке. Так, в русском языке насчитывается около 130 000 различных слов, образующих около 1 250 000 словоформ. Тем не менее существуют так называемые тематические словари, содержащие несколько десятков тысяч слов из некоторой предметной области (словарь разговорного языка, словарь для деловой корреспонденции и т. д.). Система распознавания речи на основе неполносвязной нейронной сети вполне может быть обучена работе со словарем такого объема.
Рис. 3. Неполносвязная многослойная нейронная сеть
В настоящее время к использованию тематических словарей прибегают и системы, распознающие произвольную речь путем разделения ее на фонемы. Такая необходимость возникает по другой причине и связана с тем, что в разговорной речи отсутствуют паузы между словами. В общем случае из одной последовательности произнесенных пользователем звуков, по-разному расставляя границы слов, можно составить несколько синтаксически правильных фраз или предложений. Если системе заранее задать приблизительную тематику текста, выбрав словарь, то она сможет правильно расставить границы слов, и выдать правильный результат распознавания.
Возвращаясь к разрабатываемой нейронной сети для распознавания отдельно произносимых слов, обратим внимание на следующую проблему. Каждому слову, распознаваемому системой, соответствует отдельный нейрон выходного слоя сети. Значит, увеличение словаря до нескольких тысяч слов приведет к аналогичному увеличению количества нейронов в выходном слое. А если учесть, что выходной слой является полносвязным, то это вызовет значительное увеличение количества синаптических связей и непременное снижение производительности распознавания. Подобной ситуации можно избежать с помощью модификации структуры выходного слоя (рис. 4).
В предлагаемой структуре выходного слоя нейронной сети для каждой буквы алфавита, находящейся на определенном месте в слове, предусматривается отдельный нейрон. Алфавит русского языка содержит 33 буквы, поэтому для каждой позиции распознаваемого слова необходимо ввести в выходной слой 33 нейрона. Таким образом, общее число нейронов выходного слоя G определяется по формуле
О = 33 • Ь , (4)
где L - количество букв в самом длинном распознаваемом слове.
Формирование обучающей пары на этапе обучения сети происходит по следующему алгоритму. На вход нейронной сети подаются значения элементов построенной
матрицы признаков М. В выходном слое для каждой позиции слова из 33 нейронов, отвечающих за нее, активным устанавливается лишь один, соответствующий находящейся в данной позиции букве. Если количество букв в распознаваемом слове меньше L, то слово дополняется пробелами. При кодировании таких пробелов в конце слова ни один нейрон не устанавливается активным.
Количество нейронов в выходном слое можно уменьшить приблизительно на 1/3, если исключить нейроны, которые при работе никогда не понадобятся. Так, например ни одно слово русского языка не начинается с букв ъ, ы, ъ. Кроме того, при конечном объеме словаря некоторые буквы не могут не встретиться на определенных позициях.
Главным преимуществом нейронной сети с модифицированным выходным слоем является то, что количество выходов сети не зависит от объема словаря распознаваемых слов и определяется по формуле (4). Кроме того, при такой структуре сеть обучается фактически не распознаванию отдельных слов, а распознаванию отдельных букв, находящихся на определенных позициях в слове: в начале, середине или в конце. Теоретически в процессе обучения нейронная сеть может сформировать идеальные образы распознаваемых букв. Тогда в дальнейшем, встретив при распознавании слово, не входящее в обучающую выборку, сеть произведет декомпозицию по буквам, активизирует в выходном слое соответствующие им нейроны и выдаст правильный результат распознавания.
На основании изложенного выше была осуществлена практическая программная реализация системы распознавания отдельно произносимых слов. При этом в качестве модуля распознавания применялись нейронные сети с различной структурой с целью определения обеспечиваемой ими достоверности распознавания и характеристик работоспособности.
Разработанная система распознавания речи работает в реальном масштабе времени и непрерывно осуществляет запись звука через микрофон, подключенный к звуковой карте компьютера. Оцифровка аналогового звуко-
L-1 L
33•Ьнейронов
Выходной слой Рис. 4. Структура модифицированного выходного слоя
вого сигнала осуществляется с разрядностью 16 бит и частотой дискретизации 22 050 Гц. Для получения признаков, по которым можно выполнять распознавание, применяется с помощью преобразования Фурье спектральный анализ. Для дискретного сигнала, представляющего собой решетчатую функцию, определенную на конечном промежутке времени, преобразование Фурье принимает вид дискретного преобразования Фурье:
1 Н— ¡-2^ПпЖ
сп = н X, (5)
н к=0
где сп - значение гармонической составляющей сигнала; п = 0, 1, ..., N-1 - номер гармонической составляющей; хк - значения функции; N - число отсчетов функции.
В системе (1) в качестве признаков используются абсолютные величины комплексных значений гармонических составляющих с частотами, расположенными равномерно в интервале от 50 Гц до 5 кГц. Количество гармоник интервала равно 25, количество отсчетов анализируемой функции N равно 500. Таким образом, характеристический вектор V представляет собой амплитудный спектр сигнала в заданном интервале частот.
Применение дискретного преобразования Фурье для анализа данных обладает рядом специфических особенностей. Так, для уменьшения искажений, связанных с конечностью выборки при ее неизменном объеме, анализируемые данные необходимо умножить на значения специальной весовой функции окна. В разработанной системе была использовано окно Хемминга, так как весовая функция данного типа наиболее часто применяется для анализа звуковых данных.
В состав системы входит модуль для поиска в непрерывном потоке поступающих от микрофона звуковых данных слов, произносимых пользователем. Это осуществляется путем сравнения суммарной энергии спектра с определенным пороговым значением, превышение которого расценивается как обнаружение слова. Временной интервал обнаруженного и записанного системой слова разбивается на 25 фрагментов, на каждом из которых производится вычисление характеристического вектора, т. е. построение спектра. Получаемая в результате двухмерная матрица образа слова М имеет размерность 25 х 25 и представляет собой спектрограмму, отражаю-
щую изменение частотного представления звуковых данных во времени. Значения элементов этой матрицы подаются на 625 входов нейронной сети.
В эксперименте были использованы различные варианты структуры сети и ее выходного слоя.
В первом случае применена полносвязная нейронная сеть, количество нейронов в выходном слое которой равно количеству распознаваемых слов (структуру сети см. на рис. 2). Каждому из 100 распознаваемых системой слов соответствует отдельный выход сети. Нейронная сеть обучается по методу обратного распространения ошибки. При формировании желаемого выхода активным (значение, равное 1) устанавливается один нейрон, соответствующий слову, матрица образа которого предъявляется на вход. Звукозапись слов для обучения сети производил один пользователь. Объем обучающей выборки составил 100 слов, каждое из которых для повышения достоверности распознавания было произнесено пользователем по 3 раза. Таким образом, общее количество обучающих пар равно 300. На каждой итерации обучения нейронной сети предъявлялись в случайном порядке все 300 образцов выборки. Контролировалось, чтобы в случайном порядке были выбраны все образцы и ни один не повторился несколько раз. Количество скрытых слоев сети, количество нейронов в скрытом слое, а также параметры алгоритма обратного распространения ошибки определились путем подбора непосредственно в ходе эксперимента. Правильно спроектированная нейронная сеть вполне устойчиво обучается за несколько десятков итераций.
Во втором случае была применена неполносвязная многослойная нейронная сеть (см. рис. 3). Каждый нейрон в скрытых слоях сети имел отличные от нуля синаптические связи только с 25 нейронами предыдущего слоя, образующими квадрат. Структура входного и выходного слоев, объем обучающей выборки и организация процесса обучения сети аналогичны предыдущему варианту.
Также была реализована неполносвязная нейронная сеть с модифицированным выходным слоем (см. рис. 4). Для каждой буквы алфавита, находящейся на определенном месте в распознаваемом слове, предусматривался отдельный выход сети. Применение выходного слоя с такой
Результаты тестирования системы распознавания речи
Характеристика Тип нейронной сети
Полносвязная многослойная нейронная сеть Неполносвязная многослойная нейронная сеть Неполносвязная сеть с модифицированным выходным слоем
Количество нейронов во входном слое N 625 625 625
Количество скрытых слоев и нейронов в них 3 слоя по 65 нейронов 3 слоя по 65 нейронов 3 слоя по 65 нейронов
Вид области связей Весь предыдущий слой Квадрат 5 на 5 нейронов Квадрат 5 на 5 нейронов
Количество нейронов в выходном слое 100 100 225
Общее количество синаптических связей 55 870 16 798 25 498
Обучающая выборка 300 образцов (100 слов по 3 варианта произнесения) 300 образцов (100 слов по 3 варианта произнесения) 300 образцов (100 слов по варианта произнесения)
Тестовая выборка 35 образцов 35 образцов 35 образцов
Достоверность распознавания 97,14 % 100 % 97,14 %
структурой в системе, распознающей 100 слов, не целесообразно, так как оно ведет лишь к увеличению количества нейронов и синаптических связей. Тестирование данной нейронной сети важно для исследования возможности работы в перспективе со словарем несколько тысяч слов.
Тестирование нейронных сетей различных конфигураций осуществлялось путем предъявления системе звукозаписей из тестовой выборки, включающей 35 слов, распознаваемых системой. Для создания обучающей выборки и тестовой выборки использовалась речь одного и того же пользователя. Параметры примененных нейронных сетей и полученная при тестировании достоверность распознавания приведены в таблице.
В настоящее время наиболее распространенной практической реализацией многослойной нейронной сети является применение специализированных программ, имитирующих работу сети на персональном компьютере. Такой вариант требует относительно небольших экономических затрат для получения функционирующей нейронной сети и обеспечивает широкие возможности для проведения экспериментов. Но в то же время возникает проблема скорости работы, обучения и распознавания сетью образов. Производительность напрямую зависит от объема занимаемой нейронной сетью памяти, который определяется количеством синаптических связей между нейронами. Полносвязная нейронная сеть является наименее эффективной с точки зрения производительности. Рассмотренная в данной статье реализация неполносвязной нейронной сети с модифицированным выходным слоем имеет относительно небольшое число нейронов на выходе сети и их количество не будет увеличиваться при расширении тематического словаря распознаваемых системой слов. Высокая достоверность распознавания, обеспечиваемая данной сетью, позволяет с успехом применять ее для построения систем распознавания речи. Различные варианты рассмотренных нейронных сетей были реализованы в программном комплексе [4].
Таким образом, проведенные эксперименты показывают, что рассмотренные выше модификации многослойных нейронных сетей, основанные на алгоритме обратного распространения ошибки, можно применять для распознавания отдельно произносимых слов конечного словаря с высокой степенью достоверности. Способность к обобщению входных образов одного класса, присущая нейронным сетям с такой структурой, позволяет уменьшить количество
речевых образов слов, предъявляемых системе на этапе обучения. Использование разработанной модификации структуры выходного слоя, а также применение неполносвязной нейронной сети позволило решить проблему увеличения количества синаптических связей между нейронами, затрат памяти, времени на обучение и функционирование сети при расширении словаря распознаваемых слов. Благодаря этому система распознавания речи может работать в реальном масштабе времени.
Тестирование разработанной программной реализации системы распознавания отдельно произносимых слов тематического словаря на основе неполносвязной многослойной сети с модифицированным выходным слоем дало положительные результаты. Использование для работы с неполносвязной сетью специализированных алгоритмов, учитывающих разряженность матриц весовых коэффициентов нейронов, помогло получить выигрыш по скорости работы и объему занимаемой памяти при реализации сети на персональном компьютере с последовательной архитектурой. Все отмеченное выше позволяет проводить построение системы распознавания речи с объемом словаря в несколько тысяч слов. Обучение системы распознаванию совершенно произвольного текста затруднительно, по вполне возможна работа с подготовленным заранее конечным тематическим словарем.
Библиографический список
1. Белозерский, Л. А. Основы построения систем распознавания образов / Л. А. Белозерский. Донецк : Наука и образование, 1998.
2. Идентификация ограниченного набора образов на основе ассоциативных нейронных сетей / М. Н. Фаворская, А. Г. Зотин, М. В. Дамов, Н. Д. Торгашин // Вестн. Сиб. гос. аэрокосмич. ун-та им. акад. М. Ф. Решетнева / под ред. проф. Г. П. Белякова ; Сиб. гос. аэрокосмич. ун-т. Вып. 5. Красноярск, 2004. С. 109-116.
3. Нейроинформатика / А. Н. Горбань, В. Л. Дунин-Барковский, А. Н. Кирдин и др. Новосибирск : Наука. Сиб. изд. предприятие РАН, 1998.
4. Система распознавания речевых команд для управления операционной системой MS Windows : свидетельство об офиц. регистрации программы для ЭВМ № 2004610879 / Торгашин Н. Д. ; правообладатель Сиб. гос. аэрокосмич. ун-т. Зарегистр. в Реестре программ для ЭВМ 12.04.2004.
N. D. Torgashin
THE DEVELOPING THEMATIC DICTIONARY SPEECH RECOGNITION SYSTEM BASED ON MULTILAYER NEURAL NETWORK
This article considers general principles of speech recognition systems developing; opportunity of using multilayer neural network for isolated words recognition is examined. The aspects of network architecture choice, training and recognition performance increasing are also considered. The testing results of developed speech recognition system realization are included.