Metadata-Version: 2.4
Name: elizaos-plugin-elevenlabs
Version: 2.0.0a5
Summary: High-quality text-to-speech and speech-to-text plugin for elizaOS using ElevenLabs API
Project-URL: Homepage, https://github.com/elizaos-plugins/plugin-elevenlabs
Project-URL: Repository, https://github.com/elizaos-plugins/plugin-elevenlabs/tree/main/python
Author: elizaOS Contributors
License-Expression: MIT
Keywords: ai,elevenlabs,elizaos,plugin,speech-to-text,stt,text-to-speech,transcription,tts,voice-synthesis
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Multimedia :: Sound/Audio :: Speech
Requires-Python: >=3.10
Requires-Dist: elevenlabs>=1.0.0
Requires-Dist: httpx>=0.27.0
Requires-Dist: pydantic>=2.0.0
Provides-Extra: dev
Requires-Dist: mypy>=1.0.0; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.21.0; extra == 'dev'
Requires-Dist: pytest-cov>=4.0.0; extra == 'dev'
Requires-Dist: pytest>=7.0.0; extra == 'dev'
Requires-Dist: ruff>=0.1.0; extra == 'dev'
Description-Content-Type: text/markdown

# ElevenLabs Plugin for elizaOS (Python)

High-quality text-to-speech (TTS) and speech-to-text (STT) plugin for elizaOS using the ElevenLabs API.

## Installation

```bash
pip install eliza-plugin-elevenlabs
```

## Features

- **Text-to-Speech (TTS)**: High-quality voice synthesis with multiple voice models
- **Speech-to-Text (STT)**: Accurate transcription with Scribe v1 model
- **Speaker Diarization**: Identify up to 32 different speakers
- **Multi-language Support**: 99 languages for STT
- **Audio Event Detection**: Detect laughter, applause, and other audio events
- **Streaming Support**: Efficient memory usage with streaming audio output

## Usage

```python
from eliza_plugin_elevenlabs import elevenlabs_plugin, ElevenLabsService

# Create the service
service = ElevenLabsService(api_key="your-api-key")

# Text-to-speech
audio_stream = await service.text_to_speech("Hello, world!")

# Speech-to-text
transcript = await service.speech_to_text(audio_file)
```

## Configuration

| Environment Variable | Description | Default |
|---------------------|-------------|---------|
| `ELEVENLABS_API_KEY` | ElevenLabs API key | Required |
| `ELEVENLABS_VOICE_ID` | Voice ID for TTS | `EXAVITQu4vr4xnSDxMaL` |
| `ELEVENLABS_MODEL_ID` | TTS model ID | `eleven_multilingual_v2` |
| `ELEVENLABS_VOICE_STABILITY` | Voice stability (0-1) | `0.5` |
| `ELEVENLABS_VOICE_SIMILARITY_BOOST` | Similarity boost (0-1) | `0.75` |
| `ELEVENLABS_OUTPUT_FORMAT` | Audio output format | `mp3_44100_128` |
| `ELEVENLABS_STT_MODEL_ID` | STT model ID | `scribe_v1` |
| `ELEVENLABS_STT_DIARIZE` | Enable speaker diarization | `false` |

## License

MIT
