SoundWave (Преобразование текста в аудиофайл)
soundWave — это дополнение для NVDA, которое преобразует текст в аудиофайл с использованием установленных речевых движков. Оно может экспортировать аудио из буфера обмена, текстового файла или текста, введённого непосредственно в дополнении.
Быстрый старт
- Нажмите NVDA+Ctrl+=, чтобы открыть soundWave.
- Выберите синтезатор.
- При необходимости задайте базовую папку для записей. Это папка для сохранения по умолчанию; soundWave создаёт выходные папки внутри неё, используя ваши шаблоны именования.
- Выберите источник ввода: буфер обмена, текстовый файл, папку с текстовыми файлами или введённый/вставленный текст.
- Настройте синтезатор. Используйте кнопку Тест, чтобы предварительно прослушать выбранные настройки.
- Выберите имя выходного файла и формат.
- Дождитесь завершения рендеринга, затем просмотрите сводку.
В диалогах рендеринга soundWave нажмите F1, чтобы открыть это руководство. На панели soundWave в настройках NVDA перейдите к кнопке Справка или нажмите Alt+H. Элементы управления диалога содержат клавиатурные ускорители, например Alt+T для кнопки Тест.
Ввод и вывод
- Ввод: текст из буфера обмена, текстовый файл, папка с текстовыми файлами или введённый/вставленный текст.
- Вывод: WAV поддерживается всегда. MP3, FLAC и M4A доступны при установке ffmpeg и его наличии в системном PATH.
- Пакетный ввод: при выборе папки каждый читаемый текстовый файл преобразуется в отдельный аудиофайл в отсортированном порядке. По умолчанию пакетные файлы записываются в подпапку синтезатора и голоса, а к именам файлов автоматически добавляются порядковые номера.
- Большие объёмы ввода: длинный текст рендерится по частям. Если один WAV-файл становится слишком большим, soundWave создаёт пронумерованные части.
- Папки и имена файлов: soundWave может задавать имена для папок одиночных рендеров, файлов одиночных рендеров, пакетных папок и пакетных файлов по отдельности.
- Имена голосов: когда soundWave может определить выбранный голос, он может включить его в шаблоны папок или файлов, чтобы несколько рендеров с одним и тем же входным текстом и синтезатором было легче различать.
Ход рендеринга
Во время рендеринга soundWave показывает диалог прогресса с кнопкой Отмена и опциональными построчными деталями. Используйте Показать подробности, чтобы просмотреть текущий файл, фрагмент текста, затраченное время, длительность рендеринга и скорость преобразования, где это доступно. Длительное время отображается в минутах или часах, а не в сырых секундах.
Для долгих рендеров используйте Свернуть, нажмите Alt+M или Escape, чтобы скрыть диалог прогресса. Рендеринг продолжается в фоне, а скрытый диалог не отображается в Alt+Tab. Снова нажмите команду soundWave (NVDA+Ctrl+=), чтобы вернуть диалог прогресса. Рендеринг отменяется только при нажатии кнопки Отмена. Если другой диалог soundWave уже открыт, та же команда выводит его на передний план вместо открытия нового рендера.
Настройки
Откройте Настройки NVDA и выберите soundWave, чтобы задать параметры по умолчанию для будущих рендеров.
- Папка сохранения по умолчанию: базовая папка для записей, используемая в первом диалоге soundWave. Если оставить пустым, используется
Documents\SoundWave, чтобы файлы сохранялись в место, которое большинство пользователей может легко найти.
- Именование папок и файлов: отдельные шаблоны управляют папками одиночных рендеров, файлами одиночных рендеров, пакетными папками и пакетными файлами. В таблицах ниже показаны значения по умолчанию, токены и примеры.
- Формат вывода по умолчанию: выберите WAV или, при наличии ffmpeg, MP3, FLAC или M4A. Опциональные флажки позволяют пропускать диалог сохранения для одиночных рендеров и выбор формата для пакетных.
- Постобработка высоты тона: опционально примените сдвиг высоты тона в стиле Sonic после того, как синтезатор завершит рендеринг аудио. Sonic pitch использует шкалу от 0 до 100, где 50 — без изменений. Меньшие значения понижают готовый файл, большие — повышают. Полный диапазон соответствует примерно -12 до +12 полутонов и требует ffmpeg с поддержкой rubberband.
- После рендеринга: выберите, должен ли soundWave открывать папку вывода после завершения всего рендеринга, воспроизводить аудио в вашем медиаплеере по умолчанию или показывать сводку рендеринга. Автовоспроизведение для пакетов открывает файлы как плейлист. Автоматическое открытие папки не открывает повторно папку, которую soundWave уже открыл в текущем сеансе NVDA.
Шаблоны именования
Поля именования являются шаблонами. SoundWave заменяет каждый токен информацией из текущего рендера перед предложением папки или имени файла. Вы можете удалять токены, перемещать их, добавлять свои слова или изменять пунктуацию между ними.
Настройка| По умолчанию| Пример вывода| Что управляет
---|---|---|---
Шаблон папки одиночного рендера | %engine% - %voice% | Sonata - Kirsten Two En Medium | Папка, предлагаемая диалогом сохранения для буфера обмена, введённого текста или одного текстового файла.
Шаблон имени файла одиночного рендера | %source% | Clipboard.wav | Предлагаемое имя файла для одиночного рендера.
Шаблон пакетной папки | %engine% - %voice% | Keynote Gold - Fred | Выходная папка, создаваемая при рендеринге папки с текстовыми файлами.
Шаблон пакетного файла | %number% - %source% | 03 - chapter three.wav | Имя файла для каждого файла в пакетном рендере.
Примеры именования
Шаблон| Пример вывода| Когда полезно
---|---|---
%engine% - %voice% | Orpheus - Synthetic Dave | Группирует вывод по синтезатору и голосу.
%source% - %engine% | chapter one - SAPI5.wav | Оставляет источник первым, но при этом идентифицирует синтезатор.
%number% - %source% | 01 - opening credits.wav | Сохраняет предсказуемый порядок пакетного вывода.
Значения токенов именования файлов
Токен| Значение| Пример значения
---|---|---
%source% | Буфер обмена, введённый текст, имя исходного файла или имя элемента исходной папки. | Clipboard, Typed, chapter one или meeting notes
%engine% | Имя синтезатора. | Orpheus, Sonata, SAPI5 или Pocket TTS
%voice% | Выбранный голос, если soundWave может его определить. Если голос неизвестен, эта часть опускается. | Synthetic Dave, Kirsten Two En Medium или Fred
%number% | Порядковый номер. Рендеры папок добавляют его автоматически; токен доступен для пользовательских шаблонов именования. | 01, 02 или 03
Параметры синтезатора
Синтезаторы предоставляют такие настройки, как голос, язык, вариант, скорость, темп, высота тона или громкость, где эти опции доступны. Большинство диалогов настроек включают:
- Автоозвучивание при изменении настроек для автоматического предпросмотра изменений.
- Тест для воспроизведения короткого образца с текущими настройками.
- Сохранение настроек в конфигурации NVDA.
Поддерживаемые синтезаторы
Синтезатор| Примечания
---|---
SAPI5 | Использует установленные голоса Microsoft SAPI5. 32-битные голоса SAPI5 поддерживаются через отдельный 32-битный вспомогательный путь, когда он доступен. Скорость, высота тона и громкость SAPI5 могут быть настроены в диалоге рендеринга. SoundWave запрашивает у SAPI формат вывода по умолчанию для выбранного голоса вместо принудительной фиксации частоты дискретизации, возвращаясь к 22.05 кГц 16-бит моно только если SAPI не предоставляет формат.
googleTtsForNvda | Требует дополнение Google TTS For NVDA и установленные пакеты голосов Google. SoundWave захватывает сгенерированный PCM-аудио от дополнения напрямую во время рендеринга. Кнопка Тест рендерит короткий образец во временный WAV и воспроизводит его, избегая живого речевого пути NVDA. SoundWave отображает только те голоса Google, которые установлены и надёжно работают через этот offline-путь рендеринга, поэтому его список может быть короче полного каталога голосов дополнения Google.
Pocket TTS | Требует дополнение Pocket TTS. SoundWave рендерит меньшими сегментами, когда это необходимо, чтобы длинный текст с меньшей вероятностью превысил лимиты модели. Если модель сталкивается с известной ошибкой нулевой длины состояния трансформера, soundWave безопасно повторяет только этот сегмент меньшими частями, не сохраняя частичное аудио. Диалог опций включает настройку чувствительности к концу предложения Pocket TTS и параметр Flow steps, когда установленный синтезатор их предоставляет. Flow steps управляет количеством проходов уточнения модели от 1 до 10; 10 — полное качество по умолчанию, меньшие значения могут рендерить быстрее с менее стабильной речью.
Supertonic | Требует дополнение Supertonic. SoundWave использует меньшие фрагменты для Supertonic, чтобы избежать ошибок размера модели на длинном входном тексте.
Sonata | Требует дополнение Sonata Neural Voices и доступные конфигурационные файлы голосов.
Eloquence и IBMTTS | Доступны при установке соответствующего дополнения для NVDA. SoundWave автоматически определяет речевой движок и предоставляет опции голоса и скорости перед рендерингом.
Orpheus | Требует, чтобы Orpheus был текущим синтезатором NVDA перед началом рендеринга. Язык, голос, скорость, высота тона и громкость могут быть настроены перед рендерингом. Во время рендеринга soundWave временно переключает NVDA на доступный резервный синтезатор.
Orpheus Classic | Доступен при установке дополнения Orpheus Classic. SoundWave использует выделенный путь захвата для этого старого синтезатора, чтобы длинные паузы и знаки препинания не приводили к усечённому выводу.
Prose 2000 | Доступен при установке дополнения Prose 2000. SoundWave рендерит через независимый хост Prose вместо перехвата глобального аудиовыхода NVDA. Скорость, ускорение скорости и громкость применяются без изменения активного синтезатора NVDA.
DECtalk и Keynote Gold | Доступны при установке и обнаружении требуемого дополнения. Keynote Gold предоставляет в диалоге рендеринга язык, голос, скорость, высоту тона, громкость и ускорение скорости. Кодировка, частота дискретизации, обработка чисел и управление движком зависят от установленного дополнения BestSpeech.
Другие синтезаторы NVDA | SoundWave может рендерить многие другие установленные синтезаторы NVDA, когда они используют обычный путь вывода аудио NVDA. Общий диалог применяет язык, голос, вариант, скорость, высоту тона и громкость, где выбранный синтезатор предоставляет эти настройки. Синтезаторы, которые полностью кодируют язык в выборе голоса, не показывают отдельный выбор языка.
Сводка рендеринга
После рендеринга soundWave сообщает синтезатор, сохранённый путь, затраченное время, длительность аудио и коэффициент скорости в реальном времени, когда это доступно.
Обновления
soundWave использует канал обновления дополнений NVDA для обновлений, совместимых с магазином.
Изменения
1.2.6
- Изменено поведение Escape и кнопки закрытия окна прогресса: теперь они скрывают активный рендер вместо его отмены. Только кнопка Отмена теперь отменяет рендеринг.
- Исправлена очистка при отмене, чтобы soundWave не оставался ошибочно помеченным как уже открытый.
- Изменён сторожевой таймер рендеринга: теперь он останавливает задачу только через пять минут без измеримого прогресса, вместо ограничения общей длительности рендеринга.
- Улучшено восстановление Pocket TTS путём адаптивного разделения сложных фрагментов модели, пока они не могут быть безопасно отрендерены.
- Успешно протестирован рендеринг Pocket TTS на 2990 символов продолжительностью чуть более семи минут.
1.2.5
- Исправлен конфликт имён перевода, который препятствовал открытию диалога опций Sonata.
- Предотвращено накопление нескольких рабочих процессов рендеринга soundWave и диалогов завершения.
- Изменена команда soundWave: теперь она выводит на передний план существующий диалог, если рабочий процесс уже открыт.
- Изменена сводка завершения: теперь она возвращается на передний план после автоматического открытия папки вывода.
1.2.4
- Добавлен выбор языка для Keynote Gold/BestSpeech и общих синтезаторов NVDA, которые предоставляют настройку языка.
- Добавлен нативный контроль качества Flow steps от 1 до 10 для Pocket TTS в его опциях рендеринга.
- Изменён рендеринг BestSpeech: теперь используется языковой речевой путь установленного драйвера, включая его кодировку, частоту дискретизации, обработку чисел и управление движком.
- Сделан так, что длинные рендеры Pocket TTS безопасно восстанавливаются после известной ошибки нулевой длины состояния трансформера модели, повторяя только затронутый сегмент меньшими частями без сохранения частичного аудио.
- Обновлены польский и словацкий каталоги интерфейса и руководства вместе с изменениями на английском.
1.2.3
- Обновлён рендеринг Prose 2000 для использования нативных элементов управления прошивки синтезатора: скорость, высота тона и громкость.
- Удалены инертные варианты Голос и Вариант из диалога опций Prose 2000.
- Сохранён предыдущий путь рендеринга Prose как совместимый запасной вариант для старых установок Prose.
1.2.2
- Обновлены польский и словацкий переводы интерфейса и руководства из issue #11, предоставленные Kazimierz Parzych и DJ Graco.
- Добавлена автоматическая генерация актуального шаблона перевода
soundWave.pot для каждого релиза на GitHub.
- Закрывает issue #11.
1.2.1
- Добавлен выделенный бэкенд рендеринга Prose 2000 с использованием его изолированного нативного хоста.
- Сделано тестирование голоса Prose и финальный рендеринг независимыми от общего перехвата аудио NVDA soundWave, избегая конфликтов с другими аудиодополнениями.
- Добавлена поддержка ускорения скорости Prose вместе со скоростью и громкостью в его опциях soundWave.
1.2.0
- Добавлена опциональная постобработка высоты тона после рендеринга. Она работает с готовым WAV перед финальным экспортом в WAV/MP3/FLAC/M4A, поэтому существующие пути рендеринга синтезаторов остаются без изменений. Настройка отключена по умолчанию, использует шкалу Sonic pitch от 0 до 100 и отображает полный диапазон примерно в -12 до +12 полутонов.
- Добавлена польская и словацкая локализация интерфейса на основе #10 от Kazimierz Parzych и DJ Graco.
- Добавлены польский и словацкий руководства на основе #9 от Kazimierz Parzych.
- Добавлена проверка записи в папку вывода перед началом рендеринга, чтобы недоступные или повреждённые папки быстро завершались с понятной ошибкой SoundWave вместо рендеринга и сбоя при финальном преобразовании.
- Закрывает #7.
- Закрывает #8.
1.1.2
- Добавлен выделенный путь захвата для Orpheus Classic. Теперь soundWave рендерит Orpheus Classic через обычный поток драйвера NVDA, захватывая сгенерированное аудио напрямую, избегая очень короткого вывода, который мог возникать через общий захват NVDA.
- Улучшен рендеринг Orpheus Classic в местах с большими паузами на знаках препинания, включая строки с восклицательными знаками и длинные паузы внутри постов в стиле Mastodon.
1.1.1
- Улучшены длинные рендеры googleTtsForNvda путём использования одного экземпляра моста Google на протяжении всего рендера, использования меньших фрагментов для Google и повторных попыток при сбоях моста Chrome DevTools.
- Изменён диалог прогресса: теперь его можно свернуть с помощью Alt+M. Повторное нажатие команды soundWave восстанавливает прогресс активного рендера вместо открытия второго диалога рендеринга.
- Улучшено отображение затраченного времени и длительности аудио: теперь длительные рендеры показываются в минутах или часах вместо только сырых секунд.
- Восстановлены настройки голоса, варианта, языка, скорости, высоты тона и громкости общего синтезатора NVDA после захвата, чтобы снизить вероятность утечки настроек обратно в работающую речь NVDA.
- Закрывает #5.
1.1.0
- Значительно улучшена поддержка googleTtsForNvda. SoundWave теперь рендерит через мост Google более надёжно, отображает только установленные голоса, работающие через offline-путь рендеринга, повторяет попытку один раз, если страница моста не готова, и отказывается от тихого переключения на другой голос.
- Улучшены предпросмотры googleTtsForNvda путём рендеринга тестовой фразы во временный WAV перед воспроизведением, что позволяет оставлять автоматический предпросмотр включённым без использования живого речевого пути NVDA.
- Улучшен текст прогресса рендеринга googleTtsForNvda, пока soundWave ожидает доставки аудио от Google.
- Улучшен рендеринг Pocket TTS путём пропуска пустых строк ввода и разделения текста на более безопасные сегменты для модели.
- Добавлена чувствительность к концу предложения Pocket TTS в диалог опций синтезатора, когда это доступно.
- Добавлена специальная разбивка для Supertonic, чтобы длинный ввод мог рендериться без превышения лимита размера ввода модели.
- Добавлены FLAC и M4A в качестве выходных форматов при установке ffmpeg и его наличии в системном PATH.
- Изменён выбор формата вывода: теперь одиночные и пакетные рендеры запоминают последний выбранный формат.
- Добавлены настройки для использования формата вывода по умолчанию без отображения диалога сохранения для одиночных рендеров или выбора формата для пакетных.
- Изменено автовоспроизведение для пакетов: теперь завершённые рендеры папок открываются как плейлист, а не воспроизводят только первый файл.
- Изменено автоматическое открытие папки вывода: теперь soundWave не открывает повторно ту же папку в течение одного сеанса NVDA.
- Добавлена панель настроек soundWave в Настройках NVDA для папки сохранения по умолчанию, шаблонов именования и действий после рендеринга.
- Добавлены действия после рендеринга: открыть папку вывода, воспроизвести готовый аудиофайл и управлять отображением сводки рендеринга.
- Добавлена кнопка Открыть папку в сводке завершения рендеринга.
- Добавлен ввод папки для пакетного рендеринга.
- Улучшено именование вывода с отдельными шаблонами для папок одиночных рендеров, файлов одиночных рендеров, пакетных папок и пакетных файлов.
- Улучшены предлагаемые имена выходных файлов: теперь имена выбранных голосов включаются для большего числа путей рендеринга.
- Разделена поддержка специализированных синтезаторов на отдельные модули для SAPI5, DECtalk, BestSpeech, Sonata, Pocket TTS, googleTtsForNvda, Eloquence/IBMTTS, Orpheus и общих путей захвата NVDA.
- Добавлено автоматическое обнаружение Eloquence и IBMTTS, чтобы они рендерились через выделенный путь движка вместо общего пути захвата NVDA.
1.0.4
- Добавлена поддержка рендеринга googleTtsForNvda на основе PR #3 от Ruslan Dolovaniuk.
1.0.3
- Добавлена поддержка высоты тона SAPI5 с использованием нативного XML-тега высоты SAPI.
- Изменён рендеринг SAPI5 WAV: теперь используется формат вывода SAPI по умолчанию для выбранного голоса, где это доступно, вместо принудительного использования 22.05 кГц 16-бит моно.
1.0.2
- Добавлены элементы управления высотой тона и громкостью для Orpheus, Keynote Gold и рендеринга общих синтезаторов NVDA.
- Добавлена поддержка громкости для рендеринга SAPI5.
- Улучшена клавиатурная настройка числовых параметров. Page Up и Page Down теперь изменяют значения с большим шагом, а Home и End переходят к минимальным и максимальным значениям.
- Изменены детали рендеринга на построчный список, чтобы информацию о прогрессе было легче просматривать с экранным диктором.
- Добавлено запоминание того, показывать или скрывать детали рендеринга между сеансами.
- Добавлены имена выбранных голосов в предлагаемые имена выходных файлов, когда SoundWave может определить голос.
- Добавлен доступ к руководству по F1 в диалогах рендеринга soundWave и интерактивные кнопки Справка.
- Улучшены клавиатурные ускорители диалогов, включая кнопки Тест и элементы управления опциями синтезатора.
1.0.1
- Согласована обработка обновлений с дистрибуцией через магазин дополнений NVDA.
1.0.0
Устранение неполадок
- Аудио не создаётся: выбранный синтезатор может не предоставлять аудиопоток, который soundWave может рендерить. Попробуйте другой синтезатор и проверьте журнал NVDA.
- Eloquence или IBMTTS недоступны: установите или обновите соответствующее дополнение NVDA, перезагрузите NVDA и попробуйте снова.
- Orpheus не запускается: переключите текущий синтезатор NVDA на Orpheus, затем снова откройте soundWave.
- WorldVoice не инициализируется: проверьте журнал NVDA на наличие отсутствующих файлов в WorldVoice-workspace. soundWave не может рендерить WorldVoice, пока WorldVoice не загрузится корректно.
- Экспорт в MP3, FLAC или M4A не удаётся: установите ffmpeg и убедитесь, что команда ffmpeg работает из командной строки.
- Рендеринг выглядит зависшим: используйте Отмена. Если проблема повторяется, включите в отчёт имя синтезатора, настройки, тип ввода и соответствующие записи журнала NVDA.