Надиктуй (Nadiktui)
Документация к публичной бета-сборке. Плашки и ссылки на внутренний GitLab удалены — они не работают снаружи и тянут сторонние трекеры. Полный README проекта (с плашками) живёт в репозитории.
Android-приложение офлайн-голосовых заметок: запись с микрофона → распознавание русской речи (GigaAM v3, ONNX Runtime) → сохранение в виде Markdown-заметки прямо в папку Obsidian/Syncthing. Всё считается локально на устройстве, без облака и без интернета после загрузки модели.
Возможности
- Кнопка «Запись/Стоп» с таймером и лимитом длительности (по умолчанию 180 с — потолок модели ~200 с).
- Распознавание русской речи с пунктуацией и нормализацией (
gigaam-v3-e2e-ctc, int8). Скорость ~4× реального времени на бюджетном CPU (ARM Cortex-A55), полностью на CPU. - Мини-плеер оригинала сразу после распознавания.
- Сохранение
.mdв выбранный каталог (Obsidian-vault), аудио — в подпапку_audio/с ссылкой в заметке. Ссылку-имя файла можно тапнуть, чтобы открыть заметку в Obsidian (obsidian://). - «История»: живой список заметок прямо из каталога Obsidian + проигрывание старых записей (дублирования нет — удалили в Obsidian, исчезло и здесь).
- Лимит хранилища аудио (по умолчанию 2 ГБ) с авто-очисткой самых старых файлов.
- Тема: сепия (по умолчанию) / ночная / системная.
- Раздача модели: авто-копирование из папки Termux, иначе скачивание с Hugging Face с прогрессом.
Установка APK
Скачайте APK с главной страницы лендинга (кнопка «Скачать APK»). Прямая ссылка:
/dl/nadiktui-v1.0.0.apk
SHA-256: 212d8a06b42dcd1f3f57fdc1cff9670b249614022d6a38d929f4097965ebed93
Установка:
adb install -r nadiktui-v1.0.0.apk
В приложении выдайте: микрофон и «Все файлы» (для записи в Syncthing/Obsidian).
После установки: при первом запуске приложение само скачает модель распознавания (~225 МБ) с Hugging Face. Это занимает 5–15 минут по мобильной сети. Скачивание идёт один раз, дальше всё работает офлайн. Подробнее — на главной странице.
Стек
- Kotlin + Jetpack Compose (Material 3), minSdk 29 / targetSdk 35.
onnxruntime-android(CPU Execution Provider), модельgigaam-v3-e2e-ctcint8 (~215 МБ).- Аудиозапись через
AudioRecord(PCM 16 кГц, моно → WAV), воспроизведение черезMediaPlayer. - Мел-фичи и CTC-декод портированы в Kotlin 1-в-1 из
onnx-asr(паритет подтверждён unit-тестом против NumPy).
Модель
- Архитектура: Conformer (16 слоёв, d_model 768, 16 голов, rotary self-attention, subsampling conv1d ×4, 257 CTC-классов). Потолок по длительности — ~200 с.
- Файл:
v3_e2e_ctc.int8.onnx(~215 МБ, int8-квантизация). Загружается приложением при первом запуске с huggingface.co/istupakov/gigaam-v3-onnx. - Лицензия модели: MIT (см.
/docs/LICENSE). - Базовый проект: ai-sage/GigaAM-v3, оригинал — команда GigaAM (salute-developers).
Сборка из исходников
Требования: JDK 17, Android SDK (compileSdk 35), Gradle 8.14+. Исходники без модели можно скачать с лендинга: /dl/nadiktui-v1.0.0-sources.tar.gz (~1.6 МБ). После распаковки: rm -rf model (модель подтянется сама при первом запуске), затем:
gradle assembleDebug # app/build/outputs/apk/debug/
gradle assembleRelease # подписанный релиз (нужны keystore.properties + .jks)
Подпись release берётся из keystore.properties (в .gitignore): storeFile/storePassword/keyAlias/keyPassword + .jks в app/.
Исходный код
Репозиторий приватный. Доступ по запросу: stend003@yandex.ru.
Лицензия
Модель GigaAM v3 © istupakov, команда GigaAM, лицензия MIT. См. /docs/LICENSE.