Skip to content

Voice: dictation and reading aloud ​

In the chat, members can dictate a question instead of typing it, and listen to an answer instead of reading it. Both are off by default. An administrator turns them on for the whole workspace under Settings → Defaults → Voice in the chat.

No recording is kept: dictation audio is sent to the transcription model and then dropped; the audio of an answer read aloud is produced on demand and never stored.

What members see ​

  • Microphone button in the chat input: one click starts recording, a second one stops it. The transcript is appended to what is already typed; review it, then send it. The browser asks for microphone access the first time.
  • "Read aloud" button under each answer, next to "Copy". One click starts reading, a second one stops it. Only one answer plays at a time.
  • Automatic reading (when the administrator turns it on): each new answer is read as soon as it is complete. Opening an old conversation reads nothing by itself.

Formatting is removed before reading: headings, bold, lists, links (only the link text is read), images, [1] citations and code blocks are not spoken. A very long answer is cut at the end of a sentence, at the model's limit (4,000 characters at most).

Setting up ​

1. Add the models ​

Under Settings → Model Management:

UseModel typeProviders
DictationSpeech (ASR)OpenAI (whisper-1, gpt-4o-transcribe…), ElevenLabs (scribe_v1), any OpenAI-compatible server, and the other ASR providers in the catalog
Reading aloudText to speech (TTS)OpenAI (gpt-4o-mini-tts, tts-1, tts-1-hd), ElevenLabs (eleven_multilingual_v2, eleven_flash_v2_5, eleven_turbo_v2_5), any OpenAI-compatible server (/v1/audio/speech: Kokoro-FastAPI, openedai-speech, LocalAI…)

The Default voice field of a text-to-speech model sets the voice used when the workspace picks none: an OpenAI voice name (alloy, nova, coral…), or the id of a voice from the ElevenLabs voice library. ElevenLabs has no default voice: without an id, neither the connection test nor reading works.

The Test connection button of a text-to-speech model reads "Bonjour." and checks that audio comes back.

2. Pick the workspace's models ​

Under Settings → Defaults, the Default speech recognition model and Default text-to-speech model rows set which models voice uses. When none is chosen, the usual rule applies: the deployment default, otherwise the first active model of the type.

3. Turn voice on ​

Still under Defaults, group Voice in the chat:

SettingEffect
DictationShows the microphone button
Dictation languageHelps transcription (fr, en…); "Automatic detection" if members speak several languages
Read aloudShows the "Read aloud" button
Automatic readingReads each new completed answer
VoiceOverrides the model's default voice for the whole workspace

A button stays hidden while its feature is off or no model of its type is available.

Who is speaking: speaker separation ​

With an ElevenLabs speech recognition model (scribe_v1), the transcript of an audio file imported into a knowledge base, or attached in the chat, says who is speaking:

[00:04] Intervenant 1 : Bonjour, on fait le point sur le chantier ?
[00:09] Intervenant 2 : Oui, la livraison est prévue lundi.

Each line starts with its time in the recording. Speakers are numbered in order of appearance ("Intervenant" is the French label written into the transcript). Each line stays linked to its place in the recording, and a long turn is split into one-minute parts. Other providers give the text without speaker names. Chat dictation is not affected.

Limits ​

  • Dictation recording: 10 MB at most, several minutes of speech.
  • Text read at once: the model's limit (4,096 characters for OpenAI, 10,000 for ElevenLabs Multilingual v2), capped at 4,000.
  • Dictation and reading aloud are not offered in assistants embedded in a website.

API ​

MethodPathPurpose
GET/api/v1/voice/statusWhat the chat may offer: dictation, read_aloud, auto_read, language, max_audio_bytes
POST/api/v1/voice/transcriptionsMultipart form, field audio; answers {text}
POST/api/v1/voice/speech{text}; answers the audio (usually audio/mpeg). Header X-Speech-Truncated: true when the text was cut
POST/api/v1/initialization/tts/checkConnection test of a text-to-speech model (administrators)

The settings are read and written with the workspace defaults (GET / PUT /api/v1/tenants/kv/default-settings): tts_model_id and the voice object (dictation, read_aloud, auto_read, voice_name, language).