providers/elevenlabs/elevenlabs library

Modular ElevenLabs Provider

This library provides a modular implementation of the ElevenLabs provider following the same architecture pattern as other providers.

Key Features:

  • High-quality text-to-speech synthesis
  • Speech-to-text transcription
  • Voice cloning and customization
  • Multiple language support
  • Real-time streaming capabilities
  • Modular architecture for easy maintenance

Usage:

import 'package:llm_dart/providers/elevenlabs/elevenlabs.dart';

final provider = ElevenLabsProvider(ElevenLabsConfig(
  apiKey: 'your-api-key',
  voiceId: 'JBFqnCBsd6RMkjVDRZzb',
));

// Text-to-speech
final ttsResponse = await provider.textToSpeech(TTSRequest(
  text: 'Hello, world!',
  voice: 'JBFqnCBsd6RMkjVDRZzb',
));

// Speech-to-text
final sttResponse = await provider.speechToText(STTRequest.fromFile(
  'path/to/audio.wav',
));

// Get available voices
final voices = await provider.getVoices();
for (final voice in voices) {
  print('${voice.name}: ${voice.id}');
}

Classes

ElevenLabsAudio
ElevenLabs Audio capability implementation
ElevenLabsClient
ElevenLabs HTTP client implementation
ElevenLabsConfig
ElevenLabs provider configuration
ElevenLabsModels
ElevenLabs Models capability implementation
ElevenLabsProvider
ElevenLabs Provider implementation
ElevenLabsSTTResponse
ElevenLabs response for STT
ElevenLabsTTSResponse
ElevenLabs response for TTS
Word
Word with timing information from ElevenLabs STT

Functions

createElevenLabsCustomVoiceProvider({required String apiKey, required String voiceId, String model = ProviderDefaults.elevenLabsDefaultTTSModel, double stability = 0.5, double similarityBoost = 0.75, double style = 0.0, bool useSpeakerBoost = true}) ElevenLabsProvider
Create an ElevenLabs provider with custom voice settings
createElevenLabsProvider({required String apiKey, String baseUrl = ProviderDefaults.elevenLabsBaseUrl, String? voiceId, String? model, Duration? timeout, double? stability, double? similarityBoost, double? style, bool? useSpeakerBoost}) ElevenLabsProvider
Create an ElevenLabs provider with default settings
createElevenLabsStreamingProvider({required String apiKey, String voiceId = ProviderDefaults.elevenLabsDefaultVoiceId, String model = 'eleven_turbo_v2', double stability = 0.5, double similarityBoost = 0.75}) ElevenLabsProvider
Create an ElevenLabs provider for real-time streaming
createElevenLabsSTTProvider({required String apiKey, String model = ProviderDefaults.elevenLabsDefaultSTTModel}) ElevenLabsProvider
Create an ElevenLabs provider optimized for STT
createElevenLabsTTSProvider({required String apiKey, String voiceId = ProviderDefaults.elevenLabsDefaultVoiceId, String model = ProviderDefaults.elevenLabsDefaultTTSModel, double stability = 0.5, double similarityBoost = 0.75, double style = 0.0, bool useSpeakerBoost = true}) ElevenLabsProvider
Create an ElevenLabs provider optimized for high-quality TTS