Расстановка ударений в словах для озвучивания текста
Программа позволяет расставить ударения в тексте, состоящем из русских слов. Она будет полезна дикторам радио и телевидения, людям, изучающим русский язык, а также для генерации речи с помощью синтезаторов (аудио-книг, говорилок, читалок), например, для программы Балаболка.
В программе предпочтение отдается произношению, часто в ущерб нормам литературного русского языка. Помимо ударений указывается и произношение, например, вместо параш`Ют будет вставлено слово параш`Ут (это не по нормам русского языка, но именно так мы и говорим). Если в слове возможны варианты расстановки ударения (без искажения смысла), то выбирается один вариант. Программа дополнительно отображает количественные и порядковые числительные прописью. Прописью также выводятся римские числа и даты.
Следует учитывать, что программа выполняет расстановку ударений в словах русского языка, а также в фамилиях, именах, географических названиях и др. При этом, слова, набранные только заглавными буквами (исключениями являются аббревиатуры и слова, существующие в словарях) не обрабатываются. Пользователь может задать свой вариант расстановки ударений для любого слова, состоящего из русских или английских букв, с помощью пользовательского словаря.
Системные требования
Для корректной работы программы Program35 версии 1.1.0 нужно соблюсти следующие условия:
- операционная система Windows 8, 8.1, 10 или 11. Разрядность x64;
- процессор чем мощнее, тем лучше;
- разрешение экрана 1920х1080, размер текста Мелкий — 100%;
- минимум 1 ГБайт свободного места в оперативной памяти. Возможна ситуация с нехваткой оперативной памяти при большом размере текста и словников;
- минимум 500 МБайт свободного места на жестком диске;
- наличие интерпретатора Python 3 (3.8+).
Установка и запуск программы Program35
Для обеспечения работоспособности программы Program35 необходимо выполнить следующие шаги (для операционной системы Windows):
- Установить на компьютер Python 3 (3.8+) (если программа установлена, то шаг можно пропустить).
- Скачать архив с программой Program35 и распаковать его в какую-либо папку. В составе пути к папке не должно быть русских букв и пробелов.
Запуск программы производится с помощью двойного щелчка на значке файла Program35.pyw. Для удобства запуска программы можно разместить ярлык на Рабочем столе. Для этого следует щелкнуть правой клавишей мыши на значке файла и из контекстного меню выбрать пункт Отправить | Рабочий стол (создать ярлык).
Версии программы
Program35 Normal содержит весь функционал, базовые и расширенные словари. Пользователь может самостоятельно добавлять слова и фразы в пользовательские словари по мере необходимости.
Статистика по словарям:
- базовый словарь: около 479 тыс.
- расширенный словарь: около 2 млн 415 тыс.
Всего около 2 миллионов 800 тысяч словоформ.
Типы словарей
Словари в программе Program35 делятся на три основных типа:
- пользовательские словари;
- базовые словари;
- расширенные словари.
Пользовательские словари
Пользовательские словари доступны во всех версиях программы. Они расположены внутри каталога user:
- user_dict_ok.txt — в этот словарь пользователь может самостоятельно добавить слова с ударениями. Регистр символов в словах имеет значение. Слова должны располагаться на отдельных строках. Каждая строка внутри файла должна соответствовать формату:
<Слово без ударения> | <Слово с ударением и произношением>
Если строка не содержит два элемента через символ | (справа и слева от символа могут быть пробелы), то она будет "молча" проигнорирована. Пользователь может в первой части указать одно слово, а во второй — другое слово с ударением и произношением. Например, в первой части можно указать слово на английском языке, а во второй — слово на русском языке.
Элемент <Слово без ударения> должен соответствовать регулярному выражению ^[а-яёА-ЯЁa-zA-Z0-9\- ]+$. Допускаются только русские или английские буквы, числа и дефис. Регистр символов в словах имеет значение. Пробелы использовать можно. Если слово не соответствует регулярному выражению, то строка будет "молча" проигнорирована.
Элемент <Слово с ударением и произношением> должен соответствовать регулярному выражению ^[а-яёА-ЯЁa-zA-Z0-9\- `]+$. Допускаются только русские или английские буквы, числа, дефис и символ ` (обратная кавычка), который должен быть расположен перед ударной гласной буквой. Регистр символов в словах имеет значение. Пробелы использовать можно. Если слово не соответствует регулярному выражению или символ ` (обратная кавычка) расположен не перед гласной буквой, то строка будет "молча" проигнорирована. Пример строки:
Для решения проблемы омографов в пользовательский словарь можно добавлять целые фразы, однозначно определяющие местоположение ударения в омографе. В составе фразы нельзя использовать знаки препинания. Количество элементов в составе фразы не должно превышать шести слов. Пример фразы:
держать рот на замке | держ`ать р`от на замк`е
- user_dict_abbr.txt — в этот словарь пользователь может самостоятельно добавить слова, которые являются сокращениями. Регистр символов в словах имеет значение. Пробелы не допускаются. Слова должны располагаться на отдельных строках. Каждая строка должна соответствовать регулярному выражению
^[а-яёА-ЯЁa-zA-Z\-]+\.$. Допускаются только русские и английские буквы, а также дефис. В конце слова обязательно должна быть точка. Если строка не соответствует регулярному выражению, то она будет "молча" проигнорирована.
Кодировка всех файлов UTF-8 без BOM (метки порядка байтов). Отредактировать файл позволяют любой текстовый редактор, но лучше использовать бесплатные текстовые редакторы Notepad++ и Visual Studio Code (VS Code).
Пользовательские словари имеют приоритет над другими словарями. Исключением являются фразы, которые проверяются перед словами.
Изменения, внесенные в пользовательские словари, вступят в силу только после перезапуска программы!
Базовые словари
Базовые словари доступны только в версиях Base и Normal. Это основные словари, которых в большинстве случаев достаточно. Словари содержат не только слова, но и отдельные фразы.
Базовые и пользовательские словари целиком загружаются в память компьютера.
Расширенные словари
Расширенные словари доступны только в версии Program35 Normal. Расширенные словари содержат слова, которые не вошли в базовые словари. Отделение редко используемых слов позволяет ускорить время работы и более экономично использовать ресурсы компьютера, ведь требуемый объем памяти велик.
Расстановка ударений и произношения в словах
Чтобы расставить ударения в русских словах, нужно выполнить следующие шаги:
- Вставить текст в поле Текст. Для вставки текста из буфера обмена в контекстном меню следует выбрать пункт Вставить.
- По умолчанию символ ударения (обратная кавычка) вставляется перед ударной гласной буквой. С помощью переключателей имеется возможность выбрать другой способ пометки ударной буквы. Перед ударной буквой можно отобразить букву
Q (можно использовать совместно с синтезатором речи RHVoice), символы + или ^, а после — апостроф или открывающую угловую скобку (<). Если переключатель установлен в положение у, то буквы выводятся с ударениями сверху. При этом ударение для буквы ё не отображается. Следует учитывать, что файл в формате HTML, создаваемый рядом с исполняемым файлом, всегда содержит слова с ударениями сверху.
- Нажать кнопку Расставить. Если текстовое поле не заполнено, то отобразится сообщение об этом. После окончания выполнения программы текст с ударениями отобразится в текстовом поле Результат. Выполнение операции производится в оперативной памяти, поэтому перед запуском программы убедитесь в наличии свободного места, иначе программа аварийно завершится.
В результате выполнения программы возможны следующие ситуации:
- в слове указано одно ударение — значит все хорошо и других вариантов нет;
- в слове два ударения — в этом случае возможны два варианта. Если слово составное, то нужно учитывать оба ударения. Если нет, то возможны два варианта расстановки ударений, при этом смысл слова не меняется. Например,
к`ет`а означает, что возможны варианты к`ета или кет`а (смысл слов одинаковый). Пользователь может задать предпочтительный вариант с помощью пользовательского словаря. Вообще в программе Program35 стараюсь выбрать один вариант, наилучший с моей точки зрения;
- указано несколько слов с ударением через символ
| — значит нужно вручную выбрать один из вариантов. При этом смысл слова важно учитывать. К сожалению, эта версия программы не позволяет выбрать один из вариантов по смыслу или части речи. Нужна помощь пользователя. В HTML-отчете этот вариант выделяется желтым цветом фона. Например, т`уша|туш`а означает, что возможны варианты т`уша или туш`а (смысл слов разный). Пользователь может задать предпочтительный вариант с помощью пользовательского словаря;
- в слове нет ударения — в этом случае возможны варианты. Если слово содержит только одну гласную букву, то, скорее всего, она и есть ударная. Однако, такое слово в составе фразы может не иметь ударения вообще. Если слово содержит букву
ё, то она и есть ударная. Наконец, слово не найдено в словарях. В этом случае в HTML-отчете слово выделяется красным цветом шрифта. Следует учитывать, что программа выполняет расстановку ударений только в словах русского языка, а также в географических названиях, именах и фамилиях. При этом, слова, набранные только заглавными буквами (исключениями являются аббревиатуры), не обрабатываются (если их нет в словарях). Пользователь может задать свой вариант расстановки ударений для любого слова, состоящего из русских букв, с помощью пользовательского словаря.
Отчет в формате HTML
Дополнительно рядом с исполняемым файлом создается файл в формате HTML с названием report.html. Открыть этот файл позволяет любой браузер. Чтобы открыть файл в браузере, используемом по умолчанию, достаточно сделать двойной щелчок мышью на значке файла. Можно также перетащить значок файла в окно браузера или в меню Файл выбрать пункт Открыть файл и найти файл в диалоговом окне.
Файл в формате HTML всегда содержит слова с ударениями над буквами. Кроме того, внутри файла производится выделение фрагментов текста различными способами:
- ударная буква выделяется голубым цветом фона;
- слово, не найденное в словарях, выделяется красным цветом шрифта;
- фрагмент с предупреждением выделяется желтым цветом фона.
Таким образом можно визуально увидеть места с ошибками. Форматирование фрагментов можно изменить в файле user/report.css.
Если навести указатель мыши на выделенный фрагмент, то браузер отобразит всплывающую подсказку с текстом комментария.
После исправления ошибок в текстовом поле программы Program35 и повторного запуска достаточно обновить файл с отчетом в окне браузера. Для этого на панели инструментов браузера следует нажать кнопку Обновить текущую страницу.
Количественные и порядковые числительные прописью
Программа Program35 позволяет представить целое число в виде суммы прописью в различных падежах, родах и числах. Она позволяет работать с:
- целыми количественными числительными (один, два и т. д.) от
0 до 10 в 30 степени минус 1 (30 цифр). Если в составе числа больше 11 цифр, то число читается по две или три цифры. Чтобы обрабатывались все 30 цифр нужно добавить наращение -ть;
- целыми порядковыми числительными (обозначают порядок по счету и отвечают на вопрос какой? который? (по счету): первый, второй и т. д.), от
0 до 10 в 15 степени минус 1 (15 цифр).
Если число выходит за указанные диапазоны значений или оно не является целым числом без знака, то оно выводится без обработки. С вещественными и дробными числами, а также с собирательными числительными программа не работает.
Программа Program36 позволяет представить целое число в виде суммы прописью во всех падежах, родах и числах, но, в отличие от Program35, с соблюдением правил русского языка. При необходимости можно отобразить ударения в словах.
Наращение окончаний к числительным в цифровой форме
Одинокие числа отображаются прописью в именительном падеже единственном числе и мужском роде. Изменить это поведение можно с помощью наращения, указываемого после числа:
18-ая => восемнадцатая
18-я => восемнадцатая
18-ого => восемнадцатого
18-го => восемнадцатого
18-ое => восемнадцатое
18-ой => восемнадцатой
18-ом => восемнадцатом
18-м => восемнадцатом
18-ому => восемнадцатому
18-му => восемнадцатому
18-ую => восемнадцатую
18-ю => восемнадцатую
18-ые => восемнадцатые
18-е => восемнадцатые
18-ый => восемнадцатый
18-й => восемнадцатый
18-ым => восемнадцатым
18-ыми => восемнадцатыми
18-ми => восемнадцатыми
18-ых => восемнадцатых
18-х => восемнадцатых
В этих примерах наращение в итоге удаляется. Если же после числа указаны наращения -летний или -летие, то они останутся в составе числа прописью:
90-летний => девяносто летний
150-летие => сто пятидесяти летие
В этих результатах есть орфографические ошибки. Ведь слова пишутся слитно — девяностолетний и стопятидесятилетие. Но, как уже говорилось, в программе предпочтение отдается произношению, часто в ущерб нормам литературного русского языка.
Если нужно сохранить склонение числа, но убрать наращение, то достаточно указать наращение -ти:
150-ти => сто пятидесяти
1-ти => одно
80-ти => восьмидесяти
90-ти => девяносто
Если в составе числа больше 11 цифр, то число читается по две или три цифры с добавлением запятой (для паузы):
123456789123 =>
Двен`адцать, тр`идцать чет`ыре, пятьдес`ят ш`есть,
с`емьдесят в`осемь, девян`осто од`ин, дв`адцать тр`и
Чтобы обрабатывались все 30 цифр нужно добавить наращение -ть:
123456789123-ть =>
Ст`о дв`адцать тр`и милли`арда чет`ыреста
пятьдес`ят ш`есть милли`онов семьс`от в`осемьдесят
д`евять т`ысяч ст`о дв`адцать тр`и
Чтобы число, состоящее из менее 12 цифр, читалось по две или три цифры с добавлением запятой (для паузы), нужно добавить наращение -сп:
52345 =>
Пятьдес`ят дв`е т`ысячи тр`иста с`орок п`ять
52345-сп =>
Пятьдес`ят дв`а, тр`иста с`орок п`ять
Если число содержит несколько нулей подряд, то они суммируются:
120000000045 =>
Двен`адцать, в`осемь нул`ей, с`орок п`ять
Склонение числительного по контексту
В ряде случаев, при отсутствии наращения, производится попытка определить склонение числительного по словам слева и справа:
в 15 томах => в пятнадцати томах
в 15 => в пятнадцатом
18 год => восемнадцатый год
о 18 годе => о восемнадцатом годе
18 года => восемнадцатого года
18 г => восемнадцатого года
18 годом => восемнадцатым годом
18 годов => восемнадцатых годов
18 годах => восемнадцатых годах
о 10 числе => о десятом числе
в 10 числе => в десятом числе
10 числа => десятого числа
10 число => десятое число
к 10 числу => к десятому числу
10 числом => десятым числом
Если склонение выполняется неправильно, то следует явным образом добавить наращение.
Римские числа прописью (словами)
Программа преобразует также римские числа от 1 до 22 в текст:
XXI век => двадцать первый век
XIV съезда => четырнадцатого съезда
Петра I => Петра первого
II тысячелетия => второго тысячелетия
Екатерины I => Екатерины первой
XXII Олимпиада => двадцать вторая Олимпиада
Дата прописью (словами)
Программа позволяет представить число месяца прописью (словами):
18 января => восемнадцатое января
18 янв => восемнадцатое января
18 jan => восемнадцатое января
Такой результат будет только, если дата находится в начале строки. Если дата расположена в середине строки, то результат будет таким:
встреча 18 января => восемнадцатого января
встреча 18 янв => восемнадцатого января
встреча 18 jan => восемнадцатого января
С помощью наращения можно изменить падеж числа:
18-ое января => восемнадцатое января
18-го января => восемнадцатого января
Склонение года зависит от падежа слова год:
1986 год => тысяча девятьсот восемьдесят шестой год
2000 год => двух тысячный год
2024 года => две тысячи двадцать четвёртого года
Обработка даты производится в следующих форматах:
ДД.ММ.ГГГГ (пример: 01.02.2024)
ДД.ММ.ГГ (пример: 01.02.24)
день месяц год (пример: 1 октября 2024, 21 окт 2024)
Пример:
10.07.1986 => десятое июля тысяча девятьсот восемьдесят шестого года
01.02.24 => первое февраля две тысячи двадцать четвёртого года
1 фев 2024 => первое февраля две тысячи двадцать четвёртый
Программа Program37 позволяет представить дату словами (прописью) в именительном или родительном падежах, но, в отличие от Program35, с соблюдением правил русского языка. При необходимости можно отобразить ударения в словах.
Способ решения проблемы омографов
Омографы — это слова, которые совпадают в написании, но различаются в произношении из-за ударений. К омографам я отношу слова, имеющие разное значение, отличия в падеже, роде, числе или части речи.
Можно выделить несколько типов омографов. В первый тип входят слова, которые не отличаются в характеристиках (части речи, числу, падежу). Слова различаются лишь по смыслу. Примеры слов:
з`амок / зам`ок
напис`ать / нап`исать
передохн`уть / перед`охнуть
Ко второму типу можно отнести слова, отличающиеся частью речи:
т`уша животного / туш`а пожар
вкусное жарк`ое / ж`аркое лето
Третий тип включает слова одной части речи, различающиеся по числу и падежу:
в начале сл`ова / сказать слов`а
сезон г`ода / прошли год`а
К четвертому типу можно отнести глаголы повелительного и изъявительного наклонений:
см`отрите / смотр`ите
вх`одите / вход`ите
Пятый тип включает слова с разным регистром букв:
т`олстой женщины / Толст`ой (писатель)
К шестому типу можно отнести слова, отличающиеся произношением:
П`итер (Петербург) / П`итэр (имя)
Учитывая, что в русской литературе принято опускать букву ё, то можно отдельно выделить фальшивые омографы:
колес`а / кол`ёса
вс`е / вс`ё
Важно учитывать, что программа не обладает искусственным интеллектом, она просто подставляет готовые значения из словаря. Поэтому в некоторых случаях пользователю нужно будет выбрать один из вариантов расстановки ударений по смыслу или части речи. Например, программа не сможет выбрать между словами з`амок (укрепленное жилище феодала) и зам`ок (устройство для запирания чего-либо ключом). Поэтому выводится результат в виде варианта (в HTML-отчете он будет выделен желтым цветом фона):
Тем не менее, в программе существует способ решения проблемы омографов. Способ заключается в обработке фраз длиной до шести слов. Достаточно добавить фразу, однозначно задающую ударение в омографе, в пользовательский словарь. Пример:
держать рот на замке | держ`ать р`от на замк`е
Без добавления фразы в пользовательский словарь результат был бы такой:
держ`ать р`от на з`амке|замк`е
Несколько фраз уже добавлены в базовый словарь. Тем не менее, это лишь капля в море. Вся работа еще впереди.
Скачать документацию к программе
Как заказать программу?
Программа Program35 Normal v1.1.0 доступна для скачивания лицам, оплатившим лицензию в размере 10 000 рублей. Прежде чем оплачивать лицензию, ознакомьтесь с документацией и лицензией.
При обновлении программы действует скидка 90%. Скидка действует только при наличии чека.
Обратите внимание, после оплаты вы получаете лицензию на использование программы, а не эксклюзивные права на нее. Иными словами, программа вам не будет продана, вам будут проданы неэксклюзивные права (лицензия) на использование программы!
Указанная выше лицензия действует только на одно рабочее место. Если вы хотите использовать программу в составе вашей программы (ее можно использовать без графического интерфейса как библиотеку, вызывая класс UAccentsPlus напрямую), то условия оговариваются отдельно.
Заказать программу