How alisolphp/echotalk works
EchoTalk is an offline-first language shadowing practice PWA. Learners choose a language and sentence, configure practice, listen and repeat phrase-by-phrase, optionally record themselves, then review practice history and recordings. The app coordinates dedicated practice, audio, data, UI, and AI-prompt services. README capabilities include streak tracking, word-level learning tools, and AI-assisted exercises; their details are not all present in the sampled source, so uncertain internal wiring is omitted. AI assistance is prompt-based rather than a direct AI-service call.
Main entry points: app.ts App Coordinator · practice.service.ts Practice Flow · data.service.ts History and Samples · audio.service.ts Speech and Recording
Components 16
Shadowing Practice
- App Coordinator
src/app.ts - Practice Flow
src/services/practice.service.ts - Practice UI
src/services/ui.service.ts - Speech and Recording
src/services/audio.service.ts - Phrase Utilities
src/services/util.service.ts
Learning Tools
- Sentence Packs
public/data/sentences - AI Learning Prompts
src/services/ai.service.ts - Prompt Templates
src/services/prompts.service.ts
Local Data
- History and Samples
src/services/data.service.ts - IndexedDB
Browser Platform
- Speech Synthesis
- Microphone
- System Clipboard
Other components
- Learner
- External AI Assistant
- Google Translate
Connections 17
- Learner → App Coordinator: uses
- App Coordinator → Practice UI: coordinates
- App Coordinator → History and Samples: loads samples
- History and Samples → Sentence Packs: fetches pack
- App Coordinator → Practice Flow: starts practice
- Practice Flow → Phrase Utilities: gets phrase bounds
- Practice Flow → Speech and Recording: controls recording
- Practice Flow → IndexedDB: saves practice
- Speech and Recording → Speech Synthesis: speaks phrases
- Speech and Recording → Microphone: records audio
- History and Samples → IndexedDB: reads history
- History and Samples → IndexedDB: stores recordings
- Learner → AI Learning Prompts: requests learning help
- AI Learning Prompts → Prompt Templates: builds prompts
- AI Learning Prompts → System Clipboard: copies prompt
- Learner → External AI Assistant: uses copied prompt
- Practice UI → Google Translate: opens translation