- VOICE_ENROLLMENT_SPEC : le texte de référence est CONNU (phrase de consentement
admin), pas à transcrire → Whisper sort du chemin critique (fallback legacy).
Fenêtre CV_TARGET_S 15→22s pour que consentement + fin riche entrent dans le .cvps.
- VOICE_DEPLOYMENT_SPEC §4 : exclusivité DURE (consentement/RGPD), capturée
record-time (scope+owner au manifeste). Gap acté : ingérer depuis le stockage
ADMIN (pas le provider /voices). Phase 2 = garde-fou on-device. Récap des états.
- enroll.py : CV_TARGET_S=22.0.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
L'exclusivité s'appuie sur le mapping voix↔profil EXISTANT, pas un artefact parallèle :
l'app joue toujours activeProfile.voiceId (playback déjà exclusif par profil). Central =
autorité d'assignation (verrouiller = assigner Profile.voiceId au propriétaire, jamais
ailleurs + déploiement ciblé). Aucun code app requis (garde-fou picker optionnel sans fichier).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Décidé : une tablette héberge plusieurs profils patients. La localisation du .cvps ne
suffit pas → mécanisme sidecar cosyvoice/<id>.owner (profileId, absent=généraliste)
poussé par Kazeia-central ; app lit le sidecar, expose owner_profile_id à /voices,
filtre le picker, repli runtime sur DEFAULT_VOICE_ID si profil non-propriétaire.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Recadrage suite échange : pas un blocage fonctionnel ; c'est l'inventaire voulu
(distinguer voix à convertir vs prêtes, garder les prêtes visibles après suppression WAV).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Spec livrée au dev kazeia-android (stack figée §11) :
- BLOQUANT : /voices doit inclure cosyvoice/*.cvps (cvps_exists, state=ready, ids∪cvps)
— sinon une voix dont le WAV est supprimé (workflow voulu) DISPARAÎT de l'inventaire.
- voices_reload (rescan + ACTION_RELOAD_VOICES) après push direct.
- conditionnel : exclusivité on-device si tablettes multi-patients (sinon la règle de
déploiement côté central suffit en mono-patient/tablette).
Fondé sur le code réel (voicesCursor blind aux .cvps, résolution par nom de fichier,
pas de notion de propriété).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>