diff --git a/CHANGELOG.md b/CHANGELOG.md index c165d4ee6..98cd9511f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added +- Added additional languages to `LmntTTSService`. Languages include: `hi`, `id`, + `it`, `ja`, `nl`, `pl`, `ru`, `sv`, `th`, `tr`, `uk`, `vi`. + +- Added a `model` parameter to the `LmntTTSService` constructor, allowing + switching between LMNT models. + - Added `MiniMaxHttpTTSService`, which implements MiniMax's T2A API for TTS. Learn more: https://www.minimax.io/platform_overview diff --git a/src/pipecat/services/lmnt/tts.py b/src/pipecat/services/lmnt/tts.py index 4a3be761c..ca03f7a06 100644 --- a/src/pipecat/services/lmnt/tts.py +++ b/src/pipecat/services/lmnt/tts.py @@ -40,8 +40,20 @@ def language_to_lmnt_language(language: Language) -> Optional[str]: Language.EN: "en", Language.ES: "es", Language.FR: "fr", + Language.HI: "hi", + Language.ID: "id", + Language.IT: "it", + Language.JA: "ja", Language.KO: "ko", + Language.NL: "nl", + Language.PL: "pl", Language.PT: "pt", + Language.RU: "ru", + Language.SV: "sv", + Language.TH: "th", + Language.TR: "tr", + Language.UK: "uk", + Language.VI: "vi", Language.ZH: "zh", } @@ -66,6 +78,7 @@ class LmntTTSService(InterruptibleTTSService): voice_id: str, sample_rate: Optional[int] = None, language: Language = Language.EN, + model: str = "aurora", **kwargs, ): super().__init__( @@ -76,7 +89,8 @@ class LmntTTSService(InterruptibleTTSService): ) self._api_key = api_key - self._voice_id = voice_id + self.set_voice(voice_id) + self.set_model_name(model) self._settings = { "language": self.language_to_service_language(language), "format": "raw", # Use raw format for direct PCM data @@ -135,6 +149,7 @@ class LmntTTSService(InterruptibleTTSService): "format": self._settings["format"], "sample_rate": self.sample_rate, "language": self._settings["language"], + "model": self.model_name, } # Connect to LMNT's websocket directly