Свой локальный транскрибатор под Claude: CPU-only, без облачных ASR

Оффлайн-разговоры повисают без нормальной расшифровки: Zoom и Meet закрыты своими ассистентами, а для всего остального готового нет. Поэтому я сделал свой — и отдаю репозиторий.

Свой локальный транскрибатор под Claude: CPU-only, без облачных ASR

С онлайн-созвонами проблема транскрибации вроде решена: в Zoom, Meet и прочих платформах уже встроены AI-ассистенты, которые сами пишут расшифровку и саммари. А всё, что происходит вне этих платформ, — живой разговор в комнате, запись на диктофон, интервью, оффлайн-встреча — повисает. Инструмента, в который можно просто закинуть аудио и получить нормальный диалог со спикерами, под рукой не оказалось. Либо облако, куда надо отдавать свою запись, либо возня.

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

Где у транскрибации дырка

Платформы для видеозвонков закрыли расшифровку внутри себя — и на этом успокоились. Zoom и Meet дают ровно столько, сколько видно в их окне: записал встречу внутри платформы — получил транскрипт. Выйдя из платформы, вы остаётесь с аудиофайлом и ничем.

Для онлайна это работает. Для всего остального — нет. Оффлайн-встреча, записанная на диктофон; интервью, снятое на телефон; разговор в переговорке, который записали «на всякий случай» — всё это превращается в файл, который надо расшифровать. Готового инструмента для этого нет. Есть облачные ASR-сервисы, куда вы загружаете свою запись и надеетесь, что она там не оседает навсегда. Есть разрозненные скрипты на faster-whisper, которые надо собирать руками. Есть отдельные диаризаторы, которые надо прикручивать отдельно от распознавания. Единого контура, в который закинул аудио и получил читаемый диалог, не было.

Дырка ровно в этом: между «записал разговор» и «прочитал расшифровку» нет одного шага. Есть пять — и каждый надо знать.

Что делает транскрибатор

CPU-only, бесплатные модели, без облачных ASR. На выходе — Markdown-диалог со спикерами и таймкодами. Не сплошная простыня текста, а разложенный по репликам разговор, который сразу можно читать и скармливать дальше.

REST API и MCP — чтобы ваш AI-клиент сам ставил задачи, ждал и читал расшифровку. Смысл MCP-обвязки именно в этом: не вы руками дёргаете транскрибацию и потом копируете результат, а клиент (тот же Claude) сам отправляет аудио на обработку, дожидается и забирает готовый диалог в контекст.

Что внутри

  • faster-whisper на CPU (int8) — распознавание речи без GPU, в целочисленной квантизации, чтобы крутилось на обычном процессоре.
  • Диаризация: sherpa или pyannote — разметка «кто говорит», на выбор один из двух движков.
  • Языки en / ru / mixed (multi) — английский, русский и смешанный режим для разговоров, где языки перемешаны.
  • Одноразовые ссылки на загрузку — удобно заливать аудио с телефона через Claude.ai: получил ссылку, закинул файл, ссылка сгорела.
  • Аудио после обработки удаляется — всё остаётся у вас на машине, запись не оседает в облаке и не живёт на сервере дольше, чем нужно для обработки.

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

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

Обычный поток без MCP: открыть терминал, положить файл, запустить скрипт, дождаться, скопировать результат, вставить в чат с Claude. Пять ручных шагов, из которых четыре — ожидание и перекладывание.

С MCP клиент сам ставит задачу на транскрибацию, дожидается и забирает готовый Markdown-диалог в контекст. Вы можете скинуть аудио с телефона через одноразовую ссылку в Claude.ai — и дальше клиент сам отправит его на обработку, дождётся и отдаст вам расшифровку. Руками ничего копировать не надо.

Как запустить

Репозиторий: https://github.com/dobryakov/local-transcribe-audio-mcp

Если вы тоже хотели «просто свой транскрибатор под Claude» и вас не пугает чуть-чуть линукса — забирайте, поднимается обычным путём через docker compose.

Если у вас на диске лежат записи разговоров, которые вы собирались расшифровать «когда-нибудь» — теперь у вас есть инструмент, а у «когда-нибудь» больше нет отговорки.

Leave a Reply

Your email address will not be published. Required fields are marked *