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

# Speech-to-Text Models

> Browse every STT model on SLNG: Deepgram Nova, Sarvam Saaras, Soniox Speech AI, and Reson8 transcription, grouped by provider.

export const ModelCard = ({name, type, provider, hosting, description, features = [], regions = [], href, bestFor, compact = false}) => {
  const PROVIDER_ICONS = {
    Deepgram: "/images/providers/deepgram.svg",
    "Sarvam AI": "/images/providers/sarvam.svg",
    OpenAI: "/images/providers/openai.svg",
    KugelAudio: "/images/providers/kugelaudio.jpeg",
    Rime: "/images/providers/rime.png",
    Soniox: "/images/providers/soniox.jpeg",
    Cartesia: "/images/providers/cartesia.jpeg",
    Murf: "/images/providers/murf.svg",
    Reson8: "/images/providers/reson8.svg"
  };
  const PROVIDER_INITIALS = {
    Deepgram: "DG",
    Soniox: "SX",
    "Sarvam AI": "SA",
    OpenAI: "OA",
    Rime: "RI",
    CanopyLabs: "CL"
  };
  const isSlng = hosting === "slng";
  const typeBadgeClass = type === "stt" ? "model-card__badge--stt" : "model-card__badge--tts";
  const typeLabel = type.toUpperCase();
  const hostingLabel = isSlng ? "SLNG-hosted" : `${hosting}-hosted`;
  const providerIcon = !isSlng ? PROVIDER_ICONS[provider] : null;
  const initials = isSlng ? "S//" : PROVIDER_INITIALS[provider] || provider.slice(0, 2).toUpperCase();
  const subtitle = isSlng ? `By ${provider} via SLNG` : `By ${provider}`;
  const logoContent = providerIcon ? <img src={providerIcon} alt={provider} className="model-card__logo-img" /> : initials;
  const groupRegions = rs => {
    const hasMore = rs.includes("+more");
    const zones = [...new Set(rs.filter(r => r !== "+more").map(r => r.split("-")[0].toUpperCase()))];
    const label = zones.join(" · ");
    return hasMore ? `${label} + more` : label;
  };
  const displayRegions = regions.length > 0 ? groupRegions(regions) : "";
  const cardContent = compact ? <div className="model-card compact">
      <div className="model-card__header">
        <div className={`model-card__logo ${isSlng ? "model-card__logo--slng" : "model-card__logo--provider"}`}>
          {logoContent}
        </div>
        <div className="model-card__header-text">
          <div className="model-card__title-row">
            <span className="model-card__name">{name}</span>
            <span className={`model-card__badge ${typeBadgeClass}`}>{typeLabel}</span>
          </div>
          <div className="model-card__subtitle">{subtitle}</div>
        </div>
      </div>
      {features.length > 0 && <div className="model-card__pills">
          {features.map((f, i) => <span key={i} className="model-card__pill">{f}</span>)}
        </div>}
    </div> : <div className="model-card">
      <div className="model-card__header">
        <div className={`model-card__logo ${isSlng ? "model-card__logo--slng" : "model-card__logo--provider"}`}>
          {logoContent}
        </div>
        <div className="model-card__header-text">
          <div className="model-card__title-row">
            <span className="model-card__name">{name}</span>
            <span className={`model-card__badge ${typeBadgeClass}`}>{typeLabel}</span>
          </div>
          <div className="model-card__subtitle">{subtitle}</div>
        </div>
      </div>

      {description && <p className="model-card__description">{description}</p>}

      {bestFor && <p className="model-card__best-for"><strong>Best for:</strong> {bestFor}</p>}

      {features.length > 0 && <div className="model-card__pills">
          {features.map((f, i) => <span key={i} className="model-card__pill">{f}</span>)}
        </div>}

      <div className="model-card__footer">
        {regions.length > 0 && <div className="model-card__regions">
            <svg className="model-card__pin" xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
              <path d="M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z" />
              <circle cx="12" cy="10" r="3" />
            </svg>
            {displayRegions}
          </div>}
        {isSlng && <span className="model-card__hosting model-card__hosting--slng">
            {hostingLabel}
          </span>}
      </div>
    </div>;
  if (href) {
    return <a href={href} className="model-card__link">{cardContent}</a>;
  }
  return cardContent;
};

## SLNG-hosted

Models hosted on SLNG infrastructure for optimized latency and throughput.

<CardGroup cols={2}>
  <ModelCard name="Deepgram Nova 3" type="stt" provider="Deepgram" hosting="slng" description="Deepgram Nova 3 hosted on SLNG with dedicated language endpoints (EN, ES, HI) and a multi-language auto-detect endpoint." features={["4 languages", "Low latency"]} regions={["asia-south1", "australia-southeast1", "eu-north-1", "us-central1"]} bestFor="Low-latency streaming, voice agents" href="/api-reference/stt/deepgram-nova-3/nova-3-multi-language-ws" />
</CardGroup>

## Deepgram

Direct proxy to Deepgram's STT API.

<CardGroup cols={2}>
  <ModelCard name="Nova 2" type="stt" provider="Deepgram" hosting="Deepgram" description="Deepgram's proven Nova 2 model with VAD, diarization, and smart formatting." features={["36 languages", "Low latency"]} regions={["eu", "us"]} bestFor="Production transcription, multi-speaker audio" href="/api-reference/stt/deepgram-nova-2/nova-2-ws" />

  <ModelCard name="Nova 3" type="stt" provider="Deepgram" hosting="Deepgram" description="Latest Deepgram model with improved accuracy across 17 languages. Includes punctuation and smart formatting." features={["17 languages", "Low latency"]} regions={["eu", "us"]} bestFor="High-accuracy streaming transcription" href="/api-reference/stt/deepgram-nova-3/nova-3-ws" />

  <ModelCard name="Nova 3 Medical" type="stt" provider="Deepgram" hosting="Deepgram" description="Specialized for medical terminology and clinical conversations." features={["English", "Low latency"]} regions={["eu", "us"]} bestFor="Telehealth, clinical documentation" href="/api-reference/stt/deepgram-nova-3-medical/nova-3-medical-ws" />
</CardGroup>

## Gradium

<CardGroup cols={2}>
  <ModelCard name="Gradium STT" type="stt" provider="Gradium" hosting="Gradium" description="Real-time multilingual speech-to-text over streaming WebSocket with partial results." features={["5 languages", "Low latency", "Partial results"]} regions={["eu"]} bestFor="Real-time voice agents, low-latency streaming transcription" href="/api-reference/stt/gradium-stt/gradium-stt-ws" />
</CardGroup>

## Reson8

<CardGroup cols={2}>
  <ModelCard name="Reson8 STT v1" type="stt" provider="Reson8" hosting="Reson8" description="Reson8 real-time STT over WebSocket with word-level timestamps, confidence scores, and partial results." features={[]} regions={["eu"]} bestFor="Voice Agents, Transcription, Assistants" href="/api-reference/stt/reson8-stt-v1/reson8-stt-v1-ws" />
</CardGroup>

## Sarvam AI

Indian-language specialist.

<CardGroup cols={2}>
  <ModelCard name="Sarvam AI Saaras" type="stt" provider="Sarvam AI" hosting="Sarvam" description="Speech recognition for 24 Indian and European languages with code-mixing support." features={["24 languages", "Medium latency"]} regions={["in"]} bestFor="India-focused transcription, multilingual support" href="/api-reference/stt/sarvam-ai-saaras/saaras-v3-http" />
</CardGroup>

## Soniox

60+ language streaming speech recognition.

<CardGroup cols={2}>
  <ModelCard name="Speech AI RT v4" type="stt" provider="Soniox" hosting="Soniox" description="60+ language streaming STT with word-level timestamps and low latency." features={["60+ languages", "Low latency"]} regions={["eu", "jp", "us"]} bestFor="Real-time voice apps, low-latency streaming" href="/api-reference/stt/soniox-speech-ai-real-time-v4/speech-ai-real-time-v4-ws" />
</CardGroup>
