Skip to content

TTS Engine Comparison

TomoriBot supports multiple local Text-to-Speech sidecars, each suited for different languages, hardware profiles, and latency requirements.

This page provides empirical benchmark results, synthesis timings, and audio comparison clips recorded in an identical test environment with matching voice cloning references.

  • Standard Prompt (used for Chatterbox Standard/Turbo/Nano, MOSS-TTS, CosyVoice 3, VoxCPM2, Qwen3-TTS):

    “Pain and pleasure are two sides of the same coin. Go on now… flip it. Either way, I’ll let you feel all of me.”

  • Fish Audio S2 Pro Prompt (tested with bracket expression tags):

    “Pain and pleasure are two sides of the same coin. [laughs] Go on now… flip it. [whispers] Either way, I’ll let you feel all of me.”

Timings report both the full generation time (total wall-clock seconds from request to finished audio) and the Real-Time Factor (RTF), defined as generation time divided by audio duration:

  • RTF < 1.0 (bold): The engine generates speech faster than real time (for example, 0.50× RTF renders a 10-second clip in 5 seconds). Only these engines could keep up with a live voice call, which TomoriBot does not implement today.
  • RTF > 1.0: Generation takes longer than the spoken audio. TomoriBot sends each voice message as a complete file, so a higher RTF only means a longer wait.
EngineWindows Native(1)
(RTX 4070 Ti SUPER)
Linux / WSL2macOS
(Apple Silicon)
Audio Sample
Fish Audio S2 Pro~8-10 min(2)
(~65× RTF)
UntestedUntested
Chatterbox (Turbo, Default)~5.0s (8.7s clip)
0.57× RTF
UntestedUntested
Chatterbox (Nano)~3.0s (8.0s clip)
0.38× RTF
UntestedUntested
Chatterbox (Standard)~6.0s (7.8s clip)
0.77× RTF
UntestedUntested
MOSS-TTS~12.0s (8.8s clip)
1.36× RTF
UntestedUntested
CosyVoice 3~6.0s (13.9s clip)
0.43× RTF
UntestedUntested
VoxCPM2~8.0s (7.4s clip)
1.09× RTF
UntestedUntested
Qwen3-TTS~10.0s (9.2s clip)
1.09× RTF
UntestedUntested
  • (1) Test Environment: NVIDIA GeForce RTX 4070 Ti SUPER (16 GB GDDR6X, Ada Lovelace) on Windows 11 (native execution) using a 26.6-second 24 kHz mono reference audio sample with matching verbatim transcript.
  • (2) Fish Audio S2 Pro: Windows execution runs in uncompiled eager mode (~65× RTF) due to CUDA kernel launch latency across its 76 layer evaluations per token. Running on Linux or WSL2 with OpenAI Triton compiler fusion (torch.compile) is recommended to avoid this dispatch stall.

「そんな顔して……ほんとは私にやられたいんでしょ?ざぁこざぁこ~♡」

EngineWindows Native(1)
(RTX 4070 Ti SUPER)
Linux / WSL2macOS
(Apple Silicon)
Audio Sample
IrodoriTTS~4.0s (8.5s clip)
0.47× RTF
UntestedUntested
  • (1) Measured in the same RTX 4070 Ti SUPER Windows 11 test environment.

  • Choose Fish Audio S2 Pro if you want the highest possible vocal fidelity, fine-grained expressive bracket tags ([whisper], [laughs], [sigh]), and you have access to Linux or WSL2 where Triton compiler fusion can be enabled.
  • Choose Chatterbox (Turbo / Nano / Standard) for English voice cloning with small VRAM footprint. Nano (~3.0s, 0.38× RTF) provides maximum speed on CPU/GPU, Turbo (~5.0s, 0.57× RTF) supports paralinguistic event tags ([laughter], [sigh]), and Standard (~6.0s, 0.77× RTF) enables creative CFG guidance and emotional exaggeration tuning.
  • Choose MOSS-TTS for experimental multi-modal voice cloning and text-described English/Chinese voice generation.
  • Choose CosyVoice 3 if you need high-quality multilingual zero-shot cloning with natural language delivery direction ("Speak in English with excitement").
  • Choose VoxCPM2 if you need comprehensive multilingual support (30 languages), transcript-assisted Ultimate Cloning, and natural voice design.
  • Choose Qwen3-TTS if you want clean multi-language cloning with flexible voice design and stable prompt adherence.
  • Choose IrodoriTTS if your bot speaks Japanese. It was the only Japanese-only engine measured (~4s, 0.47× RTF on Windows) and natively parses Unicode emojis (😊, 😢, 😡) to modulate character emotion.

All TomoriBot sidecars currently return a complete WAV to the bot. “Streaming path” means the upstream model or a separate serving backend has one; it does not mean Discord voice-chat streaming is implemented. Sizes are model parameters, not VRAM or download sizes, and the 16 GB column is setup guidance rather than a measured peak. The speed column describes each engine’s intended trade-off; the measured timings above come from one Windows machine and do not rank the engines on Linux.

EngineModel size; 16 GB GPULanguagesVoice sources and controlsSpeed / streaming pathChoose it for
Chatterbox350M Turbo (default), 110M Nano, or 500M Standard; yes, Nano can use CPUEnglishReference cloning, supported event tags; standard model offers CFG/exaggerationFast/small focus; wrapper returns full WAVSmall English clone setup or CPU experiments
Qwen3-TTS1.7B per mode; yes, models swap10, including English/JapaneseClone or text-described VoiceDesignQuality-focused; upstream streaming, wrapper buffersGeneral-purpose multilingual clone and Japanese VoiceDesign
MOSS-TTS4B clone + ~1.7B design, swapped; 16 GB is a trial target, not verified; 8B flagship likely noClone: 31, including Japanese; design: English/ChineseClone or text-described VoiceGenerator; clone language tagsExperimental; Local clone has upstream streaming backend, wrapper buffersCompare MOSS clone quality or English/Chinese voice design
IrodoriTTS~0.8B current v4.1 Small; ~3-4 GB VRAM observed in one local runJapanese onlyClone or VoiceDesign; emoji style cuesSampling steps trade quality for speed; wrapper buffersSmall-footprint Japanese voices and emoji-driven delivery
Fish S2 Pro4B; official BF16 default (~16-18 GB), optional INT8 for 16 GB83 claimed upstreamReference cloning (requires ref transcript), free-form bracket expression tagsHeavy Dual-AR model; requires Linux/WSL2 with Triton for fast synthesis (~65× RTF on Windows eager mode)Fine-grained expressive cloning; check research-license terms
VoxCPM22B; ~8 GB BF16 reported upstream30Clone, Voice Design, transcript-assisted Ultimate Cloning, delivery instructions~0.30 RTF on upstream RTX 4090; upstream streaming, wrapper buffersOne multilingual model with the broadest voice-source controls
CosyVoice 30.5B core; 16 GB comfortable, download/runtime larger9, including Japanese, plus Chinese dialectsClone, cross-lingual clone, natural-language deliveryLow-latency focus; native text/audio streaming upstream, wrapper buffersA future streaming candidate with cross-lingual cloning

Model size and language counts follow the Chatterbox, Qwen3-TTS, MOSS, Irodori, Fish S2 Pro, VoxCPM2, and CosyVoice 3 upstream pages. Check each guide for OS, driver, license, model revision, and memory details. A 16 GB GPU cannot necessarily host a TTS model and a large local LLM simultaneously.

The Irodori VRAM figure is a single local observation, not a published minimum or cross-engine benchmark. Memory use varies with the runtime, precision, script length, and other GPU workloads.

The first Qwen3-TTS auto request includes model loading. MOSS pre-downloads both models during setup and warms the clone model at startup by default, but either auto server still has to load the other model after a mode switch. TomoriBot waits up to TTS_SYNTHESIZE_TIMEOUT_MS (default 240000 ms) for each complete response.