From e06146c23770c3611a436e12c3dfb5528fb7afee Mon Sep 17 00:00:00 2001 From: Mark Backman Date: Tue, 6 May 2025 11:06:57 -0400 Subject: [PATCH] Add enable_ssml_parsing to ElevenLabsTTSService --- CHANGELOG.md | 2 ++ src/pipecat/services/elevenlabs/tts.py | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 95350157f..1bbc5210d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added +- Added `enable_ssml_parsing` to `InputParams` in `ElevenLabsTTSService`. + - Added support to `RimeHttpTTSService` for the `arcana` model. ### Fixed diff --git a/src/pipecat/services/elevenlabs/tts.py b/src/pipecat/services/elevenlabs/tts.py index 4362fcdc9..ea89d1378 100644 --- a/src/pipecat/services/elevenlabs/tts.py +++ b/src/pipecat/services/elevenlabs/tts.py @@ -169,6 +169,7 @@ class ElevenLabsTTSService(InterruptibleWordTTSService): use_speaker_boost: Optional[bool] = None speed: Optional[float] = None auto_mode: Optional[bool] = True + enable_ssml_parsing: Optional[bool] = None @model_validator(mode="after") def validate_voice_settings(self): @@ -227,6 +228,7 @@ class ElevenLabsTTSService(InterruptibleWordTTSService): "use_speaker_boost": params.use_speaker_boost, "speed": params.speed, "auto_mode": str(params.auto_mode).lower(), + "enable_ssml_parsing": params.enable_ssml_parsing, } self.set_model_name(model) self.set_voice(voice_id) @@ -324,6 +326,9 @@ class ElevenLabsTTSService(InterruptibleWordTTSService): if self._settings["optimize_streaming_latency"]: url += f"&optimize_streaming_latency={self._settings['optimize_streaming_latency']}" + if self._settings["enable_ssml_parsing"]: + url += f"&enable_ssml_parsing={self._settings['enable_ssml_parsing']}" + # Language can only be used with the ELEVENLABS_MULTILINGUAL_MODELS language = self._settings["language"] if model in ELEVENLABS_MULTILINGUAL_MODELS and language is not None: