AI Medical Interpreter (Mita)
Real-time speech-to-speech interpreter between a doctor and a Bangla-speaking patient. Clinical terms are preserved exactly; doubtful output is flagged, never hidden.

A bedside interpreter that removes the language barrier between a clinician and a patient without waiting for a human interpreter. You speak or type in English or Bangla and get the meaning in the other language almost immediately, as both text and speech. Built as the CSE309 Software Engineering project at IUB. It started as a two-person project; the system as it stands is my work.

A session starts by setting who is speaking and in which language. Either role can be swapped at any time.
What it does
- Speak or type. Voice and typing are equal paths, not a primary and a fallback. Speech recognition uses the browser's Web Speech API; output uses the browser's voices with a server-side fallback for machines that lack a Bangla voice.
- Preserves clinical detail. Drug names, dosages, numbers and units must appear unchanged in the output.
Napa 500mgcomes out asNapa 500mg. - Flags doubt. The backend checks that a translation is actually in the target script and marks it
needs_reviewwhen it is not. The UI surfaces this as a warning with a retry. - Stores nothing. No audio is kept, no transcript is persisted on the server. The session transcript lives on the device and clears on refresh.
- Local demo build adds a medication-safety check, a medical-specialty suggestion the clinician confirms before it is used, and a consultation summary exported as a prescription.

The console. A doctor speaks an English sentence with a drug and dosage; Mita renders it in Bangla with Napa 500mg untouched, marks it verified, and suggests Pulmonology as the likely specialty for the clinician to confirm.

Medications mentioned in the conversation are extracted and shown for verification before they count toward the summary or prescription export.
Architecture
A browser frontend and a FastAPI backend. The backend never translates directly; it delegates to a TranslationProvider protocol, and routers never learn which engine is behind it. Adding an engine is one new file plus one line in the registry. That seam is what let Torongo, a fine-tuned NLLB-200 model hosted as a separate inference service, drop in beside the Gemini and Google Cloud providers with no router, model or frontend change.
The deployed build runs the frontend on Vercel and the backend on Render with the cloud engine. It does not diagnose anything and keeps no long-term record of consultations. It translates only.