EchoTalk is a privacy-first, offline language training tool that helps you master the Shadowing technique for improving pronunciation, fluency, and confidence. It works as a Progressive Web App (PWA), requires no server, and keeps all your recordings securely on your device.
🔗 Live Demo: (alisolphp.github.io/EchoTalk)
🔗 Mirror Server: (alisol.ir/EchoTalk)
- Skip-Only, Check, and Auto-Skip modes for flexible practice styles.
- Auto Repetition & Auto Speed that adapt dynamically to your progress.
- Repetition counters so you always know how many loops are left.
- AI Personal Teacher:
- Get fast, targeted analysis of your pronunciation & fluency (word-by-word guidance).
- Generate context/nuance insights and creative practice (variations, opposites, Q&A, fill-in-the-blank) to remember meanings better and faster.
- Large ready-made sentence packs organized by level and category.
- Personalized sample sentences by language, level, and topic.
- Word-level tools: click any word for meaning/pronunciation and AI-powered analysis.
- Grammar help, translations, and vocabulary expansion via AI.
- Creative exercises (opposites, variations, quizzes) with ChatGPT/Gemini prompts.
- Fast AI pronunciation analysis of your recordings (offline prompts supported).
- Multi-language support: English, Dutch, Polish, Portuguese, Russian, Turkish, and more.
- Word-level interaction: click a word to open tools for meaning, pronunciation, and AI-powered analysis.
- Practice streak tracker with calendar view and motivational messages.
- History & recordings: review all your past practices and replay your recordings.
- Seamless flows: restart or switch sentences easily, plus celebration animations after sessions.
- Live recording visualizer for instant feedback.
- Adjustable TTS speed (slow → furious).
- Keyboard-only navigation for mouse-free practice.
- Screen reader friendly with live progress announcements.
- Works fully offline after first load.
- Optimized for Chrome & mobile browsers (with fallbacks for others).
- PWA with auto-updates and local caching for fast startup.
- Version & build info displayed in-app for easy bug reporting.
- IndexedDB storage for recordings and practice history.
- Service Worker caching for instant load times.
- Enter or pick a sentence (or use a personalized sample).
- Choose your language, level, and practice mode.
- Click Start Practice.
- Enable microphone recording (optional).
- Listen, shadow, and track your progress.
- Vite + TypeScript
- Bootstrap 5 & Bootstrap Icons
- IndexedDB for offline storage
- Web Speech API (TTS)
- MediaRecorder API
- PWA + Service Worker
- Vitest for unit testing
EchoTalk has 200+ unit tests covering:
- Practice logic and session flow
- State management and persistence
- Audio recording and playback
- IndexedDB integration
- UI event handling and DOM updates
- Utility functions (segmentation, similarity, text cleaning)
| File | % Stmts | % Branch | % Funcs | % Lines |
|---|---|---|---|---|
| src/app.ts | 72.48 | 71.42 | 80.95 | 72.48 |
| src/types.ts | 100 | 100 | 100 | 100 |
| src/services/ai.service.ts | 97.43 | 90.38 | 100 | 97.43 |
| src/services/audio.service.ts | 72.41 | 88.31 | 80 | 72.41 |
| src/services/data.service.ts | 84.83 | 78.48 | 78.26 | 84.83 |
| src/services/practice.service.ts | 76.75 | 77.14 | 72.72 | 76.75 |
| src/services/prompts.service.ts | 100 | 100 | 100 | 100 |
| src/services/ui.service.ts | 84.28 | 89.06 | 80.76 | 84.28 |
| src/services/util.service.ts | 92.68 | 88 | 100 | 92.68 |
| src/utils/string.extensions.ts | 100 | 100 | 100 | 100 |
| All files | 80.63 | 82.95 | 83.22 | 80.63 |
git clone https://github.com/alisolphp/EchoTalk.git
cd EchoTalk
npm install
npm run devRun tests:
npx vitest run --coverageBuild for production:
npm run build- Built-in Speech-to-text (STT) is not yet implemented.
- Best performance on Chrome & Android browsers.
- Safari and Firefox may have limited IndexedDB quota or recording issues.
- ✅ Multi-language support & sentence history
- ✅ Practice streak tracker with calendar
- ✅ AI integrations for grammar, translation, and pronunciation
- ✅ Offline-first with recordings saved locally
- Custom Video & Subtitle Upload
- YouTube API Integration
- Explore & browse sentences by level and category
- Export tools for recordings
- Gamification (badges, levels, rewards)
- Community sharing features
-
Custom Video & Subtitle Upload
- Users can upload their favorite movies or clips along with subtitle files.
- Practice with content they love, in the exact accent they want to train.
- Facial expressions and lip movements become part of the shadowing experience.
-
YouTube API Integration
- Let users pick and practice directly with YouTube videos.
- Faster and easier than manual video + subtitle uploads.
⚠️ Planned for the future due to API costs and potential complexity.
Contributions are welcome! You can:
- Report bugs
- Suggest features
- Improve code or docs
Fork the repo, make your changes, and open a pull request.
MIT License – see LICENSE.
