---
name: filmscene-sound
description: "Re-voice a film scene in your characters' voices while keeping the actors' timing and intonation — ElevenLabs Audio Isolation, then Speech-to-Speech per speaker span (eleven_multilingual_sts_v2, stability 0.7, similarity 0.95), checked with Scribe; plus the film's own room tone cut from line-free gaps. Part of the filmscene reference set."
---

These creative references describe source experiments with external tools. Use your own supported account and tools; this download installs no automation. Settings and timings are experimental observations, not current FlashBoards availability. Use only media and voices you have permission to use.

# filmscene-sound · the actors' performance in your voices

> **Source author's sound preference (9.10.2026), not FlashBoards policy:** avoid ElevenLabs Sound Effects (`/v1/sound-generation`, `fal-ai/elevenlabs/sound-effects`) for effects, room tone, ambience and jingles; the author found them strange and louder than the voices and preferred ElevenLabs for voices (TTS v4, Speech-to-Speech, Audio Isolation). Historical demonstrations below and in related guides still include ElevenLabs Music beds and an earlier Sound Effects ambience test; those are separate experiments, not a universal voices-only rule. For your own mix, use permissioned film sound (line-free gaps, Demucs without vocals), the video model's native sound or supported video-to-audio tools; keep effects under the voice.

## Voices per character

Each speaker span goes into the voice of the character who plays that role: **{voice A}** for {character A}, **{voice B}** for {character B} — reader-selected, permissioned ElevenLabs voice ids kept with your character notes. If a character has no voice yet, choose a library voice or create an authorized clone; do not inherit the demo cast automatically.

1. Cut the part from the scene file (`-ss` part start, `-t` length, mono 44.1 kHz).
2. **ElevenLabs Audio Isolation** `POST /v1/audio-isolation` (multipart `audio`) → only the voices.
3. Split by speaker spans (boundaries in the gaps between lines, from the diarized STT); label each span with its film role → its character.
4. **Speech-to-Speech** `POST /v1/speech-to-speech/{voice_id}?output_format=mp3_44100_192`, `voice_id` = that character's {voice A} / {voice B}, multipart `audio`, `model_id=eleven_multilingual_sts_v2`, `voice_settings={"stability":0.7,"similarity_boost":0.95}`, `remove_background_noise=false`. Length and word times stay the actor's (8.34 → 8.36 s).
   - The English model and the default settings garbled the end of a mumbled line (swapped it for other words); stability 0.7 fixed it.
5. Lay the spans back at their offsets on a silent base exactly the generation's length (`anullsrc` + `adelay` + `amix duration=first`) → `voice.wav` / `voice.mp3` = **Audio 1**.
6. **Check with Scribe v2** (fal `fal-ai/elevenlabs/speech-to-text/scribe-v2`): the words and their times must match the original. Scribe varies on mumbled words; compare with the STT of the isolated original before redoing.

The actors' isolated voice is a working file — never published.

## Room tone

- No clean background track exists. Cut the scene's **gaps with no lines** (STT shows no words), crossfade them (0.6 s) into one scene-long loop → `bg/film_bg_scene.wav`.
- Level: as in the film, ≈ 13 dB under the speech (gain = mean of the generation − mean of the original part, measured once and kept for every part).
- Part k takes the loop from its own offset, so the parts join without a seam. A generated ambience is louder and reads as noise — dropped.

## Example run (reference only — never reuse its files, prompts, faces or frames for a person; select voices separately)

*Heat* (1995) with the demo characters: Dex = Spence `ZTho75k1M56OV0k9XtSC`, Mara = Hope `uYXf8XasLslADfZ2MB4u` — external library-voice sample settings, not private credentials or a required cast. Select permissioned voices through your own account. The garbled line: "or I'll die in my sleep" → "while tying my shoelace". Room-tone gaps: 11.2 s before "There's a flip side…", 4.6 s after "You doing it now?" → `canon/bg/film_bg_scene.wav`; the dropped generated ambience was a "diner ambience". That historical filename is not a delivered or required file; `voice.wav`, `voice.mp3` and `bg/film_bg_scene.wav` above are your own prepared outputs.
