Short answer / recommendation
Use a single “voice persona” clone created in ElevenLabs (ideally trained on bilingual recordings) + a split-and-align workflow: translate and localize scripts with ChatGPT, generate short-chunk TTS with ElevenLabs using SSML/controls, then produce timestamps by (A) summing chunk durations or (B) running a forced-aligner (Aeneas/Gentle) or Whisper to get word-level timing. Deliver per-chunk audio + consolidated track and an SRT/VTT file.
Why this pipeline
- ElevenLabs gives high-quality, consistent cloned voices. A bilingual seed recording preserves the same voice characteristics across languages. - ChatGPT speeds up localization while keeping persona/style consistent. - Chunked generation avoids drift and gives reliable timestamp boundaries; forced-alignment gives word/subtitle accuracy.
Step-by-step pipeline
1) Source & style guide: pick a single “voice persona” brief (tone, pace, formality, filler words, pronunciation of names). Keep a glossary. 2) Master script: write in your source language (English). 3) Localize: use ChatGPT to produce a localized Spanish script in the same persona. Ask it to keep sentence length suitable for subtitles and to preserve glossary terms/phrasings. 4) Prepare audio-friendly chunks: split scripts into subtitle-sized chunks (6–12 words, or 2–6 sec). Keep punctuation, parentheses for breaths. 5) Voice cloning: record 2–5 minutes of clean audio per language from the same actor if possible. If you can’t hire bilingual talent, record a bilingual speaker; otherwise accept mild cross-language artifacts. Use ElevenLabs voice cloning API to create the persona. 6) Generate audio: for each chunk, call ElevenLabs to synthesize audio (prefer one chunk per API call). Use SSML or ElevenLabs prosody controls to fine-tune. Export WAV/48k. 7) Timestamp generation: two reliable options: - Chunk-duration method: use each chunk’s generated file length as the chunk timestamp boundary (fast, predictable). - Forced-alignment: run Aeneas, Gentle (English), or Whisper forced-alignment on the full audio + script to get word-level timestamps (more accurate, handles small timing differences). 8) Subtitle files: build SRT/VTT using aligner output or chunk durations. 9) QA & iteration: listen for unnatural prosody; add SSML breaks, phonetic hints, or re-record clone samples if needed. Get native-speaker review.
Delivery formats
- Per-chunk WAVs + one consolidated WAV (48k, 24-bit) - SRT and VTT subtitle files - Notes: voice persona, glossary, log of SSML tweaks
Decision criteria
- Budget: hire bilingual actor for best parity; if low budget, accept single-language clone with extra SSML tuning. - Skill/dev time: chunking+duration method is easiest; aligners require extra setup but give better timing. - Team size/output quality: bigger teams should use forced-alignment and quality reviews.
Checklist (practical)
- [ ] Create persona brief and glossary
- [ ] Master English script
- [ ] Localize via ChatGPT, ask for subtitle-friendly length
- [ ] Record 2–5 min bilingual voice samples (if possible)
- [ ] Create ElevenLabs clone and test short phrases
- [ ] Generate per-chunk audio, export WAV
- [ ] Produce timestamps (chunk durations or aligner)
- [ ] Create SRT/VTT, run QA with native speakers
- [ ] Deliver bundle (audio files + consolidated track + subtitles + notes)
Best-for / Avoid-if
- Best for: creators who need consistent, high-quality voice across languages and quick iteration. - Avoid if: you need perfect phonetic fidelity for lip-synced video and cannot/are unwilling to hire bilingual talent or do forced-alignment QA.
Tools mentioned: ElevenLabs (voice cloning/TTS) and ChatGPT (script localization).
Compare options for ElevenLabs