# Elevenlabs > Genera voces en off, efectos de sonido y música con las APIs de ElevenLabs. Úsalo para crear audio de vídeos, podcasts o juegos, incluida la clonación de voz. Fuente: https://skillsagentes.com/skills/calesthio/openmontage/elevenlabs Markdown: https://skillsagentes.com/skills/calesthio/openmontage/elevenlabs.md Repositorio: https://github.com/calesthio/OpenMontage Autor: calesthio Licencia: AGPL-3.0 Actualizado: hace 14 días Coste de contexto: 79 tok instalada, 2.9k tok al activarse, 4.2k tok con todos los archivos del bundle Bundle: 2 archivos, 16 KB Permisos que pide: ninguno declarado ## Instalación Un skill son archivos markdown: los mismos archivos valen para cualquier agente y lo único que cambia es el directorio de destino, es decir la bandera `--agent`. Añade `-g` para instalarlo en todos los proyectos de la máquina. ```bash # Claude Code npx -y skills add calesthio/OpenMontage --skill elevenlabs --agent claude-code # Cursor npx -y skills add calesthio/OpenMontage --skill elevenlabs --agent cursor # Codex npx -y skills add calesthio/OpenMontage --skill elevenlabs --agent codex # Gemini CLI npx -y skills add calesthio/OpenMontage --skill elevenlabs --agent gemini # Windsurf npx -y skills add calesthio/OpenMontage --skill elevenlabs --agent windsurf # Cline npx -y skills add calesthio/OpenMontage --skill elevenlabs --agent cline ``` ## Qué hace - Genera voces en off, efectos de sonido y música con las APIs de ElevenLabs - Explica qué modelo elegir y qué ajustes de voz usar según el estilo - Detalla cómo meter pausas: etiquetas SSML `` con flash/turbo, saltos de párrafo o silencio con ffmpeg en multilingual_v2/v3 - Cubre clonación instantánea de voz y control de pronunciación - Integra el audio por escena con Remotion, incluido un `manifest.json` de duraciones ## Cuándo usarla - Crear voces en off, narración o diálogo - Generar efectos de sonido a partir de una descripción - Generar música de fondo o banda sonora - Clonar una voz o cualquier tarea de síntesis de audio ## Qué la activa - "Genera la voz en off de este guion" - "Créame un efecto de sonido de puerta cerrándose" - "Clona esta voz para la narración" - "Genera música de fondo para el vídeo" ## Antes de instalar - Necesita credenciales de ElevenLabs; los puntos suspensivos no sirven como pausa y las etiquetas `` solo funcionan con los modelos flash/turbo, con un máximo de 3 segundos. - Necesita en el PATH: python - Variables de entorno: ELEVENLABS_API_KEY - needs API credentials ## Archivos - SKILL.md — 11 KB - reference.md — 5 KB ## SKILL.md Reproducido tal cual desde calesthio/OpenMontage bajo AGPL-3.0. Esta sección es el documento original y está en inglés. # ElevenLabs Audio Generation ## OpenMontage provider routing Inspect the OpenMontage registry before choosing an authentication path. - Prefer `fal_elevenlabs_tts` when it is available. It provides Eleven v3, Multilingual v2, and Turbo v2.5 through the centrally managed fal.ai connection; no separate ElevenLabs credential is needed. - Use `elevenlabs_tts` only when that direct provider is already reported as available by the registry. - In a shared installation, never tell the user to create a `.env`, export a key, or paste a credential. Report missing direct-provider access as an administrator setup request. The direct API examples below require a centrally configured `ELEVENLABS_API_KEY`; they are not the default path when the fal.ai provider is available. ## Text-to-Speech ```python from elevenlabs.client import ElevenLabs from elevenlabs import save, VoiceSettings import os client = ElevenLabs(api_key=os.getenv("ELEVENLABS_API_KEY")) audio = client.text_to_speech.convert( text="Welcome to my video!", voice_id="JBFqnCBsd6RMkjVDRZzb", model_id="eleven_multilingual_v2", voice_settings=VoiceSettings( stability=0.5, similarity_boost=0.75, style=0.5, speed=1.0 ) ) save(audio, "voiceover.mp3") ``` ### Models | Model | Quality | SSML Support | Notes | |-------|---------|--------------|-------| | `eleven_multilingual_v2` | Highest consistency | None | Stable, production-ready, 29 languages | | `eleven_flash_v2_5` | Good | ``, `` | Fast, supports pause/pronunciation tags | | `eleven_turbo_v2_5` | Good | ``, `` | Fastest latency | | `eleven_v3` | Most expressive | None | Alpha — unreliable, needs prompt engineering | **Choose:** multilingual_v2 for reliability, flash/turbo for SSML control, v3 for maximum expressiveness (expect retakes). ### Voice Settings by Style | Style | stability | similarity | style | speed | |-------|-----------|------------|-------|-------| | Natural/professional | 0.75-0.85 | 0.9 | 0.0-0.1 | 1.0 | | Conversational | 0.5-0.6 | 0.85 | 0.3-0.4 | 0.9-1.0 | | Energetic/YouTuber | 0.3-0.5 | 0.75 | 0.5-0.7 | 1.0-1.1 | ### Pauses Between Sections **With flash/turbo models:** Use SSML break tags inline: ``` ...end of section. Start of next... ``` Max 3 seconds per break. Excessive breaks can cause speed artifacts. **With multilingual_v2 / v3:** No SSML support. Options: - Paragraph breaks (blank lines) — creates ~0.3-0.5s natural pause - Post-process with ffmpeg: split audio and insert silence **WARNING:** `...` (ellipsis) is NOT a reliable pause — it can be vocalized as a word/sound. Do not use ellipsis as a pause mechanism. ### Pronunciation Control **Phonetic spelling (any model):** Write words as you want them pronounced: - `Janus` → `Jan-us` - `nginx` → `engine-x` - Use dashes, capitals, apostrophes to guide pronunciation **SSML phoneme tags (flash/turbo only):** ``` Janus ``` ### Iterative Workflow 1. Generate → listen → identify pronunciation/pacing issues 2. Adjust: phonetic spellings, break tags, voice settings 3. Regenerate. If pauses aren't precise enough, add silence in post with ffmpeg rather than fighting the TTS engine. ## Voice Cloning ### Instant Voice Clone ```python with open("sample.mp3", "rb") as f: voice = client.voices.ivc.create( name="My Voice", files=[f], remove_background_noise=True ) print(f"Voice ID: {voice.voice_id}") ``` - Use `client.voices.ivc.create()` (not `client.voices.clone()`) - Pass file handles in binary mode (`"rb"`), not paths - Convert m4a first: `ffmpeg -i input.m4a -codec:a libmp3lame -qscale:a 2 output.mp3` - Multiple samples (2-3 clips) improve accuracy - Save voice ID for reuse **Professional Voice Clone:** Requires Creator plan+, 30+ min audio. See [reference.md](reference.md). ## Sound Effects Max 22 seconds per generation. ```python result = client.text_to_sound_effects.convert( text="Thunder rumbling followed by heavy rain", duration_seconds=10, prompt_influence=0.3 ) with open("thunder.mp3", "wb") as f: for chunk in result: f.write(chunk) ``` **Prompt tips:** Be specific — "Heavy footsteps on wooden floorboards, slow and deliberate, with creaking" ## Music Generation 10 seconds to 5 minutes. Use `client.music.compose()` (not `.generate()`). ```python result = client.music.compose( prompt="Upbeat indie rock, catchy guitar riff, energetic drums, travel vlog", music_length_ms=60000, force_instrumental=True ) with open("music.mp3", "wb") as f: for chunk in result: f.write(chunk) ``` **Prompt structure:** Genre, mood, instruments, tempo, use case. Add "no vocals" or use `force_instrumental=True` for background music. ## Remotion Integration ### Complete Workflow: Script to Synchronized Scene ``` VOICEOVER-SCRIPT.md → voiceover.py → public/audio/ → Remotion composition ↓ ↓ ↓ ↓ Scene narration Generate MP3 Audio files