СИСТЕМА СИНТЕЗА БЕЛОРУССКОЙ РЕЧИ ПО ТЕКСТУ

Система синтеза белорусской речи по тексту

Ю.С. Гецевич,

аспирант

Б.М. Лобанов,

доктор технических наук

Рассмотрены особенности фонетических систем белорусского и русского языков и структура белорусскоязычного синтезатора речи по тексту. Описаны структура и состав белорусского электронного словаря, а также программная реализация синтезатора белорусской речи.

Abstract

Peculiarities of the phonetic systems of the Belarusian and Russian languages and a structure of the Belarusian text-to-speech synthesizer are considered. A structure and composition of the Belarusian electronic dictionary, as well as the programme realization of a Belarusian speech synthesizer of are described.

Основные методы верификации речевых данных

Для некоторых славянских языков, таких как русский, чешский, польский, украинский, уже существуют практически используемые или экспериментальные образцы синтезаторов речи по тексту (СРТ) [1]. В литературе нет, однако, никаких сведений о создании синтезаторов речи по тексту для белорусского языка. Работа является продолжением проводимых ранее исследований, базирующихся на разработке русскоязычного синтезатора речи [2]. Результатом этой работы стало создание двуязычной системы синтеза речи по тексту. Синтез речи по тексту на двух славянских языках — белорусском и русском — предполагает создание фонетико-акустической базы данных, построенной на единых принципах, отражающих внутри- и межъязыковую специфику фонетических систем и позиционно-комбина-торных явлений, порождающих аллофонию речи.

1. Особенности фонетических систем белорусского и русского языков

Фонетические системы языков, относящихся к группе славянских, имеют между собой значительное сходство, однако каждый из них обладает также специфическими

91

Таблица 1

Фонетические системы белорусского и русского языков

особенностями, иногда значительными. Исследуемые фонетические системы белорусского и русского языков относительно близки. В белорусском языке насчитывается 41 фонема, из них 6 гласных и 35 согласных, а в русском — 42 фонемы: гласных — 6 и согласных — 36. В табл. 1 представлена обобщённая информация о фонемном составе двух языков и об их различии по способу и месту образования. В каждой ячейке таблицы представлены имена фонем, характеризующихся определённым способом и местом образования, для белорусского и русского языков порядке «сверху — вниз». Для обозначения фонем используются традиционные для каждого языка буквы алфавита.

В табл. 1 затемнены ячейки, фонетическое качество звуков которых имеет практически полное сходство для каждого из языков. Как видно из таблицы, количество таких ячеек в процентном отношении ко всем использующимся ячейкам довольно значительно — 71%. Отличительные особенности фонетических систем белорусского и русского языков заключаются в следующем.

\ Способ Согласные

\ образо- Глухие Звонкие Сонорные

\ вания Место \ образо- \ вания \ 0 1 Ф £ GQ Аффрикаты CD CD s t 0 1 CD £ GQ Аффрикаты Ф 00 S Дрожащие Ф Ф О О £ ф 03 g о щ ф i ф 1 ф 1 а 1 «о ф I £ § о о 3 CQ Огубленная

Заднеязычные Мягкие К' К' X' X' г' гх' й й У У 0 1 1

Твёрдые К к X X г гх о о 0 0 1

Среднеязычные Мягкие ч' ш' Р' а а 0 0 0

Твёрдые ч ш ш а ж ж ж Р Р э э 1 0 0

Переднеязычные Мягкие т' Ц' с' с' д' дз' 3' 3' н' н' л' л' ы ы 0 1 0

Твёрдые т т Ц ц с с д д 3 3 н н л л 1 и 1 1 0

ф # Мягкие п' п' ф' ф' б' б' в' в' м' м'

* С Твёрдые п п ф ф б б в в м м У

92

В белорусском языке отсутствуют следующие фонемы:

• мягкие согласные Т, Д, Ш, Ч, Р;

• мягкая и твёрдая Г

В белорусском языке есть ряд специфических фонем, отсутствующих в русском:

• плавная У;

• мягкая Ц и твёрдая Ч;

• мягкая аффриката Дз и твёрдая Дж;

• мягкая и твёрдая щелевая Гх.

* произношение взрывного звука Г возможно в некоторых заимствованных словах (ган-даль, ганак, гузк) и в коренных буквосочетаниях ЗГ, ДЗГ, ДЖГ (мазп, бразгаць, джгаць), в остальных случаях произносится звонкий фрикативный звук «Гх».

2. Структура белорусскоязычного синтезатора речи по тексту

Синтез устной речи по тексту осуществляется на основе лексико-грамматического анализа входного текста путём моделирования процессов речеобразования с учётом правил произношения звуков и интонирования, свойственных белорусскому языку. Орфографический текст документа (книги, статьи, веб-страницы и т.п.) поступает на вход синтезатора и далее подвергается последовательной обработке рядом специализированных процессоров в соответствии с общей структурой синтезатора речи по тексту, представленной на рис. 1. Синтезатор включает четыре основных модуля: текстовый процессор, просодический процессор, фонетический процессор и акустический процессор. Каждый из этих модулей поддерживается наборами соответствующих БД и правил.

Рис. 1. Общая структура синтезатора речи по тексту

Входной орфографический текст подвергается ряду последовательных обработок в каждом из процессоров. Текстовый процессор обрабатывает входной орфографический текст в следующей последовательности: очистка текста, преобразование символов (аббревиатур, сокращений, чисел и др.), расстановка словесных ударений и грамматических признаков словоформ. Преобразованный текст поступает на входы просодического, а затем фонетического процессора. В результате работы просодического процессора, текст делится на синтагмы, акцентные единицы (АЕ), который далее размечается на элементы акцентных единиц (ЭАЕ): интонационное предъядро, ядро и заядро.

И наконец, последняя функция просодического процессора — установка в соответствии с БД просодических «портретов» синтагм значений амплитуды (А), длительности фонем (Т) и частоты основного тона ^0) для каждого ЭАЕ. Задача фонетического процессора заключается в преобразовании орфографического текста в

93

Рис. 2. Структурная схема белорусского электронного словаря

Таблица 2

94

Сравнительные характеристики словарей белорусского и русского языков

Часть речи Количество словоформ

Существительное 591 036 465 230

Глагол 624 501 989 064

Прилагательное 874 997 626 842

Наречие 6 541 1 353

Числительное 571 410

Предлог 121 87

Междометие 96 180

Частица 58 86

Союз 46 68

Всего 2 097 967 2 083 320

фонемный, а также в генерации позиционных и комбинаторных аллофонов. Акустический процессор на основе информации о том, какие аллофоны необходимо синтезировать, а также какие просодические характеристики должны быть приписаны каждому аллофону, генерирует речевой сигнал путём компиляции отрезков естественных звуковых волн соответствующих аллофонов и мультифонов (диаллофо-ны и аллослоги).

Текстовый, просодический, фонетический и акустический процессоры синтезатора речи в своей основе языконезависи-мые, а языковая специфика (в нашем случае специфика белорусского языка) задаётся соответствующим набором баз данных и знаний (правил). На рис. 1 языконезависимые блоки представлены прямоугольниками в левой части, а языко-зависимые — в правой части. Три из четырёх блоков синтезатора (см. рис. 1) — просодический, фонетический и акустический процессоры — в наименьшей степени требуют коррекции языковых баз данных и знаний при переходе от синтеза русской речи к белорусской. Коренные изменения связаны, в основном, с созданием электронного белорусского словаря.

3. Белорусский электронный словарь

Полная словарная база содержит 2 097 967 словоформ белорусской речи. В табл. 2 приведены сравнительные характеристики состава используемых словарей для белорусского и русского языков. Словарь белорусского языка построен на базе словаря М.В. Бирылы [3], русского языка — А.А. Зализняка [4].

Архитектура белорусского электронного словаря (БЭС) представляет собой базу данных с конкретными функциями для её чтения и наполнения (рис. 2).

Таблица базы данных белорусского электронного словаря наполняется записями с тремя полями: орфографическое слово S1, позиции ударений в слове S2, теги слова S3 (табл. 3). На диске компьютера таблица БЭС сохраняется в файлах тат_Ье!.уЫ (данные записей) и тат_Ье!.ИвИ (данные проиндексированных записей).

Для чтения БЭС используется программный интерфейс класса CVocReader. Его архитектура приводиться в табл. 4.

Таблица 3

Архитектура базы данных БЭС

Название поля Тип

Орфографическое слово Строка

Позиция ударения Вектор целых чисел

Тег Строка

Таблица 4

Архитектура программного класса CVocReader для чтения словаря

Функция класса CVocReader

Комментарий

Открытие/Закрытие

Получить количество слов в словаре

Поиск слова

Поиск следующего слова Получить последнюю ошибку

Словарь переводится в режим чтения/общего доступа

Реальное количество слов

Выбирается запись (3 поля) из таблицы БД

Выбираются остальные записи.

Во время чтения словаря эта функция постоянно должна проверяться для следующей корректной работы всего процесса синтезирования речи

Для редактирования БЭС используется программный интерфейс класса CVocEditor. Его архитектура приводится в таблице 5.

Таблица 5

Архитектура программного класса CVocEditor для редактирования словаря

Функция класса CVocEditor

Комментарий

Открытие/Закрытие Добавить слово

Словарь переводится в режим редактирования/общего доступа Добавляется запись с ЛГК (3 поля) в таблицу БД

95

Удалить слово Удаляется запись с ЛГК (3 поля) из таблицы БД

Поиск слова По орфографической записи слова ищется соответствующая запись с ЛГК в БЭС

Поиск слова по маске По условной записи (через регулярные записи) слова ищется соответствующая запись с ЛГК в БЭС

Получить последнюю ошибку Во время чтения словаря эта функция постоянно должна проверяться для следующей корректной работы всего процесса синтезирования речи

Обновить/Перестроить индекс БЭС Синхронизация индексов для поиска слов в БЭС.

В табл. 6 представлен фрагмент используемой словарной базы.

Таблица 6

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

Слова_Тэг

зака'зчык_ NNAMO падвыша'ць_ VIC

зака'зчыка_ NNAMG падвыша'ю_ VIIR1

зака'зчыку_ NNAMD падвыша'еш_ VIIR2

зака'зчыка_ NNAMA падвыша'е_ VIIR3

зака'зчыкам_ NNAMI падвыша'ем_ VIIR1P

зака'зчыку_ NNAMR падвыша'еце_ VIIR2P

зака'зчыю_ NNAMPO падвыша'юць_ VIIR3P

зака'зчыкау_ NNAMPG падвыша'й_ VIM2

зака'зчыкам_ NNAMPD падвыша'йце_ VIM2P

зака'зчыкау_ NNAMPA падвыша'у_ VIIPM

зака'зчыками NNAMPI падвыша'ла_ VIIPF

зака'зчыках_ NNAMPR падвыша'ла_ VIIPN

Отдельная группа алгоритмов разработана для преобразования чисел в порядковые и количественные числительные.

В табл. 7-9 приведены правила преобразования чисел в числительные с соответствующими базами данных, а в таблице 10 — соответствующие текстовые примеры.

96

Таблица 7

Список соответствий — Tis «окончание =>склонение порядкового числительного» (фрагмент, всего — 480).

Число Окончание Окончание

12 -га дванаццатага

12 -е дванаццатае

12 -ы дванаццаты

12 -м дванаццатым

12 -Mi дванаццаты^

12 -му дванаццатаму

12 -ае дванаццатае

12 -ай дванаццатай

12 -аю дванаццатаю

12 -ую дванаццатую

12 -х дванаццатых

12 -ыя дванаццатыя

12 -ым дванаццатым

Таблица 8

Список Tis — «число, склонение

=>количественное числительное»

(фрагмент, всего 388).

Л'1к Склонение Числительное

3 T Трыма

30 T Трыццацю

300 T Трымастамi

4 T Чатырма

40 T Сарака

400 T Чатырмастамi

5 T Пяццю

50 T Пяццюдзесяццю

500 T Пяццюстамi

6 T Шасцю

60 T Шасцюдзесяццю

600 T Шасцюстамi

8 T Васьмю

80 T Васьмюдзесяццю

800 T Васьмюст^

9 T Дзевяццю

90 T Дзевяноста

Таблица 9

Список Ttl: «число=>название триады»

Число Название триады

1 Тысяча

2...4 Тысячы

5..20, 30, 40, ... 90 Тысяч

100, 200, ... 900 Тысяч

4. Программная реализация синтезатора белорусской речи

Модульная структура программной реализации синтезатора белорусской речи представлена на рис. 3, где модули, управляющие последовательностью действий других модулей,

97

называются контроллерами, в то время как модули, реализующие алгоритмы обработки текста или речевого сигнала, называются процессорами.

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

Таблица 10

Примеры преобразования чисел в числительные

Входной текст Выходной текст

Количественные числительные

Настауык атрымау заробак 784921 Настаунлк атрымау заробак семсот

рубель. восемдзесят чатыры тысячы

дзевяцьсот дваццаць адзЫ рубель.

Юрауыцтва зацвердзта аб'ёмы Юраунщтва зацвердзта аб'ёмы

асноуных вщау прадукцьп для асноуных вщау прадукцьп для пяц

5 галЫау гаспадарю. галЫау гаспадарю.

Порядковые числительные

Завод выпуску 234000-ы Завод выпуску

аутамабть. двухсоттрыцца^чатырохтысячны

аутамабть.

У нас няма 123-га байца. У нас няма сто дваццаць трэцяга

байца.

У 2010-ым годзе адбудзецца У дзве тысячы дзесятым годзе

алiмпiяда па... адбудзецца

алiмпiяда па ...

198000-ая скрынка з ^Kep^Mi Стодзeвяноставасьмiтысячная

выйшла з вытворчага цэха. скрынка з цукepкамi выйшла з

вытворчага цэха.

98

«Очищенный» таким образом текст подаётся на вход лингвистического контроллера, выходом которого является просодически размеченный текст. Преобразованный текст поступает на вход фонетического процессора, который осуществляет преобразования «буква-фонема», «фонема — аллофон», затем — на вход просодического процессора, который устанавливает текущие значения амплитуды, частоты основного тона и длительности каждого аллофона. Просодически размеченный аллофонный текст поступает затем на вход акустического процессора, который генерирует речевой сигнал с использованием БД звуковых волн аллофонов и мультифонов. Результат преобразований поступает в контроллер формата выходных данных, который осуществляет преобразование в нужный формат: wav или тр3.

На рис. 4 представлен программный интерфейс отладочной версии синтезатора белорусской речи.

В нижней части представлен орфографический текст, подаваемый на вход синтезатора. В верхней части первый столбец отображает порядковый номер просодических синтагм этого текста. Во втором столбце указан интонационный тип каждой синтагмы ^ — разновидности вопросительной интонации, Р — повествовательной). В третьем столбце указано количество акцентных единиц в каждой из синтагм. В четвёртом столбце приведён фонемный текст каждой синтагмы, в которой знаком «ъ» отражен факт объединения служебных

и знаменательных слов в одно фонетическое слово, знаки «+» и «=»указывают, соответственно, положение в словах полного и частичного ударения, а знак «/» — положение границ акцентных единиц синтагмы. В последнем, пятом, столбце приведён аллофонный текст синтагм.

Заключение

Специальное подразделение ЮНЕСКО, занимающееся сохранением языков мира как живым представителем культурного наследия пла-

Рис. 4. Программный интерфейс синтезатора белорусской речи

неты, отнесло белорусский язык к вымирающим — «потенциально угрожаемым» языкам [6]. Если современная тенденция кардинально не изменится, в ближайшие десятилетия мы можем потерять еще один живой язык Земли — славянский белорусский язык. В свете этого факта значимость создания белорусскоязычного синтезатора речи трудно переоценить. В нём программным образом аккумулированы и сохранены для будущих поколений лексика белорусского языка — арфография, акцентуация, словоизменение —

99

ш

ш

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

В заключение авторы выражают глубокую благодарность заведующему лабораторией интеллектуальных систем БГУ профессору И.В. Совпелю и его сотрудникам за передачу базовой версии белорусского электронного словаря и помощь в его адаптации для решения задач синтеза белорусской речи.

Работа выполнена при поддержке гранта № Ф10Р-006 БРФФИ. Литература

1. http://www.speech.cs.cmu.edu/comp.speech/

2. Лобанов Б.М. Компьютерный синтез и клонирование речи // Б.М. Лобанов, Л.И. Цирульник / Минск: Белорусская Наука, 2008.

3. Зализняк А.А. Грамматический словарь русского языка: Словоизменение. Ок 100 000 слов. 2-е изд., стереотип. М.: Рус. Яз., 1980.

4. Слоушк беларускай мовы: Арфагра<^я. Арфаэтя. Акцэнтуацыя. Словазмяненне / 1н-т мовазнауства iмя Я. Коласа АН БССР; Пад рэд. М.В. Бiрылы. Мн.: БелСЭ, 1987..

5. http://ru.wikipedia.org/wiki — Белорусский язык.

Гецевич Ю.С. —

окончил факультет прикладной математики и информатики Белорусского государственного университета, факультет математики и информатики университета в Манхейме (Германия). Аспирант, младший научный сотрудник лаборатории распознавания и синтеза речи Объединённого института проблем информатики Национальной академии наук Беларуси.

Область научных интересов — методы синтеза белорусской и русской речи по тексту, человеко — машинные системы речевого общения, речевые компьютерные технологии. E-mail: mix1122@gmail.com

Лобанов Б.М. —

доктор технических наук. Почётный радист СССР (1981), обладатель серебряной и бронзовой медалей ВДНХ СССР (1983), главного приза международного конкурса фирмы HEWLETT_PACKARD за работу «Распознавание голоса» (1992). С 1987 — член Международного акустического общества, с 1994 — координатор Белорусского отделения Европейской сети по компьютерной лингвистике и речи, с 1995 — член Европейской ассоциации речевых исследований, с 2001 — эксперт Европейской сети языковых технологий. Член докторских советов по защите диссертаций (ОИПИ НАН Беларуси, БГУИР, БГУ, МГЛУ), С 1998 — профессор БГУИР, с 2003 — профессор Университета в Белостоке.

100