Quickstart
Five stages: record, process, train, speak, render. Stages one to three happen once. After that you are only ever writing text.
1. Record yourself
Record 15–30 minutes of yourself reading naturally, in a quiet room, at a consistent distance from the microphone. Quality here sets the ceiling for everything downstream — a good USB microphone in a carpeted room beats an expensive one in an echoey office.
Record a short piece of front-facing video too, looking at the camera, or pick one good front-facing photograph if you would rather animate a still.
2. Process the recordings
The preprocessing step splits your audio into training-sized chunks and transcribes each one with Whisper, producing the dataset the voice model trains on. You can choose a faster or more accurate Whisper model depending on how much time you want to spend.
3. Train your voice
Fine-tuning F5-TTS on your dataset produces a checkpoint — a file on your drive that is your voice. Training is the one genuinely long step. If you hit out-of-memory errors, lower the batch size; if you stop partway, you can resume.
Register the result in the catalog with a name, so from here on you refer to
my-voice rather than a checkpoint path.
4. Generate speech
conda run -n voice-clone python speak.py \
"Hello — this is my cloned voice." \
-o out/hello.wav
Speed, reference clip, and diffusion steps are all adjustable. Every generated clip comes back with per-word timestamps, so captions line up without hand syncing.
5. Render video
Point it at your base video (MuseTalk) or your photo (SadTalker):
./avatar generate \
--voice my-voice \
--source my-face \
--text "Here's what shipped this week." \
-o out/update.mp4
Add --enhance-face for optional face restoration when you want more polish.
A whole script at once
For anything longer than a line or two, use a script file rather than looping. Batch mode loads the model once and renders every scene in a single pass:
./avatar generate \
--voice my-voice \
--source my-face \
--script-file release-notes.txt \
-o out/release-notes.mp4
That is the workflow Agent Avatar is built around — feed it a forty-line voiceover script and walk away.
Interactive mode
Running ./avatar with no arguments opens a terminal menu that walks through
these same workflows, if you would rather not memorize flags.