Hypernatural

TechniqueBy HypernaturalVersion 2, Oct 26, 2026

elevenlabs-voice-isolation

Pull a clean voice out of a mix with ElevenLabs audio isolation (on fal): music, sound effects and room noise dropped, speech kept. Use it to drive a lip-sync or reference-audio model with an original actor's line, then cut the line from the isolated voice by ear from a ladder of trims.

SKILL.md

ElevenLabs voice isolation

Give it a video or audio file with speech under music or effects and you get the voice alone. Use it when an original line has to drive a model (H3 Max lip sync, a reference-audio video model, a mouth re-sync) and the source mix would leak music into the mouth. It only separates; for a denoise of an already clean voice it's the wrong tool, and it adds no top end to a band-limited voice.

Inputs

The source clip, whole. Isolate once per source and cut lines from the result, so every line comes from the same pass.

Run it

Call describe("fal/fal-ai/elevenlabs/audio-isolation") before the first run in a job. Proven with the source video as the input:

run("fal/fal-ai/elevenlabs/audio-isolation",
    {"video_url": "<job>/inputs/acme_office_spot.mp4"},
    into="<job>/audio", unit="acme_office_spot_voice_isolated")

The output is the isolated voice as an audio file (audio). If you only have audio, check describe for the audio input field.

Cut the line by ear: the ladder

The isolated voice still holds every speaker. To give one speaker's line to a model, cut a window that starts at the shot's first frame and goes silent where the next speaker starts, with a 30 ms fade before the silence so the next words aren't lip-synced. One trim, all times in seconds on the isolated voice (<fade_at> is <silent_from> - 0.03 - <start>); afade out leaves everything after it silent and apad keeps the length:

exec ffmpeg -hide_banner -loglevel error -y -ss <start> -t <duration> -i <voice> \
  -af "afade=t=out:st=<fade_at>:d=0.03,apad" -t <duration> -ac 1 -ar 48000 <trim>.wav

Where exactly to go silent is the hard part:

  • Transcript timestamps and loudness minima were each about 0.1 s off at a hand-off where one speaker's last word ran into the next speaker's first.
  • So make a ladder: five to seven trims of the same window with the silence point a few hundredths of a second apart (for example the transcript's estimate -0.06 s to +0.06 s in 0.02 s steps), named by their silence point (shot03_line_trims/3.19.wav, 3.21.wav, …).
  • Put the ladder on a review page and let the person pick by ear: the earliest trim with no clipped last syllable and none of the next speaker's breath or onset.

What you get

One isolated voice file per source, and per line a trimmed mono 48 kHz WAV with its silence point in the file name. Record the picked point in AGENTS.md.

Tips and traps

  • Pad a short line with silence to the model's minimum length; never take a longer window to reach it, or the extra words get lip-synced too.

Check it

Play the picked trim alone: the line complete, nothing of the next speaker, no music bed. Then transcribe it (elevenlabs-speech-to-text): only that line's words.

Go make something cool.

Install the app, open your agent, describe the video. That's the whole onboarding.

Sticker HypernaturalSticker BannerSticker TVBoy