Files
fission-console/misc/HANDOFF_LYNGVO.md
T

2.4 KiB

Lyngvo — AI Pronunciation Trainer (Italian) MVP

Концепция

Веб-приложение для тренировки итальянского произношения:

  1. Пользователь вводит текст (слово/фразу)
  2. Приложение синтезирует эталон (TTS)
  3. Пользователь записывает свой голос (MediaRecorder)
  4. Приложение транскрибирует запись (Whisper), сравнивает с оригиналом
  5. Показывает: similarity score, выделяет пропущенные/лишние слова
  6. Воспроизводит target → пауза → user (stereo опционально)

Tech stack (утверждён)

  • Frontend: HTML + JS (чистый, без React)
  • Audio: Web Audio API, MediaRecorder API
  • TTS: Web Speech API (speechSynthesis) — бесплатно, итальянский голос есть
  • STT: требуется внешний Whisper API (aillm.ru не поддерживает)
  • Бэкенд: отсутствует (MVP — только статика)
  • DevOps: minikube / k8s кластер 5.172.178.213, nginx-ingress

Что уже сделано

  • DNS: lang.kube5s.ru A → 5.172.178.213
  • Проект будет в отдельной репе (пока не создана)
  • Модель aillm.ru: gpt-oss-120b — только текст, STT/TTS не поддерживаются

Что делать

  1. Создать репу (локально /home/naeel/lyngvo/ + Gitea на ВМ)
  2. Развернуть HTML-приложение в кластере (nginx-pod + ingress)
  3. Реализовать UI: поле ввода, кнопки Generate / Play TTS / Record / Compare
  4. TTS через Web Speech API
  5. Запись через MediaRecorder → blob → отправить на Whisper API
  6. Сравнение текстов (similarity score, highlight diff)
  7. Playback: target → 300-800ms пауза → user
  8. Опционально: stereo (left=target, right=user)
  9. Настроить HTTPS для lang.kube5s.ru (cert-manager / Let's Encrypt)

Контакты/доступ

  • ВМ: naeel@5.172.178.213 ключ ~/.ssh/naeel_vm_id_ed25519
  • Кластер: kubectl (там же на ВМ)
  • S3: sless-functions на s3.msk-1.ngcloud.ru
  • AI ключ: sk-ucI5YvOticoOQ9Kuj5K9mQ (aillm.ru, только текст)