С момента выхода версии 1.0 нам чаще всего задавали два вопроса: «Можно ли использовать Vext на испанском?» и «Почему в расшифровке совещания до сих пор путаются спикеры, когда люди перебивают друг друга?»

1.2.0 закрывает оба.

Теперь весь интерфейс доступен на пяти языках. А движок диаризации совещаний претерпел фундаментальное архитектурное изменение — добавился второй офлайн-проход, который пересматривает всю запись после её окончания и заново перераспределяет метки спикеров с чистого листа. Результат заметно лучше для быстрых перекрёстных разговоров.

Вот что изменилось.

Интерфейс стал мультиязычным — как и сайт

Диктовка всегда работала на любом языке — тут Whisper делает своё дело. А вот само приложение не было локализовано: боковая панель, настройки, онбординг, меню, запросы разрешений. Всё, что вы читаете, а не произносите.

1.2.0 исправляет это. Полный интерфейс теперь доступен на английском, испанском, русском, хинди и тайском. Приложение автоматически подстраивается под язык системы macOS, или вы можете зафиксировать конкретный язык в Настройки → Основные — переключается мгновенно, без перезапуска.

Сайт обновился соответственно. Если вы рекомендовали Vext коллегам, которые не работают на английском, теперь вы можете отправить их туда, где говорят на их языке.

Больше языков в пути. Это был фундаментальный релиз — инфраструктура перевода готова, и добавить новый язык — дело перевода одного файла.

Отдельная вкладка «Спикеры»

Управление спикерами переехало из расшифровок совещаний в собственный раздел боковой панели.

Вкладка «Спикеры» показывает всех, кого Vext запомнил по голосу за все ваши совещания. Можно переименовать любого спикера, выбрать один из 8 цветов значка, или — самое полезное — объединить две записи в одну. Если Vext со временем принял одного человека за двух разных спикеров, можно свернуть их: побеждает более качественный голосовой профиль, и на каждом следующем совещании объединённая личность будет распознаваться корректно.

Нажмите на любого спикера — правая панель отфильтрует только те совещания, где он присутствует. Нажмите на строку совещания — и вы сразу там окажетесь. Для тех, кто записывает много регулярных встреч — стендапы, звонки с клиентами, командные ревью — это делает управление «кто есть кто» реально удобным, вместо того чтобы каждую неделю заново размечать одни и те же лица.

Двухпроходная диаризация: то, что реально чинит совещания

Изначально распознавание спикеров работало в одном потоковом проходе. Каждый фрагмент аудио размечался по мере поступления — по одному эмбеддингу на фрагмент. Это быстро, но есть структурная слабость: оживлённая перебранка и наложение голосов ломают его. 30-секундный фрагмент с четырьмя сменами спикера получал одну метку. Два похожих голоса в начале звонка могли слиться до того, как у движка накопится достаточно данных, чтобы отличить их.

1.2.0 добавляет второй проход, который запускается после окончания совещания.

Как только предварительная расшифровка сохранена, Vext возвращается к полному потоковому аудио через более тщательный пайплайн — pyannote Community-1 для сегментации, эмбеддинги WeSpeaker с маскированием фреймов перекрытия и байесовское уточнение VBx. Он пересматривает каждый фрагмент и переназначает его в глобально лучший кластер, затем записывает исправленные метки обратно в расшифровку. Если распознаёт известного спикера — обновляет его голосовой профиль в базе, и следующие совещания становятся ещё точнее.

Вам ничего делать не нужно. Исправленная расшифровка просто появляется. Временные аудиоархивы удаляются сразу после завершения уточнения.

Это важнее всего именно для тех совещаний, где диаризация раньше спотыкалась: продуктовые ревью с быстрой итерацией, звонки с клиентами, где с их стороны три человека, любое совещание, где у двоих похожие голоса или они регулярно перебивают друг друга.

Разделение смен спикеров внутри одного фрагмента

Есть и связанное улучшение самого прохода живой записи.

Раньше, если один VAD-фрагмент содержал несколько смен спикеров, он расшифровывался одним блоком под одной меткой спикера. Офлайн-проход в итоге исправлял атрибуцию, но расшифровка выглядела неправильно, пока вы ещё были на совещании.

1.2.0 распознаёт смену спикеров внутри фрагмента прямо во время записи. Когда на таймлайне два разных спикера в одном аудиосегменте, Vext разрезает его в точке смены и расшифровывает каждую реплику отдельно. Очень короткие всплески менее 300 мс поглощаются соседним отрезком — не нужно, чтобы расшифровка распадалась из-за шума Sortformer — но реальные смены спикеров теперь отображаются корректно в реальном времени, а не только после завершения офлайн-прохода.

Улучшения надёжности

Несколько вещей, которые молча ломались и больше не ломаются.

Горячие клавиши возвращаются после сна. Глобальный перехват клавиатуры мог устаревать после сна, быстрой смены пользователя или определённых системных таймаутов — по-прежнему считал себя активным, но тихо пропускал события. Теперь он чисто переустанавливается при пробуждении и отслеживает случаи, когда macOS отключает его автоматически.

Убрано эхоподавление. В предыдущих версиях к микрофонному входу применялся Apple VoiceProcessingIO. Этот API меняет общее аппаратное состояние и пропускает AGC и шумоподавление в любое другое приложение, читающее тот же микрофон — видеозвонки, записывающий софт, всё остальное, что запущено. Записи совещаний захватывают аудио участников через отдельный тап системного аудио, так что микрофон и звук звонка уже физически разделены. Эхоподавление там никогда не требовалось, а его удаление устраняет ситуацию, когда Vext незаметно ухудшает звук вашего голоса в других приложениях во время записи совещания.

Переделаны настройки. Боковая панель настроек заменена сегментированным переключателем: Основные, Горячие клавиши, Аудио и STT, Язык и LLM, Лицензия, О программе. Чище и проще ориентироваться на небольших экранах.

Обновление

brew upgrade muvon/tap/vext

Или скачайте Vext 1.2.0 напрямую. Существующие совещания и профили спикеров сохраняются — офлайн-проход диаризации запустится автоматически при следующем открытии совещания, записанного до этого обновления.

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

Скачать Vext 1.2.0