Migrated the real-time voice pipeline from GCP Speech-to-Text to Deepgram, tuning endpoint detection and audio buffers to cut transcription latency 30% (350ms end-to-end). Integrated ElevenLabs TTS, built a multi-threaded state manager for concurrent call states, and replaced hard-coded fallback rules with a reward-driven agent for incomplete calls.
Work
Six projects, none of them using quite the same kind of model.
Voice, vision, signal, and language — one shipped in production, the rest built to see whether a specific idea would actually hold up: whether a retriever could be trusted, whether a bleeding region could be found in a frame, whether a model could explain its own reasoning about someone's blood sugar.
A YOLOv11 pipeline that classifies, detects, and segments gastrointestinal bleeding in Wireless Capsule Endoscopy frames — 97.4% average precision, 0.798 mask mAP@0.5 — aimed at cutting an eight-day manual review down to hours through real-time triaging.
PPG-based glucose estimation from 611 participants: Kalman smoothing, wavelet baseline correction, and 392 engineered features reduced to as few as 5. A Voting Regressor ensemble hit R² 0.921; a PySR-derived white-box model reached R² 0.815 as a single readable equation.
Built the dataset from scratch — 482 groundwater samples across Gujarat, merged from CGWB, ICRISAT, and Bhuvan-Thematic sources — then compared ensemble methods against an ANN for predicting arsenic concentration. The ANN won on R² and RMSE, catching contamination spikes the ensembles smoothed over.
An interactive mystery game where an LLM narrator hides seven secrets inside poetic, increasingly evasive storytelling. Players extract meaning rather than facts; a second model judges whether an answer shows real understanding, scored through an entropy-based closeness metric.
A multi-agent career-guidance system orchestrated with CrewAI, using a LangChain history-aware retriever over a FAISS vector store to ground advice in real documents, generating with Llama 3.3 70B via Groq. State persists per user across sessions with Flask, SQLite, and Mem0.