The Editor's Audio Group, Tool by Tool
Sixteen audio jobs live in Versely's editor. Which one to reach for, and the four-pass order that stops you from doing the same work twice.
Sixteen of the fifty-three editing jobs Versely publishes sit in the audio group, which makes it the largest group in the editor — assembly is next with eleven. It is also the only group where doing the right jobs in the wrong order makes you pay for the same render twice. Nothing here is hard individually; the failure is nearly always sequencing. Someone scores a video before the voice track is final, or runs lipsync before deciding what the voice says, and then re-renders picture because the audio changed underneath it.
This is a tour of the whole group, arranged into the four passes those jobs belong to. Run them in that order and the audio work on any clip becomes a fixed routine rather than a judgement call.
The four passes
Every audio job in the editor falls into one of four passes, and the passes strictly precede each other.
| Pass | What it decides | Tools |
|---|---|---|
| 1. Isolation | What the clean source signal is | transcribe_audio, isolate_audio, separate_music_vocals |
| 2. Attachment | Which track is audible, and whose voice it is | attach_audio_to_video, generate_speech, generate_multi_speaker_speech, clone_voice_from_audio, change_voice, dub_video, generate_lipsync |
| 3. Levels | Whether anyone can actually hear the words | attach_audio_to_video in mix mode, music_volume, original_volume |
| 4. Music | What plays underneath the finished voice | generate_music, generate_lyrics, extend_music, cover_music, create_music_video |
The reason the order is fixed: pass 2 changes what the words are, pass 3 mixes against those words, and pass 4 scores against that mix. Any music chosen before the voice track is locked ends up fighting a performance that did not exist when you picked it. The audio, voice and dubbing cluster hub makes the same point from the other direction — the three operations people conflate are replacing audio, dubbing it, and re-syncing a mouth to it, and they are not interchangeable.
Pass 1 — isolation
The first pass produces two artifacts: the words as text, and the voice as a clean signal. Both are inputs to everything downstream.
transcribe_audio gets you a plain-text transcript of a video. It returns text, not a burned-in caption track — captioning is a separate cluster. Do it first anyway: dubbing, voiceover rewrites and caption timing all read from the same script.
Vocal separation splits into two tools that look identical and are not:
isolate_audioworks on any audio URL. Mixed recording in, clean vocal out. This is the general-purpose one — isolating vocals from a track is what you want when the source is footage with a loud music bed, a noisy interview, or anything you did not generate in Versely.separate_music_vocalsworks only on tracks generated in-app throughgenerate_musicorextend_music, identified by a taskId and audioId. It returns vocal and instrumental stems. Reaching for it with an uploaded MP3 fails, and that is the single most common mix-up in this pass. Splitting a song into stems is the right tool when you generated the track and now want the instrumental under a voiceover.
Separation quality tracks the source mix. Heavily layered or low-bitrate audio isolates less cleanly, and no amount of downstream mixing recovers a vocal that came out smeared.
Pass 2 — attachment
This pass has one fork that determines everything after it: replace or mix.
attach_audio_to_video defaults to replace, which strips the original audio entirely and substitutes yours. Use it when the new track should be the only audible thing — replacing a video's audio covers bad on-set sound, a scratch voiceover, or a copyrighted bed you need gone before reposting. There is no partial ducking in replace mode; it is a full mute.
mix keeps the original audio and layers the new track on top with independent volume controls. That is the setting for background music under existing dialogue, and choosing replace here is why people end up with a beautiful music bed and a silent presenter.
Either way the video stream is copied losslessly — no visual re-encode — and the tool charges a flat credit fee regardless of clip length. A ten-second clip and a five-minute one cost the same to attach, which is worth knowing before you batch.
The voice side of this pass, in the order the decisions actually bind:
- Pick the voice before you generate picture.
clone_voice_from_audiobuilds a reusable voice from a sample. It is Cartesia-backed, so the voice ID works withgenerate_speechon a Cartesia model and withchange_voice— it is not universal across every text-to-speech model in the catalog. Clone only voices you own or have consent to use. - Generate the read.
generate_speechfor one narrator;generate_multi_speaker_speechwhen the format is a conversation and each speaker alias in the script needs a matching entry in the speakers list. - Re-voice rather than rewrite, if the words are already right.
change_voicekeeps the exact words and delivery timing and swaps who appears to be saying them. It works on audio, so pair it withattach_audio_to_videoto get the result back onto footage. - Dub only if the language changes. The two
dub_videoengines are not equivalent: ElevenLabs handles up to 30 minutes and supports start/end trimming but does not touch the picture; HeyGen caps at 8 minutes, has no trimming, and is the only one that re-syncs mouth shapes. The source must already be on Versely storage, and the job is asynchronous — pollget_dub_status. Dubbing a video walks the full submission. - Lipsync last, and only if a face is on screen.
generate_lipsynctakes an image plus audio, not existing footage; re-syncing an already-shot video's mouth isdub_videoon HeyGen instead. Model choice matters more here than anywhere else in the group: VEED Lipsync runs 4 credits, Sync Lipsync 2.0 runs 25, and VEED Fabric 1.0 Text runs 40.
Pass 3 — levels
This is the shortest pass and the one that most often gets skipped. In mix mode you get exactly two numbers: music_volume and original_volume. That is relative loudness control, not a mastering chain — there is no compressor, no sidechain, no automation curve.
So the fix for a music bed that swallows a voiceover is either dropping music_volume until the words survive, or going back to pass 1 and pulling the instrumental as a stem so you are not fighting a vocal baked into the track. Ducking music under a voiceover covers that escape hatch in detail.
One more parameter worth knowing here: trim_to caps the output to the new audio's length when the replacement track is shorter than the source video, which saves a separate trim job.
Pass 4 — music
Music comes last because it is scored against a finished voice track. Five tools, each with a precondition:
generate_lyricsreturns text only. Get the words right before committing to a full track; thegenerate_musiccall that turns them into audio is billed separately.generate_musicwrites an original, royalty-free track from a genre-and-mood prompt.extend_musicneeds an existing Suno-generated track's audioId. It cannot extend an arbitrary uploaded MP3.cover_musicreinterprets a track you already have from a URL. It confers no commercial rights to a third party's original — the rights you had going in are the rights you have coming out.create_music_videorenders a waveform-style visualiser around a finished generated track, not a scene-by-scene narrative.
Music generated inside Versely with generate_music is original and royalty-free, which is most of the reason to generate rather than source. Music you upload carries whatever licence you obtained for it.
The fixed pass, as a checklist
For any clip, in order:
- Transcribe. You now have the script.
- Isolate the voice if the source is contaminated —
isolate_audiofor anything you did not generate,separate_music_vocalsfor anything you did. - Decide replace or mix. Write it down; it is the fork everything else hangs on.
- Lock the voice — clone, generate, re-voice or dub. Do not generate picture before this is settled.
- Lipsync only if a face is visible, and only after step 4 is final.
- Set
music_volumeandoriginal_volumeagainst the finished voice. - Score last.
For a multi-clip assembly rather than one clip, edit_video collapses steps 3 through 7 into a single EDL render with music, voiceover and captions layers in one call. Iterate there with preview: true — a free 480p pass subject to a short per-user cooldown — and hold the charged export until the mix is settled. How editor previews and the final export are charged has the exact billing shape.
FAQ
Which vocal-separation tool do I actually need?
If you generated the track in Versely with generate_music, use separate_music_vocals — it needs the taskId and audioId from that generation and returns proper stems. For anything else, including uploaded files and footage audio, use isolate_audio. Passing an arbitrary MP3 to separate_music_vocals will not work.
Do I need lipsync after replacing a video's audio?
Only when a talking face is visible. Voiceover over B-roll, product shots or a slideshow needs none, and skipping it removes the most expensive job in the group. If a face is visible and the language changed, that is dub_video on HeyGen — generate_lipsync takes a still image as its face input, not footage.
Can I fix a music bed that is too loud without regenerating anything?
Usually yes. Re-run attach_audio_to_video in mix mode with a lower music_volume; the video stream is copied losslessly and the fee is flat, so a level correction is cheap. It stops being cheap when the track has vocals of its own competing with the narration — that needs a stem pull in pass 1, not a level tweak in pass 3.
Why does the order matter if every tool runs independently?
Because two of them re-render picture. Lipsync repaints a mouth and HeyGen dubbing re-syncs one, and both read the audio track as it exists at that moment. Change the voice after either has run and you pay for the picture twice. Everything else in the group is audio-only and reversible — which is why the picture-touching steps sit after the voice is locked and before anything is scored.