Всем привет! Команда Microsoft Research выложила в открытый доступ VibeVoice-ASR — нейросетевую модель для распознавания речи с диаризацией (разделением) спикеров. Сегодня хочу рассказать об этой технологии подробнее и поделиться портативной версией.

Меня зовут Илья, я основатель сервиса для генерации изображений ArtGeneration.me, блогер и просто фанат нейросетей. А ещё я собрал портативную версию VibeVoice ASR под Windows и успел её как следует протестировать.

Whisper которому уже года три
Whisper которому уже года три

Я сам пользуюсь Whisper уже много лет — делаю транскрипции своих видео, чтобы потом собрать оглавление для YouTube и использовать материал в текстовых статьях. И скажу честно — никогда не был полностью доволен результатом. Да, Whisper быстрый. Но на этом его достоинства для меня заканчивались.

Поэтому к изучению VibeVoice ASR я подошёл со всей ответственностью — протестировал на разных записях, сравнил качество, покрутил настройки.

Главная особенность системы в том, что она обрабатывает до 60 минут аудио за один проход без нарезки на чанки. На выходе — структурированная транскрипция с указанием кто говорит, когда и что именно сказал. И всё это работает локально на вашем компьютере.

Как это работает

В основе VibeVoice-ASR лежит архитектура на базе Qwen 2.5 (~9 млрд параметров). Ключевая инновация — двойная система токенизации с ультранизким frame rate 7.5 Hz: акустический и семантический токенизаторы.

Такой подход позволяет модели работать с контекстным окном в 64K токенов — это и даёт возможность обрабатывать целый час аудио без потери контекста. Для сравнения: Whisper режет аудио на 30-секундные кусочки и теряет связность на границах сегментов.

На выходе модель генерирует Rich Transcription — структурированный поток с тремя компонентами:

[{"Start":0,"End":1.51,"Content":"[Environmental Sounds]"},

{"Start":1.51,"End":7.49,"Speaker":0,"Content":"У неё преждевременное сохранять невозможно, родила, начала сразу родильная деятельность."},

{"Start":7.51,"End":9.41,"Speaker":1,"Content":"Марина, что с ней?"},

{"Start":10.28,"End":16.22,"Speaker":0,"Content":"У неё преждевременное сохранять невозможно, отошли годы, начала, начала сразу родовая деятельность."},

{"Start":16.22,"End":18.02,"Speaker":1,"Content":"Марина, что с ней?"},

{"Start":18.13,"End":27.94,"Speaker":0,"Content":"Она рожает, привезли в ближайшую больницу родовую. В каком состоянии ребёнок ещё хуже, срок маленький."},

Помимо спикеров, модель размечает неречевые события: [Music], [Silence], [Noise], [Human Sounds] (смех, кашель), [Environmental Sounds], [Unintelligible Speech]. Это сделано чтобы модель не галлюцинировала текст во время пауз или фоновой музыки.

Возможности VibeVoice ASR

Меньше значит лучше
Меньше значит лучше
  • Обработка длинных записей: до 60 минут аудио за один проход без потери контекста. Идеально для митингов, подкастов, лекций.

  • Диаризация спикеров: автоматическое определение кто говорит в каждый момент времени. Работает на записях с несколькими участниками.

  • Временные метки: точные таймкоды для каждого сегмента речи. Готовый материал для субтитров.

  • Customized Hotwords: вот что меня реально зацепило — возможность задать пользовательский контекст. Перед распознаванием указываешь список слов: фамилии, названия продуктов, термины, сокращения. Всё то, что обычно произносится нестандартно и превращается в кашу. Если в видео часто звучит "ArtGeneration" или "НЕЙРО-СОФТ" — просто добавляешь в контекст, и модель ВСЕГДА распознаёт корректно. Для технического контента — просто спасение.

  • 51 язык: включая русский, хотя основной фокус на английском и китайском.

Набор языков отличный
Набор языков отличный

Модели

Помимо оригинальной модели от Microsoft, сообщество уже сделало квантованные версии для видеокарт с меньшим объёмом памяти.

Полная модель — microsoft/VibeVoice-ASR Размер 17.3 GB, требует ~8 ГБ VRAM. Лучшее качество распознавания.

4-bit квантизация — scerz/VibeVoice-ASR-4bit Требует ~4 ГБ VRAM, немного медленнее. Подходит для видеокарт с меньшим объёмом памяти.

В моей портативке доступны обе версии — можно выбрать прямо в интерфейсе. Также есть эмуляция 4-bit квантизации для полной модели, если хотите попробовать оригинал, но памяти впритык.

Текущие ограничения

К сожалению, не все задачи система решает одинаково хорошо:

  • Перекрывающаяся речь: если два человека говорят одновременно, модель не разделит их корректно.

  • Короткие фрагменты: диаризация плохо работает на высказываниях менее 1 секунды.

  • Только batch processing: нет real-time режима, только обработка готовых файлов.

  • Ресурсоёмкость: требует достаточно мощную видеокарту для комфортной работы.

Кому это пригодится

Подкастерам и интервьюерам: автоматические субтитры с разделением спикеров. Загрузили часовой выпуск — получили готовую разметку.

Создателям контента: генерация SRT-субтитров для YouTube без ручного тайм-кодирования.

Бизнес-аналитикам: транскрипция часовых созвонов и совещаний с сохранением контекста и указанием кто что говорил.

Разработчикам: base model для файнтюнинга под специфичные домены — медицина, юриспруденция, техподдержка.

Как попробовать

Онлайн-демо

Почему-то не додумались сделать парсер json текста
Почему-то не додумались сделать парсер json текста

Онлайн-демо: https://4e47b675ea4015a607.gradio.live/

Официальное демо от Microsoft — можно потестить прямо сейчас без установки.

Установка с Github

Как-то сложно
Как-то сложно

Официальный GitHub: https://github.com/microsoft/VibeVoice

HuggingFace модель: https://huggingface.co/microsoft/VibeVoice-ASR

Портативная версия

Я с каналом Нейро-Софт подготовил портативную сборку VibeVoice ASR Portable RU. В ней:

  • Русифицированный интерфейс

  • Установка в один клик (install.bat)

  • Поддержка полной и 4-bit моделей

  • Парсер результатов с фильтрацией — можно отдельно включать/выключать временные метки, спикеров, дескрипторы (музыка, шум, тишина). Удобно когда нужен только чистый текст без разметки

  • Фильтр по спикерам — можно вывести текст только конкретного участника разговора

  • Выбор видеокарты и установка нужной версии CUDA

  • Flash Attention 2 для RTX 30xx/40xx/50xx

  • Поддержка всех форматов аудио и видео через FFmpeg

  • Тёмная тема интерфейса

Всё необходимое уже включено в дистрибутив, просто распакуйте и запускайте, есть версия с готовым окружением под win 11 и RTX4090. Забирайте архив тут.

Или установите с GitHub: https://github.com/timoncool/VibeVoice_ASR_portable_ru

Системные требования

  • NVIDIA GPU с 8+ ГБ видеопамяти (или 4+ ГБ для 4-bit модели)

  • Windows 10/11 64-bit

  • 16 ГБ оперативной памяти

  • 10 ГБ свободного места на диске


Распакуйте в любую папку (путь без кириллицы), запустите install.bat, выберите видеокарту из списка. Модели скачаются при первом запуске.


Делитесь в комментариях как вы могли бы использовать такой инструмент и чего не хватает.

А я рассказываю больше о нейросетях у себя на YouTube, в Телеграм и на Бусти. Буду рад вашей подписке и поддержке. Ну и на канал Нейро-Софт тоже подпишитесь, чтобы не пропустить полезные репаки. Всех обнял и удачных транскрипций!

Комментарии (13)


  1. vb64
    03.02.2026 16:32

    без cuda работает?


    1. VT100
      03.02.2026 16:32

      Или - на старой cuda? Скажем - 3.0


    1. method2020
      03.02.2026 16:32

      При инсталляции был вариант выбора CPU , наверное, это оно


  1. method2020
    03.02.2026 16:32

    У меня на мобильной rtx4070 8 gb полная застряла, малая выдала ошибку. У кого-нибудь завелась?


  1. den4ik_084720
    03.02.2026 16:32

    А зачем, если есть GigaAM? Она и точнее будет для русского. Да, нету end2end диаризации, но вопрос решаемый


    1. Semyonza
      03.02.2026 16:32

      Как?


  1. Pavel_Shpagin
    03.02.2026 16:32

    Есть проблемы в сборке.

    1. Не объединяет спикеров - нет такой функции (то есть по времени говорит спикер 1, потом снова спикер 1).

    2. На большой файле (видео 500 мб, 55 минут) не может распознать выдает ошибку.
      На большой версии (c квантизацией):

      Traceback (most recent call last):
      File "asyncio\events.py", line 88, in run
      File "asyncio\proactor
      events.py", line 165, in callconnection_lost
      ConnectionResetError: [WinError 10054] Удаленный хост принудительно разорвал существующее подключение
      Incomplete JSON detected (unclosed brackets: 2), attempting to fix
      Failed to parse JSON from transcription: Expecting ',' delimiter: line 1 column 23321 (char 23320)
      На маленькой:

      Incomplete JSON detected (unclosed brackets: 2), attempting to fix
      Failed to parse JSON from transcription: Unterminated string starting at: line 1 column 23138 (char 23137)


    1. Dgbbjjhgv
      03.02.2026 16:32

      А зачем видео закидывать? Надо же звуковую дорожку. Это её транскрибирует llm. [pokerface]


      1. Pavel_Shpagin
        03.02.2026 16:32

        Это шутка? Видео там тоже можно. У меня на виспере все нормально и с видео и с аудио. Транскрибирует встречи в том числе, переделывать в аудио из видео, когда есть возможность этого не делать, странная затея. Но если вы так делаете, супер!


        1. SkylineXXX
          03.02.2026 16:32

          А в примере

          видео?

          Наверное рассчитано, что ни кто не посмотрит. Там какие-то два кретина, каждые 5 сек. на разные лады несут пургу. "Началась рожательная деятельность, в тяжёлом состоянии. Ребенок тоже"


          1. timonin Автор
            03.02.2026 16:32

            Это очень старый мем из российских сериалов.


  1. Xao
    03.02.2026 16:32

    Можно её как-нибудь на маке с М-процессором завести?


  1. einhorn
    03.02.2026 16:32

    Что значит percentage на графике?