© 1990, 1991 Speech Research Laboratory, Minsk
© 2005 Igor Poretsky poretsky@mlbox.ru
© 2021 Boris Lobanov lobbormef@gmail.com
Адаптация для SAPI5 и расширение RU_TTS_EX © 2021 Sergey Parshakov (Electrik) support@electrik-spb.ru
Огромная благодарность Тифлокомп За опубликованную информацию о синтезаторе речи RU_TTS, которая включена в данный документ.
Фонемафон - один из старейших синтезаторов речи, известный старожилам еще со времен MS Dos. Легкий, быстрый, занимающий мало памяти. Именно с ним чаще всего ассоциируется компьютерная эра девяностых.
История синтезаторов речи серии “Фонемафон” отсчитывается с начала семидесятых годов и на протяжении всего этого времени связана с именем Бориса Лобанова, руководившего данными разработками. Однако ещё в 1959 году, проходя срочную службу в рядах Советской армии в должности старшего радиомастера, Борис Лобанов, имея достаточную специальную подготовку и хорошо оборудованную приборами радиомастерскую, задался вопросом: “А как же устроена естественная речевая связь между людьми?” Параллельно с изучением звуков речи с помощью микрофона и осциллографа он проводил свои увольнительные в Петрозаводской библиотеке, вступил в переписку с известным учёным, профессором Людмилой Чистович, и получил от неё ряд ценных советов по проведению исследований речи. Сохранилась документальная запись в дневнике Лобанова, датированная 25 октября 1959 года: “Фонемофон ведет к фонемографу”.
После окончания службы в армии в 1961 году Борис Лобанов поступил в институт и продолжил заниматься научными исследованиями в области анализа речевых сигналов для систем распознавания и синтеза речи. В 1966 году им была организована хозрасчётная научная лаборатория анализа и синтеза речевых сигналов при кафедре радиоприёмных устройств Минского радиотехнического института.
После защиты диссертации в 1968 году Борис Лобанов был направлен на научную стажировку в Великобританию в 1969-1970 годах, где под руководством профессора Эдинбургского университета Р. Лоренца им были проведены успешные эксперименты по синтезу звуков русской речи, позволившие заложить основы формантного синтеза речи по фонемному тексту. В результате уже в 1971 году под руководством Бориса Лобанова было создано автономное устройство с ручным вводом текста, базировавшееся на фонемно-формантном методе синтеза речи и считающееся первым поколением - “Фонемафон-1”. Устройство являлось одним из первых синтезаторов русской речи, и оно было отмечено двумя медалями ВДНХ СССР.
Усовершенствованная версия данного устройства, ставшая вторым поколением синтезатора, - “Фонемафон-2”, в которой были оптимизированы характеристики формантных фильтров, а ввод текста осуществлялся с перфоленты, появилась в 1975 году.
В 1979 году на международной выставке Telecom-79 в Женеве было продемонстрировано третье поколение устройства - “Фонемафон-3”, где использовался уже фонемно-артикуляторно-формантный метод синтеза речи. Ввод текста в него был возможен как с ЭВМ, так и вручную с клавиатуры. Устройство также могло подключаться к телефонной линии. К этому моменту синтезатор демонстрировал способность разговаривать не только на русском, но также на английском, французском и немецком языках, хотя и с сильным русским акцентом, так как синтез речи происходил на основе русских фонем.
В восьмидесятых годах началось активное внедрение подсистем синтеза речи серии “Фонемафон” в различные промышленные системы. В частности, в 1984 году появилось первое в СССР промышленное устройство распознавания и синтеза речи - “Марс-1”, выпускавшееся серийно ПО “Кварц” в Калининграде под руководством конструктора Валерия Афанасьева. На базе речевого терминала “Марс-1” была разработана система автоматического информирования абонентов междугородной телефонной сети (АИАМТС) о задолженности за переговоры. Система АИАМТС была успешно внедрена и длительное время эксплуатировалась в ряде крупных городов: Минске, Новосибирске, Алма-Ате, Фрунзе, Петропавловске-Камчатском. Ещё одна разработка - система контроля за параметрами аппаратуры телефонных и радиостанций с оперативным оповещением дежурного персонала о возникших неполадках — была внедрена на Минской, Московской и Зеленоградской АТС, а также на Белорусской республиканской радиоретрансляционной станции РТС-5.
В 1986 году, в сотрудничестве с профессором кафедры фонетики Минского лингвистического университета Еленой Карневской, была разработана англоязычная версия синтезатора речи, демонстрировавшаяся на Всемирном конгрессе фонетических наук 1987 года. К этому моменту четвёртое поколение устройства - “Фонемафон-4” - использовало фонемно-аллофонно-формантный метод синтеза речи и в добавок к мужскому, получило и женский голос.
На протяжении семидесятых и восьмидесятых годов в “Фонемафонах” использовались различные вариации формантного метода синтеза речи, а сами они воплощались в виде автономных устройств. Однако в конце восьмидесятых годов Борисом Лобановым был предложен новый фонемно-микроволновый метод синтеза речи, в котором вместо вычислений формантных колебаний использовался подготовленный заранее набор микроволн естественного речевого сигнала. Данный подход под руководством Бориса Лобанова в 1990 году реализовал инженер лаборатории распознавания и синтеза речи ИТК АН БССР Александр Иванов в виде программного обеспечения для персональных компьютеров класса ЕС-1840 и IBM PC/XT. Начиная с этого пятого поколения “Фонемафон-5”, для работы с синтезатором было достаточно иметь IBM-совместимый компьютер с тактовой частотой не ниже 10 мегагерц и оперативной памятью не менее 640 килобайт, а также операционную систему MS-DOS 3.30. Синтезатор мог разговаривать на русском языке мужским и женским голосом.
На базе “Фонемафона-5” научным сотрудником Института технической кибернетики АН РБ Георгием Лосиком в начале девяностых годов были созданы и распространены комплекты программного обеспечения, позволившие сделать работу в среде MS-DOS доступной для незрячих пользователей.
Резидентные речевые драйверы SDRV синтезатора “Фонемафон-5”, лицензировавшиеся международной лабораторией интеллектуальных систем “БелСИнт”, долгие годы использовались в целом ряде программных продуктов для MS-DOS, нуждающихся в функциональности синтеза речи, в том числе в множестве программ экранного доступа, таких как “Аргус”, “Сталкер” и других.
К сожалению, ухудшение финансирования научных разработок в девяностых годах привело к снижению активности исследований в области синтеза речи и к уходу многих специалистов, в том числе инженеров-программистов, разрабатывавших конкретные реализации синтезаторов, что на фоне общей неразберихи привело к печальным последствиям в виде утраты исходного кода “Фонемафон-5”.
Однако синтезатор “Фонемафон-5” за счёт своей компактности и высокой разборчивости речи продолжал оставаться востребованным многими людьми, что привело к ряду попыток его возрождения и переноса на более новые системы посредством дизассемблирования и обратной разработки. Несколько подобных инициатив закончились получением работоспособных, хотя и не эквивалентных версий синтезатора “Фонемафон-5”, которые различаются особенностями технической реализации, но до недавнего времени были схожи общим неоднозначным правовым статусом.
Одним из наиболее удачных проектов этого рода является обратная разработка “Фонемафона-5”, выполненная Игорем Порецким в сотрудничестве с Дмитрием Падучих в середине двухтысячных годов с целью получения русскоязычного синтезатора речи для операционных систем GNU/Linux. Получившийся синтезатор был назван ru_tts и в своё время стал знаковым событием, так как был первым приемлемым решением по синтезу русской речи для систем семейства Linux.
Долгие годы по этическим соображениям, связанным со спорным правовым статусом ru_tts, исходный код данного синтезатора речи не раскрывался. Однако в 2021 году были проведены переговоры, в результате которых было получено общее согласие со стороны Игоря Порецкого, который является автором программной реализации ru_tts, Дмитрия Падучих, который внёс заметный вклад на этапе начального дизассемблирования резидентного речевого драйвера SDRV, и Бориса Лобанова, который был руководителем лаборатории, разработавшей “Фонемафон-5”, и является автором его конструктивных решений, лёгших в основу ru_tts, о публикации исходного кода ru_tts на легальной основе под свободной лицензией MIT.
Синтезатор ru_tts представляет собой альтернативную реализацию “Фонемафона-5”, функционально близкую к оригинальному синтезатору для MS-DOS. Его код написан языке C и легко собирается под различные операционные системы, разрядности и процессорные архитектуры. Код распространяется на условиях свободной лицензии MIT и опубликован в репозитории на GitHub.
RU_TTS_SAPI - это RU_TTS, подключенный к платформе SAPI5 от Microsoft, совместимый с OS Windows. Поддерживаются как X86 так и X64 версии Windows. Его можно использовать как в “читалках” электронных книг, таких как Балаболка, Говорилка и т.д., так и в других приложениях, использующие синтез речи. А незрячие пользователи, использующие такие продукты, как Экранный диктор (Narrator), JAWS For Windows, WindowEyes, Cobra и т.д., могут использовать его как основной синтезатор речи для повседневной работы, наслаждаясь быстротой, реакцией, возможностью задавать чтение символов и некоторых сочетаний на свой вкус.
Помимо стандартных возможностей настройки скорости, тона и громкости, RU_TTS_SAPI имеет дополнительные конфигурации, которые расширяют лояльность к пользователям. Вы можете выбрать тип звучания, установить паузы между знаками препинания и при делении большого фрагмента текста на блоки, степень выразительности. К тому же, вы можете определить как RU_TTS_SAPI должен озвучивать русские, латинские буквы, или задать правильное чтение сочетаний латинских букв для вас.
На данный момент, RU_TTS_SAPI поддерживает следующие языки:
RU_TTS_SAPI не имеет отдельной программы конфигурации, но вы можете производить настройки посредствам редактирования конфигурационных файлов. Данные файлы хранятся в кодировке UTF-8, которую без проблем распознаёт Блокнот в windows 10, Notepad++, Akelpad.
Чтобы открыть папку с конфигурациями нажмите “WIN+R” и введите:
%appdata%\RU_TTS_SAPI
Чтобы открыть непосредственно конфигурационный файл “prefs.ini” сделайте это при помощи проводника или нажмите “WIN+R” и введите:
%appdata%\RU_TTS_SAPI\prefs.ini
Данный конфигурационный файл имеет одну группу [general], в которой производятся общие настройки RU_TTS_SAPI. Приведём пример полного конфигурационного файла, и ниже разберём его настройки.
[general]
sample_rate = 10000
intonation = 50
use_dictionary = 1
disable_decimal_fractions = 0
general_gap_factor = 100
comma_gap_factor = 100
dot_gap_factor = 100
semicolon_gap_factor = 100
colon_gap_factor = 100
question_gap_factor = 100
exclamation_gap_factor = 100
intonational_gap_factor = 100
silence_at_begin = 0
silence_at_end = 0
interpolation_multiplier = 1
interpolation_algorithm = 0
Далее Идёт краткое описание параметров различных пауз после знаков припинания, и сдесь нет особых рекомендаций, каждый пользователь настраивает на свой вкус или использует значения по умолчанию.
Следующие параметры могут помочь при проблемах со звуком, а так же имитировать звучание синтезатора как на старых звуковых картах в DOS.
Как было сказано выше, RU_TTS_SAPI поддерживает Русский, Украинский, Хорватский и Грузинские языки. Примечание: при установке RU_TTS_SAPI устанавливаются и файлы языковых произношений. Если вы удалили эти файлы, полностью RU_TTS_SAPI переустанавливать не обязательно. При запуске голоса, если нет файла произношений, он создаётся автоматически с произношениями по умолчанию. Обновление RU_TTS_SAPI так же не затронет ваши произношения.
Чтобы открыть папку с файлом произношений, к примеру Русского языка ,нажмите “WIN+R” и введите:
%appdata%\RU_TTS_SAPI\lng\russian
Чтобы открыть непосредственно файл с произношениями “pronunc.ini” сделайте это при помощи проводника или нажмите “WIN+R” и введите:
%appdata%\RU_TTS_SAPI\lng\russian\pronunc.ini
Данный файл содержит записи произношений разделённые по группам. Название группы указывается в квадратных скобках []. Опишем каждую Подробней.
[english_letters]
a = эй
b = би
c = си
d = ди
e = и
И так далее. В эту группу вы можете добавить собственные записи произношений отдельных букв. Не следует в данную группу добавлять сочетания букв, тем более слова.
[russian_letters]
а = а
б = бэ
в = вэ
г = гэ
д = дэ
е = е
и так далее. В эту группу вы можете добавить собственные записи произношений отдельных букв. Не следует в данную группу добавлять сочетания букв, тем более слова.
[general_pronunciation]
j = дж
w = в
x = кс
y = ы
и так далее. В эту группу вы можете добавить собственные записи произношений отдельных звуков и буквосочетаний. Не следует сильно загромождать группу записями, заменять что попало, и тем более использовать данную группу как словарь ударений. Списки работают медленно, и если сюда поместить словарь, вы рискуете значительно ухудшить отклик синтезатора. В зависимости от языка, в файле “pronunc.ini” могут быть другие списки замен, которые являются правилами и применяются до общего списка замен. В русских произношениях нет дополнительного списка замен, в украинском есть свой список замен, который является списком правил. Пример:
[ukrainian_pronunciation]
е = э
и = ы
є = е
і = и
ї = ййи
ґ = г
щ = шч
И так далее.
[symbols]
+ = плюс:1
( = левая круглая:0
%59 = точка с запятой:0 ; в ключе ini файла Этот символ ввести нельзя,поэтому мы вводим его как код символа в десятичной форме.
$5b = левая квадратная:0 ; в ключе ini файла этот символ ввести нельзя, поэтому мы вводим его код в шестнадцатиричной форме.
£ = фунт:0
€ = евро:0
¢ = центы:0
¥ = иена:0
₹ = рупия:1
₽ = рубль:1
И так далее.
По приведённым выше примерам, вы без проблем можете редактировать произношения любых встроенных языков перейдя по пути:
%appdata%\RU_TTS_SAPI\lng
"%appdata%\RU_TTS_SAPI\lng\russian"
, вы найдёте файл “dict.dic”, содержащий в себе около 425 тысяч словоформ. Словарь был взят со старого Newfon, а в Newfon он был взят из Rulex который разрабатывает игорь Порецкий. словарь должен храниться в кодировке UTF-8. Добавление собственных слов не составит труда, сначало пишем исходное слово, и через пробел так как оно произносится со знаком ударения. Знак ударения ставится после гласной знаком плюс +. Так же можно поставить вспомогательное ударение знаком равно =. Примечание: в словарь нельзя вносить словосочетания, слева от пробела должно быть только лишь одно исходное слово. Справа от пробела, в слове с ударением тоже не должно быть пробелов. Пример:
тифлокомп тифлоко+мп
электрочайник эле=ктроча+йник
веселые весё+лые
дальний да+льний
вертолет вертолё+т
Поскольку, пока пользовательский словарь является основным, за все изменения словаря отвечаете только вы, и если что-то произносится не правильно, значит в словаре была допущена ошибка.
Встроенный драйвер SAPI5X в JAWS For Windows не умеет автоматически выбирать нужные параметры вывода звука синтезаторов. В случаях, когда вывод стандартный (22050, 16 бит, моно), драйвер вполне самостоятельно корректно выводит звук. В нестандартных же случаях требуется вмешательство пользователя. RU_TTS_SAPI - это как раз второй случай.
Чтобы избежать звона, съедания букв и дополнительных артефактов в звучании синтезатора в JAWS For Windows, требуется произвести несколько действий. Здесь мы их опишем.
Примечание: Некоторые действия могут затребовать прав администратора для выполнения. Вам необходимо либо получить разрешение системного администратора, либо самостоятельно давать необходимые права.
; RU_TTS_SAPI
[{333DB9C5-EED3-47DE-96CC-035FA48A3F5C}]
Output=10
Таким образом, мы научили драйвер SAPI5X корректно выводить звук RU_TTS_SAPI (SPSF, 11000 Гц, 16 бит, моно).
Выражаем благодарность Борису Мефодьевичу Лобанову за неоценимый вклад в развитие русскоязычного синтеза речи на протяжении многих десятилетий, а также Игорю Борисовичу Порецкому и Дмитрию Викторовичу Падучих за мастерскую работу по возвращению утраченной технологии “Фонемафон-5”.
Тифлокомп - за публикацию информации о синтезаторе речи RU_TTS которая стала истоком перезагрузкой, благодарностями и является чуть ли не половиной данного документа.
Денису Шишкину (Outsider) за статьи из предыдущих продуктов, лёгших в основу данной документации.
Владимиру Пыригу за перевод данного документа на украинский язык, за тестирование и рекомендации по изменению украинских произношений.
В любых статьях или публикациях, в которых используются или упоминаются конструктивные решения синтезатора речи “Фонемафон-5”, просьба цитировать следующую статью:
Вышеупомянутая статья представляет собой базовую публикацию об оригинальной реализации синтезатора речи “Фонемафон-5” для MS-DOS.
Микроволновой метод синтеза речи, разработанный Борисом Лобановым и использованный в “Фонемафоне-5”, также описан в следующих научных публикациях: