Еще одна статья про whisper + pyannote для транскрибации совещаний? Да, но нет.Это сказ скорее про то, что в 2025-2026 году тот, кто раньше не кодил, может а скЕще одна статья про whisper + pyannote для транскрибации совещаний? Да, но нет.Это сказ скорее про то, что в 2025-2026 году тот, кто раньше не кодил, может а ск

Как я решил проблему длинных совещаний вайбкодингом и китайской видеокартой

19fddc83cef6c18d964e8b7489f311a5.png

Еще одна статья про whisper + pyannote для транскрибации совещаний? Да, но нет.

Это сказ скорее про то, что в 2025-2026 году тот, кто раньше не кодил, может а скорее и должен(если ему конечно это в кайф) разрабатывать продукты под себя, свою команду, именно те, что нужны а не брать что дают...

Предыстория: Или как я устал писать протоколы

Привет. Я продакт-менеджер в Д**софт — компании, которая занимается банковской автоматизацией. До сентября 2025 года мой максимум в коде был на уровне "сделать выборку в MS SQL/Postgre SQL" и "написать формулу в Excel". Как то еще с института не зацепило меня именно программирование, и поэтому мой жизненный путь примел меня в продакты b2b-enterprise.

А продакт в enterprise это не только метрики, разработка стратегии продукта, это еще длинные периоды, запуска продукта. И когда ты ведёшь крупный проект для банка, у тебя 5-10 совещаний ежедневно: с командой, с заказчиком(ну вот такая у них культура, совещаться по каждому поводу), с архитекторами. И вот тут случилось то, что случается со всеми кто слишком много сидят на созвонах.

Я начал от дуреть не только от количества созвонов, а еще и от количества протоколов, к которым надо еще и возвращаться, а так же доносить до команды.

И вот ты час на повышенных/пониженных тонах провел совещание, а потом ещё бедняга менеджер проекта или аналитик пишет протокол, потому что банк скажет на следующей неделе "ну мы же вам уже это говорили".

71204273b7ae2c3a76d907b5004ae414.jpg

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

В сентябре я решил: хватит. Сейчас 2025 год, у нас есть LLM, есть Claude, ChatGPT, есть куча open-source моделей. Неужели нельзя автоматизировать эту фигню?

Спойлер: можно. Но путь был... не быстрым.

Вдохновение: Друг без IT-бэкграунда и криптобот

Но сначала небольшая предыстория.

Что вообще подтолкнуло продакт-менеджера лезть в код?

В августе мой друг Антон рассказал, что написал торгового бота для крипты. И работает. Ну, не всегда в плюс, но это детали. Самое удивительное — Антоха к IT вообще никакого отношения не имел. Он предприниматель. До этого момента не видел ни строчки кода.

Но он просто открыл Claude Code, начал задавать вопросы, разбираться в документации API бирж, и за два месяца собрал рабочую систему: подключение ну, не к Binance а к децентрализованным биржам, технический анализ графиков, автоматические сделки, логирование в Telegram.

Это меня поразило. Если человек без технического бэкграунда может накодить торгового бота с нуля, то почему я, продакт с пониманием архитектуры и бизнес-логики, не могу решить свои проблемы кодом?

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

Этап 0: Погружение в вайбкодинг (сентябрь-ноябрь 2025)

До того как взяться за транскрибацию совещаний, мне нужно было разобраться как Claude Code работает, и отладить основные узлы в решении Ui, Запись видео, работу с DOCKER, и RAG. В сентябре я открыл Claude Code и начал с простых проектов:

Проект 1: RAG для корпоративной почты

Первая идея была амбициозная: сделать поиск по почте через Telegram. У нас нет SMTP доступа к почте (корпоративные ограничения), только Outlook. Пришлось разбираться с COM API — это отдельный круг ада для новичка.

  • Настроил подключение к Outlook через win32com (Python)

  • Собрал все письма в локальную базу

  • Запустил embedding

  • Сделал простой RAG pipeline на n8n

  • Добавил Telegram-бота для запросов ("Найди о чем мы с Татьяной общались по такому то вопросу")

Решение получилось перегруженным: долгая индексация, медленный поиск, Telegram UI неудобный. Но как первое прикосновение к RAG и пониманию, как работают embeddings и vector search — бесценно. Плюс познакомился с n8n для оркестрации workflow.

Проект 2: Плагин для Outlook на C#

Вторая задача была проще, но интереснее: я хотел, чтобы в Outlook можно было вставлять ссылки на встречи одним кликом (как делает плагин Zoom, но для наших внутренних платформ, а так же для Telemost).

  • Погрузился в C# вайбкодинг

  • Создал Outlook Add-in через VSTO

  • Генерирую ссылки из заранее подготовленного списка

  • Добавляю их в календарное приглашение автоматически по иконке в Outlook

Получилось круто: теперь не нужно каждый раз копировать ссылку вручную. C# оказался удобнее, чем я думал, и Claude Code отлично помогал с синтаксисом и API Outlook, и отладкой.

Главное открытие: вайбкодинг — это не "написать идеальный код с первого раза", а "быстро собрать рабочий прототип и итеративно улучшать". Для продакта это родная стихия.

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

Этап 1: POC на CPU, или "Почему 8 ядер — это медленно"

Первая версия была классическим MVP:

  1. Записываем совещание через плагин для Crome (вдохновился этой статьей https://habr.com/ru/articles/785850/) Дальше этот плагин стал моим ui ядром

  2. Извлекаем аудио через FFmpeg

  3. Прогоняем через Faster-Whisper для транскрибации (русский язык)

  4. Делаем speaker diarization через pyannote.audio (кто когда говорил)

  5. Склеиваем транскрипт с таймингом и спикерами

  6. Отправляем в Claude API для генерации протокола

Звучит просто? На бумаге — да. В реальности, ну в принципе тоже да...

Проблема №1: CPU — это боль

Мой рабочий ПК: AMD Ryzen7, 8 ядер, 16 потоков. Казалось бы, неплохо. Но когда я прогнал первое часовое совещание:

  • Faster-Whisper (модель medium): ~40-80 минут

  • pyannote.audio (diarization): ~35-50 минут

  • Мерджинг и обработка: ~3-5 минут

  • Claude API (генерация протокола): ~1 минута

Итого: почти полтора-два часа на обработку одного часового совещания, да еще и RAM эта конструкция выжирает столько сколько дашь. Пришлось докупить еще дополнительно 32 GB ОЗУ к уже имеющимся.

Когда у тебя несколько совещаний в день, это превращается в проблему. Я мог запустить обработку и уйти пить кофе (долгий кофе), но это не масштабируется.

Проблема №2: Speaker diarization путает людей

pyannote.audio выдавал generic labels: SPEAKER_00, SPEAKER_01, SPEAKER_02. Это лучше, чем ничего, но в протоколе хочется видеть "Иван Петров сказал...", а не "SPEAKER_00 сказал...". А если попробовать порубить часовое аудио на кусочки по 15 минут, чтобы работало быстрее и не жрало так память, то на 5 спикеров получится 20 SPEAKER, так как диаризатор просто определяет говорящего, но не знает что Тетя Маша в первом куске это та же Тетя Маша во втором.

Решение: добавил опциональный модуль speaker recognition через SpeechBrain (ECAPA-TDNN embeddings). Заранее нарезал сэмплы голосов коллег, доработав плагин для Crome, чтобы он выводил кусочки голосов, основываясь на уже обработанном видео (по 5-7 отрывков по 40-60 секунд), и теперь система сравнивает embeddings и заменяет SPEAKER_00 на реальные имена.

Звучит круто, но это добавило ещё 10-15 минут на CPU. Итого: больше 2 часов на часовое видео.

На этом моменте я понял: нужна GPU.

Архитектура POC на CPU. Красным выделены узкие места.
Архитектура POC на CPU. Красным выделены узкие места.

Этап 2: Tesla V100 с AliExpress, или "Квест с переходником и драйверами"

Я начал гуглить GPU для ML. NVIDIA RTX 4090? 150-200 тысяч рублей. RTX 3090? 50-100 тысяч. А3080? Всё равно дорого для экспериментов.

Но потом я наткнулся на объявления Tesla V100 на AliExpress. 10 000 рублей. 16GB HBM2. 5120 CUDA cores. Архитектура Volta, которая поддерживает CUDA и работает с PyTorch/Whisper.

Подвох? Конечно есть:

  1. Это серверная карта (форм-фактор PCIe, нужно охлаждение, взял водянку 3-4 тысячи.)

  2. Нет видеовыходов (pure compute)

  3. Требует переходник PCIe (продавался отдельно еще 3-4 тысячи)

  4. Доставка из Китая 3-4 недели

Я заказал. Ждал месяц. Карта пришла, я подключил через переходник к PCIe слоту, включил ПК и... ничего не произошло.

Проблема №3: Драйверы отказывались работать

Windows не видел карту. Я установил NVIDIA Driver, потом CUDA Toolkit 11.8, потом cuDNN. Перезагрузки, переустановки, танцы с бубном. Ошибки типа:

CUDA device not found

RuntimeError: CUDA initialization failed

Потратил неделю на форумы. И о чудо ответ меня ждал тоже на AliExpress. Оказалось, проблема была в:

  1. Неправильной версии драйвера: Tesla V100 требует поверх драйвера NVIDIA Data Center, еще и драйвер с сайта гугла https://docs.cloud.google.com/compute/docs/gpus/grid-drivers-table

  2. Настройки BIOS: Нужно было включить "Above 4G Decoding" для корректной работы

После правильного драйвера и настроек BIOS — заработало!

86b401605758f08459cb415124501212.jpg

Теперь запускаю nvidia-smi:

+-----------------------------------------------------------------------------+ | NVIDIA-SMI 525.60.11 Driver Version: 525.60.11 CUDA Version: 12.0 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 Tesla V100-PCIE... Off | 00000000:01:00.0 Off | Off | | N/A 42C P0 38W / 250W | 0MiB / 16384MiB | 0% Default | +-------------------------------+----------------------+----------------------+

Красота! За 17 тысяч рублей получил полноценную ML-карту.

Этап 3: Результаты на GPU — с 2 часов до 4 минут

После перехода на GPU (CUDA) производительность выросла невероятно.

Этап обработки

CPU ( 16 потоков)

GPU (Tesla V100)

Ускорение

Faster-Whisper (medium)

~80 мин

~3-4 мин

10x

pyannote.audio (diarization)

~50 мин

~3-5 мин

8-10x

Speaker Recognition (optional)

~15 мин

~4-5 мин

3x

Claude API (генерация)

~3 мин

~1 мин

1x

ИТОГО для 1 часа видео

~2 часа

~4-5 минут

20x+

Это изменило всё. Теперь я мог обработать совещание практически в реальном времени.

Этап 4: Chrome Extension и автоматизация всего

Теперь, когда обработка была быстрой, я решил автоматизировать весь процесс. Проблема: как записывать совещания?

Zoom/Teams имеют встроенную запись, но:

  • Не все совещания проходят в Zoom (банки используют свои платформы — внутренние видеоконференции, Telemost, и другие)

  • Не у всех есть права на запись

  • Файлы сохраняются в облако, а мне нужно локально

Решение: Chrome Extension для записи видео прямо из браузера.

b82ac848d20683423727a3fa0866eee2.jpg

Я взял за основу MediaRecorder API для записи экрана, доработал под свои нужды:

  1. Запись видео: Пользователь открывает совещание в браузере, кликает на иконку расширения, выбирает вкладку для записи

  2. Автосохранение: После остановки записи видео автоматически сохраняется в указанную папку на Яндекс.Диске (общая, на нее смотрит транскрибатор)

  3. Разметка участников (optional): Можно вручную указать, кто присутствовал поверх уже транскрибированного видео, поменять в протоколе участников, прослушать кусочки аудио, чтобы понять, кто это такой.

  4. Обрезка аудиодорожек (optional): Возможность вырезать сегменты для обучения speaker recognition

fe94b03f120401baa7d8f1b9043c8e7a.png

Расширение я раздал менеджерам проекта и аналитикам. Теперь workflow такой:

End-to-end workflow от записи до протокола
End-to-end workflow от записи до протокола

Этап 5: А что если я не могу быть на встрече, но хочу записать ее ?

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

Начал делать новую фичу Meeting Auto Capture Автоматическое присоединение к совещаниям через Playwright, и запись через FFmpeg.

Процесс выглядел следующим образом:

  1. Я посылал приглашение с рабочей почты, на свой ящик в Яндекс

  2. Приглашения автоматом падали в определённую папку

  3. Новые письма в папке отслеживал мой сервис, и формировал json для шедуллера

  4. Шедуллер определял что за провайдер конференции по ссылке, и запускал Playwright с необходимой настройкой

  5. На встречи по умолчанию везде входил под собой, так что выглядело все так, как буд-то я на встрече но молчу (выглядит странно, но там, где я не основной спикер, вполне допустимо)

На этот сервис я потратил неделю "по вечерам". И понял, что Телемост и ZOOM неплохо защищен от таких записей ботом, и периодически вываливается в капчу. А вот сервисы, которые используют банки прекрасно пишутся, и без присутствия, под моим логином, как CISCO, так и новые модные Российские.

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

Поэтому решил дальше класть все не себе в голову а в голову к LLM, а точнее в RAG.

RAG для поиска по совещаниям (в процессе)

Текущая система решает проблему "написать протокол здесь и сейчас". Но есть другая проблема: как найти информацию из прошлых совещаний?

UPD: На момент публикации статьи RAG Pipeline уже частично реализован — RAGFlow развёрнут и проходит тестирование. Ниже описываю архитектуру.

Представь ситуацию: прошло 3 месяца, у тебя уже 100+ совещаний обработано. Тебе нужно вспомнить:

  • "О чём мы говорили с заказчиком по поводу интеграции платёжного модуля в марте?"

  • "Какие сроки называл им на прошлой неделе, и что они ответили?"

  • "Кто отвечал за миграцию данных в проекте для банка?"

Решение: RAG Pipeline

Я планирую добавить RAGFlow — open-source фреймворк для семантического поиска по документам. Идея:

  1. После обработки совещания загружать транскрипт + протокол в RAG базу

  2. Использовать Contextual Retrieval (техника Anthropic): добавлять контекст к каждому чанку перед embedding

    • Пример: "Встреча: Интеграция платёжного модуля - технические требования, Дата: 2025-03-09, Участники: Иван Петров, Мария Иванова"

  3. Индексировать через Elasticsearch + Infinity vector DB с гибридным поиском (dense + sparse)

  4. Использовать BGE-M3 (мультиязычная embedding модель) для векторизации, разверну ее на своей же видеокарте

  5. Применять bge-reranker-v2-m3 для точности поиска (top-20 → top-5) тоже на своей видеокарте

  6. Генерировать ответы через Claude Sonnet 4.5 с цитатами из источников (Дальше когда отлажу можно будет заменить на gpt-oss-20b, думаю докупить вторую Tesla V100, и подключить обе через NV-Link, будет 2 видеокарты, на одной крутим LLM на другой остальную мелочевку)

Пример запроса:

Q: "Что обсуждали на встрече с заказчиком 9 марта про интеграцию платёжного модуля?" A: "На встрече 2025-03-09 с заказчиком обсуждались следующие вопросы по интеграции: 1. Иван Петров (SPEAKER_00) сказал: 'Нужно завершить интеграцию до 15 марта' [00:15:32] 2. Мария Иванова (SPEAKER_01) уточнила: 'У нас есть два варианта - синхронный и асинхронный' [00:16:45] 3. Решение: Используем синхронный вариант для основных операций, асинхронный для фоновых задач. Источник: meeting_20250309_143022_payment_integration.avi Полный протокол: /data/results/meeting_20250309_143022/protocol.md"

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

4abf870933a797fea4dc49e4d8737277.png

Внедрение: Как менеджеры полюбили Extension

После того как всё заработало, я раздал Chrome Extension менеджеру проекта и аналитикам (те, кто общается с заказчиками на стороне банка). Протоколы нужны всем, но никто не любит их писать.

Пока отзывы от коллег положительные, но сдержанные, так как само протоколирование без нормального поиска по нему это процентов 30 успеха.

Уроки и выводы

Что я узнал за эти месяцы:

  1. Вайбкодинг работает: Даже без классического образования разработчика, но с архитектурной и продуктовой насмотренностью можно собрать систему(вся система работает как микросервисы на своих портах), если есть мотивация и Claude/GPT под рукой.

  2. GPU меняет всё: Разница между CPU и GPU в ML-задачах — это не 2x, а 10-20x. Инвестиция в Tesla V100 за 17k окупилась за неделю по сэкономленному времени.

  3. Open-source — сила: Faster-Whisper, pyannote.audio, SpeechBrain, FastAPI, Docker — всё это бесплатно и работает отлично. Единственный платный компонент — Claude API (который планирую заменить так же на открытую модель).

  4. Микросервисы > монолит: Разбиение на сервисы упростило разработку. Каждый сервис можно тестировать отдельно. А главное разрабатывать новый сервис гораздо проще, не приходится перетестировать все остальное.

  5. Пользователи важнее технологий: Менеджеры не хотят разбираться в diarization и embeddings. Им нужен простой UI, годится и Chrome Extension и готовый протокол действий. Остальное — абстракция.

  6. Итеративность: Начал с простого POC на CPU, потом добавил GPU, потом speaker recognition, потом Chrome Extension, потом Docker. Если бы пытался сделать всё сразу — забросил бы.

  7. Качество транскрипции: Удивился насколько Whisper может хреново сделать транскрипцию(Долго все дружно смеялись над некоторыми расшифровками, особенно если использовать small а не medium версию). Но потом удивительно, насколько большая LLM плюет на то, что там хрен пойми что написано, и довольно точно улавливая смысл пишет годный протокол.

Заключение

Если бы мне в сентябре сказали, что через 4 месяца я буду покупать видеокарты на AliExpress, разбираться в CUDA драйверах и деплоить микросервисы на Docker, я бы не поверил.

Но вайбкодинг — это именно про такие неожиданные путешествия. Начинаешь с проблемы ("устал писать протоколы"), а заканчиваешь с системой, которой пользуется вся команда.

Главный инсайт: Не нужно быть Senior Developer, чтобы решать реальные проблемы кодом. Нужна проблема, мотивация, и готовность гуглить/спрашивать Claude, или Google когда что-то не работает.

Если у вас похожая задача (транскрибация, протоколирование, автоматизация рутины) — пишите в комментариях, обсудим. Код проекта лежит на GitHub, можете посмотреть и использовать для своих нужд.


P.S. Tesla V100 за 17k — это всё ещё лучшая моя покупка 2025 года.

Если ищете бюджетную ML-карту — рекомендую.


Ссылки:

  • GitHub репозиторий проекта

  • Faster-Whisper

  • pyannote.audio

  • SpeechBrain

  • RAGFlow

Источник

Отказ от ответственности: Статьи, размещенные на этом веб-сайте, взяты из общедоступных источников и предоставляются исключительно в информационных целях. Они не обязательно отражают точку зрения MEXC. Все права принадлежат первоисточникам. Если вы считаете, что какой-либо контент нарушает права третьих лиц, пожалуйста, обратитесь по адресу service@support.mexc.com для его удаления. MEXC не дает никаких гарантий в отношении точности, полноты или своевременности контента и не несет ответственности за любые действия, предпринятые на основе предоставленной информации. Контент не является финансовой, юридической или иной профессиональной консультацией и не должен рассматриваться как рекомендация или одобрение со стороны MEXC.

Вам также может быть интересно

Генеральный директор Helius Labs заявляет, что программная модель Solana гораздо безопаснее для ИИ, чем интерфейсная модель EVM.

Генеральный директор Helius Labs заявляет, что программная модель Solana гораздо безопаснее для ИИ, чем интерфейсная модель EVM.

Генеральный директор Helius Labs Мерт Мумтаз, чья компания предоставляет инфраструктуру и инструменты для разработчиков Solana, заявил в публикации на X, что программная модель Solana
Поделиться
Cryptopolitan2026/01/13 05:55
Цифровые активы фиксируют отток в размере 454 миллионов $ за неделю на фоне исчезновения надежд на снижение ставки ФРС

Цифровые активы фиксируют отток в размере 454 миллионов $ за неделю на фоне исчезновения надежд на снижение ставки ФРС

Ландшафт цифровых активов претерпел шокирующее развитие за последнюю неделю. В частности, потоки цифровых активов зафиксировали совокупный отток в размере 454 млн $
Поделиться
Coinstats2026/01/13 06:00
Fitch Ratings указывает на «высокий риск рыночной стоимости» ценных бумаг, обеспеченных Bitcoin

Fitch Ratings указывает на «высокий риск рыночной стоимости» ценных бумаг, обеспеченных Bitcoin

Fitch заявил, что резкие колебания цены Bitcoin могут быстро разрушить обеспечение залога
Поделиться
Coinstats2026/01/13 05:46