Aller au contenu

Speaker management

Version française
Back to index


What is a speaker?

A speaker is the native speaker who records pronunciations for a language. Each language has one or more speakers assigned. The speaker accesses their recording interface via a unique access code, at: [application URL]/speaker/login.


Automatic creation during language setup

When you create a new language and fill in the "Speaker configuration" section, a speakers record is automatically created in the database with: - The speaker's name - The generated or entered access code - The link to the language (language_id) - Active status (is_active = true)


Finding speaker access codes

Via the admin interface

In the language list (/admin/languages) → "Speaker code" column → 📋 button to copy.

Via PostgreSQL

SELECT l.name AS language, s.name AS speaker, s.access_code, s.is_active
FROM speakers s
JOIN languages l ON s.language_id = l.id
ORDER BY l.name;

Changing the speaker access code

In the language list → "Speaker code" column: 1. Click on the code field to edit it 2. Enter the new code (format: RACINES-XXXXX-2025) 3. Click "Sauvegarder" or press Enter

The new code is immediately active. Communicate it to the speaker — the old code will no longer work.

Via PostgreSQL

UPDATE speakers
SET access_code = 'RACINES-NEWCO-2026'
WHERE language_id = 'language-uuid'
  AND is_active = true;

⚠️ Verify uniqueness before applying: sql SELECT COUNT(*) FROM speakers WHERE access_code = 'RACINES-NEWCO-2026'; -- Must return 0


Disabling a speaker

If a speaker should no longer have access to the recording interface (end of assignment, change of speaker…):

Via PostgreSQL

UPDATE speakers
SET is_active = false
WHERE id = 'speaker-uuid';

A disabled speaker (is_active = false) can no longer log in — their access code is rejected.

Re-enabling a speaker

UPDATE speakers
SET is_active = true
WHERE id = 'speaker-uuid';

Creating a speaker manually

If you did not create the speaker during language creation, or if you want to add a second speaker:

Via PostgreSQL

INSERT INTO speakers (language_id, name, access_code, is_active)
VALUES (
  'language-uuid',
  'Speaker name',
  'RACINES-XXXXX-2025',
  true
)
RETURNING id, access_code;

⚠️ The code must be unique in the speakers table. Check before inserting.


Changing the speaker for a language

If you want to assign a new speaker (replacement):

  1. Disable the old speaker: sql UPDATE speakers SET is_active = false WHERE id = 'old-speaker-uuid';

  2. Create the new speaker (via SQL as above, or via the language creation form in "add content" mode)

  3. Communicate the new code to the new speaker

ℹ️ Audio recordings from the old speaker remain in MinIO — changing speakers does not delete existing audio files.


Speaker data in the speakers table

SELECT
  id,
  language_id,
  name,          -- Speaker name
  access_code,   -- Access code (format RACINES-XXXXX-2025)
  is_active,     -- true = can log in
  created_at
FROM speakers
WHERE language_id = 'language-uuid';

What the speaker sees

Once logged in with their code, the speaker accesses their recording interface: - They only see their assigned language (not others) - They can record and upload audio for their words and phrases - They track their progress via counters (X/Y recordings)

→ See the full speaker guide


Next steps