Nodes/ComfyUI-Qwen3-TTS/Qwen3-TTS Audio Speed ⚡
ComfyUI Node

Qwen3-TTS Audio Speed ⚡

Speed up a voice without turning it into Alvin and the Chipmunks

By wanaigc·Created 7 months ago·Updated 7 months ago· 113
Qwen3-TTS Audio Speed ⚡
  • audio
  • AUDIO
speed1.0
methodFFmpeg (atempo) - Best for Speech
channel_modeKeep Original
n_fft4096

Changing how fast a voice talks is not one operation - there are at least three, and they sound completely different. Speed it up by keeping the pitch and you get a faster, still-natural speaker. Speed it up by resampling and the pitch rises too, and suddenly you have a cartoon character. This node gives you all three, and the pack's maintainers made their recommendation pretty explicit in the option names.

Qwen3TTSAudioSpeed takes any AUDIO, stretches or compresses it by a speed factor, and hands back AUDIO. Zero model involvement - it's a utility you bolt onto the end of a TTS chain, most often to fit a narration into a fixed video length or to punch up a line.

The three methods, and which to use

  • FFmpeg (atempo) - Best for Speech (default) - pitch-preserving time stretch via FFmpeg's atempo filter. This is the one for voices: faster or slower, same pitch, no "chipmunk" effect. It's the default and usually the right answer.
  • Time Stretch (Librosa) - also pitch-preserving, but done with librosa.effects.time_stretch instead. Quality is controlled by the n_fft setting (2048/4096/8192, default 4096); bigger FFT means better low-frequency resolution but slower processing. You generally only reach for this if FFmpeg isn't available or you want finer control.
  • Resampling (Pitch Shift) - linear interpolation to a new sample count. Pitch shifts with speed: slower = deeper, faster = squeakier. Usually wrong for a natural voice, occasionally exactly right when you want a comic effect or a demon voice.

There's also channel_mode (Keep Original / Force Mono / Force Stereo) for when the downstream stage needs a specific channel layout.

How it works

If speed is 1.0 it returns the audio untouched (a nice freebie - you can leave it in the graph and never worry). Otherwise:

  • FFmpeg path writes the audio to a temp wav and chains atempo filters. Because atempo only supports 0.5×–2.0× per application, the node loops for bigger changes - 4× becomes 2.0 then 2.0 again. If ffmpeg-python isn't importable, it silently falls back to Librosa.
  • Librosa path runs time_stretch with your n_fft.
  • Resampling path uses torch F.interpolate.

If even Librosa is missing, it degrades to resampling rather than crashing. Graceful, if not great.

Fitting it into a workflow

Qwen3TTSLoader ─> Qwen3TTSVoiceClone ─> Qwen3TTSAudioSpeed (speed=1.25, FFmpeg)
                                                    │
                                                    ▼
                                        Qwen3TTSAudioPostProcess ─> save

Typical use: you generated a take at a comfortable pace, the video is 30 seconds, the narration is 34 - drop speed to ~1.13 and re-render instead of regenerating speech and gambling on the timing.

Gotchas

  • FFmpeg needs to exist. ffmpeg-python is just a Python wrapper; the actual ffmpeg binary has to be on your system PATH or the atempo path fails and it falls back to Librosa. On Windows, that means installing FFmpeg separately even though the pip package is present.
  • The pitch-stretch tradeoff is real. Push speed much past ~1.3–1.5 with atempo and speech starts to sound rushed and unnatural. If you need 2×, you'll probably want to re-generate at a different instruct instead.
  • Same pack-wide install as everything else here: clone the repo, pip install -r requirements.txt (which includes ffmpeg-python), restart ComfyUI.
CategoryQwen3-TTS

Inputs (5)

NameTypeDefaultDescription
audioAUDIO
speedFLOAT1.00.1–10
methodCOMBOFFmpeg (atempo) - Best for Speech3 options: FFmpeg (atempo) - Best for Speech, Time Stretch (Librosa), Resampling (Pitch Shift)
channel_modeCOMBOKeep Original3 options: Keep Original, Force Mono, Force Stereo
n_fftCOMBO40963 options: 2048, 4096, 8192

Outputs (1)

NameTypeDescription
AUDIOAUDIO