Gestion des locuteurs
Qu'est-ce qu'un locuteur ?
Un locuteur (speaker) est le locuteur natif qui enregistre les prononciations pour une langue. Chaque langue a un ou plusieurs locuteurs assignés. Le locuteur accède à son interface d'enregistrement via un code d'accès unique, à l'adresse : [URL de l'application]/speaker/login.
⚠️ Correction importante : Les anciens guides mentionnaient "Accédez au Supabase Dashboard" pour gérer les locuteurs. Ce n'est plus le cas depuis la migration vers PostgreSQL. Tout se gère via l'interface admin ou PostgreSQL directement.
Création automatique lors de la langue
Lorsque vous créez une nouvelle langue et renseignez la section "Configuration du locuteur", un enregistrement speakers est créé automatiquement en base avec :
- Le nom du locuteur
- Le code d'accès généré ou saisi
- Le lien avec la langue (language_id)
- Le statut actif (is_active = true)
Retrouver les codes d'accès locuteurs
Via l'interface admin
Dans la liste des langues (/admin/languages) → colonne "Code locuteur" → bouton 📋 pour copier.
Via PostgreSQL
SELECT l.name AS langue, s.name AS locuteur, s.access_code, s.is_active
FROM speakers s
JOIN languages l ON s.language_id = l.id
ORDER BY l.name;
Modifier le code d'accès locuteur
Via l'interface admin (recommandé)
Dans la liste des langues → colonne "Code locuteur" :
1. Cliquez sur le champ du code pour l'éditer
2. Saisissez le nouveau code (format : RACINES-XXXXX-2025)
3. Cliquez sur "Sauvegarder" ou appuyez sur Entrée
Le nouveau code est immédiatement actif. Communiquez-le au locuteur — l'ancien code ne fonctionnera plus.
Via PostgreSQL
UPDATE speakers
SET access_code = 'RACINES-NEWCO-2026'
WHERE language_id = 'uuid-de-la-langue'
AND is_active = true;
⚠️ Vérifiez l'unicité du code avant de l'appliquer :
sql SELECT COUNT(*) FROM speakers WHERE access_code = 'RACINES-NEWCO-2026'; -- Doit retourner 0
Désactiver un locuteur
Si un locuteur ne doit plus avoir accès à l'interface d'enregistrement (fin de mission, changement de locuteur…) :
Via PostgreSQL
UPDATE speakers
SET is_active = false
WHERE id = 'uuid-du-locuteur';
Un locuteur désactivé (is_active = false) ne peut plus se connecter — son code d'accès est rejeté.
Réactiver un locuteur
UPDATE speakers
SET is_active = true
WHERE id = 'uuid-du-locuteur';
Créer un locuteur manuellement
Si vous n'avez pas créé le locuteur lors de la création de la langue, ou si vous souhaitez ajouter un second locuteur :
Via PostgreSQL
INSERT INTO speakers (language_id, name, access_code, is_active)
VALUES (
'uuid-de-la-langue',
'Nom du locuteur',
'RACINES-XXXXX-2025',
true
)
RETURNING id, access_code;
⚠️ Le code doit être unique dans la table
speakers. Vérifiez avant insertion.
Changer de locuteur pour une langue
Si vous souhaitez assigner un nouveau locuteur (remplacement) :
-
Désactivez l'ancien locuteur :
sql UPDATE speakers SET is_active = false WHERE id = 'uuid-ancien-locuteur'; -
Créez le nouveau locuteur (via SQL comme ci-dessus, ou via la création de langue en mode "ajout de contenu")
-
Communiquez le nouveau code au nouveau locuteur
ℹ️ Les enregistrements audio de l'ancien locuteur restent en place dans MinIO — le changement de locuteur n'efface pas les audios existants.
Données d'un locuteur dans la table speakers
SELECT
id,
language_id,
name, -- Nom du locuteur
access_code, -- Code d'accès (format RACINES-XXXXX-2025)
is_active, -- true = peut se connecter
created_at
FROM speakers
WHERE language_id = 'uuid-de-la-langue';
Ce que voit le locuteur
Une fois connecté avec son code, le locuteur accède à son interface d'enregistrement : - Il ne voit que sa langue assignée (pas les autres) - Il peut enregistrer et uploader des audios pour ses mots et phrases - Il suit sa progression via les compteurs (X/Y enregistrements)
→ Voir le guide complet du locuteur