v3.4.0
ElevenLabs Dynamic Pricing & Full Model Support
Added
- ElevenLabs ModelRegistry — Fetches and caches model data from ElevenLabs
/v1/modelsAPI using the user's API key. Provides model capability queries: TTS support, voice conversion, cost multiplier, max characters, languages, style/speaker_boost support - Dynamic ElevenLabs pricing — New Tier 3 in the pricing cascade uses
character_cost_multiplierfrom the API × configurableelevenlabs_base_cost_per_1kbase rate (default: $0.30). Replaces hardcoded per-model prices with live API data elevenlabs_base_cost_per_1kconfig — Configurable base cost per 1K characters for ElevenLabs pricing (default: 0.30, Pro plan overage rate)elevenlabs_models_cache_ttlconfig — Cache TTL in seconds for ElevenLabs model data (default: 21,600 = 6 hours)- 28 native ElevenLabs output formats — Full pass-through support for ElevenLabs-native format strings (e.g.,
mp3_44100_192,pcm_16000,opus_48000_64,wav_22050) - Expanded format convenience map — Simple symbols
:wav,:opus,:alawnow map to appropriate ElevenLabs native formats - ElevenLabs model validation — Speaker validates models before API calls: raises
ConfigurationErrorfor non-TTS models (speech-to-speech), warns on text exceeding max chars and unsupported settings - Native format MIME types —
SpeechResult#content_typehandles native format strings
Changed
- SpeechPricing cascade expanded from 3 tiers to 4: LiteLLM → user config → ElevenLabs API → hardcoded fallbacks
ELEVENLABS_FORMAT_MAPexpanded from 3 entries to 10 convenience mappings- Default PCM format mapping changed from
pcm_44100topcm_24000
Full Changelog: v3.3.0...v3.4.0