1.7 KiB
title, area, horizon, tags, flag, src
| title | area | horizon | tags | flag | src |
|---|---|---|---|---|---|
| Accusé de réception parlé à la place du bip du wake word | visitapp | v1 | visitapp, vocal | warn | Après les tests | voice-latency-plan.md §2 |
Remplacer wake_detected.mp3 par une phrase dans la langue et la voix du visiteur — « Oui, je vous écoute » — avec 2-3 variantes, un visiteur entendant l'ack des dizaines de fois sur une visite.
Retenu, mais explicitement après les tests : ça demande de générer et valider à l'oreille ~40 fichiers (2 voix × 4 langues × 5 phrases), et une partie du besoin que l'ack compense disparaît si le découpage par phrase fait baisser la latence. Décider avant d'avoir entendu le flux, ce serait décider à l'aveugle.
⚠️ Trois pièges déjà identifiés. pubspec.yaml:133 déclare assets/sounds/ mais les déclarations de dossier ne sont pas récursives en Flutter. Générer avec exactement le même voicePrompt que le runtime, sinon le timbre décroche entre l'ack et la réponse — et Gemini TTS n'est pas déterministe, prévoir plusieurs prises. ⛔ Et une règle de cohérence non négociable : sans GEMINI_API_KEY le moteur retombe sur la voix système Android — des acks en Sulafat suivis d'une réponse en voix système seraient pires que le bip. Acks actifs seulement si le moteur runtime est Gemini et que la voix correspond à guideVoiceId.
Ordonnancement à calibrer sur place : ouvrir le micro à player.duration - 150ms plutôt que de faire de l'AEC — sur Ray-Ban, micro et haut-parleur partagent la monture.