Model or dataset
stepfun-ai/Step-Audio-EditX avatar
stepfun-ai/Step-Audio-EditX

Step-Audio-EditX: A 3B Speech Editor Driven by Tags and Pinyin

A powerful 3B-parameter, LLM-based Reinforcement Learning audio edit model excels at editing emotion, speaking style, and paralinguistics, and features robust zero-shot text-to-speech

976 stars79 forksPythonApache-2.0

At a glance

What is it?
StepFun's open weights model edits emotion, speaking style and paralinguistics in existing audio through inline tags, and doubles as a zero-shot TTS system. The interesting part is the control surface, not the parameter count.
Who is it for?
Adopt Step-Audio-EditX if your pipeline already produces speech and you need to change emotion, style or paralinguistic detail without re-recording, and if your target languages are Mandarin, English, Sichuanese, Cantonese, Japanese or Korean. Do not adopt it if you need Arabic, French, Russian or Spanish today, or if you need filler word removal, both of which the open-source plan still lists as unchecked.
Can I use it commercially?
Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 160 days ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

The problem: re-recording a line because the delivery is wrong

Most voice pipelines treat a recording as final. If the read is flat, or the laugh lands in the wrong place, the usual fix is to send the script back to the voice actor or regenerate the whole utterance and hope the new take keeps the parts you liked. Step-Audio-EditX attacks the second half of that problem. The README describes it as a 3B-parameter, LLM-based reinforcement learning model for expressive and iterative audio editing, and the word iterative matters: the workflow is edit, listen, edit again on the same clip rather than regenerate from text each time.

The audience is narrow and specific. It is for people who already have audio they want to keep, and who need to shift how it sounds rather than what it says. Dialogue for games and dubbing, advertising reads that need a warmer or colder delivery, accessibility tooling that wants a sigh or a chuckle inserted at a marked point. The repository also ships zero-shot TTS, so it can generate from scratch, but the editing surface is what distinguishes it from the many TTS checkpoints already available.

Control by inline tag, not by parameter slider

The interface is text. You write a tag such as [Happy] or [Whisper] and the model applies that attribute to the audio. The README lists emotion tags including happy, angry, sad, fear, surprised, confusion, empathy, embarrass, excited, depressed, admiration, coldness, disgusted and humour, and speaking style tags including serious, arrogant, act_coy, older, child, whisper, generous and exaggerated. Paralinguistic control is a separate set of ten: breathing, laughter, surprise-oh, confirmation-en, uhm, surprise-ah, surprise-wa, sigh, question-ei and dissatisfaction-hnn. A January 2026 release note says six more were added (exhale, snort, inhale, chuckle, clears throat, giggle).

This is a discrete vocabulary, not a continuous space. You cannot ask for seventy percent happy. You pick a tag, and if the result overshoots you pick a different one or edit again. For production that is a real constraint, because it makes the model hard to place inside a parameter sweep. It is also the reason the system is easy to prompt: the tag list is short enough to read in full before you write a line of code.

Language and dialect selection use the same mechanism. The README says to add [Sichuanese], [Cantonese], [Japanese] or [Korean] before your text. There is no separate language argument to pass.

Polyphone control by rewriting characters as pinyin

Mandarin has characters that change pronunciation by context, and TTS systems frequently get them wrong. The README's answer is unusually direct: replace the polyphonic characters with numbered pinyin in the input string. The example given is [我也想过过过儿过过的生活] becoming [我也想guo4guo4guo1儿guo4guo4的生活].

Two things follow from that. First, the fix lives in your text preprocessing, not in a model parameter, so you can unit test it and diff it in review. Second, it does not scale on its own. Somewhere you need a list of the polyphones that matter for your content, and someone has to maintain it. The November 2025 release note says polyphonic pronunciation control arrived in a new model version, so this is a recent addition rather than something the original checkpoint handled.

If your content is English or Cantonese, this section is largely irrelevant to you. It is a Mandarin-specific workaround for a Mandarin-specific failure mode.

What the repository actually gives you to run

The open-source plan checklist is the clearest statement of scope. Inference code, a Gradio demo, model checkpoints and the Step-Audio-Edit-Benchmark are all marked done. Checkpoints listed are Step-Audio-Tokenizer, Step-Audio-EditX and Step-Audio-EditX-Int4. Training code is partially done: SFT, DPO and GRPO are checked, PPO is not. The January 2026 note confirms the SFT, DPO and GRPO training code was released and that vLLM is supported for both training and inference.

Weights are hosted on Hugging Face and ModelScope under stepfun-ai/Step-Audio-EditX, with the tokenizer under stepfun-ai/Step-Audio-Tokenizer. The README does not reproduce the install commands or the exact Python entry points in the material available here, so treat the repository's own inference scripts and the Hugging Face model card as the source for the precise command line. What you can rely on from the README is the shape of the setup: a tokenizer checkpoint, a main checkpoint, an Int4 quantized alternative, and a Gradio app for interactive use.

The Int4 checkpoint is the detail worth noting for anyone without large GPU memory. A 3B model in full precision is not a laptop workload, and the existence of a quantized variant suggests the authors expect people to run this on constrained hardware. Whether quality holds up under Int4 is not stated in the README, and that is something you would need to measure on your own audio.

Where this breaks: languages, fillers and the tag ceiling

The unchecked boxes in the feature plan are the honest limitations. Filler word removal is listed and unchecked. Arabic, French, Russian and Spanish are listed and unchecked. If your product ships in French, this model does not cover you yet, and no amount of prompt engineering changes that.

There is a second limitation that is structural rather than a missing feature. Editing by tag assumes the attribute you want is in the vocabulary. The README says dozens of options exist and that more are on the way, which is another way of saying the list is finite and you may want something outside it. A request for a specific regional accent, a particular age within the older or child tags, or a mixed emotion has no direct expression in the tag set.

The iterative design also has a cost the README does not quantify. Each edit pass is another inference run, and repeated editing risks drift, where the voice moves away from the original speaker across several rounds. The README presents iterative control as a strength and gives no guidance on how many passes are safe. That is a gap worth testing before you build a UI around repeated edits.

How it differs from a general TTS model

The obvious comparison is a conventional zero-shot TTS system, and the difference is in the input contract. A general TTS model takes text plus a reference speaker clip and produces audio. To change the emotion you rewrite the text, add a natural language instruction if the model supports it, or regenerate and listen again. Step-Audio-EditX takes existing audio plus a tag and returns modified audio, which means the source of truth is the recording rather than the text.

That changes what you can preserve. Prosody, timing and the exact wording survive an edit in a way they do not survive regeneration, because regeneration re-samples everything. It also changes what you can debug. When a general TTS output is wrong, you inspect the text and the reference clip. When an edit is wrong, you inspect the tag and the number of passes already applied, which is a smaller and more tractable search space.

The trade-off is coverage. A general TTS model handles whatever language its training data covers, and you can often fine-tune it further. Step-Audio-EditX handles six language and dialect tags as listed, and the editing vocabulary is fixed by the release. The repository does publish SFT, DPO and GRPO training code, so extending it is possible in principle, but that is a research task, not a configuration change.

Licence, maintenance and the cost of following releases

The licence is Apache-2.0, which permits commercial use and modification, and requires that you retain the licence and attribution notices. That is the standard reading of the licence text, not legal advice; if you are shipping a product, have counsel review it alongside the model card, since model releases sometimes carry additional terms that the repository metadata does not surface.

Maintenance cost is the more practical concern. The release cadence visible in the README is fast: a technical report in early November 2025, weights and tokenizer on November 12, a version adding polyphonic control on November 19, a benchmark on November 23, Japanese and Korean on November 28, then a new model plus training code plus vLLM support on January 29, 2026. Each of those is a potential re-quantization, re-evaluation and re-deployment for anyone running it in production.

The Apache-2.0 terms do not oblige you to track those releases. You can pin a checkpoint and stay there. What you cannot do is assume the tag vocabulary is stable, because the January release added six paralinguistic tags to a set that previously had ten. If your application stores tag strings in a database, that growth is a schema question as much as a model question.

Editorial conclusion

Adopt Step-Audio-EditX if your pipeline already produces speech and you need to change emotion, style or paralinguistic detail without re-recording, and if your target languages are Mandarin, English, Sichuanese, Cantonese, Japanese or Korean. Do not adopt it if you need Arabic, French, Russian or Spanish today, or if you need filler word removal, both of which the open-source plan still lists as unchecked. Before committing, verify three things yourself: that your GPU can hold the 3B checkpoint or the Int4 variant, that your target emotion tag appears in the README table, and that the vLLM path installs cleanly on your CUDA version.

Official sources

  1. Issues
  2. License: Apache-2.0
  3. README
  4. stepfun-ai/Step-Audio-EditX on GitHub
Community notes

Community notes