diff --git a/CHANGELOG.md b/CHANGELOG.md index df2c278de..fb7002fd6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,7 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed - Added support for retrying `SpeechmaticsTTSService` when it returns a 503 - error. + error. Default values in `InputParams`. ### Deprecated diff --git a/src/pipecat/services/speechmatics/tts.py b/src/pipecat/services/speechmatics/tts.py index 455eb1ce0..b45c63ef7 100644 --- a/src/pipecat/services/speechmatics/tts.py +++ b/src/pipecat/services/speechmatics/tts.py @@ -46,9 +46,13 @@ class SpeechmaticsTTSService(TTSService): SPEECHMATICS_SAMPLE_RATE = 16000 class InputParams(BaseModel): - """Optional input parameters for Speechmatics TTS configuration.""" + """Optional input parameters for Speechmatics TTS configuration. - pass + Parameters: + max_retries: Maximum number of retries for TTS requests. Defaults to 5. + """ + + max_retries: int = 5 def __init__( self, @@ -151,8 +155,11 @@ class SpeechmaticsTTSService(TTSService): attempt=attempt, min_wait=0.25, max_wait=8.0, multiplier=0.5 ) + # Increment attempt + attempt += 1 + # Check if we've exceeded the maximum number of attempts - if backoff_time >= 8.0: + if attempt > self._params.max_retries: raise ValueError() # Report error frame @@ -163,9 +170,6 @@ class SpeechmaticsTTSService(TTSService): # Wait before retrying await asyncio.sleep(backoff_time) - # Increment attempt - attempt += 1 - # Retry continue