Files
fission-console/misc/HANDOFF_LYNGVO.md
T

47 lines
2.4 KiB
Markdown

# 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, только текст)