Newfon SAPI - Справка

Newfon SAPI

Версия 2019.03.06

© БелСИнт, Сергей Шишминцев, O-Team Development, 2018


Общая информация

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

Истоки

На заре девяностых, в Минске, в Институте инженерии и кибернетики, профессорами Александром Ивановым и Борисом Лобановым, была разработана MSDOS-версия синтезатора, который умел читать текст, введенный с командной строки на PC-speaker. Исполняемый файл назывался spp.exe. В дальнейшем, появились новые версии, называемые SDRV. Данные версии уже умели выводить речь не только на динамик компьютера, но и на ковокс и звуковую карту. Вот тогда и началась эра синтезатора и DOS-скринридеров - Epard, Argus. до скринридеров была самоозвучивающаяся среда, называемая в народе “Минск”. Реальное название нам не известно. Данная среда представляла из себя две панели “Тексты” и “Программы”. Также, эта среда содержала в себе говорящий калькулятор, толковый словарь, текстовый редактор, игру “Поле чудес”. Без трудов Александра Иванова и Бориса Лобанова эра могла бы отодвинуться очень далеко. Низкий им поклон! Это первопроходцы в сфере русского синтеза речи на PC. Они проделали колоссальную работу, дело которой живо по сей день и будет жить!

Выдержки из технической документации фонемафона:

Всеми правами на техническое описание и программное обеспечение владеет фирма “БелСИнт”. Копирование, полное или частичное, без приобретения лицензии категорически запрещается и преследуется по закону. (C) 1990-93 БелСИнт 220012, Минск, ул. Сурганова 6, Институт технической кибернетики АН РБ, лаборатория распознавания и синтеза речи.

Фонемафон. Перезагрузка.

Однако времена меняются, а запросы синтезоманов - чаще всего нет. Именно поэтому в свое время Сергеем Шишминцевым был дизассемблирован код фонемафона, к тому времени безбожно забытого под платформой Microsoft, и разработана “читалка” книг, использовавшая фонемафон как основное средство чтения. Примечание для любопытных: Существует версия фонемафона для linux, называемая RU_TTS. Каким способом был портирован синтезатор в линукс нам не известно, известно лишь то, что его разрабатывает Игорь Порецкий.

Newfon

Алексеем Садовым и Сергеем шишминцевым была создана версия фонемафона, работающая на платформе экранного чтеца NVDA (Non Visual Desktop Access), которая получила название Newfon. Это стало фактически бесплатной альтернативой “My Mouse” от Сергея Волкова, разработанного для пользователей JAWS For Windows. Молниеносный, работающий без сбоев, он завоевал большую популярность среди русскоязычных пользователей NVDA.

Nefonit TTS

Спустя долгое время, благодаря Сергею Шишминцеву, сообщество владельцев устройств на базе OS Android увидело реализацию Newfon и в качестве TTS-возможности под свою операционную систему. Она получила название “Nefonit TTS”. Опять же, молниеносные быстрота и реакция сделали его номером один для людей, ценящих скорость получения информации и свое время, обилие настроек сделало его номером один среди гиков, требовавших от синтезатора экзотических возможностей (таких например, как изменение дискретизации вывода, ресемплирование, более детальная подстройка громкости, скорости, паузы между словами, и даже эквализация вывода!), а ретрограды получили уникальную возможность читать им книги. Сергей охотно прислушивался к мнению сообщества. Наращивание возможностей и исправление ошибок шло полным ходом.

Смерть Сергея Шишминцева

В один из дней Сергея Шишминцева не стало… Люди, близко знающие сергея, переживали его уход из жизни, а пользователи его разработок “похоронили” Newfon. Спустя некоторое время Nefonit TTS был автоматически удален из Play маркета, а остальные наработки остались в том варианте, в котором они были выпущены на тот момент.

Как оно оказалось у нас

Недавно нам в руки попали исходные коды разработок сергея. Его близкие, благодаря которым это случилось, поставили нам всего одно условие: если разработка его проектов продолжится, они должны стать бесплатными. Мы же в свою очередь решили, что история не должна забыть Сергея Шишминцева, поскольку это уникальный программист, обладавший колоссальным запасом усидчивости, трудолюбия, знаний.


Что такое Newfon SAPI?

Newfon SAPI - это фонемафон, доработанный Сергеем Шишминцевым, подключенный к платформе SAPI5 от Microsoft, совместимый с OS Windows. Его можно использовать как в “читалках” электронных книг, таких как Балаболка, Говорилка и т.д., так и в других приложениях, использующие синтез речи. А незрячие пользователи, использующие такие продукты, как JAWS For Windows, WindowEyes, Cobra и т.д., могут использовать его как основной синтезатор речи для повседневной работы, наслаждаясь быстротой, реакцией, возможностью задавать чтение символов и некоторых сочетаний на свой вкус. Помимо стандартных возможностей настройки скорости, тона и громкости, Newfon SAPI имеет дополнительные конфигурации, которые расширяют лояльность к пользователям. Вы можете выбрать тип звучания, установить паузы между знаками препинания и при делении большого фрагмента текста на блоки, степень выразительности, или же включить встроенный словарь ударений на 425369 слов. К тому же, вы можете определить как Newfon SAPI5 должен озвучивать русские, латинские буквы, или задать правильное чтение сочетаний латинских букв для вас.


Предупреждения


Конфигурация Newfon SAPI

В пакете с Newfon SAPI предоставляется конфигуратор, который может помочь вам настройке дополнительных опций синтезатора. Здесь мы рассмотрим все его настройки и что каждая из них значит.

Примечание: если вы что-то забудете, вы всегда можете вызвать текущую справку прямо из конфигуратора Newfon SAPI, нажав кнопку “Документация” вверху окна приложения. Также, можно воспользоваться клавишей F1.

Верхняя панель. Основные настройки.

На верхней панели располагаются настройки, отвечающие за звучание синтезатора. Здесь вы можете выставить частоту дискретизации, длину пауз, интенсивность выразительности, а также включить/выключить словарь ударений, который поставляется с самим Newfon.

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

Нижняя панель. Произношения.

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

Важные примечания:

Итак:

У каждой записи в этих разделах есть свои всплывающие меню с действиями, которые к ним можно применить. Просто нажмите правую кнопку мыши на любой из записей.

Под списком находятся три кнопки: “Добавить”, “Редактировать” и “Удалить”. В принципе, все эти действия можно делать через всплывающее меню на любом из элементов в этих списках, однако альтернативный способ работы со словарями не помешает 😉

Заключение

После того, как вы сконфигурировали Newfon SAPI на ваш вкус, вы можете нажать кнопку “Применить” в самом верху окна справа. Если Newfon SAPI сейчас активен в каком-либо из приложений, он тут же подхватит все сделанные настройки и вы сразу же услышите результат.

Горячие клавиши

Здесь будет список горячих клавиш, которые можно использовать в конфигураторе Newfon SAPI.

Пользователям JAWS For Windows

Встроенный драйвер SAPI5X в JAWS For Windows не умеет автоматически выбирать нужные параметры вывода звука синтезаторов. В случаях, когда вывод стандартный (22050, 16 бит, моно), драйвер вполне самостоятельно корректно выводит звук. В нестандартных же случаях требуется вмешательство пользователя. Newfon SAPI - это как раз второй случай.

Чтобы избежать звона, съедания букв и дополнительных артефактов в звучании синтезатора в JAWS For Windows, требуется произвести несколько действий. Здесь мы их опишем.

Примечание: Некоторые действия могут затребовать прав администратора для выполнения. Вам необходимо либо получить разрешение системного администратора, либо самостоятельно давать необходимые права.

  1. Откройте любой удобный вам браузер файлов на компьютере (Этот компьютер в Windows 10, Компьютер в Windows 7, 8 и 8.1 или Мой компьютер в Windows XP, или же любой другой сторонний удобный вам).
  2. Проследуйте по пути c:\Program Files\Freedom Scientific\JAWS\[Ваша.версия.JAWS]\, где “[Ваша.версия.JAWS]” - это папка с версией JAWS For Windows, которая у вас установлена. Например, путь может выглядеть как c:\Program Files\Freedom Scientific\JAWS\18.0\.
  3. Найдите и откройте файл sapi5x.ini с правами администратора.
  4. Переместитесь к строке с надписью [Unsupported SAPI 5 Speech Engines], установите курсор над этой строчкой (если такой строки нет, просто переместитесь в конец файла), и добавьте следующую секцию:
    
    ; Newfon SAPI
    [{EB63CF34-0326-464D-BDD7-FA97133068BA}]
    Output=8
    
  5. Сохраните изменения в файле.
  6. Перезапустите JAWS For Windows.

Таким образом, мы научили драйвер SAPI5X корректно выводить звук Newfon SAPI (SPSF, 11000 Гц, 8 бит, моно).


Благодарности


Разработчики

O-Team Development - это часть активистов команды O-Team, некоммерческого интернет-объединения, существовавшего ранее. Объединение распалось в 2012 году, однако часть людей осталась под эгидой лозунгов и политики команды O-Team, что способствовало началу некоторых проектов. ОДна их часть существует исключительно для узкого круга лиц, другая же - выпускается для общего использования.

Активные разработчики Newfon SAPI5 и их направление работы:

Сергей Паршаков (Electrik)

Фактически, Сергей отвечает за весь проект. Так уж получилось. :) Тем не менее, все благодарности Сергею!

Денис Шишкин (Outsider)

Соучастники


История изменений

V2019.03.06

  1. Добавлена опция запрета использовать десятичный разделитель. Помогает избавиться от извечных “один целых тридцать четыре сотых” там, где это не нужно. Опцию можно включить в конфигураторе Newfon SAPI.
  2. Для страждущих: в меню Пуск добавлен ярлык на документацию по Newfon SAPI.

V2019.03.03

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

v2018.12.02

  1. Теперь все параметры секций доступны в конфигураторе.
  2. При первом запуске конфигуратора, когда конфигурации для Newfon SAPI еще не созданы, после приветствия будут созданы стартовые конфигурации физически, чтобы не допустить ошибки синтезатора при первой его инициализации.
  3. Написана документация по Newfon SAPI. Прочесть ее можно, как запустив ярлык в группе Newfon SAPI, так и нажав в окне конфигуратора F1 или “Документация” вверху окна рядом с кнопкой “Применить”.
  4. Переосмыслена нижняя панель конфигуратора: теперь это вкладки, которые можно переключать и видеть нужные вам списки, Также, внизу появились три кнопки для работы со словарем. Аппендикс в виде кнопки “Добавить” сбоку убран, ибо это было нелогично.
  5. Теперь в Newfon SAPI можно не только включать встроенный словарь, но и отключать пользовательский или выбирать какой из них будет активен.

V2018.11.06

  1. Добавлены пользовательские словари.
  2. добавлена секция спец-символов.
  3. Сняты ограничения в русской кириллице, можно изменять произношение всех букв.
  4. Исправлена ошибка в аббревиатурах, в которых встречалась латинская j.
  5. Наконец, теперь ярлык вызова настроек работает корректно.

V2018.10.30

  1. Разработан интерфейс для конфигурирования дополнительных опций синтезатора. Теперь INI-файл править не обязательно.
  2. В конфигурацию добавлены новые параметры: “Пауза в начале” и “Пауза в конце”, позволяющие регулировать тишину в начале и конце воспроизведения соответственно.
  3. Ярлык prefs.ini переименован в настройки NewfonSAPI.

V2018.10.09

  1. Бинарный код отделен от пользовательских данных, а значит, что теперь словари и настройки хранятся в папке пользователя, а сама программа в program files.
  2. при установке программы создается ярлык prefs.ini.
  3. При деинсталляции программы, теперь есть запрос на удаление пользовательских данных.

V2018.10.08

  1. Добавлены настройки prefs.ini.
  2. Выявлены ошибки которые мешали регистрации SAPI сервера.

V2018.10.06

  1. первая пробная версия.