# Doubao Tts > Genera narración en mandarín y multilingüe con Volcengine Doubao Speech 2.0. Úsalo para voces en off en chino o cuando la narración necesite marcas de tiempo por carácter. Fuente: https://skillsagentes.com/skills/calesthio/openmontage/doubao-tts Markdown: https://skillsagentes.com/skills/calesthio/openmontage/doubao-tts.md Repositorio: https://github.com/calesthio/OpenMontage Autor: calesthio Licencia: AGPL-3.0 Actualizado: hace 3 meses Coste de contexto: 64 tok instalada, 1k tok al activarse, 1k tok con todos los archivos del bundle Bundle: 1 archivo, 4 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 doubao-tts --agent claude-code # Cursor npx -y skills add calesthio/OpenMontage --skill doubao-tts --agent cursor # Codex npx -y skills add calesthio/OpenMontage --skill doubao-tts --agent codex # Gemini CLI npx -y skills add calesthio/OpenMontage --skill doubao-tts --agent gemini # Windsurf npx -y skills add calesthio/OpenMontage --skill doubao-tts --agent windsurf # Cline npx -y skills add calesthio/OpenMontage --skill doubao-tts --agent cline ``` ## Qué hace - Genera narración en mandarín y en varios idiomas con Volcengine Doubao Speech 2.0 - Devuelve metadatos de marca de tiempo por carácter, útiles para subtítulos - Documenta el flujo recomendado, los parámetros y el diagnóstico de errores ## Cuándo usarla - Crear voces en off en chino - El usuario prefiere Doubao / Volcengine / 火山引擎 / 豆包 para TTS - La narración necesita marcas de tiempo por carácter para subtítulos ## Qué la activa - "Genera la narración en chino de este guion" - "Necesito voz en off con marcas por carácter" - "Usa Doubao para la locución" ## Antes de instalar - Necesita credenciales de Volcengine para Doubao Speech 2.0. - Variables de entorno: DOUBAO_SPEECH_API_KEY - makes network requests - needs API credentials ## Archivos - SKILL.md — 4 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. # Doubao TTS Requires `DOUBAO_SPEECH_API_KEY` in `.env`. Set `DOUBAO_SPEECH_VOICE_TYPE` for the default voice, or pass `voice_id` to the tool. ## Current API Use the new-console API key flow: ```text X-Api-Key: ${DOUBAO_SPEECH_API_KEY} X-Api-Resource-Id: seed-tts-2.0 ``` Do not use `X-Api-App-Id` and `X-Api-Access-Key` with a new-console API Key. If the API returns `load grant: requested grant not found`, the key type or auth header is probably wrong. For long-form video narration, prefer the async endpoint: ```text POST https://openspeech.bytedance.com/api/v3/tts/submit POST https://openspeech.bytedance.com/api/v3/tts/query ``` This returns `audio_url` plus `sentences[].words[]` timing metadata that can be used to build subtitles. ## OpenMontage Usage Generate with the TTS selector: ```python from tools.audio.tts_selector import TTSSelector result = TTSSelector().execute({ "preferred_provider": "doubao", "text": "如果 AI 真的会改变未来,普通人到底该怎么参与?", "voice_id": "zh_female_vv_uranus_bigtts", "output_path": "projects/my-video/assets/audio/narration.mp3", "speech_rate": 0, "enable_timestamp": True, }) ``` Or call the provider directly: ```python from tools.audio.doubao_tts import DoubaoTTS result = DoubaoTTS().execute({ "text": "短样本试听文本。", "voice_id": "zh_female_vv_uranus_bigtts", "output_path": "projects/my-video/assets/audio/doubao_sample.mp3", }) ``` The provider writes: - `output_path`: downloaded audio file - `metadata_path`: full query response JSON, defaulting to `.json` ## Recommended Workflow 1. Generate a 10-15 second sample before a full paid narration. 2. Ask the user to approve voice naturalness, accent, and speed. 3. Generate the full narration only after approval. 4. Keep the query JSON. It is the source of truth for subtitle timing. 5. Build captions from `sentences[].words[]`, not from estimated text length. 6. Group captions by Chinese semantic phrases before applying timestamps. Do not split only by fixed character count; it can break phrases like "在不押单个公司的情况下" or "可能会被慢慢稀释" and hurt comprehension. 7. Let the video duration follow the approved voice rhythm unless the user explicitly asks to match a prior runtime. ## Parameters - `voice_id`: Doubao `speaker` / voice type. Defaults to `DOUBAO_SPEECH_VOICE_TYPE`. - `resource_id`: use `seed-tts-2.0` for Doubao Speech 2.0 voices. - `speech_rate`: `0` is normal, `100` is 2x, `-50` is 0.5x. - `sample_rate`: default `24000`. - `enable_timestamp`: default `true`. - `return_usage`: default `true`, requests usage metadata when available. Do not pass `additions.explicit_language` by default. Some endpoint/key combinations reject `zh-cn` with `unsupported additions explicit language zh-cn`. For calm Mandarin explainers, start with `speech_rate: 0`. If the result is too long for the approved format, make a short comparison sample with `speech_rate: 25` or `50` before regenerating the full narration. Do not speed up only to match a previous provider's duration if the user prefers Doubao's natural pace. ## Troubleshooting - `load grant: requested grant not found`: wrong key type or wrong auth header. Use `X-Api-Key` for new-console API Keys. - `speaker permission denied`: voice id is wrong or not authorized for the selected resource. - `quota exceeded`: quota, lifetime characters, or concurrency exceeded. - Missing timestamps: verify `enable_timestamp: true`, keep the query JSON, and confirm the selected endpoint returned `sentences`. ## Safety Never print or write the API key to logs, metadata, patches, or project artifacts. `.env.example` should contain only empty variable names. ## Dónde encaja - Categoría: [Diseño y UI](https://skillsagentes.com/categorias/diseno-ui.md) — Sistemas de diseño, trabajo con componentes y acabado visual. - Creador: [calesthio](https://skillsagentes.com/creators/calesthio.md) — 0 skills en el directorio - [Todas las skills](https://skillsagentes.com/skills.md) - [Ranking de instalaciones](https://skillsagentes.com/ranking.md) ## Otras skills del mismo repositorio - [Seedance 2 5](https://skillsagentes.com/skills/calesthio/openmontage/seedance-2-5.md): Genera vídeo cinematográfico de 4-30 s con ByteDance Seedance 2.5 por fal.ai, Volcengine Ark, Runway o ComfyUI. Cubre el contrato de prompt 2.5, cortes duros, locks de continuidad y voz. - [Comfyui](https://skillsagentes.com/skills/calesthio/openmontage/comfyui.md): Úsalo al trabajar con workflows de ComfyUI en OpenMontage: comfyui_image/video/music, workflows propios, selección de output_node, modelos que faltan, LoRAs, poca VRAM e importación de workflows de la comunidad. - [Fish Audio Tts](https://skillsagentes.com/skills/calesthio/openmontage/fish-audio-tts.md): Genera narración expresiva y multilingüe con fish.audio (modelos S1 / S2) y reutiliza voces clonadas mediante reference_id. - [Minimax H3](https://skillsagentes.com/skills/calesthio/openmontage/minimax-h3.md): Genera vídeo con MiniMax H3 (Hailuo 3.0) por la API oficial v2, fal.ai, Runway, nodos partner de ComfyUI o pesos abiertos locales. Clips de 4-15s a 2K con animación de primer/último fotograma. - [Gemini Omni](https://skillsagentes.com/skills/calesthio/openmontage/gemini-omni.md): Genera y edita conversacionalmente vídeos cortos con Google Gemini Omni Flash: itera con ediciones en lenguaje natural, clips de 3-10s a 720p con audio y texto en pantalla, e imágenes de referencia por etiquetas. --- Skills Agentes · [Índice de páginas en markdown](https://skillsagentes.com/sitemap.md) · [Inicio](https://skillsagentes.com/index.md)