diff --git a/.claude/skills/cleanup/SKILL.md b/.claude/skills/cleanup/SKILL.md index 5e699d588..48c5e0ee8 100644 --- a/.claude/skills/cleanup/SKILL.md +++ b/.claude/skills/cleanup/SKILL.md @@ -291,7 +291,7 @@ class NewTTSService(TTSService): voice: Voice identifier to use. **kwargs: Additional arguments passed to the parent service. """ - super().__init__(voice=voice, **kwargs) + super().__init__(**kwargs) self._api_key = api_key ``` diff --git a/src/pipecat/services/asyncai/tts.py b/src/pipecat/services/asyncai/tts.py index 323fa3906..31ce83810 100644 --- a/src/pipecat/services/asyncai/tts.py +++ b/src/pipecat/services/asyncai/tts.py @@ -153,7 +153,6 @@ class AsyncAITTSService(AudioContextTTSService): pause_frame_processing=True, push_stop_frames=True, sample_rate=sample_rate, - voice=voice_id, **kwargs, ) @@ -497,7 +496,7 @@ class AsyncAIHttpTTSService(TTSService): params: Additional input parameters for voice customization. **kwargs: Additional arguments passed to the parent TTSService. """ - super().__init__(sample_rate=sample_rate, voice=voice_id, **kwargs) + super().__init__(sample_rate=sample_rate, **kwargs) params = params or AsyncAIHttpTTSService.InputParams() diff --git a/src/pipecat/services/aws/tts.py b/src/pipecat/services/aws/tts.py index a277bc0b2..4e071465d 100644 --- a/src/pipecat/services/aws/tts.py +++ b/src/pipecat/services/aws/tts.py @@ -195,7 +195,7 @@ class AWSPollyTTSService(TTSService): params: Additional input parameters for voice customization. **kwargs: Additional arguments passed to parent TTSService class. """ - super().__init__(sample_rate=sample_rate, voice=voice_id, **kwargs) + super().__init__(sample_rate=sample_rate, **kwargs) params = params or AWSPollyTTSService.InputParams() diff --git a/src/pipecat/services/azure/tts.py b/src/pipecat/services/azure/tts.py index 2d4c01dc9..f1bf9d400 100644 --- a/src/pipecat/services/azure/tts.py +++ b/src/pipecat/services/azure/tts.py @@ -295,7 +295,6 @@ class AzureTTSService(WordTTSService, AzureBaseTTSService): push_stop_frames=True, pause_frame_processing=True, sample_rate=sample_rate, - voice=voice, **kwargs, ) @@ -734,7 +733,7 @@ class AzureHttpTTSService(TTSService, AzureBaseTTSService): params: Voice and synthesis parameters configuration. **kwargs: Additional arguments passed to parent TTSService. """ - super().__init__(sample_rate=sample_rate, voice=voice, **kwargs) + super().__init__(sample_rate=sample_rate, **kwargs) # Initialize Azure-specific functionality from mixin self._init_azure_base(api_key=api_key, region=region, voice=voice, params=params) diff --git a/src/pipecat/services/camb/tts.py b/src/pipecat/services/camb/tts.py index ec0853424..411b4cabf 100644 --- a/src/pipecat/services/camb/tts.py +++ b/src/pipecat/services/camb/tts.py @@ -213,7 +213,7 @@ class CambTTSService(TTSService): params: Additional voice parameters. If None, uses defaults. **kwargs: Additional arguments passed to parent TTSService. """ - super().__init__(sample_rate=sample_rate, voice=voice_id, **kwargs) + super().__init__(sample_rate=sample_rate, **kwargs) self._api_key = api_key self._timeout = timeout diff --git a/src/pipecat/services/cartesia/tts.py b/src/pipecat/services/cartesia/tts.py index a16aa2b39..daddfa6c8 100644 --- a/src/pipecat/services/cartesia/tts.py +++ b/src/pipecat/services/cartesia/tts.py @@ -313,7 +313,6 @@ class CartesiaTTSService(AudioContextWordTTSService): pause_frame_processing=True, sample_rate=sample_rate, text_aggregator=text_aggregator, - voice=voice_id, **kwargs, ) @@ -721,7 +720,7 @@ class CartesiaHttpTTSService(TTSService): params: Additional input parameters for voice customization. **kwargs: Additional arguments passed to the parent TTSService. """ - super().__init__(sample_rate=sample_rate, voice=voice_id, **kwargs) + super().__init__(sample_rate=sample_rate, **kwargs) params = params or CartesiaHttpTTSService.InputParams() diff --git a/src/pipecat/services/deepgram/tts.py b/src/pipecat/services/deepgram/tts.py index a8b46ce7e..23bfecb03 100644 --- a/src/pipecat/services/deepgram/tts.py +++ b/src/pipecat/services/deepgram/tts.py @@ -101,7 +101,6 @@ class DeepgramTTSService(WebsocketTTSService): pause_frame_processing=True, push_stop_frames=True, append_trailing_space=True, - voice=voice, **kwargs, ) @@ -388,7 +387,7 @@ class DeepgramHttpTTSService(TTSService): encoding: Audio encoding format. Defaults to "linear16". **kwargs: Additional arguments passed to parent TTSService class. """ - super().__init__(sample_rate=sample_rate, voice=voice, **kwargs) + super().__init__(sample_rate=sample_rate, **kwargs) self._api_key = api_key self._session = aiohttp_session diff --git a/src/pipecat/services/elevenlabs/tts.py b/src/pipecat/services/elevenlabs/tts.py index 73e9027d3..7de346826 100644 --- a/src/pipecat/services/elevenlabs/tts.py +++ b/src/pipecat/services/elevenlabs/tts.py @@ -400,7 +400,6 @@ class ElevenLabsTTSService(AudioContextWordTTSService): push_stop_frames=True, pause_frame_processing=True, sample_rate=sample_rate, - voice=voice_id, **kwargs, ) @@ -906,7 +905,6 @@ class ElevenLabsHttpTTSService(WordTTSService): push_text_frames=False, push_stop_frames=True, sample_rate=sample_rate, - voice=voice_id, **kwargs, ) diff --git a/src/pipecat/services/google/tts.py b/src/pipecat/services/google/tts.py index 33fa1b2a8..1103c69e4 100644 --- a/src/pipecat/services/google/tts.py +++ b/src/pipecat/services/google/tts.py @@ -602,7 +602,7 @@ class GoogleHttpTTSService(TTSService): params: Voice customization parameters including pitch, rate, volume, etc. **kwargs: Additional arguments passed to parent TTSService. """ - super().__init__(sample_rate=sample_rate, voice=voice_id, **kwargs) + super().__init__(sample_rate=sample_rate, **kwargs) params = params or GoogleHttpTTSService.InputParams() @@ -1015,7 +1015,7 @@ class GoogleTTSService(GoogleBaseTTSService): params: Language configuration parameters. **kwargs: Additional arguments passed to parent TTSService. """ - super().__init__(sample_rate=sample_rate, voice=voice_id, **kwargs) + super().__init__(sample_rate=sample_rate, **kwargs) params = params or GoogleTTSService.InputParams() @@ -1220,7 +1220,7 @@ class GeminiTTSService(GoogleBaseTTSService): f"Google TTS only supports {self.GOOGLE_SAMPLE_RATE}Hz sample rate. " f"Current rate of {sample_rate}Hz may cause issues." ) - super().__init__(sample_rate=sample_rate, voice=voice_id, **kwargs) + super().__init__(sample_rate=sample_rate, **kwargs) params = params or GeminiTTSService.InputParams() diff --git a/src/pipecat/services/gradium/tts.py b/src/pipecat/services/gradium/tts.py index e3d855c5c..85e77f057 100644 --- a/src/pipecat/services/gradium/tts.py +++ b/src/pipecat/services/gradium/tts.py @@ -91,7 +91,6 @@ class GradiumTTSService(InterruptibleWordTTSService): push_stop_frames=True, pause_frame_processing=True, sample_rate=SAMPLE_RATE, - voice=voice_id, **kwargs, ) diff --git a/src/pipecat/services/groq/tts.py b/src/pipecat/services/groq/tts.py index 78d744461..5c3eab636 100644 --- a/src/pipecat/services/groq/tts.py +++ b/src/pipecat/services/groq/tts.py @@ -102,7 +102,6 @@ class GroqTTSService(TTSService): super().__init__( pause_frame_processing=True, sample_rate=sample_rate, - voice=voice_id, **kwargs, ) diff --git a/src/pipecat/services/hathora/tts.py b/src/pipecat/services/hathora/tts.py index 6e75feeca..9778a2f14 100644 --- a/src/pipecat/services/hathora/tts.py +++ b/src/pipecat/services/hathora/tts.py @@ -109,7 +109,6 @@ class HathoraTTSService(TTSService): """ super().__init__( sample_rate=sample_rate, - voice=voice_id, **kwargs, ) self._model = model diff --git a/src/pipecat/services/hume/tts.py b/src/pipecat/services/hume/tts.py index a52922787..d15f13ce1 100644 --- a/src/pipecat/services/hume/tts.py +++ b/src/pipecat/services/hume/tts.py @@ -126,7 +126,6 @@ class HumeTTSService(WordTTSService): sample_rate=sample_rate, push_text_frames=False, push_stop_frames=True, - voice=voice_id, **kwargs, ) diff --git a/src/pipecat/services/inworld/tts.py b/src/pipecat/services/inworld/tts.py index 34dc34933..1b6dee46f 100644 --- a/src/pipecat/services/inworld/tts.py +++ b/src/pipecat/services/inworld/tts.py @@ -144,7 +144,6 @@ class InworldHttpTTSService(WordTTSService): push_text_frames=False, push_stop_frames=True, sample_rate=sample_rate, - voice=voice_id, **kwargs, ) @@ -519,7 +518,6 @@ class InworldTTSService(AudioContextWordTTSService): sample_rate=sample_rate, aggregate_sentences=aggregate_sentences, append_trailing_space=append_trailing_space, - voice=voice_id, **kwargs, ) diff --git a/src/pipecat/services/kokoro/tts.py b/src/pipecat/services/kokoro/tts.py index 9f2aac368..6e848ae87 100644 --- a/src/pipecat/services/kokoro/tts.py +++ b/src/pipecat/services/kokoro/tts.py @@ -137,7 +137,7 @@ class KokoroTTSService(TTSService): **kwargs: Additional arguments passed to parent `TTSService`. """ - super().__init__(voice=voice_id, **kwargs) + super().__init__(**kwargs) params = params or KokoroTTSService.InputParams() diff --git a/src/pipecat/services/lmnt/tts.py b/src/pipecat/services/lmnt/tts.py index ab56f2296..71ffb4f5f 100644 --- a/src/pipecat/services/lmnt/tts.py +++ b/src/pipecat/services/lmnt/tts.py @@ -118,7 +118,6 @@ class LmntTTSService(InterruptibleTTSService): push_stop_frames=True, pause_frame_processing=True, sample_rate=sample_rate, - voice=voice_id, **kwargs, ) diff --git a/src/pipecat/services/minimax/tts.py b/src/pipecat/services/minimax/tts.py index ca6cfd7bc..507febf2d 100644 --- a/src/pipecat/services/minimax/tts.py +++ b/src/pipecat/services/minimax/tts.py @@ -227,7 +227,7 @@ class MiniMaxHttpTTSService(TTSService): params: Additional configuration parameters. **kwargs: Additional arguments passed to parent TTSService. """ - super().__init__(sample_rate=sample_rate, voice=voice_id, **kwargs) + super().__init__(sample_rate=sample_rate, **kwargs) params = params or MiniMaxHttpTTSService.InputParams() diff --git a/src/pipecat/services/neuphonic/tts.py b/src/pipecat/services/neuphonic/tts.py index ffcbdcd8c..dd2360e4c 100644 --- a/src/pipecat/services/neuphonic/tts.py +++ b/src/pipecat/services/neuphonic/tts.py @@ -139,7 +139,6 @@ class NeuphonicTTSService(InterruptibleTTSService): push_stop_frames=True, stop_frame_timeout_s=2.0, sample_rate=sample_rate, - voice=voice_id, **kwargs, ) @@ -443,7 +442,7 @@ class NeuphonicHttpTTSService(TTSService): params: Additional input parameters for TTS configuration. **kwargs: Additional arguments passed to parent TTSService. """ - super().__init__(sample_rate=sample_rate, voice=voice_id, **kwargs) + super().__init__(sample_rate=sample_rate, **kwargs) params = params or NeuphonicHttpTTSService.InputParams() diff --git a/src/pipecat/services/openai/tts.py b/src/pipecat/services/openai/tts.py index 764688125..853647f7f 100644 --- a/src/pipecat/services/openai/tts.py +++ b/src/pipecat/services/openai/tts.py @@ -132,7 +132,7 @@ class OpenAITTSService(TTSService): f"OpenAI TTS only supports {self.OPENAI_SAMPLE_RATE}Hz sample rate. " f"Current rate of {sample_rate}Hz may cause issues." ) - super().__init__(sample_rate=sample_rate, voice=voice, **kwargs) + super().__init__(sample_rate=sample_rate, **kwargs) self.set_model_name(model) self._client = AsyncOpenAI(api_key=api_key, base_url=base_url) diff --git a/src/pipecat/services/playht/tts.py b/src/pipecat/services/playht/tts.py index 0242eaac1..630351164 100644 --- a/src/pipecat/services/playht/tts.py +++ b/src/pipecat/services/playht/tts.py @@ -173,7 +173,6 @@ class PlayHTTTSService(InterruptibleTTSService): super().__init__( pause_frame_processing=True, sample_rate=sample_rate, - voice=voice_url, **kwargs, ) @@ -511,7 +510,7 @@ class PlayHTHttpTTSService(TTSService): params: Additional input parameters for voice customization. **kwargs: Additional arguments passed to parent TTSService. """ - super().__init__(sample_rate=sample_rate, voice=voice_url, **kwargs) + super().__init__(sample_rate=sample_rate, **kwargs) # Warn about deprecated protocol parameter if explicitly provided if protocol: diff --git a/src/pipecat/services/resembleai/tts.py b/src/pipecat/services/resembleai/tts.py index 79fdf54a9..8e436923b 100644 --- a/src/pipecat/services/resembleai/tts.py +++ b/src/pipecat/services/resembleai/tts.py @@ -94,7 +94,6 @@ class ResembleAITTSService(AudioContextWordTTSService): """ super().__init__( sample_rate=sample_rate, - voice=voice_id, **kwargs, ) diff --git a/src/pipecat/services/rime/tts.py b/src/pipecat/services/rime/tts.py index 99250bce0..2f006efc7 100644 --- a/src/pipecat/services/rime/tts.py +++ b/src/pipecat/services/rime/tts.py @@ -191,7 +191,6 @@ class RimeTTSService(AudioContextWordTTSService): pause_frame_processing=True, append_trailing_space=True, sample_rate=sample_rate, - voice=voice_id, **kwargs, ) @@ -582,7 +581,7 @@ class RimeHttpTTSService(TTSService): params: Additional configuration parameters. **kwargs: Additional arguments passed to parent TTSService. """ - super().__init__(sample_rate=sample_rate, voice=voice_id, **kwargs) + super().__init__(sample_rate=sample_rate, **kwargs) params = params or RimeHttpTTSService.InputParams() @@ -762,7 +761,6 @@ class RimeNonJsonTTSService(InterruptibleTTSService): aggregate_sentences=aggregate_sentences, push_stop_frames=True, pause_frame_processing=True, - voice=voice_id, **kwargs, ) params = params or RimeNonJsonTTSService.InputParams() diff --git a/src/pipecat/services/sarvam/tts.py b/src/pipecat/services/sarvam/tts.py index ba93c7c26..cbccd0130 100644 --- a/src/pipecat/services/sarvam/tts.py +++ b/src/pipecat/services/sarvam/tts.py @@ -464,7 +464,7 @@ class SarvamHttpTTSService(TTSService): if voice_id is None: voice_id = self._config.default_speaker - super().__init__(sample_rate=sample_rate, voice=voice_id, **kwargs) + super().__init__(sample_rate=sample_rate, **kwargs) self._api_key = api_key self._base_url = base_url @@ -821,7 +821,6 @@ class SarvamTTSService(InterruptibleTTSService): pause_frame_processing=True, push_stop_frames=True, sample_rate=sample_rate, - voice=voice_id, **kwargs, ) params = params or SarvamTTSService.InputParams() diff --git a/src/pipecat/services/tts_service.py b/src/pipecat/services/tts_service.py index 4567e2db3..e5602d469 100644 --- a/src/pipecat/services/tts_service.py +++ b/src/pipecat/services/tts_service.py @@ -145,11 +145,6 @@ class TTSService(AIService): text_filter: Optional[BaseTextFilter] = None, # Audio transport destination of the generated frames. transport_destination: Optional[str] = None, - # Voice identifier or name to use for speech synthesis - voice: Optional[str] = None, - # Language to use for speech synthesis. This will be translated to a - # service-specific language identifier before being applied - language: Optional[Language] = None, **kwargs, ): """Initialize the TTS service. @@ -183,10 +178,6 @@ class TTSService(AIService): Use `text_filters` instead, which allows multiple filters. transport_destination: Destination for generated audio frames. - voice: Voice identifier or name to use for speech synthesis. - language: Language to use for speech synthesis. This will be - translated to a service-specific language identifier before - being applied. **kwargs: Additional arguments passed to the parent AIService. """ super().__init__(**kwargs) @@ -201,7 +192,7 @@ class TTSService(AIService): self._init_sample_rate = sample_rate self._sample_rate = 0 self._settings = TTSSettings( - voice=voice, language=language + voice="" ) # Here in case subclass doesn't implement more specific settings (hopefully shouldn't happen) self._text_aggregator: BaseTextAggregator = text_aggregator or SimpleTextAggregator() if text_aggregator: diff --git a/src/pipecat/services/xtts/tts.py b/src/pipecat/services/xtts/tts.py index 5cc91709f..ba2eb4fc2 100644 --- a/src/pipecat/services/xtts/tts.py +++ b/src/pipecat/services/xtts/tts.py @@ -111,7 +111,7 @@ class XTTSService(TTSService): sample_rate: Audio sample rate. If None, uses default. **kwargs: Additional arguments passed to parent TTSService. """ - super().__init__(sample_rate=sample_rate, voice=voice_id, **kwargs) + super().__init__(sample_rate=sample_rate, **kwargs) self._settings = XTTSTTSSettings( voice=voice_id,