From 7fe118ce639aeac6bd84c7c2e721f3cf6dd298e0 Mon Sep 17 00:00:00 2001 From: Mark Backman Date: Fri, 27 Sep 2024 11:22:03 -0400 Subject: [PATCH] Align use of language param across TTS services --- src/pipecat/services/azure.py | 17 ++++++++++------- src/pipecat/services/elevenlabs.py | 10 +++++----- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/src/pipecat/services/azure.py b/src/pipecat/services/azure.py index c8fa095ab..a1349cefe 100644 --- a/src/pipecat/services/azure.py +++ b/src/pipecat/services/azure.py @@ -41,7 +41,10 @@ try: SpeechRecognizer, SpeechSynthesizer, ) - from azure.cognitiveservices.speech.audio import AudioStreamFormat, PushAudioInputStream + from azure.cognitiveservices.speech.audio import ( + AudioStreamFormat, + PushAudioInputStream, + ) from azure.cognitiveservices.speech.dialog import AudioConfig from openai import AsyncAzureOpenAI except ModuleNotFoundError as e: @@ -73,7 +76,7 @@ class AzureLLMService(BaseOpenAILLMService): class AzureTTSService(TTSService): class InputParams(BaseModel): emphasis: Optional[str] = None - language_code: Optional[str] = "en-US" + language: Optional[str] = "en-US" pitch: Optional[str] = None rate: Optional[str] = "1.05" role: Optional[str] = None @@ -105,7 +108,7 @@ class AzureTTSService(TTSService): def _construct_ssml(self, text: str) -> str: ssml = ( - f"" f"" @@ -155,9 +158,9 @@ class AzureTTSService(TTSService): logger.debug(f"Setting TTS emphasis to: [{emphasis}]") self._params.emphasis = emphasis - async def set_language_code(self, language_code: str): - logger.debug(f"Setting TTS language code to: [{language_code}]") - self._params.language_code = language_code + async def set_language(self, language: str): + logger.debug(f"Setting TTS language code to: [{language}]") + self._params.language = language async def set_pitch(self, pitch: str): logger.debug(f"Setting TTS pitch to: [{pitch}]") @@ -187,7 +190,7 @@ class AzureTTSService(TTSService): valid_params = { "voice": self.set_voice, "emphasis": self.set_emphasis, - "language_code": self.set_language_code, + "language_code": self.set_language, "pitch": self.set_pitch, "rate": self.set_rate, "role": self.set_role, diff --git a/src/pipecat/services/elevenlabs.py b/src/pipecat/services/elevenlabs.py index 79d90bc58..ca4713f5f 100644 --- a/src/pipecat/services/elevenlabs.py +++ b/src/pipecat/services/elevenlabs.py @@ -72,7 +72,7 @@ def calculate_word_times( class ElevenLabsTTSService(AsyncWordTTSService): class InputParams(BaseModel): - language_code: Optional[str] = None + language: Optional[str] = None output_format: Literal["pcm_16000", "pcm_22050", "pcm_24000", "pcm_44100"] = "pcm_16000" optimize_streaming_latency: Optional[str] = None stability: Optional[float] = None @@ -229,13 +229,13 @@ class ElevenLabsTTSService(AsyncWordTTSService): if self._params.optimize_streaming_latency: url += f"&optimize_streaming_latency={self._params.optimize_streaming_latency}" - # language_code can only be used with the 'eleven_turbo_v2_5' model - if self._params.language_code: + # language can only be used with the 'eleven_turbo_v2_5' model + if self._params.language: if model == "eleven_turbo_v2_5": - url += f"&language_code={self._params.language_code}" + url += f"&language_code={self._params.language}" else: logger.debug( - f"Language code [{self._params.language_code}] not applied. Language codes can only be used with the 'eleven_turbo_v2_5' model." + f"Language code [{self._params.language}] not applied. Language codes can only be used with the 'eleven_turbo_v2_5' model." ) self._websocket = await websockets.connect(url)