Case file 01 Real-time integration
Talk-to-Agent
A compact voice AI prototype that coordinates microphone access, WebRTC audio, a Python backend, and an external live AI API.
View repositoryOverview
A live audio path, not a conventional request-response screen.
Talk-to-Agent connects a browser microphone to Google’s Gemini Live API through a FastAPI backend and bidirectional WebRTC audio. The active demo runs a short, generic French-language pre-screening conversation and streams generated voice audio back to the browser.
The repository is framed as a local technical demo and portfolio prototype. Its purpose is to demonstrate integration across asynchronous Python, browser media APIs, real-time audio, and an external AI service—not to present a production recruitment platform.
System path
The conversation crosses four boundaries.
Audio is resampled for the external service, streamed asynchronously in both directions, and played back in the browser. Application secrets stay on the server side.
Current scope
What the demo does today.
- Captures browser audio
Requests microphone access with the browser’s media API.
- Negotiates bidirectional WebRTC
Uses FastRTC to coordinate the real-time connection.
- Streams audio asynchronously
Converts incoming audio and returns generated voice audio to the browser.
- Bounds local sessions
Caps demo sessions at ten minutes to limit runaway local use.
Boundaries
Important Prototype limits
The repository states what it is not.
The current demo does not upload CVs or job descriptions, create structured interview reports, display or save transcripts, authenticate users, or provide production-grade multi-user isolation.
A production deployment would require authentication, hardened session isolation, rate limiting, production TLS/TURN configuration, and an explicit privacy and data-retention policy.
Stack
Technologies in the published demo.
- Python 3.11Runtime
- FastAPI + UvicornBackend
- FastRTC / WebRTCReal-time media
- Gemini Live APIExternal AI
- AsyncIO + NumPyAudio flow
- HTML + CSS + JavaScriptBrowser UI