Pair Synthesizer (Движок переключения синтезаторов речи по сценариям и форматированию)

Что это такое?

Pair Synthesizer — это мощное дополнение для NVDA, которое позволяет автоматически переключаться между разными голосовыми движками (синтезаторами) в зависимости от типа текста. Например, вы можете настроить чтение русского текста голосом RHVoice, английского — голосом eSpeak NG, а чисел — синтезатором SAPI5 с ясным произношением цифр. Это особенно полезно для:
- Многоязычных пользователей
- Работы с техническими текстами, содержащими цифры, формулы, код
- Чтения текста с различным форматированием (жирный, курсив, цитаты)
- Улучшения разборчивости в смешанном контенте

Ключевые возможности

Настройка

После установки в меню Сервис появится пункт Настройки парного синтезатора….

Важно: Для изменения настроек необходимо, чтобы текущим синтезатором был НЕ Pair Synthesizer. Переключитесь временно на другой движок (например, SAPI5) в настройках речи NVDA.

Вкладка “Scripts” (Сценарии)

Здесь настраивается, какой движок и какой голос использовать для каждого типа текста:
- Latin Text (English, French, etc.) — латинский текст
- Cyrillic Text (Russian, Ukrainian, etc.) — кириллица
- Arabic Text — арабский текст
- Hindi/Devanagari Text — текст деванагари (хинди)
- Numbers (0-9) — числа
- Emojis & Symbols — эмодзи и символы
- Greek Text — греческий текст
- Han Characters (CJK) — китайские, японские, корейские иероглифы
- Thai Text — тайский текст

Для каждого типа выберите:
- Engine — движок синтеза речи (например, SAPI5, eSpeak NG, RHVoice)
- Voice — конкретный голос для этого движка

Вкладка “Formatting” (Форматирование)

Настройки для текста с определённым форматированием:
- Strong — жирный текст (обычно **текст**)
- Em — курсив (*текст*)
- Quote — текст в кавычках
- Parens — текст в скобках

Можно назначить для такого текста отдельный движок/голос, чтобы он выделялся интонационно.

Вкладка “Global Settings” (Глобальные настройки)

Performance & Timing Settings (Производительность и тайминг)
Global Speech Overrides (Глобальные переопределения речи)
Heuristic Timing Multipliers (Advanced) (Эвристические множители тайминга)

Для каждого типа текста можно задать множитель, который влияет на расчёт длительности его воспроизведения. Например, числа (Numbers) имеют множитель 15.0, так как “123” произносится как “сто двадцать три”, что занимает гораздо больше времени, чем три символа.

Вкладка “Conditional Switching” (Условное переключение)

Позволяет создавать правила для активации определённого движка при выполнении условий.

Добавить правило:
- Rule Name — имя правила
- Enabled — активно ли правило
- Condition — тип условия:
- Starts With — текст начинается с маркера
- Starts & Ends With — текст начинается и заканчивается маркерами
- Contains — текст содержит маркер
- Punctuation Only — текст состоит только из знаков пунктуации
- Underlined — текст подчёркнут (работает с FieldCommand NVDA)
- Word Count — количество слов в сегменте больше заданного
- Start Marker / Text — начальный маркер или текст для условия
- End Marker (if applicable) — конечный маркер (для условия Starts & Ends With)
- Return to Normal after — когда вернуться к обычному движку:
- Immediately (One-shot) — сразу после сегмента
- Finding End Marker — после обнаружения конечного маркера
- Speaking X Words — после произнесения заданного количества слов
- Any Punctuation — после любой пунктуации
- Word Limit — лимит слов (для условия Speaking X Words)
- Target Engine — движок, на который переключиться
- Target Voice — голос (опционально)

Пример правила: если текст начинается с “python", переключиться на eSpeak NG и читать код до маркера "”.

Использование

  1. После настройки в настройках речи NVDA выберите Pair Synthesizer как текущий синтезатор.
  2. Теперь при чтении текста NVDA будет автоматически переключаться между настроенными движками в зависимости от типа текста.
  3. Для принудительной остановки речи используйте обычное сочетание клавиш NVDA (Control).

Отладка и логи

Если возникают проблемы (наложение речи, неправильное переключение), проверьте лог NVDA (журнал). Pair Synthesizer записывает подробные сообщения об ошибках. Также можно увеличить Safety Buffer и Engine Switch Buffer для более стабильной работы на медленных системах.

Технические детали