Научная статья на тему 'АЛГОРИТМЫ ПРЕОБРАЗОВАНИЯ "БУКВА - ФОНЕМА" ДВУЯЗЫЧНОГО СИНТЕЗАТОРА РЕЧИ'

АЛГОРИТМЫ ПРЕОБРАЗОВАНИЯ "БУКВА - ФОНЕМА" ДВУЯЗЫЧНОГО СИНТЕЗАТОРА РЕЧИ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
95
29
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
РУССКИЙ ЯЗЫК / БЕЛОРУССКИЙ ЯЗЫК

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Гецевич Юрий Станиславович, Лобанов Борис Мефодьевич, Покладок Дмитрий Александрович

В статье рассмотрены особенности письменно-фонетических систем русского и белорусского языков, предложен метод преобразования «БукваФонема» на основе общих и частных правил для двух языков, реализован языконезависимый алгоритм преобразования «Буква - Фонема» с помощью правил, записанных в виде регулярных выражений.The article describes the features of phonetic-writing systems of Russian and Belarusian languages. A «letter-to-phoneme» conversion method on the basis of general and specific rules for the two languages is proposed. A language independent transformation algorithm implemented «letter-to-phoneme» by rules written in the form of regular expressions is described.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Гецевич Юрий Станиславович, Лобанов Борис Мефодьевич, Покладок Дмитрий Александрович

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «АЛГОРИТМЫ ПРЕОБРАЗОВАНИЯ "БУКВА - ФОНЕМА" ДВУЯЗЫЧНОГО СИНТЕЗАТОРА РЕЧИ»

Алгоритмы преобразования «Буква - Фонема» двуязычного синтезатора речи

Гецевич Ю.С., кандидат технических наук Лобанов Б.М., доктор технических наук Покладок Д.А., аспирант

В статье рассмотрены особенности письменно-фонетических систем русского и белорусского языков, предложен метод преобразования «Буква-Фонема» на основе общих и частных правил для двух языков, реализован языконезависимый алгоритм преобразования «Буква — Фонема» с помощью правил, записанных в виде регулярных выражений.

• преобразование «<Буква-Фонема» • русский язык • белорусский язык

• синтез речи по тексту

The article describes the features of phonetic-writing systems of Russian and Belarusian languages. A «letter-to-phoneme» conversion method on the basis of general and specific rules for the two languages is proposed. A language independent transformation algorithm implemented «letter-to-phoneme» by rules written in the form of regular expressions is described.

• а «letter-to-phoneme» conversion • Russian language • Belarusian language

Введение

Преобразование входного орфографического текста в фонемную последовательность (преобразование «Буква-Фонема») является одной из важнейших функций систем синтеза речи по тексту. Разработка правил преобразования «Буква-Фонема» (ПБФ) для русской речи (в отличие от белорусской) имеет давнюю историю. Эти правила описаны, в частности, в работах [13].

Для высококачественного синтеза слитной речи по тексту необходимо учитывать и специфические явления на стыках слов, которые иногда существенно отличаются от подобных внутрисловных явлений. Проведённые ранее исследования [4] позволили выявить особенности межсловных фонетических явлений и систематизировать некоторые из этих правил. На основании этих и других исследований [5] разработаны алгоритмы ПБФ, описываемые в настоящей работе. Отличительной осо-

95

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

1. Алфавиты и фонемный состав русского и белорусского языков

Русский и белорусский алфавиты относятся к кириллическим алфавитам. Русский алфавит включает 33 буквы. 21 буква служит для обозначения согласных звуков: б, в, г, д, ж, з, й, к, л, м, н, п, р, с, т, ф, х, ц, ч, ш, щ. Гласные звуки обозначают следующие 10 букв: а, у, о, ы, э, я, ю, ё, и, е. Две буквы русского алфавита не обозначают звуков: ъ, ь.

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

В белорусском алфавите 34 буквы. 22 буквы служат для обозначения согласных звуков: б, в, г, д, дж, дз, ж, з, й, к, л, м, н, п, р, с, т, ф, х, ц, ч, ш. Гласные звуки обозначают следующие 10 букв: а, у, о, ы, э, я, ю, ё, и, е. Одна буква алфавита обозначает полугласный звук: у, и ещё одна — беззвучная буква: ь.

Сочетания букв «дж» и «дз» считаются диграфами и обозначают один звук. В белорусской кириллице также используется знак апострофа (') (после согласных перед буквами е, ё, ^ ю, я). Он выполняет ту же функцию, что буква Ъ в русском языке. В белорусском письме запрещена замена буквы «ё» на «е».

Белорусский алфавит, в отличие от русского, включает латинскую букву i и характерную только для белорусской письменности букву у (у-короткое). В белорусской письменности буква У стала употребляться с 1890-х гг. По начертанию буква У повторяет обычную букву У, к которой прибавлена такая же краткая, как в букве Й. Употребляется после гласных, соответствует буквам (и звукам) У, В, и Л русского языка и часто чередуется с ними: ён у карчме — янь)у карчме, галава — галдука, быу — была.

Фонетические системы обоих языков имеют между собой значительное сходство, однако, каждый из них обладает также специфическими особенностями, иногда значительными. В русском и белорусском языках насчитывается по 42 фонемы, из них 6 гласных и 36 согласных. Состав гласных фонем практически одинаков: / у, д, а, э, ы, и /, в то время как состав согласных различен. Всего вместе русский и белорусский языки насчитывают 42 различных

96

согласных. Из них 36 согласных русского языка: /м, м', н, н'л, л',р, р_,й', в, в',

з, з', ж, ф, ф', с, с!, ш, х, х', б, б', д, Д, г, п, п', т, Т, к, к1, ц, ч_/ и 36 белорусского: /м, м1, н, н', л, л', р, й, у, в, в', з$, ж, гх, Х, ф, ф', с, с, ш, х, х', б, б', д, п, п', т, к, к,дж, дз',ц, ц_,ч/ (подчёркнуты фонемы, отсутствующие в белорусском или русском языках соответственно).

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

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

— мягкие согласные тд', ш', ч', р';

— мягкая и твёрдая г, г'.

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

— плавная у;

— мягкая ц' и твёрдая ч;

— мягкая аффриката дз' и твёрдая дж;

— мягкая и твёрдая щелевая гх', гх.

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

2. Букво-фонемные соответствия в русском и белорусском языках

В русском языке в два раза больше гласных букв, чем гласных фонем, и в два раза меньше согласных букв, чем согласных фонем. Для целого ряда согласных фонем в русском языке нет специальных букв, и фонема определяется несколькими буквами или положением определённой буквы в слове. Например, мягкая согласная фонема может записываться соответствующей буквой и буквой «Ь», стоящей за согласной. Мягкость согласной при написании может выражаться также стоящими за согласной гласными буквами «И», «Е», «Ё», «Ю», «Я». С последним способом выражения мягкости согласного связан тот факт русской орфографии, что фонемы гласных, кроме «ы» и «и», имеют по два буквенных эквивалента: «У» и «Ю», «О» и «Ё», «А» и «Я», «Э» и «Е». Фонема «й» имеет также несколько способов орфографической записи: с помощью специальной буквы «Й», с помощью букв «Е», «Ё», «Ю», «Я», стоящих в начале слова, после гласного или «Ъ», а также с помощью букв «О» и «И», стоящих после «Ь» (булЬОн — бул'йон). Для фонемы «ш_» имеется специальная буква «Щ», но та же фонема может обозначаться также сочетанием «СЧ».

В русской орфографии имеются непроизносимые буквы «Ь» и «Ъ», выполняющие своеобразные функции. Буква «Ь» указывает на мягкость предшествующей согласной. Кроме того, буква «Ь» является разделительным знаком: после согласных перед «Е», «Ё», «Ю», «Я». Она указывает на то, что эти буквы читаются, как в начале слова. Буква «Ъ» также несёт разделительную функцию.

В таблице 1 во втором столбце для каждой буквы приведены её возможные фонемные реализации в устной речи. Знаком {0} обозначена «условная фонема» (отсутствие, ноль звука), соответствующей данной букве, а знаком «запятая» {,} — логическое «или». В 3-м столбце показано количество различных фонем, в которые может перейти данная буква. В 4-м столбце приведены примеры слов на каждое возможное букво-фонемное преобразование. Обычным шрифтом представлены слова в орфографическом виде, а курсивом — в фонемном. Большими буквами в примерах выделены места замены буквы соответствующей фонемой.

97

Таблица 1

Русские буквы и их возможные реализации в устной речи

Буквы Фонемы Кол. Примеры букво-фонемного преобразования слов

А А 1 лАгерь лАГэр'

Б Б, П, Б', П' 4 Баня, зоБ, Белый, дроБь Бан'а, зоП, Б'элый, дроП'

В В, Ф, В', Ф' 5 Ваня, зоВ, Вера, кроВь, здраВствуй Вана, зоФ, В'ера, кроФ, Здрас/твуй

Г Г, К, Г', Х, В 5 Год, плуГ, Гена, лёГкий, еГо Гот, плуК, Гэна, ЛоХКий, йэВо

Д Д, Т, Д', Т', Ц 5 Дом, саД, День, тетраДь, двенаДЦать Дом, саТ, Дэн', ТэтраТ, дв'энаЦцаТ

Е ЙЭ, Э 2 Ель, шЕя ЙЭл', шЭйа

Ё ЙО, О 2 Елка, ткЕт ЙОлка, тКОт

Ж Ж, Ш, Ш' 3 Жук, ноЖ, муЖЧина Жук, ноШ, муШ'ина

З З, С, З', С', Ж, Ш, Ш' 7 Заяц, навоЗ, Зоя, вроЗь, иЗЖарить, ниЗШий, объеЗДЧик, извоЗЧик Зайац, навоС, Зойа, вроС, иЖжар'иТ, н'иШшый, абйэШ'ик, извоШ'ик

И И, Ы 2 Игорь, шИть Игар', шЫТ

Й Й 1 моИ мой

К К, Г, К' 3 Год, друГ, Кит Гот, друК, Кит

Л Л, Л', 0 3 саЛат, Лена, соЛнце саЛат, Лэна, со0нцэ

М М, М' 2 Маска, Мёд Маска, Мот

Н Н, Н' 2 Народ, Нина Нарот, Нина

О О, А 2 Осень, Охрана Ос'эн', Ахрана

П П, П' 2 Павел, Петя Пав'эл, П'эта

Р Р, Р' 2 Русский, Редкий Руский, Р'эткий

С С, С', З, З', Ш, Ж, Ш' 7 Саша, Сила, Сборник, Сделка, Сшитый, Сжатие, неСчастье, жёСтче Саша, Сила, Зборн'ик, З'д'элка, Шшытый, Жжатийэ, н'эШ'ас'тйэ, жоШ'э

Т Т, Т', Д, Д', 0 , ЦЦ, Ц, Ч' 8 Таня, Тема, оТбой, молоТьба, грусТный, боиТся, бояТься, болоТце, буфеТчик Тана, Тэма, аДбой, малаДба, грус0ный, баиЦЦа, байаЦЦа, балоЦцэ, буфэЧЧик

У У 1 бУлка бУлка

Ф Ф, Ф' 2 муФта, Федя муФта, ФэДа

Х Х, Х' 2 Хата, Хитрый Хата, Хитрый

Ц Ц 1 Цапля Цапл'а

Ч Ч', Ш 2 Часто, конеЧно, Чтобы Часта, кан'эШна, Штобы

Ш Ш 1 Шапка Шапка

98

Щ Ш' 1 Щука Ш'ука

Ъ 0 1 подЪезд под0йэст

Ы Ы 1 тЫква тЫква

Ь 0 1 баНька баН 0ка

Э Э 1 Эдик ЭДик

Ю ЙУ, У 2 Юра, тЮлька ЙУра, ТУл'ька

Я ЙА, А 2 Яша, мЯта ЙАша, МАта

Следует отметить, что приведённые в 4-м столбце таблицы 1 примеры преобразования «Буква-Фонема» не всегда отображают полный набор условий, при которых данная буква переходит в конкретную фонему. Например, в русском языке переход буквы «Т» в фонему «Т '» происходит не только тогда, когда за ней следует буква «Е», как показано на примере слова «Тема», но также перед буквами «Я, Ё, Ю, И, Ь» — «Тяпка, меТёлка, уТюг, ниТи, маТь», — и в некоторых других случаях. Таким образом, данная таблица иллюстрирует лишь потенциальные возможности букво-фонемного отображения в русском языке, оставляя открытым вопрос конкретизации полного набора правил преобразования «Буква-Фонема».

В белорусском языке, наряду с некоторыми специфическими различиями, сохраняются многие правила ПБФ, присущие русскому языку. Как и в русском языке, мягкая согласная фонема может записываться соответствующей буквой и непроизносимой буквой «Ь», стоящей за согласной. Мягкость согласной выражается также стоящими за согласной гласными буквами «I», «Е», «Ё», «Ю», «Я». Согласная фонема «й» имеет также несколько способов орфографической записи: с помощью специальной буквы «Й», с помощью букв «Е», «Ё», «Ю», «Я», стоящих в начале слова, после гласного или апострофа «'», выполняющего функцию буквы «Ъ» русского языка.

В табл. 2 для каждой буквы приведены её возможные фонемные реализации в устной речи, учитывающие особенности и нормы произношения в современном белорусском языке.

Таблица 2

Белорусские буквы и их фонемные реализации в устной речи

Буквы Фонемы Кол. Примеры букво-фонемного преобразования слов

А А 1 кАзка кАска

Б Б, П, Б' 3 Бацька, каБ, Белы Бац'ка, каП, Б'элы

В В, Ф, В' 3 Вокны, рэзерВ, Вядома Вокны, рэз'эрФ, В'адома

Г ГХ, Г, Х, ГХ', Г' 5 ГадзЫа, Газэта, плуГ, Гена, маПя ГХадзЧна, Газэта, плуХ, ГХ'эна, маПя

Д Д, Т, Ч 3 Дагавор, агляД, аДЧуванне Дагхавор, агхл'аТ, аЧчуваннэ

Дж ДЖ, Ч 2 ДЖын, катэДЖ ДЖын, катэЧ

Дз ДЗ', Ц', 2 ДЗедки, глаДЗь ДЗ'эткЧ, гхлаЦ'

Е ЙЭ, Э 2 Ехау, змЕст ЙЭхау, зм'Эст

Ё ЙО, О 2 Ёгурт, аблЁт йОгурт, абл'От

Ж Ж, Ш, С 3 Жах, г^Ж, гарыЖсю Жах, гам'Ш, гарыСскЧ

З З, З', С, С', Ш, Ж 6 Зося, Зiма, мароЗ, злаЗь, узлеЗшы, пакасЗчык, раЗЖалщь, Зос'я, ЗЧма, мароС, злаС', узл'эШшы, пакасШчык, раЖжал'iц',

I 1, Й1 2 бл1зка, 1ншы бл'1ска, Й1ншы

Й Й 1 мой мой

К К, ГХ, К' 3 Каця, анеКдот, аЮян Кац'а, анеГХдот, аК'iйан

Л Л, Л' 2 саЛат, Лена саЛат, Л'эна

М М, М 2 Маска, Мёд Маска, М'от

Н Н, Н 2 Народ, НЫа Нарот, НЧна

О О 1 вОсень вОс'эн'

п П, П 2 Павел, Пеця Пав'эл, П'эц'а

Р Р 1 Русю Руск'i

С С, С', З, З', Ш 5 Сама, Сярод, фаСген, грооСьба, Сшытак, раСчулiць Сама, С'арот, фаСг'эн, гроЗ'ба, Шшытак, раШчулщь

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Т Т, Д, Ч 3 хаТа, дзеТдом, лёТчык хаТа, дзеДдом, лёЧчык

У У 1 дУмка дУмка

У У 1 гайшоУ гайшоУ

Ф Ф, Ф 2 альФа, амФiбiя ал'Фа, амФ'iб'iйа

Х Х, Х' 2 Хата, Х^ры Хата, Х'iтры

Ц Ц, Ц', ДЗ' 3 Цар, дзеЦ малаЦьба Цар, дз'еЦ'i, малаДЗ'ба

Ч Ч, Ц, ДЖ 3 Часта, даЧцы, лiЧба Часта, даЦцы, л'ЩЖба

Ш Ш, Ж, С 3 наШы, каШгарскi, злуеШся наШы, каЖгхарскЧ, злуйэС'с'а

/'/ 1 Пад'езд гад йэст

Ы Ы 1 тЫгры тЫгхры

Ь 1 баНька баН' ка

Э Э 1 Эдик ЭдЧк

Ю ЙУ, У 2 Юра, цЮлька йУра, ЦУЛька

Я ЙА, А 2 Яша, мЯта ЙАша, М Ата

100

В соответствии с данными таблиц 1 и 2 на рисунках 1 и 2 представлены распределения количества фонемных замен для каждой буквы в русском и белорусском языках соответственно.

Рис. 1. Распределение количества возможных замен «Буква — Фонема» в русском языке

Рис. 2. Распределение количества возможных замен «Буква — Фонема» в белорусском языке

Как видно из рисунков 1, 2, одной букве русского алфавита могут соответствовать в речи от 1-й до 8-ми фонем (включая условную нулевую фонему), а для белорусского — от 1-й до 6-ти фонем. Наибольшее различие в распределениях наблюдается на начальных участках от 3-х и более возможных замен «Буква — Фонема».

3. Регулярные правила преобразования «Буква-Фонема»

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

Ф Ь1_1, Ь,,..., Ь1+т} = Р,.

Здесь:

Ь, — текущая 1-я буква текста.

{Ь1-п} и — п-левых и т-правых контекстов этой буквы.

Ф,_логическая функция.

Р, — фонема, в которую 1-я буква будет преобразована,

пи п задают необходимую глубину рассмотрения левого и правого буквенных контекстов для определения 1-й фонемы.

101

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

При чтении орфографического текста человек наряду со знанием регулярных правил преобразования «Буква — Фонема» использует также знания о целом ряде сложившихся частных правил (исключений). В большей степени это относится к языкам с давней историей развития (например, английский) и в меньшей степени к сравнительно молодым языкам (например, белорусский) или к искусственным языкам, где вообще реализуется однозначная связь «буква-фонема» (в эсперанто каждой букве соответствует только одна фонема).

В русском языке к частным правилам относятся, например, замена «ч» на «ш» в словах «что», «чтобы», устранение непроизносимых согласных в словах «солнце», «лестный» и др. В белорусском языке — взрывное «г» произносится только в словах, заимствованных из иностранных языков «агент, агрэсар, Бангалор», в то время как в других случаях произносится фрикативное «гх». Перечисленные примеры не покрывают, конечно, всего многообразия исключений из общих регулярных правил. Слова, не подчиняющиеся регулярным правилам преобразования, вместе с их особенной фонемной транскрипцией заносятся в список исключений.

В ходе применения процедуры ПБФ вначале проверяется каждое слово поступившей синтагмы на наличие его в списке исключений и, в случае нахождения, осуществляется его замена на соответствующую цепочку фонем. Если же слово в списке не найдено, к нему применяется регулярные правила ПБФ.

Приведём в качестве примера некоторые из регулярных правил ПБФ для русского языка. Эти правила учитывают категорию букв, основанную на классификации фонем по месту и способу образования (см. табл. 1).

При обработке гласных букв (А, О, У, Э, Ы, И, Я, Е, Ю, Е) используются следующие правила:

— Если ¡-я буква гласная, то проверяем, не является ли (/-1)-й знак пробелом,

Ъ, Ь или одной из гласных. Если «Да», то гласные Я, Е, Ю, Е преобразуются, соответственно, в фонемы и А, О'О, 1и, !Е/, а гласные А, О, У, Э, Ы, И — в фонемы /А, О, и, Е, Y, I/.

Примеры: пьяный, подъём, дают, ель, атом, аорта.

— Если (¡-1)-й символ является любой согласной буквой, то буквы А или Я пере-

ходят в фонему /А/, буквы О или Е — в /О/, буквы У или Ю — в /и/, буквы Э или Е — в /Е/, буква Ы — в №/ и буква И — в /I/ (кроме случаев, когда (/-1)-я согласная — буква Ц или Ш).

Примеры: пять, дать.

— Если (¡-1)-й символ — буква Ц или Ш, то буква И переходит в

102

Примеры: цифра, шило.

Гецевич Ю.С., Лобанов Б.М., Покладок Д.А. Алгоритмы преобразования «Буква - Фонема» двуязычного синтезатора речи

— Все безударные гласные фонемы сохраняются, кроме /О/, которая в отсутствие ударения переходит в фонему /А/.

Пример: молоко.

При обработке согласных, непарных по глухости — звонкости (Й, М, Н, Р, Л, Ц, Ч, Х, Щ) используются следующие правила ассимиляции звуков;

— Непарные согласные Й, Ц, Ч, Щ всегда переходят, соответственно, в фонемы /и, С, СН, Sh'/.

Примеры: майка, цель, часто, щука.

— Если (¡+1)-я буква — Ь, Я, Ё, Ю, Е или И, то буквы М, Н, Р, Л, Х переходят в фонемы /М, N, Я, и, Н/.

Примеры: мясо, небо, рюмка, люди, моль, хек.

— Если (¡+1)-я буква или знак не являются Ь, Я, Ё, Ю, Е или И, то буквы М, Н, Р, Л, Х переходят в фонемы /М, М, Я, и, Н/.

Примеры: мать, нос, рот, кол,, мох.

— Если ¡-я буква — Н, (¡+1)-я буква — Н, Д, Т, С, а (¡+2)-я буква — Ь, Я, Ё, Ю, Е или И, то Н переходит в фонему /N7.

Примеры: антихрист, бандюга.

— Если ¡-я буква и (¡+1)-я буква одинаковы, а (¡+2)-я буква — Ь, Я, Ё, Ю, Е или И, то обе буквы переходят в соответствующие мягкие согласные.

Примеры: интеллигент, комиссия.

При обработке согласных, парных по глухости — звонкости (Б,П), (Д,Т), (Г,К), (В,Ф), (З,С), (Ж,Ш) используются следующие правила ассимиляции звуков:

— Если ¡-я парная согласная буква стоит перед пробелом (_), или перед любым знаком препинания, или перед (/ +1)-й глухой согласной (П, Т, К, Ф, Ц, Ш, Ц, Ч, Х, Щ), то буквы Б, П переходят в фонему /Р/; Д,Т — в /Т/; В,Ф — в /Р/; З,С — в Ж, Ш — в /Sh/; Г,К — в /К/, (кроме случая, когда Г стоит перед К).

Примеры; резцы, покров.

— Если буква Г стоит перед К, то она переходит в фонему /Н/. Примеры; легко, лёгкий.

— Если (¡+1)-я буква — Б, Д, Г, З или Ж, то буквы П, Б переходят в фонему /В/; Д,Т — в /&/; В,Ф — в /V/; З,С, — в Ш; Ж,Ш — в Г,К — в /в/.

Примеры; отдых, с_горы.

— Если (¡+1)-я буква — Ъ, А, О, У, Э или Ы, то буквы П, Б, Д, Т, Г, К, В, Ф, З, С, Ж, Ш переходят, соответственно в фонемы /В, Р, D, Т, в, К, V, Р, S, Zh, Sh/.

Примеры: база, садик.

— Если (¡+1)-я буква — Я, Ё, Ю, Е или И, то буквы П, Б, Д, Т, Г, К, В, Ф, З, С, Ж, Ш переходят, соответственно в фонемы /В', Р, &, Т, в', К, V, Р, 7, ^, Zh, Sh/.

Примеры: день, пятый.

— Если (¡+1)-я буква — Ь и (¡+2)-я буква глухая согласная (П, Т, К, Ф, Ц, Ш, Ц, Ч, Х, Щ) или конец слова, то буквы Б,П переходят в фонему /Р/; Д,Т — в /77; Г,К — в /К/; В,Ф — в /Р/; З,С — в /&/; Ж,Ш — в .

Примеры: кровь, медь. 103

Гецевич Ю.С., Лобанов Б.М., Покладок Д.А. Алгоритмы преобразования «Буква - Фонема» двуязычного синтезатора речи

— Если 0+1)-я буква — Ь и 0+2)-я буква Б, Д, Г, З или Ж, то буквы П, Б переходят в фонему /Б'/; Д,Т — в /Ю/; Г,К — в /G'/; В,Ф — в /V/; З,С — в /Z/; Ж,Ш — в /Zh/.

Пример: косьба.

— Если 0+1)-й символ — буква Ь и р+2)-й символ — одна из букв Й, М, Н, Р, или Л, то буквы П, Б, Д, Т, Г, К, В, Ф, З, С, Ж, Ш переходят, соответственно в фонемы /Р, Б', D, T, G, K, V, F, Z, S', Zh, Sh/.

Примеры: Кузьма, письмо.

— Если i-я буква — С, 0+1)-я буква — Н, Т или С, а 0+2)-я буква — Ь, Я, Ё, Ю, Е или И, то С переходит в фонему /S'/.

Примеры: кость, усни, пустяк, массив.

— Если i-я буква и 0+1)-я буква одинаковы, а 0+2)-я буква — Ь, Я, Ё, Ю, Е или И, то обе буквы переходят в соответствующие мягкие согласные.

Примеры: оттяжка, ассистент.

4. Алгоритм ПБФ двуязычного синтезатора речи

Наиболее распространённый подход к обработке символьной последовательности состоит в её анализе «слева-направо», а для каждого символа входной последовательности графем применяется одно или несколько правил для генерации фонемы. При этом используется контекст символов, чтобы можно было сгенерировать, например, фонему / Y /, только когда перед буквой и стоят буквы ж или ш. В общем случае эти правила имеют вид:

A / B / D / C.

Правила описывают, как «преобразовать (перезаписать) D в A, когда предшествующий символ B, а последующий символ C. Они отражают устоявшиеся правила произношения в языке и часто могут пересекаться. Например, ть должно быть преобразовано в / T /, в то время как ться — / CCA /. Соответственно, второе правило должно выполняться раньше первого. Такое ранжирование правил возлагается на эксперта-лингвиста.

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

Последовательность применения правил ПБФ можно разделить на 4 этапа:

104 1) проверка буквы на соответствие правилам, учитывающим канонические изменения, а также эффекты ассимиляции согласных фонем по глухости/ звонкости и твёрдости/мягкости, и замена в случае совпадения на соответствующую фонему или группу фонем;

2) замена буквы на фонему по «стандартным» правилам;

3) проверка мягкости предыдущей фонемы (необходимое, но недостаточное условие для мягкости);

4) проверка фонемы на соответствие правилам смягчения и добавление мягкости к данной

фонеме в случае совпадения.

Использование такого подхода позволяет достичь минимальной вычислительной сложности преобразования при малом количестве входных данных. Необходимо отметить также, что данная архитектура позволяет единообразно использовать правила для обоих языков. Правила преобразования «Буква-Фонема» имеют следующий вид (табл. 3):

Таблица 3

Общие правила преобразования «Буква-Фонема» русского и белорусского языков

Русский язык | Белорусский язык

#Общие правила «Буква-Фонема»

А-А А-А

Б-B Б-B

В-V В-V

Ь-0 Э-E

Э-E Ю-U

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Ю-U Я-А

Я-А '-0

#Исключения из общих правил

(0)[+=]-0 [ГКХ][_/](1)[_/]-1

[ЖШЦ](И)^ [АЕЁЮУЫЭЮЯ][_/К1)[_/Ы'

(Л)[Н][Ц]-0 [Г](Д)[Т]-0

#Смягчающие фонемы

Е Е

Ь Ь

#Общие правила смягчения

([ХМНЛРБПВФДТЗСГК])[ЕЁЮЯИЬ] ([ХМНЛБПВФЗСГКЦ])[ЕЁЮЯ1Ь]

([ГК])[ГКХ] (С)[П]

Алгоритм ПБФ заменяет все буквы на их фонетические аналоги и состоит из 3-х этапов: подготовка данных, фонемное преобразование, обработка смягчения фонемы.

Входные данные алгоритма

Текст с проставленными позициями ударений и интонационными отметками — S.

Ресурсы алгоритма:

1) Множество гласных фонем:

Vow={Vow1,...,VowNVow}, где NVow — количество гласных фонем.

2) Множество согласных фонем:

СопЦСоп^.^Соп^}, где NCon — количество согласных фонем.

3) Множество разделителей: D={D1,...,DND}, где ND — количество разделителей.

105

106

4) Множество обозначений ударений:

Sstr={Sstr1.....SstrNSstr}, где NSstr — количество обозначений ударений; служебный

символ смягчения Soft=/'/.

5) Правила «буква-фонема»:

HV={<H1,V1>,...,<HNHV,VNHV>}, где NHV — количество символов языка НЦН^... ,Н^} и соответствующих фонем в языке V={V1,...,VNHV}.

6) Исключения из правил «буква-фонема»:

RF={<R1,F1>,...,<RNRF,FNRF>}, где NRF — количество пар правил исключений в виде регулярных выражений R={R1,...,RNRF} и соответствующим им фонемам F={F1,...,FNRF^

7) список смягчающих фонем:

МЦМ^.^М,«}, где NM — количество смягчающих фонем;

8) Правила смягчения в виде регулярных выражений:

ЕЦЕ^...^^}, где NE — количество правил смягчения соседней фонемы.

Выходные данные: ^ ^ ^

1) Последовательность фонетических синтагм БрН = БрН,,.Бу1 = Nsyli г = 1.....NSph. ,=:

2) Последовательность количества слогов в каждой фонетической синтагме .

Regex(t, г) — функция, осуществляющая поиск регулярного выражения г в текстовой строке I

Алгоритм:

Шаг 1. Полагаем, что S=UN=1 S , , где NS — количество синтагм входного текста.

Шаг 2. Для каждой синтагмы Si, ¡=1,...^ выполняем шаги 3-12. Дальше шаг 13.

Шаг 3. Принимаем индикатор мягкости равным нулю, т.е. Flag:=0.

Шаг 4. Для каждой последовательности символов ХЬ2, Х,.1, X,, Х,+1, Х,+2, j=NX,.,1 с синтагмы S¡ ( Si = и,1=Х1 X , NX — количество символов в синтагме) выполняем шаги 5-11. Причём должна выполняться система условий:

Если символы в данной синтагме S¡ закончились, переходим к шагу 2.

Шаг 5. Для каждого регулярного выражения Rk, k={1,...,NRF} вычислить Regex(Х}._2 и X_1 и X1 и X/+1 и X1+2,Як) . Если для некоторого к

условие Regex( X ^ _ 2___} _1___}

ся, то принимаем тЕмР^к и дальше шаг 7.

j_2 u Xj_ u Х}. u X;+1 u Xj+2,Rk) Ф 0 выполняет-

Шаг 6. Для каждого Нт, m=1,...,NHV проверяем, совпал ли символ языка Нт с текущим символом X,. Если для некоторого т условие Нт=Х, выполнилось, то находим соответствующую ей фонему из пары <НтУт> и принимаем ТЕМР:=^.

Шаг 7. Если проверяемая фонема равна пустому множеству TEMP=NULL, то перейти к шагу 4.

Шаг 8. Если символ Xj+1 смягчающий, т.е. х е M или Flag:=1, то перейти к шагу 9. Иначе переходим к шагу 11.

Шаг 9. Для каждого правила смягчения En, n=1.....NE вычисляем Regex(X;. u Xj41,En) .

Если для некоторого n условие Regex(X;. u Xj+1зEn) ^ 0 выполняется, то добавить символ смягчения к фонеме TEMP, т.е. полагаем TEMP := TEMP u Soft, также изменяем индикатор мягкости Flag:=1 и переходим к шагу 11.

Шаг 10. Принимаем Flag=0.

Шаг 11. Добавление TEMP к итоговой последовательности фонем синтагмы Sph, найденной фонемы TEMP, а именно Sphi: = TEMP u Sphi. Если TEMP eVow, то Nsyli:=Nsyli+1, где Nsyl — количество слогов в синтагме Sphi.

Шаг 12. Добавление фонетической синтагмы Sphi к выходному фонетическому тексту Sph, т.е. Sph: = Sph u Sphi. Сохранение количества слогов в синтагме Sphi в последовательности Nsyl, т.е. Nsyl: = Nsyl u Nsyli, что обозначает количество слогов в каждой ранее обработанной синтагме.

Шаг 13. Конец алгоритма.

Заключение

Сходство русского и белорусских языков позволило создать универсальный двуязычный алгоритм, в котором фонетические правила преобразования «Буква-Фонема» вынесены в отдельные ресурсы. Благодаря этому реализуется возможность достаточно простого изменения (уточнения) этих правил экспертами-лингвистами.

Для тестирования алгоритма «Буква-Фонема» были собраны корпуса для русского и белорусского языков из электронных словарей, в котором собраны слова со всеми возможными в данных языках 5-и символьными комбинациями. Для русского языка корпус составил 101 958 слов, для белорусского — 102 169 слов. Результаты тестирования для двух языков приведены в таблице 4.

Таблица 4

Результаты тестирования алгоритма

Русский язык Белорусский язык

Количество слов 101 958 102 169

Количество правильных слов 83 990 82 010

Процентное отношение корректно преобразованных слов 82.377% 80.269%

Количество фонем 897635 934583

Количество правильных фонем 888950 918440

Процентное отношение корректно преобразованных фонем 99.032% 98.273%

107

Алгоритм на основе регулярных правил, реализованный в синтезаторе речи «МультиФон» и его мобильной реализации [6], позволил достичь достаточно высокой точности ПБФ (99% правильно преобразованных фонем для русского и 98% для белорусского языка).

Литература

1. Златоустова Л.В. и др. Алгоритм преобразования русских орфографических текстов в фонемную запись. М.: МГУ, 1970.

2. Лобанов Б.М., Панченко Б.В. Преобразователь графема-фонема для синтеза речи по орфографическому тексту // Тр. Междунар. конф. «Автоматическое распознавание слуховых образов АРСО-8». Ч. 4. Львов, 1974. С. 15-18.

3. Зиновьева Н.В., Кривнова О.Ф. Прикладные системы с использованием фонетических знаний. Проблемы фонетики: сб. статей. М.: Прометей, 1993. С. 288-300.

4. Лобанов Б.М., Цирульник Л.И. Внутрисловные и межсловные правила обработки текста для полного и разговорного стилей речи // Функциональные стили звучащей речи: сб. науч. тр. М.: Макс-Пресс, 2006. С. 21-30.

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

6. Цирульник Л.И., Покладок Д.А. Система синтеза речи по тексту для мобильных телефонов // Речеввые технологии. 2010. № 1. С. 83-91.

Сведения об авторах:

Гецевич Юрий Станиславович,

кандидат технических наук, кандидат технических наук, заведующий Лаборатории распознавания и синтеза речи Объединённого института проблем информатики НАН Беларуси. Область научных интересов: речевые технологии, компьютерная лингвистика, естественно-языковые интерфейсы, робототехника. E-mail: yury.hetsevich@gmail.com

Лобанов Борис Мефодьевич,

доктор технических наук, профессор, главный научный сотрудник Лаборатории распознавания и синтеза речи ОИПИ НАН Беларуси, профессор Университета в Белостоке (Польша), основатель и лидер научной школы по проблеме распознавания и синтеза речи. Область научных интересов: теория и методы синтеза, распознавания и понимания устной речи, речевые технологии, компьютерная лингвистика. E-mail: Lobanov@newman.bas-net.by

Покладок Дмитрий Александрович,

окончил факультет компьютерного проектирования Белорусского государственного университета информатики и радиоэлектроники, магистр физико-математических наук. Младший научный сотрудник лаборатории распознавания и синтеза речи Объединённого института проблем информатики НАН Беларуси. Область научных интересов: системы синтеза речи по тексту для мобильных устройств. E-mail:dima.pokladok@gmail.com

108

i Надоели баннеры? Вы всегда можете отключить рекламу.