From b39087027cd7e4bdb5367bf83a7df50a5efa8e4f Mon Sep 17 00:00:00 2001 From: Mark Backman Date: Thu, 4 Dec 2025 09:41:18 -0500 Subject: [PATCH] fix: ElevenLabsTTSService character usage metrics --- CHANGELOG.md | 3 +++ src/pipecat/services/elevenlabs/tts.py | 6 ++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 52606239d..22efc89ec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -54,6 +54,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed +- Fixed an issue in `ElevenLabsTTSService` where character usage metrics were + only reported on the first TTS generation per turn. + - Fixed an issue where `LLMTextFrame.skip_tts` was being overwritten by LLM services. diff --git a/src/pipecat/services/elevenlabs/tts.py b/src/pipecat/services/elevenlabs/tts.py index 4a7dd0a21..38f4530a0 100644 --- a/src/pipecat/services/elevenlabs/tts.py +++ b/src/pipecat/services/elevenlabs/tts.py @@ -731,10 +731,8 @@ class ElevenLabsTTSService(AudioContextWordTTSService): await self._websocket.send(json.dumps(msg)) logger.trace(f"Created new context {self._context_id}") - await self._send_text(text) - await self.start_tts_usage_metrics(text) - else: - await self._send_text(text) + await self._send_text(text) + await self.start_tts_usage_metrics(text) except Exception as e: yield TTSStoppedFrame() yield ErrorFrame(error=f"Unknown error occurred: {e}")