Перейти к основному содержимому Главная страница каталога дополнений для NVDA от русскоязычного сообщества NVDA.RU.

Официальный русскоязычный каталог дополнений NVDA

Крупнейший каталог дополнений для программы экранного доступа NVDA, доступный в Интернете

Каталог дополнений от «🇷🇺 Русскоязычного сообщества NVDA.RU.»

AudioEQ (Аудио процессор)

Автор:

Краткое описание

Дополнение AudioEQ - это аудио процессор реального времени с множественными эффектами для NVDA, включающий резонансный фильтр высоких частот (ФВЧ) и низких частот (ФНЧ), четырёхполосный параметрический эквалайзер, общее усиление, компрессор 1176, общий LFO в режимах Free/Trigger для панорамы/ФНЧ/ФВЧ, стерео-хорус, стерео-задержку, стерео-реверберацию и лимитер. Хорус остаётся параллельной посылкой, в то время как задержка и реверберация образуют упорядочиваемую последовательную цепочку посылок; сухой сигнал остаётся на полном уровне, и все влажные возвраты суммируются с точностью до сэмпла в тот же мастер-буфер WavePlayer. Отдельного влажного плеера нет, что предотвращает просачивание старого аудио эффектов под последующую речь. Включает опциональную блокировку аудиоустройства NVDA с учётом пресетов, независимо переключаемые хвосты удержания ворот задержки/реверберации после источника (по умолчанию выключены), 32 заводских пресета, пользовательские пресеты, интеграцию с API Custom Actions и документацию на английском, итальянском, испанском и французском языках. Первый эффект подаётся на вход второму; флажок «Задержка перед реверберацией» выбирает Задержка -> Реверберация при включении и Реверберация -> Задержка при выключении. Параметр Chain Blend 0-100 управляет тем, насколько первый влажный возврат остаётся непосредственно слышимым: 0 сохраняет предыдущий микс, а 100 позволяет слышать первый эффект только через второй. Текущее ограничение: этот выпуск предназначен для 64-битной NVDA и аудиопутей, использующих nvwave/WavePlayer.

⬇ Перейти к подробной справке 🔝 Назад к оглавлению

Основная информация

Название Версия Совместимость с API NVDA Последняя протестированная версия NVDA Минимальная версия NVDA Дата загрузки в каталог Размер Лицензия
audioEQ 1.0.60 2026.1 2026.1.0 2025.0.0 26-09-2026 15:32:06 276 Кб. GPL v2
🔝 Назад к оглавлению

Журнал изменений

Подробнее

1.0.60 TEST60: добавляет Chain Blend 0-100 поверх исправленной базовой версии TEST59. 20-мс речевой FIFO-микшер, интегрированные хвосты задержки/реверберации, совместимость с короткими хвостами IBM ECI <=350 мс, блокировка устройства, модули времени выполнения и планирование не изменены. Chain Blend влияет только на упорядочиваемый последовательный возврат задержки/реверберации, когда оба эффекта активны: 0 точно сохраняет TEST59; увеличение значения постепенно уменьшает прямо слышимый возврат первого эффекта, сохраняя этот первый возврат на полном уровне внутри входа второго эффекта. При 100 первый эффект слышен только через второй эффект, создавая более интегрированную цепочку Задержка -> Реверберация или Реверберация -> Задержка. То же правило применяется к хвостам удержания ворот. Если активен только один из эффектов задержки/реверберации, Chain Blend не влияет на уровень. Существующие пресеты по умолчанию используют 0 и поэтому сохраняют своё прежнее звучание. 1.0.59 TEST59 исправленный релиз-кандидат: исправляет регрессию, внесённую при удалении телеметрии бенчмарка TEST52-55. TEST56 случайно удалил четыре функциональные процедуры речевого FIFO вместе с диагностическим блоком: рендеринг DSP с фиксированными блоками, обнаружение запроса хвоста, создание плана хвоста и рендеринг влажного хвоста. TEST59 восстанавливает эти процедуры точно из проверенной базовой версии TEST55, сохраняя удалёнными NVDA+Alt+B и непрерывную телеметрию бенчмарка. Микшер, поведение 20-мс FIFO, интегрированные хвосты задержки/реверберации, совместимость с короткими хвостами IBM ECI <=350 мс, DSP, пресеты и блокировка устройства в остальном остаются неизменными. Завершает фазу оптимизации/рефакторинга/микшера TEST42-55 без изменения проверенного аудиоповедения TEST55. Команда бенчмарка предмикшера NVDA+Alt+B и вся непрерывная телеметрия бенчмарка удалены из релизного аудиопути. Специализированный примерно 20-мс речевой FIFO-микшер, интегрированные хвосты задержки/реверберации в том же WavePlayer, совместимость с короткими фразами IBM ECI (хвосты подавляются только для фраз IBM длительностью до 350 мс PCM), оптимизированный DSP, блокировка аудиоустройства с учётом пресетов, модуляризация хранилища/устройства/времени выполнения и существующая диагностика времени хвоста остаются неизменными. Обратные вызовы микшера теперь сохраняют только функциональную очистку завершения границ и журналирование ошибок; диагностические отчёты о событиях блоков/постановки в очередь/хвостов отбрасываются. Документация обновлена для описания текущей семантики остановки/новой речи FIFO и правила совместимости с IBM. Эта сборка предназначена как финальная сборка регрессии/релиз-кандидата перед публикацией. 1.0.55 TEST55: совместимость с короткими фразами IBM ECI/IBM TTS поверх TEST54. 20-мс FIFO-микшер, DSP, интегрированные хвосты задержки/реверберации и всё поведение не-IBM синтезаторов не изменены. Только для синтезатора ibmeci FIFO теперь измеряет исходный PCM, накопленный с момента предыдущего простоя речи. Когда хвост задержки/реверберации был бы активен, а фраза IBM содержит более 0, но не более 350 мс исходного PCM, подавляется только хвост после речи; задержка/реверберация остаются полностью активными, пока сама буква/короткая фраза рендерится. Фразы IBM длительностью более 350 мс сохраняют нормальный интегрированный хвост TEST54. Это нацелено на наблюдаемое поведение IBM, когда быстро набираемые буквы или очень короткая навигационная речь могли иметь свой сухой PCM, вытесненный следующим асинхронным хвостом, оставляя слышимым в основном влажный хвост. NVDA+Alt+B записывает mixerTailSuppressedIBMShort с измеренной длительностью фразы и порогом. Явная семантика остановки/сброса не изменена. 1.0.54 TEST54: интегрирует речевые хвосты задержки/реверберации непосредственно в 20-мс FIFO мастер-поток TEST53. Когда речевой простой с включённым хвостом достигает FIFO-воркера, воркер продолжает точные живые памяти StreamProcessor задержки/реверберации с цифровым тихим входом и подаёт влажные блоки в тот же оригинальный WavePlayer до границы нативного простоя; второй плеер, мост обратного вызова завершения или поток на хвост не используются для речевого пути FIFO. Речевой простой с включённым хвостом возвращается асинхронно, соответствуя установленному поведению удержания ворот, в то время как простой с выключенным хвостом сохраняет синхронную барьерную семантику TEST53. Если новый исходный PCM поступает, пока влажные блоки уже в очереди, микшер немедленно вызывает оригинальный WavePlayer.stop, чтобы сбросить только этот нативный влажный backlog, сохраняет состояние DSP задержки/реверберации, отменяет дальнейший рендеринг хвоста и позволяет новому источнику войти в те же памяти эффектов, а не ждать за устаревшей реверберацией. Явная остановка речи остаётся жёстким прерыванием, которое аннулирует как исходную работу FIFO, так и интегрированную работу хвоста, сбрасывает нативное воспроизведение и очищает состояние процессора. Обнаружение затухания/тишины хвоста и жёсткие пределы безопасности повторно используют существующие правила удержания ворот TEST51/1.0.40, но размер блока хвоста теперь следует тому же примерно 20-мс такту микшера. NVDA+Alt+B добавляет события mixerTailStart/mixerTailChunk/mixerTailFlushForSource/mixerTailInterrupted/boundary. Звуки продолжают использовать реализацию удержания ворот TEST51. Уравнения DSP, пресеты, блокировка устройства и маршрутизация в остальном не изменены. 1.0.53 TEST53: первый эксперимент выделенного речевого FIFO-микшера, основанный на TEST52/TEST51. Выбранный речевой PCM копируется на входе WavePlayer.feed и ставится в очередь к одному постоянному воркеру на WavePlayer; исходная подача возвращается, не ожидая нативного буферного пространства. Воркер разбивает каждый исходный буфер на блоки, выровненные по исходным фреймам, примерно по 20 мс перед DSP StreamProcessor, затем подаёт эти блоки по порядку в тот же оригинальный WavePlayer. Оригинальный обратный вызов onDone источника прикрепляется только к финальному нативному подблоку, производному от этой подачи источника. Речевой простой теперь является упорядоченным FIFO-барьером: после того как все предшествующие блоки отправлены, воркер вызывает оригинальный синхронный WavePlayer.idle/sync и освобождает ожидающий поток синтезатора. Остановка речи аннулирует эпоху FIFO, отбрасывает ожидающие исходные блоки и немедленно вызывает оригинальный stop; устаревшие блоки воркера отклоняются после прерывания. Хвосты задержки/реверберации после речи намеренно отключены на речевом пути FIFO TEST53, чтобы обычная речь, обратный вызов, простой и семантика остановки могли быть проверены до добавления хвостов в непрерывный поток микшера. Звуки сохраняют прямой/хвостовой путь TEST51. Диагностика NVDA+Alt+B остаётся и теперь записывает события постановки в очередь/блока/барьера микшера. Уравнения DSP, пресеты, блокировка устройства и маршрутизация в остальном не изменены. 1.0.52 TEST52: только диагностическое продолжение TEST51, подготовка к выделенному дизайну FIFO/микшера. audioRuntime.py теперь ведёт ограниченную скользящую предмикшерную трассировку времени обработанных исходных подач без изменения размеров блоков, уравнений DSP, планирования WavePlayer, констант хвоста или запроса дополнительных нативных обратных вызовов. Трассировка записывает текущий синтезатор, назначение/формат потока, байты и длительность исходного PCM, интервал между приходами исходных подач, временной запас предыдущего блока, время, затраченное конкретно в StreamProcessor.process_split(), время, затраченное на существующий нативный вызов WavePlayer.feed, оценку по стенным часам PCM, всё ещё находящегося в очереди до/после каждой исходной подачи, границы pre_synthSpeak, события idle, stop и onDone, которые TEST51 уже запрашивал. NVDA+Alt+B копирует отчёт, содержащий агрегаты, p95/максимальные времена, итоги по форматам и последние подробные события. Значение очереди явно диагностическое/моделируемое, а не прямой запрос очереди WASAPI. Аудио DSP, блокировка устройства, пресеты, маршрутизация, хвосты задержки/реверберации и всё поведение времени выполнения TEST51 намеренно не изменены. 1.0.51 TEST51: только структурный рефакторинг, основанный на TEST50. Полное время выполнения перехвата nvwave/WavePlayer перемещено из globalPlugins/audioEQ/init.py в выделенный модуль audioRuntime.py: monkey-патчи init/feed/idle/stop WavePlayer, хвосты удержания ворот задержки/реверберации в том же плеере, мост/диспетчер завершения речевого PCM, диагностика времени хвоста, счётчики/статус обработки потока, общие хуки речи/ввода триггера LFO и их жизненный цикл установки/удаления теперь живут вместе за одной явной границей времени выполнения. init.py продолжает владеть настройками, пресетами, UI, Custom Actions и решениями маршрутизации при запуске и предоставляет времени выполнения только обратный вызов снимка настроек, избегая циклических импортов. Политика маршрутизации устройств остаётся в deviceRouting.py, а уравнения DSP остаются в dsp.py. Никакие уравнения DSP, константы планирования хвоста, порядок обратных вызовов WavePlayer, маршрутизация, пресеты или поведение UI намеренно не изменены. 1.0.50 TEST50: только структурный рефакторинг, основанный на TEST49. Перечисление активных WASAPI/MMDevice и его короткий кэш, проверки доступности сохранённого заблокированного устройства, сравнение состояния маршрутизации, пересоздание текущего синтезатора и переинициализация тонов NVDA перемещены из globalPlugins/audioEQ/init.py в выделенный модуль deviceRouting.py. Небольшие обёртки совместимости сохраняют существующий внутренний интерфейс вызовов, в то время как сам хук WavePlayer продолжает обеспечивать выбранную заблокированную конечную точку точно там же, где и в TEST49. Функциональные тесты маршрутизации покрывают перечисление/дедупликацию/кэш конечных точек, разблокированные и заблокированные доступные/недоступные состояния, изменения ключа маршрутизации, изменения только имени устройства и порядок обновления синтезатора/тонов. DSP, storage.py, данные пресетов, элементы управления GUI, планирование хвоста и аудиоуравнения не изменены с TEST49. Никакое аудио, пресеты, семантика блокировки устройства или поведение UI намеренно не изменены. 1.0.49 TEST49: только структурный рефакторинг, основанный на TEST48. Вся обработка папки пресетов, миграция устаревших пресетов, загрузка JSON заводских/пользовательских пресетов, сохранение/переименование/удаление пользовательских пресетов, обработка пути конфигурации и загрузка/сохранение JSON конфигурации перемещены из globalPlugins/audioEQ/init.py в выделенный модуль storage.py. Существующий словарь настроек времени выполнения init.py, блокировка/поколение настроек, места вызова GUI, аудиохуки, DSP, хвосты задержки/реверберации, блокировка аудиоустройства и поведение Custom Actions остаются на месте; небольшие обёртки совместимости сохраняют тот же внутренний интерфейс функций, в то время как реализация разделена. Функциональные тесты хранилища покрывают круговой обмен конфигурации, создание/перезапись/переименование/удаление пресетов, коллизии имён файлов, миграцию устаревшей папки и все 32 заводских пресета. dsp.py, данные заводских пресетов, документация и файлы локализации не изменены с TEST48. Никакое аудио, DSP, маршрутизация, планирование хвоста, формат пресетов или поведение UI намеренно не изменены. 1.0.48 TEST48: только оптимизационное продолжение TEST47. Общее усиление, статическая/динамическая панорама, общий LFO панорамы/фильтра и мастер-лимитер сохраняют точно те же законы усиления, генерацию формы волны, последовательность S&H, сглаживание, продвижение фазы, потолок/восстановление лимитера и сэмпловую арифметику. Инвариантные к блокам значения Master/Pan/Limiter теперь кэшируются локально; общий LFO продвигается с теми же уравнениями в горячем пути блока вместо вызова _next_lfo_value() для каждого фрейма; табличный поиск Pan-LFO встроен; общие пути стереоотображения и пика/выхода моно/стерео лимитера избегают крошечных циклов Python. Регрессионные тесты сравнивают TEST47 и TEST48 на 2004 конфигурациях, включая 8/16/24/32-битный PCM, множество частот дискретизации, моно/стерео потоки, все формы волн LFO, сглаживание, положительную/отрицательную глубину панорамы, LFO фильтра, восстановление лимитера, полные цепочки хоруса/задержки/реверберации/компрессора и хвосты удержания ворот, требуя байт-идентичный PCM и совпадающие постоянные состояния. Никакие пресеты, UI, маршрутизация, планирование хвоста или поведение блокировки аудиоустройства намеренно не изменены. 1.0.47 TEST47: только оптимизационное продолжение TEST46. ФВЧ, все четыре полосы параметрического эквалайзера и ФНЧ сохраняют точно те же коэффициенты биквадратного фильтра, арифметику Direct Form I, обновления состояния по каналам, порядок ступеней и изменения коэффициентов фильтр-LFO на частоте управления. Моно и стерео фильтрация источника теперь выполняет те же уравнения биквадратного фильтра напрямую в StreamProcessor.process_split() вместо вызова BiquadStage.process() для каждой активной ступени фильтра и каждого исходного сэмпла; многоканальный вход использует ту же встроенную арифметику в своём общем пути. Регрессионные тесты сравнивают TEST46 и TEST47 на моно/стерео, 8/16/24/32-битном PCM, множестве частот дискретизации, 0-6 активных ступенях, резонансном ФВЧ/ФНЧ, четырёх ненулевых полосах эквалайзера и модуляции фильтр-LFO, требуя байт-идентичный PCM и совпадающие состояния биквадратного фильтра. Никакие пресеты, UI, маршрутизация, хвосты, компрессор, временные эффекты или поведение блокировки аудиоустройства намеренно не изменены. 1.0.46 TEST46: только оптимизационное продолжение TEST45. Компрессор в стиле 1176 сохраняет точно те же фиксированный порог, драйв входа, режимы соотношения, огибающую атаки/восстановления, внутренний makeup +6 дБ и выходной триммер. Его инвариантные к блокам усиления, показатель соотношения, порог и коэффициенты огибающей теперь кэшируются один раз на блок PCM, моно и стерео пути связанного пика специализированы напрямую, и та же арифметика огибающей выполняется встроенно вместо вызова FETCompressor1176.process_frame() и повторного разрешения атрибутов объекта для каждого исходного фрейма. Регрессионные тесты сравнивают TEST45 и TEST46 на моно/стерео входе, 8/16/24/32-битном PCM, множестве частот дискретизации и настройках входа/выхода/соотношения/атаки/восстановления компрессора, включая окружающую обработку хоруса/задержки/реверберации, с байт-идентичным PCM и состоянием огибающей компрессора. Никакие пресеты, UI, маршрутизация, хвосты или поведение блокировки аудиоустройства намеренно не изменены. 1.0.45 TEST45: только оптимизационное продолжение TEST44. Стерео-задержка сохраняет точно те же время задержки, обратную связь, инъекцию/перекрёстную обратную связь пинг-понга, уровень посылки, последовательную маршрутизацию задержки/реверберации и состояние хвоста удержания ворот. Живой и хвостовой рендереры теперь держат буферы задержки, индекс записи и фиксированные коэффициенты в локальных переменных блока и выполняют ту же пофреймовую арифметику встроенно вместо вызова StereoDelay.process_wet() и повторного разрешения атрибутов объекта для каждого стереофрейма. Регрессионные тесты на 8/16/24/32-битном PCM, 16/22.05/44.1/48 кГц, значениях пинг-понга, настройках обратной связи/времени, обоих порядках задержки/реверберации и рендеринге хвоста дали байт-идентичный PCM по сравнению с TEST44. Никакие пресеты, UI, планирование хвоста, поведение аудиоустройства или уравнения DSP намеренно не изменены. 1.0.44 TEST44: только оптимизационное продолжение TEST43. Стерео-хорус сохраняет точно те же вдохновлённые Juno режимы I, II и I+II, дробно-задержанную интерполяцию, фазы модуляции, влажный ФНЧ в стиле BBD, обработку ширины, маршрутизацию посылки и порядок арифметики. Пофреймовый горячий путь теперь выполняет дробно-задержанные чтения и влажный ФНЧ напрямую вместо повторного вызова _tap(), _read() и _soften_wet(). Рандомизированные регрессионные тесты на всех трёх режимах хоруса, множестве значений глубины/скорости/ширины, частотах дискретизации 16/22.05/44.1/48 кГц, окружающей обработке задержки/реверберации/компрессора и рендеринге удержания ворот дали байт-идентичный PCM по сравнению с TEST43. Никакие пресеты, UI, планирование хвоста, маршрутизация или поведение блокировки аудиоустройства намеренно не изменены. 1.0.43 TEST43: только оптимизационное продолжение TEST42. Стерео-реверберация сохраняет точно ту же сеть Шрёдера, длины буферов гребёнки/всепропускающего фильтра, обратную связь, демпфирование, перекрёстную подачу, маршрутизацию и порядок арифметики, но её шесть гребёнчатых фильтров и две ступени всепропускающего фильтра выполняются встроенно вместо восьми крошечных вызовов методов Python для каждого стереофрейма. Рандомизированные регрессионные тесты, покрывающие реверберацию отдельно, оба последовательных порядка задержки/реверберации, полную цепочку эффектов и рендеринг хвоста удержания ворот, дали байт-идентичный PCM по сравнению с TEST42. Никакие пресеты, UI, планирование хвоста или поведение аудиоустройства намеренно не изменены. 1.0.42 TEST42: только оптимизационная сборка, основанная точно на 1.0.40. Никакие уравнения DSP, маршрутизация эффектов, планирование хвоста задержки/реверберации, пресеты, поведение блокировки аудиоустройства или элементы управления UI намеренно не изменены. Горячий путь снимка настроек теперь использует поверхностные копии вместо copy.deepcopy, поскольку схема настроек содержит только неизменяемые примитивные значения; существующая блокировка и семантика отсоединённого снимка сохранены. Нейтральное повышение моно-в-стерео теперь использует расширенное срезевое чередование bytearray на уровне C вместо пофреймового цикла Python, сохраняя точные байты PCM для 8/16/24/32-битного входа при существенном снижении нагрузки на CPU. 1.0.40 TEST40: только диагностическая сборка на основе TEST39. Никакие DSP, планирование хвоста, глубина очереди, последовательный порядок задержки/реверберации, пресеты или поведение UI не изменены. Добавляет внутреннюю высокоразрешающую временную шкалу для самой последней речевой фразы, записывая pre_synthSpeak, каждую последовательность речевой подачи и длительность PCM, нативный обратный вызов воспроизведения/onDone, WavePlayer.idle, WavePlayer.stop, отмену хвоста, диспетчеризацию/запуск моста и первую подачу хвоста в том же плеере. NVDA+Alt+R делает снимок времени до своей собственной подтверждающей речи и копирует полный отчёт в буфер обмена. Это предназначено для определения, вызван ли перемежающийся разрыв реверберации на коротких фразах поздним простоем, поздним завершением воспроизведения, планированием диспетчера или блокировкой подачи хвоста, вместо продолжения настройки угаданных миллисекундных констант. 1.0.39 TEST39: даёт новому реальному речевому PCM абсолютный приоритет над уже поставленным в очередь речевым хвостовым аудио. TEST38 отменял воркер хвоста, но оставлял его 5-10-мс скользящее влажное окно в WASAPI, поэтому новый набранный символ или короткое слово могли быть поставлены в очередь за остаточной реверберацией и затем отменены следующей фразой NVDA до того, как их сухой PCM был вообще услышан. TEST39 сбрасывает поставленный в очередь хвостовой PCM с помощью оригинального WavePlayer.stop всякий раз, когда поступает новая реальная речь, сохраняя при этом точные памяти DSP задержки/реверберации; новый источник поэтому начинается немедленно и продолжается через то же состояние эффекта. Второй плеер не используется; DSP, последовательный порядок, пресеты и UI не изменены. 1.0.38 TEST38: немедленно пробуждает активное Condition завершения речевого хвоста при отмене хвоста. В TEST37 единственный постоянный диспетчер мог оставаться заблокированным до 10-мс тайм-аута ожидания _doneCond после прихода новой короткой речи, поэтому следующий запрос хвоста иногда начинался примерно на 10 мс позже в зависимости от точной фазы предыдущего хвоста. Отмена теперь устанавливает cancelEvent и уведомляет ожидающее Condition сразу, позволяя диспетчеру немедленно покинуть предыдущий хвост и обслужить новейшую фразу. DSP, памяти задержки/реверберации, последовательный порядок, глубина очереди и UI не изменены. 1.0.37 TEST37: удаляет создание потока SpeechPcmBridgeTail для каждой фразы. Единственный постоянный AudioProcessorSpeechTailDispatcher теперь напрямую владеет каждым скользящим речевым хвостом, пока он не затухнет или новая реальная речевая подача его не отменит, с опросом отмены 10 мс вместо 50 мс. Нативные исходные речевые подачи также сериализуются с I/O подачи/остановки/простоя хвоста через ту же блокировку на плеер, предотвращая одновременный вход быстрых коротких фраз в WavePlayer.feed с отменяющим хвостом. DSP, последовательный порядок задержки/реверберации, пресеты и UI не изменены. Этот тест в первую очередь нацелен на сбои, наблюдаемые при наборе текста, исправлении слов и использовании коротких сообщений статуса/чтения текущего элемента NVDA; оставшийся разрыв речь-хвост намеренно не скрывается реентерабельным I/O обратного вызова. 1.0.36 TEST36: сохраняет 10-мс priming речевого хвоста TEST35, но выносит все вызовы WavePlayer.feed из нативного обратного вызова завершения воспроизведения nvwave. Постоянный демон AudioProcessorSpeechTailDispatcher запускается вместе с дополнением; обратный вызов onDone теперь только публикует последний запрос моста и немедленно возвращается. Уже запущенный диспетчер проверяет последнюю речевую последовательность, primes те же два 5-мс влажных блока на том же WavePlayer, а затем запускает нормальный воркер скользящего хвоста. Сохраняется только новейший ожидающий запрос моста, и блокировка речевой подачи освобождается до нативных вызовов подачи, предотвращая накопление устаревших заданий при быстрой навигации или принуждение нового исходного PCM ждать за блокирующей подачей. Это нацелено на длительную остановку NVDA в TEST35, сохраняя его улучшенную непрерывность речь-реверберация. Никакие DSP, последовательный порядок задержки/реверберации, пресеты или элементы управления UI не изменены. 1.0.35 TEST35: сохраняет DSP TEST34 и последовательный порядок задержки/реверберации неизменными, но primes речевой PCM-мост синхронно. Когда финальный реальный речевой блок завершается, тот же WavePlayer теперь получает начальные два 5-мс влажных блока удержания ворот до запуска потока воркера моста, давая примерно 10 мс поставленного в очередь продолжения и уменьшая разрывы размером с планировщик на границе речь-хвост реверберации. Второй плеер не используется. 1.0.34 TEST34: основан непосредственно на TEST30. Задержка и реверберация больше не являются независимыми параллельными посылками: они теперь образуют последовательную цепочку в стиле посылок, так что первый эффект подаётся на вход второму, в то время как сухой сигнал остаётся на полном уровне. Новый флажок «Задержка перед реверберацией»: Выкл = Реверберация -> Задержка, Вкл = Задержка -> Реверберация. Хвосты удержания ворот следуют тому же выбранному порядку. Хорус остаётся независимой параллельной посылкой. 1.0.30 TEST30: заставляет повторяющиеся ускорители Alt диалога следовать реальному порядку UI через один общий механизм циклического переключения. Alt+P теперь циклически переключает Пресет -> Обработка -> Панорама -> Пресет, начиная с Пресета, когда фокус находится в другом месте. Alt+C теперь циклически переключает Компрессор 1176 -> Стерео-хорус -> Компрессор 1176, начиная с Компрессора, когда фокус находится в другом месте, и рассматривая каждый элемент управления внутри каждой секции как принадлежащий этой секции. Поведение аудио/DSP/хвоста в остальном идентично TEST23. 1.0.23 TEST23: удаляет триггер/сброс фразы NVDA из хоруса/задержки/реверберации. Когда хвосты задержки/реверберации включены, новое произнесённое слово или фраза теперь входит в ту же всё ещё затухающую память временного эффекта вместо её перестроения. pre_synthSpeak больше не останавливает удержание ворот и не вызывает reset_send_memory; существующему хвосту позволяется продолжаться до прихода реального PCM. На этой точной границе подачи подающий хвост отменяется с сохранением состояния задержки/реверберации, так что новая речь продолжается в том же акустическом пространстве. Общий триггер LFO остаётся неизменным и по-прежнему следует своей явной семантике клавиатуры/фокуса. В этом тесте нет второго речевого влажного WavePlayer; он возвращается к обработке в том же плеере TEST21/TEST15 и сохраняет мост завершения PCM для синтезаторов, задерживающих простой. 1.0.21 TEST21: запускает речевое удержание ворот из нативного обратного вызова завершения воспроизведения новейшего реального блока PCM вместо ожидания только логического вызова простоя синтезатора. Это нацелено на речевые драйверы, которые задерживают простой после того, как PCM уже завершён, что могло создавать слышимую дыру перед иначе естественным хвостом задержки/реверберации TEST15. Речевой мост использует тот же WavePlayer и то же существующее состояние задержки/реверберации, со скользящим окном только из двух 5-мс влажных блоков, так что более поздний речевой блок не может сидеть за длинным предварительно отрендеренным хвостом. Новая речь отменяет этот мост без остановки плеера, в то время как звуки намеренно сохраняют точный путь хвоста с запуском от простоя TEST15. 1.0.15 TEST15: добавляет новую экспериментальную систему хвоста удержания ворот в том же плеере для стерео-задержки и стерео-реверберации. Хвост задержки и хвост реверберации — независимые флажки, по умолчанию выключены. При естественном простое существующие памяти DSP задержки/реверберации поддерживаются живыми непрерывной подачей цифрового тихого PCM через тот же WavePlayer; второй влажный плеер не создаётся и состояние эффекта не реконструируется. Длительность хвоста адаптируется к времени задержки/обратной связи и затуханию/размеру реверберации, с фактическим обнаружением уровня тишины и 12-секундным пределом безопасности. Отмена Ctrl/речи всё ещё обрезает сухой источник немедленно, затем выбранные влажные памяти могут затухать; новая фраза отменяет любой старый хвост до своего первого реального буфера, так что устаревшая реверберация не может сидеть под более поздней речью. Первый 10-мс блок удержания primes синхронно, а остаток подаётся из одного демона-воркера, так что NVDA не блокируется, пока играет хвост. Настройки хвоста включены в пресеты и снимки Custom Actions. Также завершает локализацию элементов управления/сообщений блокировки аудиоустройства. 1.0.14 TEST14: добавляет опциональную блокировку аудиоустройства NVDA. Блокировка по умолчанию выключена. При включении выбранная активная конечная точка WASAPI/MMDevice сохраняется как часть полного состояния процессора/пресета и принудительно применяется для каждого nvwave/WavePlayer, так что изменение собственной настройки выходного устройства NVDA не может переместить аудио, пока блокировка остаётся активной. Комбинированный список устройств включается только вместе с блокировкой. Пресеты, чья заблокированная конечная точка недоступна, не применяются: предыдущее полное состояние процессора/маршрутизации остаётся активным, пока селектор пресетов остаётся на недоступной записи, позволяя навигации продолжаться к следующему/предыдущему пресету. Доступность заблокированной конечной точки отслеживается с коротким кэшем, и новое аудио подавляется, если точная конечная точка исчезает, избегая тихого отката к устройству по умолчанию Windows. Изменения маршрутизации пересоздают текущий синтезатор и плеер тонов, используя тот же шаблон обновления, что и аудионастройки NVDA. 1.0.13 TEST13: Alt+P теперь циклически переключает фокус между панорамой и комбинированным списком пресетов, соответствуя существующему циклу секции Alt+C. Компрессор 1176 теперь применяет фиксированное внутреннее makeup-усиление +6 дБ всякий раз, когда включён; существующий параметр выхода 1176 остаётся дополнительным выходным триммером, так что все заводские и пользовательские пресеты на основе компрессора автоматически восстанавливают воспринимаемый уровень без правок на пресет. 1.0.12 TEST12: расширяет триггер LFO до ручного ввода с клавиатуры плюс реальных изменений элементов управления. Каждый жест клавиатуры без модификатора (включая стрелки в тексте, команды навигатора объектов, NVDA+Tab, набор текста и обычные сквозные клавиши) вооружает ровно один общий перезапуск LFO для следующей речи, вызванной этим действием. gainFocus всё ещё срабатывает для автоматических изменений фокуса системы/NVDA, и независимые изменения becomeNavigatorObject также срабатывают. Say All перезапускается один раз при нажатии своей клавиатурной команды, затем продолжается без повторного срабатывания на автоматически сгенерированной речи, если не происходит реальное изменение элемента управления/объекта. 1.0.11 TEST11: изменяет триггер LFO с каждой речевой фразы на каждый новый сфокусированный элемент управления/объект NVDA. Событие gainFocus (например, другой файл/элемент списка, кнопка, поле редактирования или флажок) вооружает общий перезапуск LFO, который потребляется немедленно перед речью для этого элемента управления; несвязанные речевые сообщения больше не перезапускают его. Сброс также очищает сохранённую память непрерывности LFO, так что фаза 0 надёжна даже после простоя/остановки WavePlayer. 1.0.10 TEST10: добавляет режим LFO с Free и Trigger. Free сохраняет существующую непрерывную фазу LFO через речевые сообщения. Trigger перезапускает общий LFO панорамы/ФНЧ/ФВЧ с фазы ноль непосредственно перед каждой новой речевой фразой NVDA; сглаживание и состояние S&H также перезапускаются, без какого-либо обратного вызова конца аудио. 1.0.9 TEST9: добавляет независимые элементы управления резонансом 0-100 к ФНЧ и ФВЧ. Существующий модуляционный LFO теперь общий для панорамы, ФНЧ и ФВЧ, с независимыми знаковыми элементами управления глубиной -100..+100; отрицательная глубина фильтра меняет фазу LFO на противоположную, а полная шкала охватывает четыре октавы. Резонанс 0 сохраняет предыдущий отклик фильтра, и все более старые пресеты остаются совместимыми. 1.0.8 TEST8 добавил знаковую глубину LFO панорамы. 1.0.7 TEST7: сохраняет хорус, задержку и реверберацию как параллельные посылки, но удаляет независимый влажный WavePlayer. Влажные возвраты теперь суммируются с точностью до сэмпла в тот же мастер-буфер, что и 100% сухой сигнал, устраняя устаревшее аудио реверберации/задержки, которое могло просачиваться под более позднюю речь при быстрой навигации. Мастер-лимитер теперь видит полную сумму сухого плюс посылок. Сохраняет закон панорамы с центром 0 дБ и отсутствие хвостов после речи. 1.0.6 TEST6 удалил генерацию хвоста после речи. 1.0.5 TEST5 ввёл посылку хоруса и закон панорамы с центром 0 дБ. 1.0.3 TEST3 ввёл параллельные посылки задержки/реверберации. 1.0.1 добавил публичный API интеграции Custom Actions.

🔝 Назад к оглавлению

Скачать

AudioEQ-V.1.0.60.nvda-addon

⬇ Перейти к истории версий 🔝 Назад к оглавлению

Информация о локализации на русский язык

🔝 Назад к оглавлению

Разделы

🔝 Назад к оглавлению

Справка

Подробнее

Аудио процессор 1.0.60

Автор: Lo-lo

Аудио процессор — это многозвучный процессор реального времени для аудио NVDA. Он перехватывает аудио, отправляемое через путь nvwave/WavePlayer NVDA, и может обрабатывать речь, звуки NVDA или и то, и другое.

Процессор включает резонансный фильтр высоких частот (ФВЧ) и низких частот (ФНЧ), четырёхполосный параметрический эквалайзер, общее усиление, лёгкий компрессор в стиле 1176, общий LFO с независимыми элементами управления глубиной панорамы/ФНЧ/ФВЧ, стерео-хорус, стерео-задержку, стерео-реверберацию и лимитер.

Текущее ограничение: версия 1.0.34 предназначена для 64-битной NVDA. Она может обрабатывать только аудио, которое достигает NVDA через путь nvwave/WavePlayer. Описанная ниже диагностическая кнопка поможет убедиться, что поток перехватывается.

Языки и терминология

Интерфейс и документация дополнения доступны на английском, итальянском, испанском и французском языках. Английский является исходным/резервным языком.

Стандартная аудио/DSP-терминология и названия заводских пресетов намеренно остаются на английском во всех локалях, как в обычных VST-плагинах. Текст взаимодействия с NVDA, сообщения, состояния, ошибки и пояснения переведены.

Быстрый старт

  1. Нажмите NVDA+Alt+E, чтобы открыть Аудио процессор.
  2. Оставьте флажок Обработка аудио включена установленным.
  3. Выберите, обрабатывать Все аудио NVDA , Только речь или Только звуки.
  4. Попробуйте заводской пресет из комбинированного списка «Пресет». Пресеты применяются немедленно, поэтому название пресета слышно через только что загруженное звучание.
  5. Используйте ОК , чтобы сохранить текущие настройки. Используйте Отмена или закройте диалог, чтобы восстановить состояние, которое было активно при открытии диалога.

Глобальные сочетания клавиш NVDA

Сочетание Действие
NVDA+Alt+E Открыть Аудио процессор
NVDA+Alt+Q Включить/выключить Аудио процессор

Все остальные действия процессора доступны в разделе «Жесты ввода» NVDA в категории Аудио процессор. Они включают переключатели, выбор следующего/предыдущего и действия увеличения/уменьшения для отдельных параметров. У них нет жеста по умолчанию, пока вы его не назначите.

Главный диалог

Используйте Tab и Shift+Tab для перемещения по элементам управления. Изменения применяются на лету, поэтому следующая речь слышна с текущими настройками.

Блокировка аудиоустройства NVDA

Заблокировать аудиоустройство NVDA по умолчанию выключена, поэтому NVDA меняет аудиоустройства как обычно. Когда флажок установлен, Tab перемещается к Аудиоустройство , которое перечисляет текущие активные физические конечные точки вывода. Аудио процессор сохраняет выбранную конечную точку MMDevice/WASAPI как часть полного состояния процессора и принудительно направляет новые WavePlayer NVDA на эту конечную точку. Пока блокировка активна, изменение устройства вывода в настройках NVDA не перемещает фактический аудиопуть Аудио процессора. Выключение блокировки немедленно возвращает управление маршрутизацией NVDA.

Блокировка и выбранная конечная точка сохраняются в пользовательских пресетах и снимках Custom Actions. Если пресет требует заблокированную конечную точку, которая в данный момент недоступна, Аудио процессор объявляет Аудиоустройство недоступно и не применяет ни одну часть этого пресета: ранее активное состояние процессора и маршрутизации остаётся неизменным. Селектор пресетов остаётся на недоступном пресете, поэтому следующее нажатие стрелки может продолжить к следующему или предыдущему пресету.

Комбинированный список пресетов

Комбинированный список «Пресет» содержит Текущие настройки , 32 заводских пресета и любые пользовательские пресеты, которые вы создадите. Перемещение стрелками немедленно загружает выбранный пресет. Если вы вручную измените любой параметр процессора, список возвращается к Текущим настройкам.

Заводские пресеты

Названия заводских пресетов остаются на английском на всех языках.

Эквалайзер / голос

Динамика

Стереоэффекты / пространство

Числовые поля

Числовые параметры — это редактируемые комбинированные списки. Вы можете ввести значение напрямую; принимаются как запятая, так и точка в качестве десятичного разделителя. Изменения с клавиатуры применяются на лету.

Локальные сочетания клавиш диалога

Сочетание Фокус / функция
Alt+Q ФНЧ
Alt+W ФВЧ
Alt+1 Частота полосы 1
Alt+2 Частота полосы 2
Alt+3 Частота полосы 3
Alt+4 Частота полосы 4
Alt+V Общее усиление
Alt+P Циклическое переключение фокуса в порядке диалога: Пресет, Обработка,

Панорама
Alt+C| Циклическое переключение фокуса в порядке диалога: Компрессор 1176, Стерео-хорус
Alt+D| Стерео-задержка
Alt+R| Стерео-реверберация
Alt+L| Лимитер
Alt+A| Выбрать меньший шаг для числового параметра в фокусе
Alt+S| Выбрать больший шаг для числового параметра в фокусе
Ctrl+S| Сохранить текущее состояние процессора как именованный пользовательский пресет

Makeup 1176: когда компрессор включён, применяется фиксированное внутреннее makeup-усиление +6 дБ. Выход 1176 остаётся дополнительным триммером.

Секции обработки и диапазоны параметров

Порядок сухой обработки: ФВЧ → 4-полосный параметрический эквалайзер → ФНЧ → Общее усиление → Компрессор 1176 → Панорама/LFO панорамы → Лимитер. Стерео- хорус остаётся параллельной вспомогательной посылкой. Стерео-задержка и стерео-реверберация образуют упорядочиваемую последовательную цепочку посылок после панорамы/LFO панорамы: первый эффект остаётся слышимым и также подаётся на вход второму, в то время как сухой сигнал остаётся на полном уровне. Задержка перед реверберацией Выкл = Реверберация → Задержка; Вкл = Задержка → Реверберация. Chain Blend управляет тем, насколько первый эффект остаётся непосредственно слышимым, когда оба эффекта активны: 0 сохраняет предыдущий микс возврата, а 100 позволяет слышать первый эффект только после прохождения через второй. Все влажные возвраты суммируются с точностью до сэмпла обратно в тот же мастер-буфер WavePlayer.

Параметр Диапазон / варианты Назначение
ФНЧ 20–20000 Гц Срезает высокие частоты выше выбранной частоты среза.
Резонанс ФНЧ 0–100 Подчёркивает частоты вокруг частоты среза ФНЧ. 0

сохраняет предыдущий нейтральный отклик фильтра.
Частота полосы 1–4| 20–20000 Гц| Центральная частота каждой полосы параметрического эквалайзера.
Усиление полосы 1–4| -24 до +24 дБ| Подъём или срез для каждой полосы. При 0 дБ полоса нейтральна.
Q полосы 1–4| 0.1–20| Управляет шириной полосы: меньшие значения шире, большие значения уже.
ФВЧ| 20–20000 Гц| Срезает низкие частоты ниже выбранной частоты среза.
Резонанс ФВЧ| 0–100| Подчёркивает частоты вокруг частоты среза ФВЧ. 0 сохраняет предыдущий нейтральный отклик фильтра.
Общее усиление| -60 до +12 дБ| Общий уровень перед динамикой и стереоэффектами.
Вход 1176| -12 до +24 дБ| Сильнее или слабее нагружает компрессор в стиле 1176 с фиксированным порогом.
Выход 1176| -24 до +24 дБ| Выходное/makeup-усиление после компрессии.
Атака 1176| 20–800 микросекунд| Время атаки компрессора.
Восстановление 1176| 50–1100 мс| Время восстановления компрессора.
Соотношение 1176| 4:1, 8:1, 12:1, 20:1, All| Степень компрессии; All — самый сильный режим.
Панорама| -100 до +100| Статическое положение влево/вправо. 0 — центр.
Форма волны LFO| Синус, треугольник, пила, квадрат, S&H| Форма волны, используемая для автоматического стереодвижения.
Режим LFO| Free, Trigger| Free поддерживает работу общего LFO непрерывно. Trigger перезапускает фазу, сглаживание и состояние S&H один раз для каждого ручного действия с клавиатуры (например, стрелки в тексте, команды навигатора объектов, NVDA+Tab или набранные клавиши) и для реальных изменений фокуса/элементов управления. Say All срабатывает один раз при нажатии своей команды, затем LFO продолжается свободно через автоматически генерируемое чтение; он перезапускается снова только после другого действия с клавиатуры или реального изменения фокуса/навигатора объектов.
Скорость LFO| 0.01–80 Гц| Скорость общего модуляционного LFO.
Сглаживание LFO| 0–100| Смягчает резкие переходы, особенно с пилой, квадратом и S&H.
Глубина LFO панорамы| -100 до +100| Величина и полярность автоматического движения панорамы. 0 отключает движение LFO; отрицательные значения инвертируют фазу/полярность LFO.
Глубина LFO ФНЧ| -100 до +100| Модулирует частоту среза ФНЧ общим LFO. Отрицательные значения инвертируют фазу; полная шкала охватывает четыре октавы.
Глубина LFO ФВЧ| -100 до +100| Модулирует частоту среза ФВЧ общим LFO. Отрицательные значения инвертируют фазу; полная шкала охватывает четыре октавы.
Режим хоруса| I, II, I+II| Выбирает один из вдохновлённых Juno режимов стерео- хоруса.
Глубина хоруса| 0–100| Величина модуляции хоруса.
Скорость хоруса| 0–100| Скорость модуляции хоруса.
Ширина хоруса| 0–100| Стереоширина влажного сигнала хоруса.
Посылка хоруса| 0–100| Величина, отправляемая на параллельную вспомогательную шину стерео-хоруса; сухой уровень не изменяется.
Хвост задержки| Вкл / Выкл| По умолчанию выключен. Поддерживает существующую память задержки живой после окончания исходного аудио.
Задержка перед реверберацией| Вкл / Выкл| Выкл направляет Реверберация → Задержка. Вкл направляет Задержка → Реверберация. Первый влажный возврат также подаётся на вход второму эффекту.
Chain Blend| 0–100| Когда оба эффекта, задержка и реверберация, активны, постепенно уменьшает прямой возврат первого эффекта, сохраняя его полностью присутствующим на входе второго. 0 сохраняет предыдущий микс; 100 позволяет слышать первый эффект только через второй. Не влияет на уровень, когда активен только один из двух эффектов.
Время задержки| 1–1000 мс| Время задержки.
Обратная связь задержки| 0–95| Величина задержанного сигнала, подаваемого обратно в задержку.
Посылка задержки| 0–100| Величина, отправляемая на параллельную вспомогательную шину стерео-задержки; сухой уровень не изменяется.
Пинг-понг задержки| 0–100| Величина движения перекрёстной обратной связи влево/вправо.
Хвост реверберации| Вкл / Выкл| По умолчанию выключен. Поддерживает существующую память реверберации живой после окончания исходного аудио.
Размер реверберации| 0–100| Кажущийся размер комнаты/пространства.
Затухание реверберации| 0.1–5 секунд| Длительность затухания реверберации.
Демпфирование реверберации| 0–100| Управляет демпфированием высоких частот в реверберации.
Посылка реверберации| 0–100| Величина, отправляемая на параллельную вспомогательную шину стерео-реверберации; сухой уровень не изменяется.
Потолок лимитера| -24 до 0 дБ| Максимальный потолок выхода.
Восстановление лимитера| 1–2000 мс| Как быстро усиление лимитера возвращается после снижения пиков.

Селектор обработки

Стереообработка

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

Поведение посылок и хвостов: хорус, задержка и реверберация остаются параллельными посылками, и их живые влажные возвраты смешиваются в тот же исходный WavePlayer. Хвост задержки и хвост реверберации независимы и по умолчанию выключены. Когда они включены, Аудио процессор не создаёт второй влажный плеер и не реконструирует эффект: после окончания исходного аудио он поддерживает ту же память задержки/реверберации, продвигая её цифровым тихим PCM на том же WavePlayer. Длительность следует за временем задержки/обратной связью и затуханием/размером реверберации, с обнаружением тишины и пределом безопасности. Для речи, использующей FIFO-микшер, явный Ctrl/stop является жёстким прерыванием: поставленная в очередь речь и включённые влажные хвосты сбрасываются немедленно. Когда новая речь поступает естественно, пока хвост затухает, устаревшее поставленное в очередь влажное аудио сбрасывается, но память задержки/реверберации сохраняется, так что новая фраза входит в то же акустическое состояние, не ожидая за хвостом. IBM ECI/IBM TTS использует одно правило совместимости: фразы длительностью 350 мс PCM или меньше не запускают хвост задержки/реверберации после речи, в то время как эффекты остаются полностью активными во время самой фразы; более длинная речь IBM использует нормальные хвосты.

Сообщить формат перехваченного аудио

Кнопка Сообщить формат перехваченного аудио объявляет информацию о самом последнем перехваченном потоке, включая назначение речь/звуки, частоту дискретизации, разрядность, количество каналов и текущее состояние обработки. Это полезно при тестировании синтезатора или аудиоконфигурации.

DSP поддерживает перехваченные потоки PCM с 8, 16, 24 или 32-битными сэмплами.

Пользовательские файлы

Основная конфигурация процессора хранится в папке конфигурации пользователя NVDA. Пользовательские пресеты — это файлы JSON, хранящиеся в подпапке presets внутри локализованной папки Аудио процессора:

Имя папки соответствует текущему языку интерфейса NVDA. Если вы измените язык NVDA и захотите иметь те же пользовательские пресеты на новом языке, скопируйте файлы JSON пресетов в папку пресетов Аудио процессора для этого языка.

Примечания

🔝 Назад к оглавлению

История версий

История версий
Версия файлаТестируемая версия NVDAМинимальная версия NVDAРазмер файла (КБ)Ссылка на загрузку
1.0.602026.1.02025.0.0276AudioEQ-V.1.0.60.nvda-addon
0.3.92026.1.02026.1.055AudioEQ-V.0.3.9.nvda-addon
0.2.62026.1.02026.1.044AudioEQ-V.0.2.6.nvda-addon
0.2.22026.1.02026.1.040AudioEQ-V.0.2.2.nvda-addon
🔝 Назад к оглавлению