PairSynthesizer (Движок переключения синтезаторов речи по сценариям и форматированию)
Автор:- Исходный код дополнения: Посетить Web-сайт pair_synthesizer
Краткое описание
Pair Synthesizer — умный движок для NVDA, который автоматически переключает синтезаторы речи в зависимости от типа текста: латиница, кириллица, числа, эмодзи, форматирование.
Настройте разные голоса для разных языков и контекстов.
Полная последовательность речи без наложений.
Поддержка условных правил и глобальных настроек скорости/тона.
Идеально для многоязычных пользователей и технических текстов.
Основная информация
| Название | Версия | Совместимость с API NVDA | Последняя протестированная версия NVDA | Минимальная версия NVDA | Дата загрузки в каталог | Размер | Лицензия |
|---|---|---|---|---|---|---|---|
| pair_synthesizer | 1.6 | 2025.1 | 2025.3.2 | 2019.3 | 09-02-2026 16:17:10 | 37 Кб. | GPL v2 |
Информация о локализации на русский язык
🔝 Назад к оглавлениюСкачать
PairSynthesizer-V.1.6.nvda-addon
⬇ Перейти к истории версий 🔝 Назад к оглавлениюРазделы
🔝 Назад к оглавлениюСправка
Подробнее
Pair Synthesizer (Движок переключения синтезаторов речи по сценариям и форматированию)
Что это такое?
Pair Synthesizer — это мощное дополнение для NVDA, которое позволяет автоматически переключаться между разными голосовыми движками (синтезаторами) в зависимости от типа текста. Например, вы можете настроить чтение русского текста голосом RHVoice, английского — голосом eSpeak NG, а чисел — синтезатором SAPI5 с ясным произношением цифр. Это особенно полезно для:
- Многоязычных пользователей
- Работы с техническими текстами, содержащими цифры, формулы, код
- Чтения текста с различным форматированием (жирный, курсив, цитаты)
- Улучшения разборчивости в смешанном контенте
Ключевые возможности
- Автоматическое определение сценариев: Латиница, кириллица, арабский, хинди, греческий, тайский, китайские иероглифы (CJK), числа, эмодзи/символы
- Распознавание форматирования: Жирный текст, курсив, текст в кавычках, текст в скобках
- Условное переключение: Правила для активации определённого движка при обнаружении маркеров (например, чтение кода особым голосом)
- Глобальные настройки речи: Единая скорость, тон и громкость для всех движков (опционально)
- Расширенные настройки тайминга: Точная настройка задержек переключения, буферов безопасности, мультипликаторов длительности
- Полная последовательность речи: Гарантирует, что речь разных движков не накладывается друг на друга
Настройка
После установки в меню Сервис появится пункт Настройки парного синтезатора....
Важно: Для изменения настроек необходимо, чтобы текущим синтезатором был НЕ 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 (Производительность и тайминг)
- Switch Delay (ms) — базовая задержка между переключениями движков (по умолчанию 150 мс)
- Safety Buffer (ms) — дополнительный "хвостовой" буфер после завершения речи каждого фрагмента для гарантии отсутствия наложения (по умолчанию 300 мс)
- Engine Switch Buffer (ms) — обязательная пауза перед переключением на другой движок (по умолчанию 200 мс)
Global Speech Overrides (Глобальные переопределения речи)
- Force Global Speed and Pitch on ALL Engines — принудительно применить глобальные скорость и тон ко всем движкам
- Global Rate — глобальная скорость речи (0–100)
- Global Pitch — глобальный тон голоса (0–100)
- Mandatory Wait Ratio (Sequential Strictness) — коэффициент обязательного ожидания (0–100%). Определяет, какую часть расчётного времени воспроизведения фрагмента нужно обязательно выждать перед возможным переходом к следующему. 100% = строгая последовательность, 0% = агрессивное переключение.
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 и читать код до маркера "".
Использование
- После настройки в настройках речи NVDA выберите Pair Synthesizer как текущий синтезатор.
- Теперь при чтении текста NVDA будет автоматически переключаться между настроенными движками в зависимости от типа текста.
- Для принудительной остановки речи используйте обычное сочетание клавиш NVDA (Control).
Отладка и логи
Если возникают проблемы (наложение речи, неправильное переключение), проверьте лог NVDA (журнал). Pair Synthesizer записывает подробные сообщения об ошибках. Также можно увеличить Safety Buffer и Engine Switch Buffer для более стабильной работы на медленных системах.
Технические детали
- Основан на системе сегментации текста по регулярным выражениям.
- Использует многопоточность для загрузки голосов и обработки речи без блокировки интерфейса.
- Кэширует экземпляры синтезаторов для быстрого переключения.
- Реализует многоуровневый механизм блокировки для гарантии последовательности речи.
История версий
История версий
| Версия файла | Тестируемая версия NVDA | Минимальная версия NVDA | Размер файла (КБ) | Ссылка на загрузку |
|---|---|---|---|---|
| 1.6 | 2025.3.2 | 2019.3 | 37 | PairSynthesizer-V.1.6.nvda-addon |
| 1.2 | 2025.3.2 | 2019.3 | 14 | PairSynthesizer-V.1.2.nvda-addon |