Как расшифровать 56-минутный созвон за 5 минут на Mac M: локальное решение без облаков

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

Как расшифровать 56-минутный созвон за 5 минут на Mac M: локальное решение без облаков

Многие разработчики и менеджеры проводят по несколько созвонов в день, и договорённости, принятые на встречах, легко теряются без текстовой расшифровки. Обычные методы — запись через OBS с захватом экрана — нагружают процессор, ухудшают качество звука и не дают автоматической диаризации. Автор статьи на Хабре столкнулся с этой проблемой и собрал локальное решение для Mac на M-чипе, которое не требует облачных сервисов и подписок. В этой статье мы разберём, как превратить 56-минутный созвон в текст всего за 5 минут, используя бесплатные и платные инструменты, работающие полностью на вашем устройстве.

Локальный стек: Audio Hijack + mlx-whisper + pyannote

В основе решения лежит платная утилита Audio Hijack от Rogue Amoeba с разовой лицензией без подписки. Она записывает системный звук в MP3 без захвата экрана, не нагружая процессор. Для транскрибации используется mlx-whisper — реализация Whisper от OpenAI, оптимизированная для нейронного движка Apple Silicon (MLX). Веса модели large-v3-turbo загружаются с Hugging Face. Диаризацию, то есть разметку говорящих, выполняет pyannote. Весь код автор выложил в открытом репозитории mac-call-transcribe под лицензией MIT, что позволяет любому желающему использовать и модифицировать решение.

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

Audio Hijack захватывает аудиопоток из браузера — будь то Google Meet, Яндекс Телемост, ktalk или Zoom — и сохраняет его в один MP3-файл. Затем скрипт запускает mlxwhisper, который конвертирует аудио в текст в формате VTT. После этого pyannote анализирует аудиодорожку и присваивает каждой фразе метку SPEAKERXX. На 56-минутном созвоне с пятью участниками весь процесс занял около пяти минут. Диаризация, по словам автора, работает «крайне плохо» на встречах с большим числом участников, но для небольших групп результат приемлем. Если вам нужна идеальная разметка говорящих, придётся дорабатывать модель вручную.

Почему mlx-whisper быстрее стандартного Whisper?

Основное преимущество mlx-whisper — оптимизация под нейронный движок Apple Silicon. Стандартный openai-whisper на том же оборудовании работает в 2-3 раза медленнее, так как не использует все ядра Neural Engine. MLX-версия задействует GPU и Neural Engine одновременно, что даёт значительный прирост производительности. Для 56-минутного аудио разница во времени обработки составляет от 10-15 минут у стандартного Whisper до 5 минут у mlx-whisper. Это особенно важно для тех, кто регулярно расшифровывает длинные встречи.

Технические подробности и замеры

Автор протестировал решение на двух реальных созвонах. Первый — 56 минут, 5 участников, транскрипция заняла 5 минут. Второй — 32 минуты, 3 участника, обработка — 3 минуты. Использовалась модель large-v3-turbo, инференс на GPU Mac. Для сравнения: стандартный openai-whisper на том же оборудовании работает в 2-3 раза медленнее. MLX-версия использует все ядра Neural Engine, что даёт прирост производительности. Скрипты доступны на GitHub, автор обещает дополнять документацию. Если вы хотите повторить эксперимент, вам понадобится Mac с M-чипом, установленный Python и несколько гигабайт свободного места для моделей.

Кого затронет и как

Решение ориентировано на разработчиков и технических специалистов, которые работают на Mac с M-чипом и хотят автоматизировать расшифровку созвонов без отправки аудио в облако. Для пользователей Windows или Intel-чипов этот стек не подойдёт — mlx-whisper требует ARM-архитектуры. В России и СНГ, где популярны Яндекс Телемост и ktalk, решение особенно актуально, так как не использует зарубежные облачные сервисы. Бизнес может сэкономить на подписках на транскрибацию, например Otter.ai или Fireflies.ai, но потеряет в качестве диаризации. Если вам нужна точная разметка говорящих, возможно, придётся комбинировать локальное решение с облачными сервисами.

Что будет дальше

Автор планирует улучшить диаризацию, возможно, заменив pyannote на более точную модель. Также он рассматривает добавление поддержки других браузеров и форматов аудио. В перспективе можно ожидать появления готовых сборок или GUI-оболочек для менее технических пользователей. Пока же решение остаётся нишевым инструментом для тех, кто готов настраивать окружение вручную. Если вы хотите внести свой вклад, автор открыт для pull request'ов на GitHub.

Итог

Связка Audio Hijack и mlx-whisper позволяет быстро и локально расшифровывать созвоны на Mac M-серии, экономя время и не жертвуя конфиденциальностью. Несмотря на проблемы с диаризацией, это лучший бесплатный (с учётом разовой лицензии на Hijack) вариант для тех, кто не хочет отдавать данные в облако. Следите за репозиторием mac-call-transcribe — возможно, скоро появятся обновления. Если вы разработчик или менеджер, который ежедневно участвует в созвонах, это решение может сэкономить вам часы ручной работы.