проанализируй моё техническое задание для дипломной работы "# 🧾 **Final Technical Task: AI-Powered Visual Dictionary with On-Device Image Synthesis & RL-Based Adaptive Learning**

## 🎯 **Core Features**

---

### 1. 📸 **In-App Photo Capture & Object Detection**

- **Workflow**:
  - Пользователь делает фото **прямо в приложении**.
  - Приложение распознаёт объекты и отображает **топ-3 предположения**. 
  - Пользователь выбирает верный результат.

- **Implementation**:
  - Камера: **CameraX** (Android).
  - Модель: **MobileNetV3 SSD** (TFLite, INT8, кастомный датасет из 200+ объектов).
  - Pre/Postprocessing: реализованы **на C++ через JNI**.
  - Постобработка: NMS и фильтрация неоднозначных классов (`"device"` → `"phone"`) выполняются **на C++**.
  - Оптимизация:
    - Использование **TFLite GPU Delegate** (OpenGL/Vulkan), fallback на CPU.
    - Поддержка **INT8 quantization** и **FP16** для минимального потребления памяти.
    - Предзагрузка модели с **минимальным RAM footprint**.

---

### 2. 🎙️ **Ручной Ввод, Голосовой Ввод и Перевод Фраз**

- **Workflow**:
  - Пользователь **вводит или произносит фразу**.
  - Распознавание речи, отображение текста, перевод (EN↔RU↔FR), озвучка перевода.

- **Функции**:
  - **Голосовой ввод**:
    - Онлайн: Android SpeechRecognizer API.
    - Оффлайн: **Vosk** (JNI, C++ ядро, полностью оффлайн).
  - **Типографика**:
    - Проверка орфографии через Hunspell.
    - Автокоррекция (на основе Levenshtein distance).
  - **Перевод**:
    - Онлайн: Google Translate API.
    - Оффлайн: SQLite-словарь (основная лексика).
  - **Озвучка**: Android Text-to-Speech API (локальный движок, без ML).

---

### 3. 🧠 **Нейросетевая Генерация Грамматически Корректных Предложений**

- **Цель**:
  - Генерация **3–5 разнообразных предложений** по ключевому слову/фразе.
  - Поддержка **абстрактных и конкретных понятий**.
  - Грамматическая корректность (род, падеж, время и т.д.) для RU и FR.

- **Implementation**:
  - Модель: **T5-small** (в формате ONNX, оптимизирована под mobile).
  - Запуск inference: **ONNX Runtime Mobile через C++ (JNI)**.
  - Морфологический анализ:
    - Русский: **pymorphy2** (через Kotlin + Python Bridge).
    - Французский: **JSRealB** или кастомные правила.
  - Оптимизация:
    - Использование **FP16**.
    - Ограничение длины входных/выходных последовательностей.
    - Pre-allocated буферы и ручное управление памятью на C++.

---

### 4. 🖼️ **On-Device Realistic Image Synthesis**

- **Workflow**:
  - Пользователь выбирает слово → нажимает "Generate Image".
  - Приложение создаёт **реалистичное изображение 256×256**.

- **Implementation**:
  - Модель: **TinySD (облегчённая GAN/Diffusion-архитектура)**.
  - Формат модели: **ONNX**.
  - Запуск: **ONNX Runtime (Mobile) через C++ (JNI)**.
  - Промпты: `"A high-quality photo of {object} on a white background"`.
  - Оптимизация:
    - Использование **FP16**, fallback на 128×128.
    - Кеширование сгенерированных изображений.
    - Прямое управление памятью, переиспользование сессии.

---

### 5. 🧠 **Flashcard System на основе SRS (Spaced Repetition System)**

- **Структура карточки**:
  - **Лицевая сторона**: Слово/фраза + изображение (если доступно).
  - **Обратная сторона**: Перевод, примеры предложений, транскрипция, озвучка.

- **Функциональность**:
  - Автоматическое добавление карточек после распознавания/ввода.
  - Алгоритм интервального повторения (SRS).
  - Возможность ручного добавления карточек и настройки повторений.
  - Связь с обучающим модулем (см. ниже).

---

### 6. 🎓 **Адаптивное Обучение с Использованием Усиленного Обучения (RL-Based Learning)**

#### 📚 **Цель**

Создание персонализированного обучающего режима, в котором задания подбираются на основе:
- уровня пользователя,
- успешности выполнения предыдущих заданий,
- истории ошибок.

#### 🧩 **Типы заданий**

- Выбор правильного перевода.
- Сопоставление изображения и слова.
- Заполнение пропусков в предложении.
- Построение предложения из слов.
- Аудио → текст: распознавание услышанного.
- Выбор правильной формы слова (грамматика).

#### 🧠 **Архитектура RL**

- **State (состояние)**:
  - Уровень пользователя (A1–B2).
  - Последние результаты (ответы, скорость).
  - Тип и сложность предыдущего задания.

- **Action (действие)**:
  - Выбор следующего задания.
  - Выбор сложности.
  - Выбор темы (категория слов).

- **Reward (награда)**:
  - +1 за правильный ответ.
  - -1 за ошибку.
  - +0.5 за быстрое выполнение.

- **Policy**:
  - Q-Learning (табличная реализация) для Lite/Standard профилей.
  - DQN / Policy Gradient (опционально для Extended профиля).
  - Возможна реализация Multi-Armed Bandit как упрощённой версии.

#### ⚙️ **Интеграция**

- Генерация заданий из Flashcards + T5-small + Object Detection.
- Хранение прогресса и политики в локальной базе (Room).
- Обновление уровня и сложности в реальном времени.
- UI: интерактивный режим "Обучение" с визуализацией прогресса и подсказками.

---

## ⚙️ **Technical Stack (обновлённый)**

| Компонент                   | Технология / Инструмент                                                                    |
|-----------------------------|---------------------------------------------------------------------------------------------|
| **Объектное распознавание** | TFLite, INT8, GPU Delegate                                                                 |
| **Голосовой ввод**          | Vosk (JNI, C++), Android SpeechRecognizer                                                  |
| **Перевод**                 | Google Translate API, SQLite словарь                                                       |
| **Генерация предложений**   | T5-small (ONNX), ONNX Runtime + C++                                                        |
| **Морфология**              | pymorphy2 (RU), JSRealB (FR)                                                               |
| **Генерация изображений**   | TinySD (ONNX), ONNX Runtime + C++                                                          |
| **Flashcards + SRS**        | Room Database, Jetpack Compose UI                                                          |
| 🆕 **Адаптивное обучение**  | Q-Learning (Kotlin/C++), локальная политика, Room DB, интерактивный UI                    |
| **ML-интеграция**           | C++ (NDK), JNI, ручное управление памятью                                                 |

---

## 🧠 **Архитектура приложения (обновлённая)**

```
+---------------------------+
|       Kotlin UI          |
|  (Jetpack Compose)       |
+-------------+------------+
              |
              ▼ JNI
+-------------+------------+
|         C++ Core         |
|  - Object Detection      |
|  - Sentence Generation   |
|  - Image Generation      |
|  - Speech Recognition    |
|  - RL Learning Engine    |
+-------------+------------+
              |
              ▼
+---------------------------+
| TFLite / ONNX Runtime     |
| Room DB (Flashcards + RL)|
+---------------------------+
```

---

## 🎓 **Thesis Innovations**

1. Ультра-оптимизированная гибридная архитектура (TFLite + ONNX Runtime).
2. Нейросетевая генерация предложений с морфологической адаптацией.
3. Мультимодальный ввод/вывод: голос, текст, изображения.
4. Генерация изображений GAN-подобной архитектурой без интернета.
5. **Интеграция SRS-системы карточек с генеративными моделями и TTS**, позволяющая автоматически формировать мультимодальные карточки с озвучкой и примерами использования слов.
6. **C++ ядро с JNI-интеграцией**, обеспечивающее высокую производительность, контроль памяти и кроссплатформенность.
7. 🆕 **Адаптивное обучение с использованием Reinforcement Learning**, позволяющее гибко подстраивать сложность заданий под уровень и прогресс пользователя.
8. 🆕 **Комбинация SRS и RL**, создающая уникальный обучающий цикл: от распознавания объекта → до карточки → до задания → до повторения.
9. 🆕 **Полностью оффлайн-режим обучения**, включая распознавание речи, генерацию предложений и адаптацию сложности без подключения к интернету.

---

## ⚠️ **Risk Mitigation (обновлённый)**

| Потенциальный риск                        | Решение                                                                 |
|-------------------------------------------|-------------------------------------------------------------------------|
| Неточное распознавание объектов           | Выбор из топ-3, логирование ошибок, обучение модели на пользовательских данных |
| Медленная генерация изображений           | Fallback на 128×128, кеширование результатов, FP16 оптимизация         |
| Перегрузка памяти на слабых устройствах   | Использование INT8/FP16, контроль буферов, выгрузка неиспользуемых моделей |
| Ошибки генерации предложений              | Механизмы валидации, ограничение длины последовательностей             |
| Ошибки распознавания речи                 | Отображение текста до подтверждения, оффлайн-движок (Vosk)             |
| 🆕 Нестабильность RL-политики              | Ограничение пространства состояний, fallback на ручные правила         |
| 🆕 Потеря прогресса обучения               | Использование Room + автоматическое резервное копирование              |
| 🆕 Снижение мотивации пользователя         | Гибкая подстройка сложности, визуализация прогресса, награды в UI     |

---

## 📊 **Evaluation Plan (обновлённый)**

| Компонент                        | Метрика                                                       | Целевое значение                    |
|----------------------------------|----------------------------------------------------------------|-------------------------------------|
| Объектное распознавание          | mAP@0.5 на кастомном датасете                                  | ≥ 80%                               |
| Генерация изображений            | FID (на 256×256)                                               | ≤ 40                                |
| Генерация предложений            | Грамматическая корректность (оценка 100 фраз)                  | ≥ 90%                               |
| Голосовой ввод (оффлайн)         | Word Error Rate (WER)                                          | ≤ 10%                               |
| Озвучка (TTS)                    | Естественность (оценка пользователями)                         | ≥ 4/5                               |
| Время инференса (TinySD, GPU)    | Время генерации изображения (128×128)                          | ≤ 300 мс                            |
| Время инференса (TinySD, CPU)    | Время генерации изображения (128×128)                          | ≤ 900 мс                            |
| Пиковое потребление памяти       | RAM на устройстве с 3 ГБ                                       | ≤ 700 МБ                            |
| Энергопотребление                | Снижение заряда за 10 минут активной работы                    | ≤ 5%                                |
| 🆕 RL-модуль                     | Повышение точности ответов в режиме обучения (через 2 недели)  | +15–20%                             |
| 🆕 RL-модуль                     | Поднятие уровня пользователя (по CEFR) за 30 дней              | +1 подуровень (например, A1 → A2)  |

---

## 💡 **Оптимизации для слабых устройств (<4 ГБ RAM)**

- Использование **TFLite INT8** для Object Detection.
- **ONNX Runtime Mobile** с поддержкой **FP16**, ручное управление памятью на C++.
- **Фиксированная длина входов** для генеративных моделей (T5-small).
- **Ограничение разрешения изображений** (fallback на 128×128).
- **Ограничение размеров Q-таблицы** RL-модуля.
- **Единоразовая инициализация сессий**, переиспользование буферов.
- **Lite-профиль сборки** без тяжёлых моделей и с упрощённой политикой 
## 📦 **Профили сборки и деплоймента**

| Профиль       | Назначение                            | Особенности                                                                 |
|---------------|----------------------------------------|------------------------------------------------------------------------------|
| **Standard**  | RAM 3–4 ГБ                            | Полный функционал,