Software project
Talk-to-Agent · real-time voice integration
Local voice-AI prototype connecting browser audio, WebRTC, FastAPI and Gemini Live. Documented integration work, published code and tests, with explicit production limitations.
Problem
A conversational voice interface must coordinate microphone access, WebRTC signaling, continuous audio conversion, asynchronous model sessions, browser playback and connection cleanup. Talk-to-Agent explores that integration in a compact portfolio prototype.
Approach
The browser exchanges audio with FastAPI through FastRTC/WebRTC. An asynchronous Python handler sends mono 16 kHz PCM input to Gemini Live and returns 24 kHz audio output. The interface offers five voices, microphone controls and audio visualizations. A server-side configuration supplies public ICE settings to the browser while keeping the API key on the backend.
Documented contribution
Halhoul Mhamed’s published implementation connects the browser interface, Python backend and external streaming API. The repository documents bounded audio queues, session cleanup, voice-input validation, configurable local TLS and HTTP restricted to loopback. It includes tests for audio conversion, configuration, routes and handler state.
Prototype behavior
The documented demo conducts a short, generic French pre-screening conversation and returns voice audio. Local sessions are capped at ten minutes; the code applies a shorter limit in its hosted-Space mode. A repository screenshot and implementation are available for inspection.
No end-to-end latency measurement, model-quality benchmark or production load result is published. The repository’s tests check local behavior; they do not demonstrate an independently validated live conversation.
Limits and current status
Local technical demo and portfolio prototype. Production use requires authentication, rate limiting, hardened session isolation, trusted TLS/TURN configuration, observability and explicit privacy and retention rules.
The demo has no CV or job-description upload, displayed or saved transcript, structured interview report, database or administrative dashboard. The Gemini streaming helper it uses is deprecated upstream and needs migration before sustained use. Voice audio is sent to the external Gemini service during a session.
Sources and implementation
These links preserve the reviewed repository revision. The screenshot documents the interface, without constituting a performance measurement.