Кейс SimpleIT · Собственный продукт
SIMPLE TRANSCRIBER
Инструмент, который мы построили для себя: записывает созвоны прямо с системного звука Mac, превращает их в текст с разбивкой по говорящим, узнаёт спикеров по голосу и ведёт живую сводку встречи на лету. Один и тот же продукт работает в браузере и как нативное приложение для macOS. Соло, AI-first разработка, которой ежедневно пользуется вся команда студии.
Web + Mac
Браузер · нативный десктоп
Десятки
человек в команде каждый день
99
языков транскрибации
Solo
AI-first разработка
Тип
Собственный продукт
Внутренний инструмент студии
Платформы
Web + macOS
Десктоп под Apple Silicon (Tauri)
Разработка
Solo · AI-first
Один разработчик, с нуля
Использование
Вся команда
Десятки человек ежедневно
01
Контекст и задача
Созвонов много.
Расшифровывать некогда.
Ситуация
Знания тонут в часах аудио
Команда студии целыми днями на созвонах — клиентские встречи, менторские сессии, дейли, стратсессии. Всё важное произносится вслух и тут же теряется: вернуться к решению через неделю можно только пересматривая запись целиком. Расшифровывать вручную дорого, а готовые сервисы отправляют приватные разговоры в чужое облако и не умеют чисто писать системный звук на Mac.
Задача
Свой транскрайбер под контролем
Собрать собственный инструмент, который пишет созвон прямо с динамиков и микрофона, расшифровывает с разбивкой по говорящим, хранит записи в нашем же Google Drive и работает и в браузере, и нативно на Mac. Чтобы любой в команде мог нажать одну кнопку — и получить текст встречи с именами спикеров и краткой сводкой.
02
Вызовы и решения
С чем столкнулись
и как справились
Вызов 1
Записать системный звук Mac без костылей
macOS не даёт приложениям просто так писать звук, который слышит пользователь. Обычный путь — ставить виртуальные устройства вроде BlackHole и вручную собирать aggregate device. Для инструмента «для всей команды» это неприемлемо: никто не должен настраивать аудио-маршрутизацию руками.
→
Решение
Нативный Swift-движок на Core Audio
Отдельный Swift-сайдкар на Core Audio Process Tap на лету создаёт приватное aggregate-устройство, пишет стерео-WAV (L — микрофон, R — системный звук) в реальном времени и сам перекодирует в m4a. Никакого BlackHole и ручной настройки — пользователь просто жмёт «Записать».
Вызов 2
«Кто это сказал» на часовых созвонах
Сплошная стена текста бесполезна: чтобы расшифровка работала, нужно понимать, кто из участников что произнёс. А на регулярных созвонах одни и те же люди — хочется видеть их по именам, а не «Спикер 1 / Спикер 2» в каждой новой записи.
→
Решение
Диаризация + узнавание по голосу
Транскрибация идёт с диаризацией — реплики разбиваются по говорящим с таймкодами. Поверх — идентификация спикеров по голосу (голосовые отпечатки pyannote.ai): один раз назвав человека, система узнаёт его в следующих записях и проставляет имя автоматически.
Вызов 3
Один продукт — браузер и десктоп
Часть команды удобнее открыть вкладку в браузере, часть — хочет нативное приложение с авто-записью созвонов и треем. Поддерживать две разные кодовые базы — значит делать двойную работу и расходиться в функционале.
→
Решение
Storage-абстракция и общий код
Единый слой хранения сам определяет платформу: в вебе данные идут в Google Drive, на десктопе — в локальную синхронизируемую папку Drive. Десктоп собран на Tauri поверх той же кодовой базы; OAuth открывается во внешнем браузере, обходя ограничения WKWebView.
Вызов 4
Понимать встречу, пока она идёт
Расшифровка постфактум — это хорошо, но на длинной стратсессии хочется видеть текст и суть прямо по ходу разговора, а не ждать конца часовой записи.
→
Решение
Live-расшифровка + живая сводка
Режим Live Transcribe стримит текст со спикерами в реальном времени (модель AssemblyAI u3-rt-pro, WebSocket). Параллельно Claude ведёт живую сводку встречи — не переписывает заново, а правит предыдущую версию по мере поступления новых реплик.
Вызов 5
Не потерять часовую запись
Самое обидное — записать важный созвон на час и потерять файл из-за случайного сбоя на финальном шаге. Для внутреннего инструмента это подрывает доверие сразу и навсегда.
→
Решение
Спасение записи при сбое
Перекодирование в m4a отделено от финального «handshake». Если нативный рекордер падает, не успев отдать событие завершения, готовый аудиофайл подбирается прямо с диска, а причина пишется в лог рядом с записью — запись не теряется.
Вызов 1
Системный звук Mac без костылей
macOS не даёт писать слышимый звук просто так; BlackHole и ручной aggregate device — не для всей команды.
→
Решение
Swift-движок на Core Audio
Process Tap создаёт приватное устройство, пишет стерео-WAV (L — микрофон, R — система), сам кодирует в m4a. Без BlackHole.
Вызов 2
«Кто это сказал»
Стена текста бесполезна; на регулярных созвонах нужны имена, а не «Спикер 1/2».
→
Решение
Диаризация + голос
Реплики разбиты по говорящим; узнавание спикера по голосу (pyannote.ai) проставляет имя в следующих записях.
Вызов 3
Браузер и десктоп
Одним удобнее вкладка, другим — нативное приложение с треем. Две кодовые базы — двойная работа.
→
Решение
Общий код + storage-слой
Веб → Google Drive, десктоп → локальная Drive-папка. Десктоп на Tauri поверх той же базы.
Вызов 4
Понимать встречу на ходу
Хочется видеть текст и суть по ходу разговора, а не ждать конца часовой записи.
→
Решение
Live + живая сводка
Live Transcribe стримит текст со спикерами (u3-rt-pro); Claude правит живую сводку встречи на лету.
Вызов 5
Не потерять запись
Потерять часовой созвон из-за сбоя на финальном шаге — подрыв доверия.
→
Решение
Спасение при сбое
Готовый m4a подбирается с диска, даже если рекордер упал до события завершения.
03
Функционал
Что умеет
приложение
Запись
Созвон в один клик
Запись микрофона и системного звука одновременно, осциллограф-визуализация волны, авто-запись созвонов по детекту микрофона. На Mac — нативно, без виртуальных аудио-устройств.
Транскрибация
Текст на 99 языках
Загрузка готовых файлов (MP3, WAV, M4A и др.) или своя запись. Автоопределение языка, выбор модели под задачу — быстрее и дешевле либо точнее (Universal-2 / Universal-3 Pro на AssemblyAI).
Спикеры
Диаризация и имена
Реплики разбиты по говорящим с таймкодами. Узнавание спикеров по голосу: один раз названный человек подписывается автоматически в следующих записях.
Live
Расшифровка в реальном времени
Режим Live Transcribe выводит текст со спикерами прямо по ходу разговора, а Claude ведёт живую сводку встречи — итог готов почти сразу после её окончания.
Хранение
Записи под контролем
Аудио и расшифровки сохраняются в собственный Google Drive (веб) или локальную папку (десктоп). Ярлыки и проекты для группировки, поиск по записям, экспорт в TXT и копирование.
Десктоп
Нативное приложение для Mac
Сборка под Apple Silicon: иконка в трее, запись по горячему сценарию, авто-запись созвонов, работа в фоне. Один и тот же продукт, что и в вебе, — но нативно.
Запись
Созвон в один клик
Микрофон + системный звук одновременно, визуализация волны, авто-запись по детекту микрофона. На Mac — нативно.
Транскрибация
Текст на 99 языках
Загрузка файлов или своя запись. Автоязык, выбор модели (Universal-2 / Universal-3 Pro на AssemblyAI).
Спикеры
Диаризация и имена
Реплики по говорящим с таймкодами; узнавание спикера по голосу проставляет имя автоматически.
Live
В реальном времени
Live Transcribe выводит текст со спикерами на ходу; Claude ведёт живую сводку встречи.
Хранение
Записи под контролем
Google Drive (веб) или локальная папка (десктоп). Ярлыки, проекты, поиск, экспорт TXT.
Десктоп
Нативно для Mac
Apple Silicon: трей, авто-запись созвонов, работа в фоне. Тот же продукт, что в вебе.
04
Экраны продукта
Живые экраны
приложения
05
Технологии
Стек,
на котором держится
Фронтенд
React · Vite · Chakra UI
Лёгкое веб-приложение, аудиоплеер на wavesurfer.js, осциллограф на canvas
Десктоп
Tauri · Rust
Нативное приложение для macOS (Apple Silicon): трей, фон, авто-запись, та же кодовая база
Захват звука
Swift · Core Audio
Сайдкар на Process Tap: приватное aggregate-устройство, стерео-WAV (L — микрофон, R — система), транскод в m4a — без BlackHole
Транскрибация
AssemblyAI
99 языков, диаризация, выбор модели Universal-2 / Universal-3 Pro; стриминг u3-rt-pro для live-режима
Узнавание спикеров
pyannote.ai
Голосовые отпечатки: идентификация говорящих по голосу между записями
AI-сводка
Claude (Anthropic)
Живая сводка встречи — модель правит предыдущую версию по мере новых реплик
Хранение
Google Drive API · OAuth
Записи в собственном Drive (веб) или локальной синхронизируемой папке (десктоп); тихое обновление токена
Инфраструктура
nginx · GitHub Actions
Веб-версия на VPS с автодеплоем; десктоп — подписанная сборка с авто-обновлением
React
Vite
Chakra UI
Tauri
Rust
Swift
Core Audio
AssemblyAI
pyannote.ai
Claude
Google Drive API
GitHub Actions
06
Команда и подход
Соло.
AI-first.
Solo · Full-stack
Дмитрий Золотухин
Весь продукт в одиночку: веб и десктоп, нативный Swift-движок захвата звука, AI-пайплайны транскрибации и узнавания спикеров, инфраструктура и дистрибуция.
Пользователи
Команда Simple IT
Десятки человек используют инструмент ежедневно — расшифровка клиентских встреч, менторских сессий и внутренних созвонов стала рутиной в один клик.
AI-first разработка
Продукт уровня «нативный аудио-движок + AI-пайплайн + кроссплатформенная сборка» построен одним разработчиком по AI-first методологии: AI-инструменты на каждом шаге — архитектура, код, тесты, ревью, документация. Тот же подход мы применяем в клиентских проектах, и здесь он позволил закрыть объём продуктовой команды силами одного человека.
Старт
Окт 2025
Веб-приложение
Транскрибация с диаризацией, автоопределение языка, хранение записей в Google Drive.
Период
Зима 2026
Имена и проекты
Управление именами спикеров и ярлыки-проекты для группировки записей.
Период
Весна 2026
Live, голос и десктоп
Live-расшифровка (стриминг), идентификация спикеров по голосу (pyannote), нативный Swift-движок захвата и десктоп на Tauri.
Сейчас
Лето 2026
Живая сводка и надёжность
Живая сводка встреч через Claude, спасение записей при сбоях. Инструмент в ежедневной работе команды и продолжает развиваться.
07
Результаты
Что получилось
Десятки
человек в команде
пользуются инструментом ежедневно — расшифровка созвонов стала рутиной в один клик
2
платформы из одной базы
веб и нативный десктоп для macOS на общей кодовой базе — без дублирования функционала
0
внешних аудио-костылей
нативный захват системного звука на Mac без BlackHole и ручной настройки устройств
Контроль данных
Записи остаются у нас
Приватные клиентские и внутренние созвоны хранятся в собственном Google Drive студии, а не в чужом облаке транскрибационного сервиса.
Инженерия
Нативный аудио-движок
Swift-сайдкар на Core Audio Process Tap пишет системный звук и микрофон одновременно — уровень, который обычно остаётся за рамками «внутренней утилиты».
Скорость
Часы аудио → текст
Часовой созвон превращается в структурированную расшифровку с именами говорящих и сводкой — без ручного труда и без потери знаний после встречи.
Работаем с вами
Хотите свой
AI-продукт?
Построим продукт с нуля: нативные интеграции, AI-пайплайны, кроссплатформенную сборку и инфраструктуру. Тем же AI-first подходом, что и собственные инструменты студии — от прототипа за дни до продукта в ежедневной работе.
SIMPLEIT