diff --git a/cli-config.yaml.example b/cli-config.yaml.example index da550756fefd..7d5a76f96ec0 100644 --- a/cli-config.yaml.example +++ b/cli-config.yaml.example @@ -1109,11 +1109,21 @@ platform_toolsets: # # tts: # provider: "gemini" +# speed: 1.0 # global speed multiplier (provider-specific overrides this) # gemini: # model: "gemini-3.1-flash-tts-preview" # voice: "Kore" # audio_tags: false # persona_prompt_file: "" # e.g. ~/.hermes/tts/radio-host.md +# xai: +# voice_id: "eve" # built-in or custom voice ID from xAI Console +# language: "en" # BCP-47 code ("en", "pt-BR") or "auto" +# speed: 1.0 # 0.7-1.5 playback speed +# auto_speech_tags: false # insert expressive audio tags via LLM rewrite +# text_normalization: false # normalize numbers/abbreviations/symbols +# optimize_streaming_latency: 0 # 0-2, trades quality for lower latency +# sample_rate: 24000 # 22050 / 24000 / 44100 / 48000 +# bit_rate: 128000 # MP3 bitrate (codec=mp3 only) # ============================================================================= # Voice Transcription (Speech-to-Text) diff --git a/website/docs/user-guide/features/tts.md b/website/docs/user-guide/features/tts.md index 920f360f7a35..b337e4fc9d68 100644 --- a/website/docs/user-guide/features/tts.md +++ b/website/docs/user-guide/features/tts.md @@ -72,7 +72,11 @@ tts: persona_prompt_file: "" # Optional Markdown/text file with Gemini voice direction xai: voice_id: "eve" # or a custom voice ID — see docs below - language: "en" # ISO 639-1 code + language: "en" # BCP-47 code (e.g. "en", "pt-BR") or "auto" for detection + speed: 1.0 # 0.7–1.5, playback speed (default: 1.0) + auto_speech_tags: false # insert expressive audio tags via LLM rewrite + text_normalization: false # normalize numbers/abbreviations/symbols to spoken form + optimize_streaming_latency: 0 # 0–2, trades quality for lower latency (default: 0) sample_rate: 24000 # 22050 / 24000 (default) / 44100 / 48000 bit_rate: 128000 # MP3 bitrate; only applies when codec=mp3 # base_url: "https://api.x.ai/v1" # Override via XAI_BASE_URL env var @@ -113,9 +117,9 @@ tts: persona_prompt_file: ~/.hermes/tts/butler-voice.md ``` -### Gemini Audio Tags +### Audio Tags (Gemini, xAI) -Gemini 3.1 Flash TTS supports freeform square-bracket audio tags such as `[whispers]`, `[excitedly]`, `[very slow]`, `[laughs]`, and other expressive delivery notes. Enable `tts.gemini.audio_tags` to have Hermes run a hidden rewrite pass before Gemini TTS. The rewrite inserts inline tags into the TTS script only; the visible chat reply stays unchanged. +Google's Gemini 3.1 Flash TTS and xAI's Grok TTS support freeform square-bracket audio tags such as `[whispers]`, `[excitedly]`, `[very slow]`, `[laughs]`, and other expressive delivery notes. Enable `tts.gemini.audio_tags` or `tts.xai.auto_speech_tags` to have Hermes run a hidden rewrite pass before TTS. The rewrite inserts inline tags into the TTS script only; the visible chat reply stays unchanged. ```yaml tts: @@ -123,6 +127,8 @@ tts: gemini: model: gemini-3.1-flash-tts-preview audio_tags: true + xai: + auto_speech_tags: true ``` The rewrite uses `auxiliary.tts_audio_tags` and defaults to your main chat model. Override that auxiliary task if you want tag insertion handled by a cheaper or faster model.