Projet logiciel
Talk-to-Agent · intégration vocale en temps réel
Prototype vocal local reliant l’audio du navigateur, WebRTC, FastAPI et Gemini Live. Travail d’intégration documenté, code et tests publiés, avec des limites de production explicites.
Problème
Une interface de conversation vocale doit coordonner l’accès au microphone, la signalisation WebRTC, la conversion continue de l’audio, les sessions asynchrones du modèle, la lecture dans le navigateur et la fermeture des connexions. Talk-to-Agent explore cette intégration dans un prototype compact de portfolio.
Approche
Le navigateur échange de l’audio avec FastAPI via FastRTC/WebRTC. Un gestionnaire Python asynchrone envoie à Gemini Live une entrée PCM mono à 16 kHz et renvoie une sortie audio à 24 kHz. L’interface propose cinq voix, des commandes de microphone et des visualisations audio. Une configuration côté serveur fournit les paramètres ICE publics au navigateur tout en conservant la clé API dans le backend.
Contribution documentée
L’implémentation publiée de Halhoul Mhamed relie l’interface du navigateur, le backend Python et l’API externe de diffusion en continu. Le dépôt documente des files audio bornées, le nettoyage des sessions, la validation du choix de voix, une configuration TLS locale et un mode HTTP limité à l’interface de boucle locale. Il comprend des tests de conversion audio, de configuration, de routes et d’état du gestionnaire.
Comportement du prototype
La démonstration documentée mène une courte conversation générique de présélection en français et renvoie de l’audio vocal. Les sessions locales sont limitées à dix minutes ; le code applique une limite plus courte dans son mode hébergé sur Space. Une capture de l’interface et l’implémentation sont consultables dans le dépôt.
Aucune mesure de latence de bout en bout, aucun benchmark de qualité du modèle ni aucun résultat de charge en production n’est publié. Les tests du dépôt vérifient le comportement local ; ils ne démontrent pas une conversation réelle validée indépendamment.
Limites et état actuel
Démonstration technique locale et prototype de portfolio. Un usage en production exige l’authentification, la limitation de débit, une isolation renforcée des sessions, une configuration TLS/TURN de confiance, l’observabilité et des règles explicites de confidentialité et de conservation.
La démonstration ne permet ni d’importer un CV ou une fiche de poste, ni d’afficher ou sauvegarder une transcription, ni de générer un rapport d’entretien structuré. Elle ne comprend pas de base de données ni de tableau d’administration. L’utilitaire de diffusion Gemini employé est déprécié en amont et doit être remplacé avant un usage durable. L’audio vocal est transmis au service externe Gemini pendant une session.
Sources et implémentation
Ces liens conservent la révision du dépôt consultée. La capture documente l’interface, sans constituer une mesure de performance.