Кейс 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». Если нативный рекордер падает, не успев отдать событие завершения, готовый аудиофайл подбирается прямо с диска, а причина пишется в лог рядом с записью — запись не теряется.
03

Что умеет
приложение

Запись
Созвон в один клик
Запись микрофона и системного звука одновременно, осциллограф-визуализация волны, авто-запись созвонов по детекту микрофона. На Mac — нативно, без виртуальных аудио-устройств.
Транскрибация
Текст на 99 языках
Загрузка готовых файлов (MP3, WAV, M4A и др.) или своя запись. Автоопределение языка, выбор модели под задачу — быстрее и дешевле либо точнее (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 подходом, что и собственные инструменты студии — от прототипа за дни до продукта в ежедневной работе.

🌐 simple-it.pro ✉️ hello@simple-it.pro 💬 +7 993 981 41 45
SIMPLEIT