Диктофон, который расшифровывает приём, различает голоса собеседников и сохраняет текст в Word. Целиком на телефоне: разрешения выходить в сеть у приложения нет вовсе, поэтому запись физически не может никуда уйти.
Отладочная сборка для Android
Версия 1.7 · 202 МБ · от 18.08.2026
Файлы проектов доступны после входа. Регистрация занимает минуту и нужна затем, чтобы я знал, у кого на руках сборка: это отладочные версии, и о найденных ошибках есть кому написать.
Сборка отладочная и подписана отладочным ключом: Android спросит разрешение на установку из неизвестного источника. В магазины такая сборка не выкладывается.
Психолог ведёт записи после приёма. Надиктовать быстрее, чем набрать, — но обычные диктофоны с расшифровкой отправляют запись на чужой сервер. Для разговора с клиентом это неприемлемо: содержание сессии не должно покидать телефон ни при каких условиях.
Приложение делает всю работу на устройстве: пишет речь, распознаёт русский, различает голоса собеседников и сохраняет готовый документ Word. Интернет ему не нужен ни на одном шаге.
Обещание «мы не передаём ваши данные» проверить нельзя — это слова. Здесь вместо слов свойство системы: у приложения нет разрешения выходить в сеть. В манифесте нет строки, без которой Android не пропустит наружу ни байта:
<uses-permission android:name="android.permission.INTERNET" />
Поэтому любая попытка что-то отправить отклоняется самой системой — не совестью разработчика. Проверяется за десять секунд: включите авиарежим, приложение продолжит работать целиком.
У пользователя спрашивают одно разрешение — микрофон. Ещё три приложение объявляет для себя: работать со свёрнутым экраном и показывать ход расшифровки в уведомлении. Часовая запись обрабатывается часами, и без этого система прервала бы работу на середине. Доступа к данным или к сети они не дают.
Во время приёма приложение только пишет звук — на экране таймер и уровень громкости. Расшифровка идёт после, по готовому файлу: так модель работает точнее, чем разбирая речь на лету.
01
pyannote + голосовые отпечатки
Модель сегментации находит границы речи, вторая считает «подпись» голоса на каждом участке. Похожие подписи собираются в кластеры — по кластеру на человека. Число собеседников заранее не задаётся.
02
GigaAM v3, модель Сбера
Реплики каждого голоса распознаются подряд и подписываются: «Голос 1», «Голос 2». Модель ставит знаки препинания и заглавные сама — среди открытых русских моделей это умеет только она. Имён приложение не знает, их проставляет психолог перед сохранением.
Можно открыть готовый файл — диктофонную запись, голосовое из мессенджера. Частота приводится к 16 кГц свёрткой с окном sinc, а не отбрасыванием отсчётов: иначе высокие частоты завернулись бы вниз призвуками и распознавание испортилось бы.
Файл .docx — это ZIP с XML внутри. Он собирается вручную, поэтому в проекте нет ни Apache POI, ни его тридцати мегабайт зависимостей: только то, что нужно для валидного документа.
Перебрали три: Whisper знаки ставил, но на русском ошибался; русский zipformer точнее, но в его словаре одни строчные буквы; GigaAM v3 от Сбера умеет и то, и другое — в словаре есть точка, запятая, тире и заглавные. Платой идёт размер: 215 МБ против 70.
Знаки препинания даёт модель, а границы абзацев — паузы: они и так известны из разбиения на реплики. Смена говорящего тоже начинает новый абзац.
Показывать текст по ходу диктовки можно только лёгкой моделью, а она ошибается слишком часто. Строка с ошибками во время приёма отвлекает и создаёт ложное впечатление о качестве, поэтому на экране таймер и уровень звука.
Локальная обработка стоит скорости — об этом честнее сказать до начала работы, чем после.
Минута приёма обрабатывается несколько минут на среднем телефоне: считать приходится на процессоре телефона, без всякой помощи извне. Поэтому это отдельная кнопка с прогрессом, а не автоматика.
Больше 200 МБ, из них 215 занимает сама модель распознавания. Это цена работы без интернета: обычные диктофоны столько не весят, потому что считают на чужом сервере.
Расшифровка идёт медленнее, чем шла запись: считает процессор телефона, без всякой помощи извне. Поэтому работа вынесена в фон — телефон можно убрать в карман, ход виден в уведомлении, готовый текст дождётся в приложении.
Обычное следствие вычислений на устройстве при длинной записи.
Опишите задачу в двух строках — отвечу в течение рабочего дня. Исходный код этого проекта и демо покажу по запросу.