diff --git a/apps/desktop/src/app/settings/constants.ts b/apps/desktop/src/app/settings/constants.ts index 9ef127c6512..5ae4eb393f5 100644 --- a/apps/desktop/src/app/settings/constants.ts +++ b/apps/desktop/src/app/settings/constants.ts @@ -335,6 +335,7 @@ export const FIELD_LABELS: Record = defineFieldCopy({ }, stt: { enabled: 'Speech To Text', + echoTranscripts: 'Echo Transcripts', provider: 'Speech-To-Text Provider', local: { model: 'Local Transcription Model', @@ -486,6 +487,7 @@ export const FIELD_DESCRIPTIONS: Record = defineFieldCopy({ }, stt: { enabled: 'Enable local or provider-backed speech transcription.', + echoTranscripts: 'Post the raw 🎙️ transcript of voice messages back to the chat.', elevenlabs: { languageCode: 'Optional ISO-639-3 language code. Blank lets ElevenLabs auto-detect.' } @@ -568,6 +570,7 @@ export const SECTIONS: DesktopConfigSection[] = [ keys: [ 'tts.provider', 'stt.enabled', + 'stt.echo_transcripts', 'stt.provider', 'voice.auto_tts', 'tts.edge.voice', diff --git a/website/docs/user-guide/configuration.md b/website/docs/user-guide/configuration.md index 0bcda2138a4..93df14b4b8d 100644 --- a/website/docs/user-guide/configuration.md +++ b/website/docs/user-guide/configuration.md @@ -1543,6 +1543,8 @@ Hashes are deterministic — the same user always maps to the same hash, so the ```yaml stt: + enabled: true # Auto-transcribe inbound voice messages (default: true) + echo_transcripts: true # Post raw transcripts back to the chat as 🎙️ "..." (default: true) provider: "local" # "local" | "groq" | "openai" | "mistral" local: model: "base" # tiny, base, small, medium, large-v3 @@ -1551,6 +1553,8 @@ stt: # model: "whisper-1" # Legacy fallback key still respected ``` +Set `stt.echo_transcripts: false` when the gateway should transcribe voice notes for the agent but must not post the raw transcript back to the chat (for example, customer-facing WhatsApp bots). + Provider behavior: - `local` uses `faster-whisper` running on your machine. Install it separately with `pip install faster-whisper`.