2.4 KiB
2.4 KiB
Lyngvo — AI Pronunciation Trainer (Italian) MVP
Концепция
Веб-приложение для тренировки итальянского произношения:
- Пользователь вводит текст (слово/фразу)
- Приложение синтезирует эталон (TTS)
- Пользователь записывает свой голос (MediaRecorder)
- Приложение транскрибирует запись (Whisper), сравнивает с оригиналом
- Показывает: similarity score, выделяет пропущенные/лишние слова
- Воспроизводит 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.ruA →5.172.178.213 - Проект будет в отдельной репе (пока не создана)
- Модель aillm.ru:
gpt-oss-120b— только текст, STT/TTS не поддерживаются
Что делать
- Создать репу (локально
/home/naeel/lyngvo/+ Gitea на ВМ) - Развернуть HTML-приложение в кластере (nginx-pod + ingress)
- Реализовать UI: поле ввода, кнопки Generate / Play TTS / Record / Compare
- TTS через Web Speech API
- Запись через MediaRecorder → blob → отправить на Whisper API
- Сравнение текстов (similarity score, highlight diff)
- Playback: target → 300-800ms пауза → user
- Опционально: stereo (left=target, right=user)
- Настроить 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, только текст)