> ## Documentation Index
> Fetch the complete documentation index at: https://usefulai.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Best Text-to-Speech Models in 2026

export const models = [{
  rank: 1,
  name: "Simba 3.2",
  dev: "SpeechifyAI",
  icon: "/images/icons/speechify.com.png",
  url: "https://docs.speechify.ai/build/guides/concepts/models",
  bestFor: "Best overall TTS quality",
  score: "1233",
  price: "$6 / 1M chars",
  license: "Proprietary",
  custom: "29 chars/sec",
  customLabel: "Speed"
}, {
  rank: 2,
  name: "Gemini 3.1 Flash TTS",
  dev: "Google",
  icon: "/images/icons/google.com.png",
  url: "https://ai.google.dev/gemini-api/docs/speech-generation",
  bestFor: "Affordable controllable speech",
  score: "1214",
  price: "$18.31 / 1M chars",
  license: "Proprietary",
  custom: "28 chars/sec",
  customLabel: "Speed"
}, {
  rank: 3,
  name: "Sonic 3.5",
  dev: "Cartesia",
  icon: "/images/icons/cartesia.ai.png",
  url: "https://docs.cartesia.ai/build-with-cartesia/tts-models/latest",
  bestFor: "Realtime voice agents",
  score: "1208",
  price: "$39 / 1M chars",
  license: "Proprietary",
  custom: "115 chars/sec",
  customLabel: "Speed"
}, {
  rank: 4,
  name: "Fun-Realtime-TTS",
  dev: "Alibaba",
  icon: "/images/icons/qwen.ai.png",
  url: "https://www.alibabacloud.com/help/en/model-studio/realtime-tts-user-guide",
  bestFor: "Realtime Asian-language TTS",
  score: "1204",
  price: "$27.59 / 1M chars",
  license: "Proprietary",
  custom: "25 chars/sec",
  customLabel: "Speed"
}, {
  rank: 5,
  name: "Realtime TTS 1.5 Max",
  dev: "Inworld",
  icon: "/images/icons/inworld.ai.png",
  url: "https://docs.inworld.ai/tts/tts",
  bestFor: "Low-latency voice conversations",
  score: "1201",
  price: "$17.50 / 1M chars",
  license: "Proprietary",
  custom: "86 chars/sec",
  customLabel: "Speed"
}, {
  rank: 6,
  name: "xAI Text to Speech",
  dev: "xAI",
  icon: "/images/icons/x.ai.png",
  url: "https://docs.x.ai/developers/model-capabilities/audio/text-to-speech",
  bestFor: "Expressive conversational speech",
  score: "1189",
  price: "$15 / 1M chars",
  license: "Proprietary",
  custom: "45 chars/sec",
  customLabel: "Speed"
}, {
  rank: 7,
  name: "Speech 2.8 HD",
  dev: "MiniMax",
  icon: "/images/icons/minimax.io.png",
  url: "https://platform.minimax.io/docs/guides/speech-t2a-websocket",
  bestFor: "Premium multilingual narration",
  score: "1185",
  price: "$100 / 1M chars",
  license: "Proprietary",
  custom: "149 chars/sec",
  customLabel: "Speed"
}, {
  rank: 8,
  name: "Async Flash v1.5",
  dev: "async",
  icon: "/images/icons/async.com.png",
  url: "https://async.com/async-voice-api",
  bestFor: "Budget quality streaming",
  score: "1183",
  price: "$10.10 / 1M chars",
  license: "Proprietary",
  custom: "83 chars/sec",
  customLabel: "Speed"
}, {
  rank: 9,
  name: "StepAudio 2.5 TTS",
  dev: "StepFun",
  icon: "/images/icons/stepfun.ai.png",
  url: "https://platform.stepfun.ai/docs/en/guides/models/stepaudio-2.5-tts",
  bestFor: "Expressive character performance",
  score: "1174",
  price: "$85 / 1M chars",
  license: "Proprietary",
  custom: "38 chars/sec",
  customLabel: "Speed"
}, {
  rank: 10,
  name: "Eleven v3",
  dev: "ElevenLabs",
  icon: "/images/icons/elevenlabs.io.png",
  url: "https://elevenlabs.io/v3",
  bestFor: "Expressive creator voiceovers",
  score: "1172",
  price: "$100 / 1M chars",
  license: "Proprietary",
  custom: "50 chars/sec",
  customLabel: "Speed"
}, {
  rank: 11,
  name: "Lightning V3.1 Pro TTS",
  dev: "Smallest.ai",
  icon: "/images/icons/smallest.ai.png",
  url: "https://docs.smallest.ai/waves/model-cards/text-to-speech/lightning-v-3-1-pro",
  bestFor: "Fast voice agents",
  score: "1149",
  price: "$19.50 / 1M chars",
  license: "Proprietary",
  custom: "127 chars/sec",
  customLabel: "Speed"
}, {
  rank: 12,
  name: "Fish Audio S2.1 Pro",
  dev: "Fish Audio",
  icon: "/images/icons/fish.audio.png",
  url: "https://docs.fish.audio/developer-guide/models-pricing/models-overview",
  bestFor: "Fine-grained voice control",
  score: "1145",
  price: "$15 / 1M chars",
  license: "Proprietary",
  custom: "58 chars/sec",
  customLabel: "Speed"
}, {
  rank: 13,
  name: "Azure HD 2.5",
  dev: "Microsoft",
  icon: "/images/icons/microsoft.com.png",
  url: "https://learn.microsoft.com/en-us/azure/ai-services/speech-service/text-to-speech",
  bestFor: "Enterprise contact-center voices",
  score: "1126",
  price: "$22 / 1M chars",
  license: "Proprietary",
  custom: "50 chars/sec",
  customLabel: "Speed"
}, {
  rank: 14,
  name: "Fish Audio S2 Pro",
  dev: "Fish Audio",
  icon: "/images/icons/fish.audio.png",
  url: "https://huggingface.co/fishaudio/s2-pro",
  bestFor: "Open-weight expressive voices",
  score: "1107",
  price: "$15 / 1M chars",
  license: "Open weight",
  custom: "55 chars/sec",
  customLabel: "Speed"
}, {
  rank: 15,
  name: "Kokoro 82M v1.0",
  dev: "Kokoro",
  icon: "/images/icons/huggingface.co.png",
  url: "https://huggingface.co/hexgrad/Kokoro-82M",
  bestFor: "Local laptop TTS",
  score: "1059",
  price: "$0.65 / 1M chars",
  license: "Open weight",
  custom: "170 chars/sec",
  customLabel: "Speed"
}];

export const Fav = ({icon, size = "h-4 w-4"}) => <img src={icon} alt="" noZoom className={"relative -top-px mr-1 inline rounded-sm object-contain " + size} />;

export const LicenseBadge = ({license}) => license === "Open weight" ? <span className="inline-flex items-center rounded bg-emerald-50 px-1.5 py-[2px] text-xs font-medium leading-4 text-emerald-700 dark:bg-emerald-500/10 dark:text-emerald-400">Open weight</span> : <span className="inline-flex items-center rounded bg-zinc-100 px-1.5 py-[2px] text-xs font-medium leading-4 text-zinc-600 dark:bg-white/10 dark:text-zinc-300">Proprietary</span>;

export const BestForChip = ({children}) => <span className="inline-flex min-w-0 max-w-full items-center rounded bg-sky-50 px-1.5 py-[2px] dark:bg-sky-500/10">
    <span className="truncate text-xs font-medium leading-4 text-sky-700 dark:text-sky-400">{children}</span>
  </span>;

export const HeaderTip = ({label, tip}) => <span className="inline-flex items-center gap-1.5">
    <span>{label}</span>
    <Tooltip tip={tip}>
      <span className="relative top-0.5 inline-flex cursor-pointer text-zinc-500 transition-opacity hover:opacity-70 dark:text-zinc-400">
        <Icon icon="circle-info" size={12} color="currentColor" />
        <span className="sr-only">About {label.toLowerCase()}</span>
      </span>
    </Tooltip>
  </span>;

export const ModelCard = ({model, children}) => <section className="not-prose my-5 rounded-lg border border-zinc-200 bg-white p-5 shadow-sm dark:border-white/10 dark:bg-white/[0.03]">
    <div className="mb-3"><BestForChip>{model.bestFor}</BestForChip></div>
    <div className="flex items-center gap-3">
      <img src={model.icon} alt={model.dev + " logo"} noZoom className="h-10 w-10 shrink-0 rounded-lg object-contain" />
      <div className="min-w-0 flex-1">
        <h2 className="m-0 max-w-full text-xl font-semibold leading-7 tracking-normal">
          <a href={model.url} target="_blank" rel="noreferrer" className="group inline-flex min-w-0 max-w-full items-center gap-1.5 no-underline text-zinc-950 dark:text-white">
            <span className="min-w-0 break-words"><span className="underline-offset-4 group-hover:underline group-focus-visible:underline">{model.name}</span> <span className="font-normal text-zinc-500 dark:text-zinc-400">({model.dev})</span></span>
            <span aria-hidden="true" className="flex shrink-0 text-zinc-400 transition-colors group-hover:text-zinc-900 group-focus-visible:text-zinc-900 dark:text-zinc-500 dark:group-hover:text-white dark:group-focus-visible:text-white"><Icon icon="arrow-up-right" size={12} color="currentColor" /></span>
          </a>
        </h2>
        <div className="mt-1 flex flex-wrap items-center gap-x-2 gap-y-1 text-[13px] leading-5 uai-ink-muted">
          <LicenseBadge license={model.license} />
          <span aria-hidden="true">∙</span>
          <span>Score <span className="tabular-nums text-zinc-950 dark:text-white">{model.score}</span></span>
          <span aria-hidden="true">∙</span>
          <span>Price <span className="tabular-nums text-zinc-950 dark:text-white">{model.price}</span></span>
          {model.custom && <><span aria-hidden="true">∙</span><span>{model.customLabel} <span className="tabular-nums text-zinc-950 dark:text-white">{model.custom}</span></span></>}
        </div>
      </div>
    </div>
    {children}
  </section>;

export const Take = ({children}) => <div className="not-prose mt-4 text-sm leading-[22px] text-zinc-700 dark:text-zinc-300">{children}</div>;

export const ST = ({label, children}) => <div className="not-prose mt-4">
    <div className="text-sm font-semibold text-zinc-950 dark:text-white">{label}</div>
    <div className="mt-1 flex flex-col gap-2.5 text-sm leading-[22px] text-zinc-700 dark:text-zinc-300">{children}</div>
  </div>;

export const AccessBullets = ({rows}) => <div className="not-prose mt-4 text-sm leading-[22px] text-zinc-700 dark:text-zinc-300">
    <div className="font-semibold text-zinc-950 dark:text-white">How to access</div>
    <div className="mt-1.5 flex flex-col gap-1.5">
      {rows.map(([key, body]) => <span key={key} className="flex items-baseline gap-2.5"><span aria-hidden="true" className="relative -top-0.5 inline-block h-1.5 w-1.5 shrink-0 rounded-full bg-zinc-700 dark:bg-zinc-300" /><span><span className="font-semibold text-zinc-950 dark:text-white">{key}</span> — {body}</span></span>)}
    </div>
  </div>;

export const Alt = ({icon, name, dev, url, children}) => <span className="flex items-baseline gap-2.5">
    <span aria-hidden="true" className="relative -top-0.5 inline-block h-1.5 w-1.5 shrink-0 rounded-full bg-zinc-300 dark:bg-zinc-600" />
    <span><Fav icon={icon} /><a href={url} target="_blank" rel="noreferrer" className="font-medium text-zinc-950 underline underline-offset-2 dark:text-white">{name}</a> <span className="uai-ink-muted">({dev})</span> — {children}</span>
  </span>;

<div className="not-prose -mt-2 mb-8 flex flex-wrap items-center gap-x-2 text-sm text-zinc-800 dark:text-zinc-200 lg:-mt-5" style={{ paddingLeft: "2px" }}>
  <span className="inline-flex items-center gap-1.5"><Icon icon="clock-rotate-left" size={10} color="currentColor" /> Updated <time dateTime="2026-07-12">July 12, 2026</time></span>
</div>

Text-to-speech models turn text into spoken audio for voice agents, audiobooks, and dubbing. The catch: the highest-quality voice and the one fast enough for a live agent are rarely the same model, and prices span 150x. We compared 15 on blind-test quality, speed, and price.

## Best Text-to-Speech Models

<div className="uai-overview-breakout not-prose my-5">
  <input type="checkbox" id="models-more" className="fy-more-toggle sr-only" aria-label={"Show all 15 text-to-speech models"} />

  <div className="fy-more-table overflow-x-auto rounded-lg border border-zinc-200 bg-white dark:border-white/10 dark:bg-white/[0.03]">
    <div className="table text-sm" style={{ width: "100%" }}>
      <div className="table-header-group bg-zinc-50/60 dark:bg-white/[0.02]">
        <div className="table-row">
          <span className="table-cell whitespace-nowrap px-4 py-2.5 text-left text-[13px] font-medium leading-5 text-zinc-500 dark:text-zinc-400">#</span>
          <span className="table-cell whitespace-nowrap px-4 py-2.5 text-left text-[13px] font-medium leading-5 text-zinc-500 dark:text-zinc-400">Model</span>
          <span className="table-cell whitespace-nowrap px-4 py-2.5 text-left text-[13px] font-medium leading-5 text-zinc-500 dark:text-zinc-400">Best for</span>

          <span className="table-cell whitespace-nowrap px-4 py-2.5 text-right text-[13px] font-medium leading-5 text-zinc-500 dark:text-zinc-400">
            <HeaderTip label="Score" tip={"Quality Elo from the Artificial Analysis Text to Speech Arena. Higher means listeners preferred the model more often in blind comparisons."} />
          </span>

          <span className="table-cell whitespace-nowrap px-4 py-2.5 text-right text-[13px] font-medium leading-5 text-zinc-500 dark:text-zinc-400">
            <HeaderTip label="Price" tip={"Estimated USD per 1M input characters. Tiers, discounts, regional pricing, and feature charges can change the real cost."} />
          </span>

          <span className="table-cell whitespace-nowrap px-4 py-2.5 text-left text-[13px] font-medium leading-5 text-zinc-500 dark:text-zinc-400">
            <HeaderTip label="License" tip="Proprietary means no public model weights. Open weight means weights are available, though exact licenses and commercial-use terms vary." />
          </span>
        </div>
      </div>

      <div className="table-row-group">
        {models.map((model, index) => (
                        <a key={model.name} href={model.url} target="_blank" rel="noreferrer" className={"table-row no-underline transition-colors hover:bg-zinc-50/60 dark:hover:bg-white/[0.02]" + (models.length > 9 && index >= 7 ? " fy-more-row" : "")}>
                          <span className="table-cell w-8 whitespace-nowrap border-t border-zinc-100 px-4 py-3 align-middle text-[13px] tabular-nums dark:border-white/5"><span className="sr-only">Rank </span><span className="uai-ink-muted">{model.rank}</span></span>
                          <span className="table-cell whitespace-nowrap border-t border-zinc-100 px-4 py-3 align-middle dark:border-white/5"><span className="flex items-center gap-2.5"><Fav icon={model.icon} /><span className="text-sm font-semibold leading-5 text-zinc-950 dark:text-white">{model.name}</span></span></span>
                          <span className="table-cell whitespace-nowrap border-t border-zinc-100 px-4 py-3 align-middle text-[13px] leading-5 text-zinc-950 dark:border-white/5 dark:text-white"><span className="sr-only">Best for: </span>{model.bestFor}</span>
                          <span className="table-cell whitespace-nowrap border-t border-zinc-100 px-4 py-3 text-right align-middle text-[13px] leading-5 tabular-nums text-zinc-950 dark:border-white/5 dark:text-white"><span className="sr-only">Score: </span>{model.score}</span>
                          <span className="table-cell whitespace-nowrap border-t border-zinc-100 px-4 py-3 text-right align-middle text-[13px] leading-5 tabular-nums dark:border-white/5"><span className="sr-only">Price: </span><span className="uai-ink-muted">{model.price}</span></span>
                          <span className="table-cell whitespace-nowrap border-t border-zinc-100 px-4 py-3 align-middle dark:border-white/5"><span className="sr-only">License: </span><LicenseBadge license={model.license} /></span>
                        </a>
                      ))}
      </div>
    </div>
  </div>

  {models.length > 9 && <div className="fy-more-pill mt-3 flex justify-center">
      <label htmlFor="models-more" className="inline-flex cursor-pointer items-center gap-1.5 rounded-full border border-zinc-200 px-4 py-1.5 text-[13px] font-medium text-zinc-600 transition-colors hover:text-zinc-900 dark:border-white/15 dark:text-zinc-300 dark:hover:text-white">
        <span className="fy-more-open inline-flex items-center gap-1.5">Show {models.length - 7} more <Icon icon="chevron-down" size={13} /></span>
        <span className="fy-more-close items-center gap-1.5">Show less <Icon icon="chevron-up" size={13} /></span>
      </label>
    </div>}
</div>

***

<ModelCard model={models[0]}>
  <Take>This is the highest-rated voice in our blind-listening comparisons, and it undercuts the other premium names on price.</Take>

  <ST label="Strengths:">
    <div>The top-ranked voice quality here, and it stays natural across accents and long passages where cheaper models get robotic or drift. Streaming-native, so the first audio arrives fast, and it handles emotion and SSML control well.</div>
    <div>If you want the best-sounding voice without paying the top-tier rate, start here.</div>
  </ST>

  <ST label="Tradeoffs:">
    <div>It's not built for realtime - generation is slower than the agent-focused models like Sonic 3.5 or Lightning V3.1 Pro, so it's a poor fit for live conversation.</div>
    <div>And as a newer name, it has a thinner production track record than ElevenLabs for broadcast work.</div>
  </ST>

  <AccessBullets
    rows={[
["API", <span>Accessible via <a href="https://docs.speechify.ai/" target="_blank" rel="noreferrer" className="underline underline-offset-2">Speechify API</a>.</span>],
]}
  />
</ModelCard>

<ModelCard model={models[1]}>
  <Take>A near-top voice quality at a fraction of the premium price, and you steer tone and pacing with plain-language prompts.</Take>

  <ST label="Strengths:">
    <div>You get quality close to the best here for far less money, plus wide language coverage and natural-language control over style, pace, and accent - no SSML required.</div>
    <div>Single- and multi-speaker output makes it handy for dialogue. For high-volume narration where budget matters, it's the sensible default.</div>
  </ST>

  <ST label="Tradeoffs:">
    <div>Quality drifts on long outputs, so you'll chunk anything past a few minutes and stitch it back together. You're limited to prebuilt voices - no cloning - and it carries a preview label, so stability is unsettled.</div>
    <div>For studio-grade consistency, Simba 3.2 or Eleven v3 are safer.</div>
  </ST>

  <AccessBullets
    rows={[
["API", <span>Accessible via <a href="https://ai.google.dev/gemini-api/docs/speech-generation" target="_blank" rel="noreferrer" className="underline underline-offset-2">Gemini API</a>.</span>],
]}
  />
</ModelCard>

<ModelCard model={models[2]}>
  <Take>Built for live conversation, one of the fastest voices here, trading a little studio polish for latency low enough to hold a natural back-and-forth.</Take>

  <ST label="Strengths:">
    <div>Latency is the headline - first audio comes back fast enough for real-time agents, and it stays fast under load. It nails the things live systems trip on: acronyms, codes, and heteronyms, with custom pronunciation and IPA support.</div>
    <div>Instant voice cloning and broad language coverage round it out.</div>
  </ST>

  <ST label="Tradeoffs:">
    <div>The speed-first design costs some richness - for audiobook or broadcast narration, Simba 3.2, Eleven v3, or Speech 2.8 HD sound fuller.</div>
    <div>It's also priced above the value leaders, so if you don't need sub-100ms latency, you're overpaying for speed you won't use.</div>
  </ST>

  <AccessBullets
    rows={[
["API", <span>Accessible via <a href="https://docs.cartesia.ai/build-with-cartesia/tts-models/latest" target="_blank" rel="noreferrer" className="underline underline-offset-2">Cartesia API</a>.</span>],
]}
  />
</ModelCard>

<ModelCard model={models[3]}>
  <Take>A top-tier realtime voice with unusually strong Chinese dialect and accent coverage, though its English polish and Western track record are still thin.</Take>

  <ST label="Strengths:">
    <div>It scores near the top of the realtime pack and streams with very low latency, so it works for live agents. The standout is language depth: broad Chinese dialect and accent coverage that most rivals don't touch.</div>
    <div>If your audience is Mandarin- or dialect-heavy, it's a strong pick.</div>
  </ST>

  <ST label="Tradeoffs:">
    <div>For English-first work it's hard to justify over Sonic 3.5 or Lightning V3.1 Pro, which are faster, better-documented, and easier to reach outside China.</div>
    <div>Version naming is murky and it's marked preview, so pin down exactly what you're calling before you build on it.</div>
  </ST>

  <AccessBullets
    rows={[
["API", <span>Accessible via <a href="https://www.alibabacloud.com/help/en/model-studio/realtime-tts-user-guide" target="_blank" rel="noreferrer" className="underline underline-offset-2">Alibaba Cloud Model Studio</a>.</span>],
]}
  />
</ModelCard>

<ModelCard model={models[4]}>
  <Take>A strong realtime voice that balances quality and low latency well, and the cleaner pick over Inworld's newer TTS-2, which is still a research preview.</Take>

  <ST label="Strengths:">
    <div>High voice quality paired with genuinely low latency, so you don't trade much sound quality for speed - a good balance for conversational agents and IVR.</div>
    <div>Coverage is broad across languages, voice cloning is supported, and it holds up well under the demands of live, back-and-forth use.</div>
  </ST>

  <ST label="Tradeoffs:">
    <div>It sits a notch below the very top on raw quality, and the newer TTS-2 promises better voice direction - but that one's a preview, so you're choosing between a stable model and a more capable unfinished one.</div>
    <div>For peak quality, Simba 3.2 is ahead.</div>
  </ST>

  <AccessBullets
    rows={[
["API", <span>Accessible via <a href="https://docs.inworld.ai/tts/tts" target="_blank" rel="noreferrer" className="underline underline-offset-2">Inworld API</a>.</span>],
]}
  />
</ModelCard>

<ModelCard model={models[5]}>
  <Take>A capable, expressive newcomer with inline emotion tags and voice cloning, but a small voice roster and little independent quality track record so far.</Take>

  <ST label="Strengths:">
    <div>It scores well and delivers expressive, natural speech with inline tags for laughs, sighs, and whispers, so you get real emotional control. Instant voice cloning and multilingual coverage are built in, and there's a clear, documented API.</div>
    <div>A solid choice for expressive, conversational output.</div>
  </ST>

  <ST label="Tradeoffs:">
    <div>The voice and language lineup is thinner than rivals, and it's new enough that independent quality reports are scarce - you're partly trusting the vendor.</div>
    <div>For more voices and a longer track record, Eleven v3, Simba 3.2, or Speech 2.8 HD are safer bets today.</div>
  </ST>

  <AccessBullets
    rows={[
["API", <span>Accessible via <a href="https://docs.x.ai/developers/model-capabilities/audio/text-to-speech" target="_blank" rel="noreferrer" className="underline underline-offset-2">xAI API</a>.</span>],
]}
  />
</ModelCard>

<ModelCard model={models[6]}>
  <Take>A premium, high-fidelity voice tuned for expressive narration and audiobooks, priced near the top - worth it only when audio quality is the priority.</Take>

  <ST label="Strengths:">
    <div>Rich, emotive delivery that holds up for long-form narration and audiobooks, with a range of emotions and interjection tags for fine control. Wide language coverage and fast voice cloning make it flexible, and it generates quickly.</div>
    <div>When you want the fullest, most polished sound, it competes with the very best.</div>
  </ST>

  <ST label="Tradeoffs:">
    <div>It ties Eleven v3 for the priciest voice here, and for most work the quality edge over cheaper models like Simba 3.2 or Gemini 3.1 Flash TTS doesn't justify the premium.</div>
    <div>If cost or speed matters, the Speech 2.8 Turbo sibling is the practical trade.</div>
  </ST>

  <AccessBullets
    rows={[
["API", <span>Accessible via <a href="https://platform.minimax.io/docs/guides/speech-t2a-websocket" target="_blank" rel="noreferrer" className="underline underline-offset-2">MiniMax API</a>.</span>],
]}
  />
</ModelCard>

<ModelCard model={models[7]}>
  <Take>A genuine value standout: top-ten voice quality at a low price with fast streaming, from a smaller vendor most buyers haven't heard of yet.</Take>

  <ST label="Strengths:">
    <div>You get quality that competes with pricier names, low latency, and low cost in one model - a rare combination. It handles the text that trips other engines, like dates, currency, numbers, and abbreviations, and comes with enterprise reliability commitments.</div>
    <div>For high-volume streaming on a budget, it's hard to beat.</div>
  </ST>

  <ST label="Tradeoffs:">
    <div>The vendor is small and newly rebranded, and most published detail covers earlier versions, so independent data on this exact model is thin.</div>
    <div>Voice and language options are lightly documented. For a bigger, more proven catalog, Simba 3.2 or Eleven v3 are safer.</div>
  </ST>

  <AccessBullets
    rows={[
["API", <span>Accessible via <a href="https://docs.async.com/" target="_blank" rel="noreferrer" className="underline underline-offset-2">Async Voice API</a>.</span>],
]}
  />
</ModelCard>

<ModelCard model={models[8]}>
  <Take>A distinctive pick for character and roleplay work, with fine-grained control over emotion, pauses, and delivery - it acts a line rather than just reading it.</Take>

  <ST label="Strengths:">
    <div>Its strength is expressive, contextual performance: per-sentence control over emotion, pauses, and breathing that make it read like acting rather than narration. Zero-shot voice cloning and realtime streaming are built in.</div>
    <div>If you're producing characters, dialogue, or roleplay audio, this control is genuinely useful and hard to match.</div>
  </ST>

  <ST label="Tradeoffs:">
    <div>It only handles Chinese and English, caps input length per request, and has little adoption outside China, so tooling and community help are limited.</div>
    <div>For broad multilingual work or a longer track record, Speech 2.8 HD, Eleven v3, or Simba 3.2 are the safer choices.</div>
  </ST>

  <AccessBullets
    rows={[
["API", <span>Accessible via <a href="https://platform.stepfun.ai/docs/en/api-reference/audio/create-audio" target="_blank" rel="noreferrer" className="underline underline-offset-2">StepFun API</a>.</span>],
]}
  />
</ModelCard>

<ModelCard model={models[9]}>
  <Take>The name most creators reach for when emotional realism matters, with the deepest voice library here - though it's pricey and explicitly not built for realtime.</Take>

  <ST label="Strengths:">
    <div>Top-tier expressiveness and naturalness, with inline audio tags for whispers and laughs and strong multi-speaker dialogue. The voice marketplace and mature cloning give you more ready-made options than anywhere else, across dozens of languages.</div>
    <div>When emotional range and voice selection matter most, it's the benchmark others get measured against.</div>
  </ST>

  <ST label="Tradeoffs:">
    <div>It's among the priciest here, credits go fast, and v3 runs at higher latency - it's explicitly not for realtime. Some find it less consistent than the older Multilingual v2 for polished, repeatable voiceover.</div>
    <div>For live agents, look to Sonic 3.5 or Lightning V3.1 Pro.</div>
  </ST>

  <AccessBullets
    rows={[
["App", <span>Available in <a href="https://elevenlabs.io/app" target="_blank" rel="noreferrer" className="underline underline-offset-2">ElevenLabs</a>.</span>],
["API", <span>Accessible via <a href="https://elevenlabs.io/docs/overview/capabilities/text-to-speech" target="_blank" rel="noreferrer" className="underline underline-offset-2">ElevenLabs API</a>.</span>],
]}
  />
</ModelCard>

<ModelCard model={models[10]}>
  <Take>A speed-first voice built for real-time agents and IVR, among the fastest here, with quick cloning - but expressiveness and independent quality data are limited.</Take>

  <ST label="Strengths:">
    <div>Very fast generation with low time-to-first-audio, which is exactly what live agents and phone systems need. It clones a voice in seconds and has strong multilingual coverage, including good Indic-language support.</div>
    <div>If your priority is responsive, real-time speech at a reasonable price, it's a legitimate contender.</div>
  </ST>

  <ST label="Tradeoffs:">
    <div>Expressiveness isn't its lane, so for emotive narration or audiobooks it trails Eleven v3, Simba 3.2, and Speech 2.8 HD. The brand and voice catalog are small, and most quality claims are vendor-reported.</div>
    <div>Confirm the exact model name against live docs.</div>
  </ST>

  <AccessBullets
    rows={[
["API", <span>Accessible via <a href="https://docs.smallest.ai/waves/model-cards/text-to-speech/lightning-v-3-1-pro" target="_blank" rel="noreferrer" className="underline underline-offset-2">Smallest.ai API</a>.</span>],
]}
  />
</ModelCard>

<ModelCard model={models[11]}>
  <Take>The pick when you want deep, tag-level control over delivery, with strong expressive quality and very broad language coverage across a hosted API.</Take>

  <ST label="Strengths:">
    <div>Fine-grained inline control is the draw - thousands of tags let you shape emotion, pacing, and delivery down to the phrase. Voice quality is expressive and it covers a very wide range of languages.</div>
    <div>For creators who want to direct a performance rather than accept a default read, it delivers.</div>
  </ST>

  <ST label="Tradeoffs:">
    <div>It's hosted-only, so you can't self-host this version the way you can the open S2 Pro.</div>
    <div>A free tier exists for testing, but treat it as promotional, not permanent.</div>
  </ST>

  <AccessBullets
    rows={[
["App", <span>Available in <a href="https://fish.audio/tts/" target="_blank" rel="noreferrer" className="underline underline-offset-2">Fish Audio</a>.</span>],
["API", <span>Accessible via <a href="https://docs.fish.audio/features/text-to-speech" target="_blank" rel="noreferrer" className="underline underline-offset-2">Fish Audio API</a>.</span>],
]}
  />
</ModelCard>

<ModelCard model={models[12]}>
  <Take>An enterprise-grade voice tuned for contact centers, with context-aware prosody that detects emotion and adjusts tone in real time as it reads.</Take>

  <ST label="Strengths:">
    <div>Its edge is context-aware delivery: the voice reads emotion in the text and shifts prosody on its own, which suits dynamic, conversational contact-center scripts.</div>
    <div>Real-time streaming, strong cross-lingual coverage, and enterprise-grade reliability make it a dependable choice for high-volume customer-facing systems where consistency matters more than novelty.</div>
  </ST>

  <ST label="Tradeoffs:">
    <div>On raw voice quality it trails the leaders like Simba 3.2 and Eleven v3, and the flagship HD voices are still preview-labeled, so regions and stability are moving targets.</div>
    <div>It's also priced above standard neural voices - verify what's live before committing.</div>
  </ST>

  <AccessBullets
    rows={[
["App", <span>Available in <a href="https://speech.microsoft.com/" target="_blank" rel="noreferrer" className="underline underline-offset-2">Azure Speech Studio</a>.</span>],
["API", <span>Accessible via <a href="https://learn.microsoft.com/en-us/azure/ai-services/speech-service/index-text-to-speech" target="_blank" rel="noreferrer" className="underline underline-offset-2">Azure AI Speech service</a>.</span>],
]}
  />
</ModelCard>

<ModelCard model={models[13]}>
  <Take>The strongest open-weight voice here for expressiveness, but the weights are heavy and noncommercial-licensed, so self-hosting is a real project, not a quick swap.</Take>

  <ST label="Strengths:">
    <div>Open weights with genuinely expressive quality and very broad language coverage - the best-sounding open option on this list, and available hosted too if you'd rather not run it yourself.</div>
    <div>For teams that want control over where the model runs, or to fine-tune, it's the pick among open voices here.</div>
  </ST>

  <ST label="Tradeoffs:">
    <div>Running it locally needs a strong GPU, and the open weights are research/noncommercial only, so shipping commercially means a paid license.</div>
    <div>It's also a generation behind the hosted S2.1 Pro. If you just want quality without the ops, use S2.1 Pro or Simba 3.2.</div>
  </ST>

  <AccessBullets
    rows={[
["App", <span>Available in <a href="https://fish.audio/tts/" target="_blank" rel="noreferrer" className="underline underline-offset-2">Fish Audio</a>.</span>],
["API", <span>Accessible via <a href="https://docs.fish.audio/features/text-to-speech" target="_blank" rel="noreferrer" className="underline underline-offset-2">Fish Audio API</a>.</span>],
["Run locally", <span>If you have a high-end machine, you can run it with <a href="https://github.com/fishaudio/fish-speech" target="_blank" rel="noreferrer" className="underline underline-offset-2">Fish Speech</a> after downloading weights from <a href="https://huggingface.co/fishaudio/s2-pro" target="_blank" rel="noreferrer" className="underline underline-offset-2">Hugging Face</a>.</span>],
]}
  />
</ModelCard>

<ModelCard model={models[14]}>
  <Take>The most practical local voice here: small enough to run on a normal laptop, even without a GPU, and effectively free once you're set up.</Take>

  <ST label="Strengths:">
    <div>It genuinely runs on everyday hardware - a small model that generates faster than real time on a CPU, with clean, natural prosody for its size.</div>
    <div>Open-licensed and effectively free to run, it's ideal for private, offline narration, prototyping, and anyone who wants voice output with no per-use cost.</div>
  </ST>

  <ST label="Tradeoffs:">
    <div>Quality is well behind the proprietary leaders - fine for clean English, but it can't clone voices and its emotional range is narrow. If you need expressiveness or production polish, almost anything above it sounds better.</div>
    <div>And watch the phonemizer license if you ship commercially.</div>
  </ST>

  <AccessBullets
    rows={[
["API", <span>Accessible via <a href="https://openrouter.ai/hexgrad/kokoro-82m" target="_blank" rel="noreferrer" className="underline underline-offset-2">OpenRouter</a>.</span>],
["Run locally", <span>You can run it locally with <a href="https://github.com/hexgrad/kokoro" target="_blank" rel="noreferrer" className="underline underline-offset-2">Kokoro</a> after downloading weights from <a href="https://huggingface.co/hexgrad/Kokoro-82M" target="_blank" rel="noreferrer" className="underline underline-offset-2">Hugging Face</a>.</span>],
]}
  />
</ModelCard>

***

## How to Choose

When choosing the best TTS model, consider:

* **Access:** Decide first whether you'll call the model through an API, use it in a first-party app, or run it locally. That choice drives cost, privacy, latency, and setup work more than any quality gap between the top models. Most models here are API-only; only two run locally.
* **Quality:** We use Artificial Analysis's Text to Speech Quality Elo as the main score. It ranks models by blind human preference in head-to-head listening tests, so it tracks how natural a voice actually sounds rather than a lab spec.
* **Price:** We compare using USD per 1 million input characters.
* **Speed:** We list characters generated per second. It matters most for live agents and phone systems, where latency breaks the conversation. The highest-quality voice and the fastest one are rarely the same model, so match speed to the job.

***

## Other Models We Considered

<div className="not-prose my-4 flex flex-col gap-1.5 text-sm text-zinc-700 dark:text-zinc-300">
  <Alt icon={"/images/icons/inworld.ai.png"} name={"Realtime TTS-2"} dev={"Inworld"} url={"https://docs.inworld.ai/tts/tts"}>Scores near the top, but it's still a research preview.</Alt>
  <Alt icon={"/images/icons/minimax.io.png"} name={"Speech 2.8 Turbo"} dev={"MiniMax"} url={"https://platform.minimax.io/docs/guides/speech-t2a-websocket"}>Cheaper and faster than Speech 2.8 HD, with a quality dip.</Alt>
  <Alt icon={"/images/icons/stepfun.ai.png"} name={"Step Audio EditX"} dev={"StepFun"} url={"https://github.com/stepfun-ai/Step-Audio-EditX"}>Capable open-weight editor, but a messier fit for straight TTS.</Alt>
  <Alt icon={"/images/icons/openai.com.png"} name={"OpenAI TTS-1 HD"} dev={"OpenAI"} url={"https://developers.openai.com/api/docs/models/tts-1"}>The familiar OpenAI baseline, now behind newer, better TTS models.</Alt>
  <Alt icon={"/images/icons/aws.amazon.com.png"} name={"Amazon Polly Generative"} dev={"Amazon"} url={"https://docs.aws.amazon.com/polly/latest/dg/generative-voices.html"}>A solid, human-sounding AWS baseline for enterprise buyers.</Alt>
  <Alt icon={"/images/icons/huggingface.co.png"} name={"Chatterbox"} dev={"Resemble AI"} url={"https://www.resemble.ai/learn/models/chatterbox"}>Permissive open-source voice cloning, but lower-scoring than the picks here.</Alt>
  <Alt icon={"/images/icons/qwen.ai.png"} name={"Qwen3 TTS Flash"} dev={"Alibaba"} url={"https://qwen.ai/blog?id=b4264e11fb80b5e37350790121baf0a0f10daf82"}>Hosted Qwen voice model; the open Qwen3-TTS series is separate.</Alt>
  <Alt icon={"/images/icons/mistral.ai.png"} name={"Voxtral TTS"} dev={"Mistral"} url={"https://huggingface.co/mistralai/Voxtral-4B-TTS-2603"}>Open weights, but a noncommercial license blocks most commercial use.</Alt>
  <Alt icon={"/images/icons/microsoft.com.png"} name={"VibeVoice 7B"} dev={"Microsoft"} url={"https://github.com/microsoft/VibeVoice"}>Long-form multi-speaker generation, but its availability is messy and unofficial.</Alt>
  <Alt icon={"/images/icons/elevenlabs.io.png"} name={"Eleven Multilingual v2"} dev={"ElevenLabs"} url={"https://elevenlabs.io/docs/overview/models"}>The older, stable ElevenLabs voice many still use for narration.</Alt>
</div>

***

## Frequently Asked Questions

<AccordionGroup>
  <Accordion title={"What is the best text-to-speech model right now?"}>
    Simba 3.2 tops our quality ranking and costs far less than the other premium voices, so it's the best all-around pick. But "best" depends on the job - for live agents, a faster model like Sonic 3.5 will serve you better than the top-quality one.
  </Accordion>

  <Accordion title={"What is the best text-to-speech model for most people?"}>
    For most projects, Gemini 3.1 Flash TTS is the value sweet spot: near-top quality, plain-language control, and a fraction of the premium price. Step up to Simba 3.2 or Eleven v3 when you need the absolute best sound or the widest voice library.
  </Accordion>

  <Accordion title={"What is the best free or open-source TTS model?"}>
    Kokoro 82M v1.0 is the best free option - openly licensed, effectively free to run, and light enough for a laptop. If you want more expressive open-weight quality and can run a GPU, Fish Audio S2 Pro is stronger, but its weights are noncommercial without a paid license.
  </Accordion>

  <Accordion title={"What is the best TTS model you can run locally?"}>
    Kokoro 82M v1.0 is the only model here that runs comfortably on a normal laptop without a GPU. Fish Audio S2 Pro also ships open weights, but it needs a high-end GPU and a commercial license to ship. Every other model on this list is hosted only.
  </Accordion>

  <Accordion title={"What is the best TTS model for realtime voice agents?"}>
    Sonic 3.5 and Lightning V3.1 Pro TTS are the fastest here, and Realtime TTS 1.5 Max gives you the best balance of quality and low latency. The top-quality models like Simba 3.2 and Eleven v3 generate too slowly for smooth live conversation.
  </Accordion>

  <Accordion title={"Do TTS benchmarks match real-world use?"}>
    Mostly, for quality. The Elo score comes from blind listening tests, so it tracks how natural a voice sounds better than any spec sheet. It won't tell you about latency under load, language edge cases, or how a voice handles your specific text, so test the top few on your own scripts before committing.
  </Accordion>

  <Accordion title={"What matters most when choosing a TTS model?"}>
    Start with the access path - API, app, or local - because it sets your cost, privacy, and setup. Then weigh the real trade-off: latency versus expressiveness. Live agents need speed; audiobooks and ads need the fuller, more emotive voice. Finally, check language coverage and price for your actual volume.
  </Accordion>
</AccordionGroup>
