Надиктуй

Документация

Надиктуй (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-ctc int8 (~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.

← На главную