> ## 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 Transcription Models in 2026

export const models = [{
  rank: 1,
  name: "Scribe v2",
  dev: "ElevenLabs",
  icon: "/images/icons/elevenlabs.io.png",
  url: "https://elevenlabs.io/docs/overview/models",
  bestFor: "Best overall batch transcription",
  score: "98",
  price: "$0.22/hr",
  license: "Proprietary",
  custom: "31.9x",
  customLabel: "Speed"
}, {
  rank: 2,
  name: "MAI-Transcribe-1.5",
  dev: "Microsoft",
  icon: "/images/icons/microsoft.com.png",
  url: "https://microsoft.ai/models/mai-transcribe-1-5/",
  bestFor: "Fast accuracy-first batch jobs",
  score: "98",
  price: "$0.36/hr",
  license: "Proprietary",
  custom: "261.2x",
  customLabel: "Speed"
}, {
  rank: 3,
  name: "Pulse Pro",
  dev: "Smallest.ai",
  icon: "/images/icons/smallest.ai.png",
  url: "https://docs.smallest.ai/waves/model-cards/speech-to-text/pulse-pro",
  bestFor: "Fast low-cost English transcription",
  score: "98",
  price: "$0.24/hr",
  license: "Proprietary",
  custom: "292.3x",
  customLabel: "Speed"
}, {
  rank: 4,
  name: "Voxtral Small",
  dev: "Mistral",
  icon: "/images/icons/mistral.ai.png",
  url: "https://docs.mistral.ai/models/model-cards/voxtral-small-25-07",
  bestFor: "Private multilingual deployment",
  score: "96",
  price: "$0.24/hr",
  license: "Open weight",
  custom: "54.9x",
  customLabel: "Speed"
}, {
  rank: 5,
  name: "Gemini 3.1 Pro",
  dev: "Google",
  icon: "/images/icons/google.com.png",
  url: "https://ai.google.dev/gemini-api/docs/models/gemini-3.1-pro-preview",
  bestFor: "Multimodal audio analysis",
  score: "96",
  price: "$1.09/hr",
  license: "Proprietary",
  custom: "7.1x",
  customLabel: "Speed"
}, {
  rank: 6,
  name: "Universal-3.5 Pro",
  dev: "AssemblyAI",
  icon: "/images/icons/assemblyai.com.png",
  url: "https://www.assemblyai.com/docs/pre-recorded-audio/universal-3-5-pro",
  bestFor: "Feature-rich production transcription",
  score: "95",
  price: "$0.21/hr",
  license: "Proprietary",
  custom: "99.3x",
  customLabel: "Speed"
}, {
  rank: 7,
  name: "Solaria-3",
  dev: "Gladia",
  icon: "/images/icons/gladia.io.png",
  url: "https://www.gladia.io/solaria-3",
  bestFor: "Noisy European business audio",
  score: "95",
  price: "$0.61/hr",
  license: "Proprietary",
  custom: "60.2x",
  customLabel: "Speed"
}, {
  rank: 8,
  name: "Qwen3.5-Omni-Plus",
  dev: "Alibaba",
  icon: "/images/icons/qwen.ai.png",
  url: "https://www.alibabacloud.com/help/en/model-studio/qwen-omni",
  bestFor: "Transcription plus audio reasoning",
  score: "94",
  price: "$0.25/hr",
  license: "Proprietary",
  custom: "97.9x",
  customLabel: "Speed"
}, {
  rank: 9,
  name: "Voxtral Mini Transcribe 2",
  dev: "Mistral",
  icon: "/images/icons/mistral.ai.png",
  url: "https://docs.mistral.ai/models/model-cards/voxtral-mini-transcribe-26-02",
  bestFor: "Low-cost dedicated transcription",
  score: "94",
  price: "$0.18/hr",
  license: "Proprietary",
  custom: "80.7x",
  customLabel: "Speed"
}, {
  rank: 10,
  name: "Soniox v5 Async",
  dev: "Soniox",
  icon: "/images/icons/soniox.com.png",
  url: "https://soniox.com/docs/stt/models",
  bestFor: "Low-cost multilingual files",
  score: "93",
  price: "$0.10/hr",
  license: "Proprietary",
  custom: "19.6x",
  customLabel: "Speed"
}, {
  rank: 11,
  name: "GPT-4o Transcribe",
  dev: "OpenAI",
  icon: "/images/icons/openai.com.png",
  url: "https://developers.openai.com/api/docs/models/gpt-4o-transcribe",
  bestFor: "Low-friction general transcription",
  score: "92",
  price: "$0.36/hr",
  license: "Proprietary",
  custom: "31.5x",
  customLabel: "Speed"
}, {
  rank: 12,
  name: "Speechmatics Enhanced",
  dev: "Speechmatics",
  icon: "/images/icons/speechmatics.com.png",
  url: "https://www.speechmatics.com/product/transcription",
  bestFor: "Accent-rich enterprise transcription",
  score: "92",
  price: "$0.40/hr",
  license: "Proprietary",
  custom: "61.6x",
  customLabel: "Speed"
}, {
  rank: 13,
  name: "Parakeet TDT 0.6B V3",
  dev: "NVIDIA",
  icon: "/images/icons/nvidia.com.png",
  url: "https://huggingface.co/nvidia/parakeet-tdt-0.6b-v3",
  bestFor: "Laptop-friendly local speed",
  score: "92",
  price: "$0.09/hr",
  license: "Open weight",
  custom: "958.6x",
  customLabel: "Speed"
}, {
  rank: 14,
  name: "Whisper Large v3 Turbo",
  dev: "OpenAI",
  icon: "/images/icons/openai.com.png",
  url: "https://huggingface.co/openai/whisper-large-v3-turbo",
  bestFor: "Easiest local Whisper option",
  score: "90",
  price: "$0.04/hr",
  license: "Open weight",
  custom: "145.9x",
  customLabel: "Speed"
}, {
  rank: 15,
  name: "Deepgram Nova-3",
  dev: "Deepgram",
  icon: "/images/icons/deepgram.com.png",
  url: "https://developers.deepgram.com/docs/model",
  bestFor: "Highest-throughput hosted API",
  score: "88",
  price: "$0.46/hr",
  license: "Proprietary",
  custom: "562.7x",
  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>

Transcription models turn recorded audio into text. For prerecorded files, the real trade-off is accuracy against speed, price, and features like speaker labels - and today's leaders score so close that the wrong pick is easy to make. We ranked 15 on a shared accuracy benchmark.

## Best Transcription 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 transcription 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={"UsefulAI's 0-100 transcription score is normalized from Artificial Analysis AA-WER v2. Higher means lower word error on the benchmark."} />
          </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={"Current USD per hour of prerecorded audio for the represented model or provider route. Add-ons, tiers, and self-hosting change 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 strongest all-around transcription candidate when accuracy and rich output both matter.</Take>

  <ST label="Strengths:">
    <div>Near-leading accuracy paired with the things transcripts actually need: speaker diarization across many voices, word-level timestamps, audio event tags, and broad language coverage.</div>
    <div>There's also a real upload interface, so you can run files without writing code. For most mixed-content jobs, it's the safe default.</div>
  </ST>

  <ST label="Tradeoffs:">
    <div>The base rate looks cheap until you switch on extras like entity detection or keyterm prompting, which carry surcharges.</div>
    <div>If you only need fast, plain English transcripts, Pulse Pro or Parakeet TDT 0.6B V3 do that for less and quicker.</div>
  </ST>

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

<ModelCard model={models[1]}>
  <Take>A top-accuracy model that also runs unusually fast on long audio, so it's the pick when you need both and can accept preview status.</Take>

  <ST label="Strengths:">
    <div>It sits with the most accurate models here while clearing hours of audio in a fraction of the time most rivals take, which is rare - accuracy and throughput usually pull against each other.</div>
    <div>Language auto-detection and phrase biasing help on messy, multi-speaker recordings.</div>
  </ST>

  <ST label="Tradeoffs:">
    <div>It's a public-preview endpoint with no production SLA yet, and it has no speaker diarization - a real gap for interviews and meetings.</div>
    <div>If you need speaker labels, Scribe v2 or Universal-3.5 Pro are the safer calls.</div>
  </ST>

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

<ModelCard model={models[2]}>
  <Take>A standout if your audio is English and you want top accuracy, high speed, and a low price without paying for extras you won't use.</Take>

  <ST label="Strengths:">
    <div>It lands accuracy, speed, and cost in the same place, which is unusual - most models make you give up one to get another.</div>
    <div>For high-volume English transcription where you just need clean text back quickly, it's one of the strongest options here.</div>
  </ST>

  <ST label="Tradeoffs:">
    <div>Pulse Pro is English-only and file-based, so it's out for multilingual work or streaming.</div>
    <div>The ecosystem is smaller and less established with no end-user app, so you're committing to an API from a less proven vendor - weigh it against Soniox v5 Async if you need languages.</div>
  </ST>

  <AccessBullets
    rows={[
["API", <span>Accessible via <a href="https://docs.smallest.ai/waves/documentation/speech-to-text-pulse/quickstart" target="_blank" rel="noreferrer" className="underline underline-offset-2">Smallest.ai Waves API</a>.</span>],
]}
  />
</ModelCard>

<ModelCard model={models[3]}>
  <Take>The best-scoring open-weight option here, and the one to pick when you need to keep audio in-house and can bring serious hardware.</Take>

  <ST label="Strengths:">
    <div>Open weights under a permissive license mean you can run it on your own machines, keep sensitive audio private, and pay no per-minute fee.</div>
    <div>It's genuinely multilingual and doubles as an audio-understanding model, so it can summarize or answer questions about a clip, not just transcribe it.</div>
  </ST>

  <ST label="Tradeoffs:">
    <div>The 24B weights are heavy - realistically a high-end GPU or aggressive quantization, not a casual local install. Clip length is capped, and there's no built-in diarization.</div>
    <div>For open weights that run on a laptop, Parakeet TDT 0.6B V3 or Whisper Large v3 Turbo fit better.</div>
  </ST>

  <AccessBullets
    rows={[
["API", <span>Accessible via <a href="https://docs.mistral.ai/models/model-cards/voxtral-small-25-07" target="_blank" rel="noreferrer" className="underline underline-offset-2">Mistral API</a>.</span>],
["Run locally", <span>If you have a high-end machine, you can run it with <a href="https://huggingface.co/mistralai/Voxtral-Small-24B-2507" target="_blank" rel="noreferrer" className="underline underline-offset-2">vLLM or Transformers</a> after downloading weights from <a href="https://huggingface.co/mistralai/Voxtral-Small-24B-2507" target="_blank" rel="noreferrer" className="underline underline-offset-2">Hugging Face</a>.</span>],
]}
  />
</ModelCard>

<ModelCard model={models[4]}>
  <Take>Reach for this when you want to reason about audio - summaries, Q\&A, structured notes - rather than get a faithful word-for-word transcript.</Take>

  <ST label="Strengths:">
    <div>It understands audio, not just transcribes it: ask for a summary, action items, or speaker-attributed notes in one call, and it handles very long files thanks to a huge context window.</div>
    <div>For turning a recording into structured output, it's more flexible than any dedicated ASR model here.</div>
  </ST>

  <ST label="Tradeoffs:">
    <div>It's the slowest model here and priced well above dedicated transcribers, it's still preview, and it tends to condense rather than transcribe verbatim - with timestamps that drift on long files.</div>
    <div>For accurate, timestamped transcripts, Scribe v2 or Universal-3.5 Pro are better.</div>
  </ST>

  <AccessBullets
    rows={[
["App", <span>Available in <a href="https://gemini.google.com/" target="_blank" rel="noreferrer" className="underline underline-offset-2">Gemini</a>.</span>],
["API", <span>Accessible via <a href="https://ai.google.dev/gemini-api/docs/models/gemini-3.1-pro-preview" target="_blank" rel="noreferrer" className="underline underline-offset-2">Gemini API</a>.</span>],
]}
  />
</ModelCard>

<ModelCard model={models[5]}>
  <Take>A strong, well-rounded choice for production pipelines that need broad language support, diarization, and more control over difficult terminology.</Take>

  <ST label="Strengths:">
    <div>AssemblyAI's current async flagship supports 18 languages, native code switching, contextual prompting, and its latest diarization.</div>
    <div>The surrounding audio-intelligence tools - sentiment, topics, entities, and redaction - can turn a transcript into something directly usable in a product.</div>
  </ST>

  <ST label="Tradeoffs:">
    <div>Its performance numbers here are inherited from the predecessor, so treat its exact rank as provisional. Add-ons also stack on the base rate.</div>
    <div>For directly benchmarked multilingual choices, compare Scribe v2, Soniox v5 Async, or Speechmatics Enhanced.</div>
  </ST>

  <AccessBullets
    rows={[
["API", <span>Accessible via <a href="https://www.assemblyai.com/docs/pre-recorded-audio/universal-3-5-pro" target="_blank" rel="noreferrer" className="underline underline-offset-2">AssemblyAI API</a>.</span>],
]}
  />
</ModelCard>

<ModelCard model={models[6]}>
  <Take>A specialist tuned for messy, real-world business audio in a handful of European languages, not a broad general-purpose transcriber.</Take>

  <ST label="Strengths:">
    <div>Purpose-built for the hard stuff: contact-center calls, meetings, and accented, multi-speaker recordings in its core European languages, where it holds accuracy that general models lose.</div>
    <div>Diarization and language detection come bundled. If your audio is noisy business speech in those languages, it's a sharp fit.</div>
  </ST>

  <ST label="Tradeoffs:">
    <div>Coverage is narrow - a few European languages - and on clean, formal, or read-aloud audio it actually trails Gladia's older Solaria-1, which spans far more languages.</div>
    <div>It also costs more than most models here. For broad multilingual work, look at Solaria-1 or Soniox v5 Async.</div>
  </ST>

  <AccessBullets
    rows={[
["API", <span>Accessible via <a href="https://www.gladia.io/solaria-3" target="_blank" rel="noreferrer" className="underline underline-offset-2">Gladia API</a>.</span>],
]}
  />
</ModelCard>

<ModelCard model={models[7]}>
  <Take>A multimodal model that transcribes well inside a broader audio-and-video reasoning workflow, but it isn't a dedicated transcription tool.</Take>

  <ST label="Strengths:">
    <div>Strong accuracy and throughput inside a model that also reasons over audio and video, so you can transcribe and then summarize, translate, or answer questions in the same workflow.</div>
    <div>Language breadth is wide. It's a fit when transcription is one step in a larger multimodal task.</div>
  </ST>

  <ST label="Tradeoffs:">
    <div>It's not dedicated ASR, so you don't get turnkey word-level timestamps or diarization, and token-based pricing means you estimate cost per hour rather than pay a flat rate.</div>
    <div>For plain transcription, Voxtral Mini Transcribe 2 or Deepgram Nova-3 are simpler and more predictable.</div>
  </ST>

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

<ModelCard model={models[8]}>
  <Take>A no-frills dedicated transcription endpoint with a simple flat price - a clean pick when you just want accurate transcripts back cheaply.</Take>

  <ST label="Strengths:">
    <div>Solid accuracy at a low, flat per-minute price, with built-in diarization, word-level timestamps, and custom-term biasing. It handles long files in a single request.</div>
    <div>For straightforward batch transcription without platform complexity, it's one of the better value picks here.</div>
  </ST>

  <ST label="Tradeoffs:">
    <div>It's proprietary despite the Voxtral family's open-weight reputation, so there's no self-hosting here. Language coverage is limited, and overlapping speech tends to collapse to one speaker.</div>
    <div>If you need many languages or audio-intelligence features, Universal-3.5 Pro or Soniox v5 Async go further.</div>
  </ST>

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

<ModelCard model={models[9]}>
  <Take>One of the cheapest ways to get accurate, multilingual transcripts with diarization and translation bundled in - if you can live with modest speed.</Take>

  <ST label="Strengths:">
    <div>Broad language coverage with native code-switching, plus diarization, timestamps, and translation all included in one low rate - no per-feature surcharges.</div>
    <div>It's strong on hard audio: noisy, telephony, accented, multi-speaker. For cost-sensitive multilingual batch work, the all-in pricing is hard to beat.</div>
  </ST>

  <ST label="Tradeoffs:">
    <div>Measured throughput is on the slow side, so it's not ideal for huge, time-sensitive batches. The first-party app hides model selection, so exact async-v5 control lives in the API.</div>
    <div>If you need speed, Parakeet TDT 0.6B V3 or Deepgram Nova-3 clear files far faster.</div>
  </ST>

  <AccessBullets
    rows={[
["App", <span>Available in <a href="https://app.soniox.com/help-center" target="_blank" rel="noreferrer" className="underline underline-offset-2">Soniox App</a>.</span>],
["API", <span>Accessible via <a href="https://soniox.com/docs/stt/models" target="_blank" rel="noreferrer" className="underline underline-offset-2">Soniox Speech-to-Text API</a>.</span>],
]}
  />
</ModelCard>

<ModelCard model={models[10]}>
  <Take>A simple, capable transcription endpoint that's easy to reach for, but it doesn't lead specialists on accuracy, price, or speed.</Take>

  <ST label="Strengths:">
    <div>A clean, well-documented endpoint that handles accents and background noise well and accepts a prompt to steer names and terminology.</div>
    <div>Broad language coverage and dead-simple integration make it a low-effort default when you want decent transcripts without evaluating a specialist provider.</div>
  </ST>

  <ST label="Tradeoffs:">
    <div>The base model returns no word or segment timestamps, ruling it out for captioning and alignment work, and users report occasional dropped words on tough audio.</div>
    <div>On accuracy, price, and speed, Scribe v2, Pulse Pro, and Voxtral Mini Transcribe 2 all beat it.</div>
  </ST>

  <AccessBullets
    rows={[
["API", <span>Accessible via <a href="https://developers.openai.com/api/docs/guides/speech-to-text" target="_blank" rel="noreferrer" className="underline underline-offset-2">OpenAI Audio API</a>.</span>],
]}
  />
</ModelCard>

<ModelCard model={models[11]}>
  <Take>The pick when accents and dialects are the problem, with enterprise deployment options most hosted-only rivals don't offer.</Take>

  <ST label="Strengths:">
    <div>Its single global model per language holds up across accents and dialects that trip up others, and it covers a broad language set. Container and private-cloud deployment make it viable for regulated, data-sensitive work, and diarization and translation are built in.</div>
    <div>A dependable choice for varied, accented audio.</div>
  </ST>

  <ST label="Tradeoffs:">
    <div>It costs more than commodity transcription APIs, and its per-model pricing is opaque, so confirm your rate before committing. Brand mindshare is lower than Deepgram or Whisper.</div>
    <div>If you don't need accent robustness or on-prem, Universal-3.5 Pro or Soniox v5 Async cost less.</div>
  </ST>

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

<ModelCard model={models[12]}>
  <Take>The standout when you want to run transcription yourself: tiny, extremely fast, and genuinely runnable on a laptop.</Take>

  <ST label="Strengths:">
    <div>At just 0.6B parameters it's extremely fast and light enough to run on a typical laptop, including Apple Silicon, with 25-language support, word- and segment-level timestamps, and punctuation.</div>
    <div>There's also an exact hosted route if you'd rather not self-host. For local or high-volume transcription, it's a standout.</div>
  </ST>

  <ST label="Tradeoffs:">
    <div>Accuracy is good but not best-in-class, and it slips on non-English, accented, or noisy audio. There's no built-in diarization, and the license requires attribution.</div>
    <div>For the highest accuracy, Scribe v2 or MAI-Transcribe-1.5 win; for easier setup, Whisper Large v3 Turbo is friendlier.</div>
  </ST>

  <AccessBullets
    rows={[
["API", <span>Accessible via <a href="https://www.together.ai/models/parakeet-tdt-0-6b-v3" target="_blank" rel="noreferrer" className="underline underline-offset-2">Together AI</a>.</span>],
["Run locally", <span>You can run it locally with <a href="https://huggingface.co/nvidia/parakeet-tdt-0.6b-v3" target="_blank" rel="noreferrer" className="underline underline-offset-2">Transformers or NVIDIA NeMo</a> after downloading weights from <a href="https://huggingface.co/nvidia/parakeet-tdt-0.6b-v3" target="_blank" rel="noreferrer" className="underline underline-offset-2">Hugging Face</a>.</span>],
]}
  />
</ModelCard>

<ModelCard model={models[13]}>
  <Take>The most practical way into the Whisper ecosystem: nearly as accurate as full Large v3, far lighter, and easy to run locally.</Take>

  <ST label="Strengths:">
    <div>It keeps most of full Large v3's accuracy while running several times faster and lighter, so it runs on a typical laptop or CPU through a mature ecosystem of tools.</div>
    <div>A permissive license, 99-language support, and near-free hosted access make it the easiest open Whisper to actually use.</div>
  </ST>

  <ST label="Tradeoffs:">
    <div>It's an older architecture that now trails newer models on accuracy and speed, and it can hallucinate text during silence or music. There's no built-in diarization.</div>
    <div>For higher local accuracy, full Whisper Large v3 helps; for raw speed, Parakeet TDT 0.6B V3 is far quicker.</div>
  </ST>

  <AccessBullets
    rows={[
["API", <span>Accessible via <a href="https://console.groq.com/docs/speech-to-text" target="_blank" rel="noreferrer" className="underline underline-offset-2">Groq Speech-to-Text API</a>.</span>],
["Run locally", <span>You can run it locally with <a href="https://github.com/ggml-org/whisper.cpp" target="_blank" rel="noreferrer" className="underline underline-offset-2">whisper.cpp</a> after downloading weights from <a href="https://huggingface.co/openai/whisper-large-v3-turbo" target="_blank" rel="noreferrer" className="underline underline-offset-2">Hugging Face</a>.</span>],
]}
  />
</ModelCard>

<ModelCard model={models[14]}>
  <Take>The fastest proprietary API we measured, with mature prerecorded features - a throughput play, not an accuracy leader.</Take>

  <ST label="Strengths:">
    <div>Very high measured throughput and a mature, well-documented prerecorded stack with diarization, formatting, and keyword features.</div>
    <div>If you're processing large volumes of audio and need results back fast and reliably from a hosted API, few models keep up with its speed.</div>
  </ST>

  <ST label="Tradeoffs:">
    <div>Accuracy trails the leaders, so it's the wrong pick when transcript quality is paramount. Its clean rate is the prerecorded pay-as-you-go price, not the cheaper streaming tier.</div>
    <div>For more accuracy at similar or lower cost, Scribe v2, Universal-3.5 Pro, or Soniox v5 Async are stronger.</div>
  </ST>

  <AccessBullets
    rows={[
["API", <span>Accessible via <a href="https://developers.deepgram.com/docs/model" target="_blank" rel="noreferrer" className="underline underline-offset-2">Deepgram Speech-to-Text API</a>.</span>],
]}
  />
</ModelCard>

***

## How to Choose

When choosing between these models, weigh four things:

* **Access:** Decide first whether you'll use a hosted API, a first-party app, or run the model yourself, because that choice drives cost, privacy, latency, and setup work more than any single benchmark. Only Voxtral Small, Parakeet TDT 0.6B V3, and Whisper Large v3 Turbo are realistic self-host options; the rest are hosted.
* **Quality:** The score is a 0-100 index built from Artificial Analysis's AA-WER v2 benchmark, which blends conversational, parliamentary, and earnings-call English audio and rewards lower word error. Treat it as an English-accuracy proxy - it doesn't fully capture multilingual breadth, diarization, timestamps, noisy telephony, or long-file reliability.
* **Price:** We use current US dollars per hour of prerecorded audio for the scored route. Token-billed models like Gemini 3.1 Pro and Qwen3.5-Omni-Plus are converted to a comparable hourly figure, and add-ons like diarization or entity detection can push real cost above the base rate.
* **Speed Factor:** How many seconds of audio each model transcribes per second of processing. If you're clearing large batches, this matters as much as price - Parakeet TDT 0.6B V3 and Deepgram Nova-3 are in a different league from Gemini 3.1 Pro.

***

## 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/openai.com.png"} name={"Whisper Large v3"} dev={"OpenAI"} url={"https://huggingface.co/openai/whisper-large-v3"}>A bit more accurate than Turbo, but heavier and slower to run.</Alt>
  <Alt icon={"/images/icons/gladia.io.png"} name={"Solaria-1"} dev={"Gladia"} url={"https://www.gladia.io/solaria"}>Broader 100+ language coverage than Solaria-3, and better on clean audio.</Alt>
  <Alt icon={"/images/icons/openai.com.png"} name={"GPT-4o Mini Transcribe"} dev={"OpenAI"} url={"https://developers.openai.com/api/docs/models/gpt-4o-mini-transcribe"}>Cheaper and faster than the full model, but noticeably less accurate.</Alt>
  <Alt icon={"/images/icons/aws.amazon.com.png"} name={"Amazon Transcribe"} dev={"Amazon"} url={"https://docs.aws.amazon.com/transcribe/latest/dg/what-is.html"}>Familiar cloud baseline, but the specialist models here are more accurate and faster.</Alt>
  <Alt icon={"/images/icons/google.com.png"} name={"Chirp 3"} dev={"Google"} url={"https://docs.cloud.google.com/speech-to-text/docs/models/chirp-3"}>Google Cloud's broad-language transcription, solid but behind the top picks.</Alt>
  <Alt icon={"/images/icons/nvidia.com.png"} name={"Canary-Qwen-2.5B"} dev={"NVIDIA"} url={"https://huggingface.co/nvidia/canary-qwen-2.5b"}>Strong English local accuracy, but it needs a capable NVIDIA GPU.</Alt>
  <Alt icon={"/images/icons/qwen.ai.png"} name={"Qwen3-ASR-1.7B"} dev={"Alibaba"} url={"https://huggingface.co/Qwen/Qwen3-ASR-1.7B"}>Broad multilingual open model for self-hosting, but its accuracy is unproven here.</Alt>
  <Alt icon={"/images/icons/huggingface.co.png"} name={"Granite Speech 4.1 2B"} dev={"IBM"} url={"https://huggingface.co/ibm-granite/granite-speech-4.1-2b"}>Compact, openly licensed local model, but hard to compare on the same benchmark.</Alt>
  <Alt icon={"/images/icons/google.com.png"} name={"Gemini 3 Flash"} dev={"Google"} url={"https://ai.google.dev/gemini-api/docs/gemini-3"}>A faster, cheaper Gemini for audio, but an older preview now superseded.</Alt>
  <Alt icon={"/images/icons/qwen.ai.png"} name={"Fun-ASR Realtime"} dev={"Alibaba"} url={"https://www.alibabacloud.com/help/en/model-studio/asr-model"}>Tops the benchmark on paper, but it's realtime-only and outside batch scope.</Alt>
</div>

***

## Frequently Asked Questions

<AccordionGroup>
  <Accordion title={"What is the best transcription model right now?"}>
    For most mixed-content work, Scribe v2 is our top overall pick - near-leading accuracy with the diarization, timestamps, and language coverage real transcripts need. MAI-Transcribe-1.5 and Pulse Pro match it on raw accuracy and are much faster, so consider them when throughput matters - just note MAI's preview status and Pulse Pro's English-only limit.
  </Accordion>

  <Accordion title={"What is the best transcription model for most people?"}>
    If you want one safe default, Scribe v2. If your audio is English and you care about cost and speed, Pulse Pro or a hosted Whisper Large v3 Turbo will do the job for less. Match the model to your audio rather than chasing the top score.
  </Accordion>

  <Accordion title={"What is the best open-weight transcription model you can run locally?"}>
    For a typical laptop, Parakeet TDT 0.6B V3 is the fastest and lightest, and Whisper Large v3 Turbo is the easiest with the biggest ecosystem. Voxtral Small scores higher and is genuinely multilingual, but its 24B weights need a high-end GPU or heavy quantization.
  </Accordion>

  <Accordion title={"What is the cheapest transcription model that's still good?"}>
    Hosted, Whisper Large v3 Turbo and Parakeet TDT 0.6B V3 are the cheapest per hour, and Soniox v5 Async bundles diarization and translation into a very low rate. Self-hosting Parakeet or Whisper drops the cost to just your own compute.
  </Accordion>

  <Accordion title={"Which transcription model is best for multiple languages?"}>
    Soniox v5 Async and Speechmatics Enhanced cover broad language sets with diarization built in, and Scribe v2 spans many languages with rich output. For noisy European business calls specifically, Solaria-3 is tuned for that; for the widest coverage, Gladia's older Solaria-1 still leads.
  </Accordion>

  <Accordion title={"Which is best for meetings and speaker labels?"}>
    You need diarization. Scribe v2, Universal-3.5 Pro, and Voxtral Mini Transcribe 2 all handle it well. Avoid MAI-Transcribe-1.5 here - it's fast and accurate but has no speaker diarization.
  </Accordion>

  <Accordion title={"Do transcription benchmarks match real-world use?"}>
    Partly. Our score is English-only and rewards low word error on conversational, parliamentary, and earnings audio. It won't tell you how a model handles your languages, accents, background noise, overlapping speakers, or long files - test a shortlist on your own audio before committing.
  </Accordion>
</AccordionGroup>
