Guru Ji
A Hindi speaking coach that listens, scores, and adapts.
Hindi AI learning coach inside Hinglish Vinglish. Listens to your speech, scores accent + grammar in real time, and adapts the next lesson to where you're getting stuck.
// architecture
Everything runs in Firebase Cloud Functions behind the Flutter app. Recorded speech is uploaded to a transcribe function that calls OpenAI Whisper (primed for Devanagari) and returns the text. A second function scores pronunciation by sending the target phrase and the transcription to GPT with a phonetic-comparison prompt. A chat function drives the conversational tutoring off the learner's own history, and a text-to-speech function voices replies with Google Cloud TTS. Which model each call uses is routed at runtime via Firebase Remote Config.
// how it works
- 1
Transcribe
Recorded speech is uploaded to a Cloud Function that runs OpenAI Whisper (whisper-1), primed for Devanagari, and returns the transcription.
- 2
Score pronunciation
A second function sends the target phrase and the transcription to GPT with a phonetic-comparison prompt and returns a 0โ100 score, an is-correct flag, and specific feedback โ with a guard against Whisper hallucinating on silence.
- 3
Coach in conversation
A chat function builds a system prompt from the learner's own history and returns typed responses โ text, vocab cards, quizzes, quick replies โ keeping quizzes strictly to vocabulary they've actually met.
- 4
Adapt the next step
It tracks words learned and where the learner keeps slipping, steers the next lesson at those weak spots, and nudges them to expand when they're stuck repeating themselves.
- 5
Say it back
Replies are voiced by a text-to-speech function via Google Cloud TTS, so the learner hears the correct pronunciation instead of just reading it.
// tool calls
transcribeAudio()Cloud Function โ OpenAI Whisper (whisper-1, hi) โ Devanagari transcriptionanalyzePronunciation()GPT phonetic comparison โ { score 0โ100, is_correct, feedback }guruJi()GPT chat โ typed responses (text / vocab card / quiz / quick replies)textToSpeech()Google Cloud TTS โ spoken replypickModel() + Remote Configroutes which model each call uses without a redeploy
// feedback
// stack
// infrastructure
- โธApp: Flutter
- โธBackend: Firebase Cloud Functions (Node/TS)
- โธSTT: OpenAI Whisper
- โธScoring + chat: OpenAI GPT (routed via Remote Config)
- โธTTS: Google Cloud
// why it exists
You can't learn to speak a language by reading. Guru Ji gives the one thing most apps can't โ honest, specific feedback on how you actually sound.