From 943a7ad2dc0a1588e8e7247a2a84b2208f5fc3a4 Mon Sep 17 00:00:00 2001 From: kamilbenkirane Date: Fri, 5 Dec 2025 10:46:12 +0100 Subject: [PATCH] feat: add missing ElevenLabs models and voices - Add four new ElevenLabs models: - eleven_v3 - eleven_turbo_v2_5 - eleven_flash_v2 - eleven_multilingual_v1 - Add Spuds voice (Grandpa Spuds Oxley) - Bump speech-generation version to 0.2.9 - Bump celeste-ai version to 0.2.14 --- packages/speech-generation/pyproject.toml | 2 +- .../providers/elevenlabs/models.py | 72 +++++++++++++++++++ .../providers/elevenlabs/voices.py | 6 ++ pyproject.toml | 6 +- 4 files changed, 82 insertions(+), 4 deletions(-) diff --git a/packages/speech-generation/pyproject.toml b/packages/speech-generation/pyproject.toml index 01121501..e2d0a8c6 100644 --- a/packages/speech-generation/pyproject.toml +++ b/packages/speech-generation/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "celeste-speech-generation" -version = "0.2.8" +version = "0.2.9" description = "Speech generation package for Celeste AI. Unified interface for all providers" authors = [{name = "Kamilbenkirane", email = "kamil@withceleste.ai"}] readme = "README.md" diff --git a/packages/speech-generation/src/celeste_speech_generation/providers/elevenlabs/models.py b/packages/speech-generation/src/celeste_speech_generation/providers/elevenlabs/models.py index 5983e097..c039e83c 100644 --- a/packages/speech-generation/src/celeste_speech_generation/providers/elevenlabs/models.py +++ b/packages/speech-generation/src/celeste_speech_generation/providers/elevenlabs/models.py @@ -8,6 +8,24 @@ from .voices import ELEVENLABS_VOICES MODELS: list[Model] = [ + Model( + id="eleven_v3", + provider=Provider.ELEVENLABS, + display_name="Eleven v3", + streaming=True, + parameter_constraints={ + SpeechGenerationParameter.VOICE: VoiceConstraint(voices=ELEVENLABS_VOICES), + SpeechGenerationParameter.SPEED: Range(min=0.7, max=1.2), + SpeechGenerationParameter.RESPONSE_FORMAT: Choice( + options=[ + "mp3_44100_128", + "pcm_22050_16", + "pcm_24000_16", + "pcm_44100_16", + ] + ), + }, + ), Model( id="eleven_multilingual_v2", provider=Provider.ELEVENLABS, @@ -26,6 +44,24 @@ ), }, ), + Model( + id="eleven_turbo_v2_5", + provider=Provider.ELEVENLABS, + display_name="Eleven Turbo v2.5", + streaming=True, + parameter_constraints={ + SpeechGenerationParameter.VOICE: VoiceConstraint(voices=ELEVENLABS_VOICES), + SpeechGenerationParameter.SPEED: Range(min=0.7, max=1.2), + SpeechGenerationParameter.RESPONSE_FORMAT: Choice( + options=[ + "mp3_44100_128", + "pcm_22050_16", + "pcm_24000_16", + "pcm_44100_16", + ] + ), + }, + ), Model( id="eleven_turbo_v2", provider=Provider.ELEVENLABS, @@ -62,6 +98,42 @@ ), }, ), + Model( + id="eleven_flash_v2", + provider=Provider.ELEVENLABS, + display_name="Eleven Flash v2", + streaming=True, + parameter_constraints={ + SpeechGenerationParameter.VOICE: VoiceConstraint(voices=ELEVENLABS_VOICES), + SpeechGenerationParameter.SPEED: Range(min=0.7, max=1.2), + SpeechGenerationParameter.RESPONSE_FORMAT: Choice( + options=[ + "mp3_44100_128", + "pcm_22050_16", + "pcm_24000_16", + "pcm_44100_16", + ] + ), + }, + ), + Model( + id="eleven_multilingual_v1", + provider=Provider.ELEVENLABS, + display_name="Eleven Multilingual v1", + streaming=True, + parameter_constraints={ + SpeechGenerationParameter.VOICE: VoiceConstraint(voices=ELEVENLABS_VOICES), + SpeechGenerationParameter.SPEED: Range(min=0.7, max=1.2), + SpeechGenerationParameter.RESPONSE_FORMAT: Choice( + options=[ + "mp3_44100_128", + "pcm_22050_16", + "pcm_24000_16", + "pcm_44100_16", + ] + ), + }, + ), Model( id="eleven_monolingual_v1", provider=Provider.ELEVENLABS, diff --git a/packages/speech-generation/src/celeste_speech_generation/providers/elevenlabs/voices.py b/packages/speech-generation/src/celeste_speech_generation/providers/elevenlabs/voices.py index 18ec82ca..f668c2ff 100644 --- a/packages/speech-generation/src/celeste_speech_generation/providers/elevenlabs/voices.py +++ b/packages/speech-generation/src/celeste_speech_generation/providers/elevenlabs/voices.py @@ -23,6 +23,12 @@ name="Laura", languages=set(), ), # NEW - replaces Domi (ID confirmed from API) + Voice( + id="NOpBlnGInO9m6vDvFkFC", + provider=Provider.ELEVENLABS, + name="Spuds", + languages=set(), + ), # Spuds (Grandpa Spuds Oxley) # TODO: Add Janet when available in API (replaces Rachel, Serena, Glinda) # TODO: Add Peter when available in API (replaces Elli, Fin) # TODO: Add Craig when available in API (replaces Josh, Jeremy) diff --git a/pyproject.toml b/pyproject.toml index be0d1b6a..866ba736 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "celeste-ai" -version = "0.2.13" +version = "0.2.14" description = "Open source, type-safe primitives for multi-modal AI. All capabilities, all providers, one interface" authors = [{name = "Kamilbenkirane", email = "kamil@withceleste.ai"}] readme = "README.md" @@ -36,12 +36,12 @@ Issues = "https://github.com/withceleste/celeste-python/issues" text-generation = ["celeste-text-generation>=0.2.10"] image-generation = ["celeste-image-generation>=0.2.9"] video-generation = ["celeste-video-generation>=0.2.8"] -speech-generation = ["celeste-speech-generation>=0.2.8"] +speech-generation = ["celeste-speech-generation>=0.2.9"] all = [ "celeste-text-generation>=0.2.10", "celeste-image-generation>=0.2.9", "celeste-video-generation>=0.2.8", - "celeste-speech-generation>=0.2.8", + "celeste-speech-generation>=0.2.9", ] [dependency-groups]