VoiceBot PoC
A voice AI pipeline with clean architecture — Python handles the speech, C#/.NET handles the orchestration, and the two talk through a well-defined interface.
The problem it solves
Voice AI proofs-of-concept are usually monolithic — one script that handles input, processing, and output in a single file. VoiceBot PoC demonstrates a production-grade architecture where each concern is isolated and the LLM backend is swappable without touching the rest of the system.
How it works
A Python/FastAPI microservice handles speech-to-text and text-to-speech. A C#/.NET orchestrator manages the pipeline via a strategy pattern (ILlmBackend interface), with a phone-number capture flow and session state management. The IVoiceOrchestrator interface decouples the API from any specific pipeline implementation, so the voice backend, LLM backend, and orchestration logic can each evolve independently.
What makes it interesting
The Clean Architecture layering (API → Application → Infrastructure → Domain) in a voice AI context was the interesting design challenge. Most voice AI demos skip this entirely. The goal was to show that a voice AI system doesn't have to be a fragile one-file PoC — it can have the same structural rigour as any production backend.