Transcription · Transcribe multilingual audio with Parakeet TDT5 / 12

Transcribe multilingual audio with Parakeet TDT

Example on GitHub(packages/sdk/examples/asr/parakeet-tdt-filesystem.ts)

Whisper handles English well and several other languages adequately. For multilingual audio where accuracy matters, we switch to Parakeet TDT.

Parakeet TDT is a single GGUF that handles 25+ languages out of the box. The same model file transcribes French, German, Spanish, Mandarin, and more without a language code. The addon auto-detects TDT vs CTC vs Sortformer from the GGUF's internal metadata, so the load is the same as Whisper's.

modelType: "parakeet-transcription" tells the engine which Parakeet family to load: TDT (default, multilingual), CTC (smaller), Sortformer (diarization), or Unified (English-only, one GGUF for both batch and streaming, PARAKEET_UNIFIED_0_6B_Q8_0). The load with that flag set would look like the following:

const modelId = await loadModel({
  modelSrc: PARAKEET_TDT_0_6B_V3_Q8_0,
  modelType: "parakeet-transcription",
});

TDT returns a single string per file, no per-segment data. Note that without overrides the call is minimal. For example:

const text = await transcribe({
  modelId,
  audioChunk: "./examples/qvac/transcription/input/sample-16khz.wav",
});
console.log(text);

No modelConfig.language. No prompt. No VAD. The only flag you need is modelType: "parakeet-transcription" so the SDK routes the call to the right addon.

Note: Parakeet handles VAD internally, so no separate VAD model is needed. If you need explicit end-of-utterance detection for conversation, load PARAKEET_EOU_120M_V1_Q8_0 alongside and pass parakeetStreamingConfig to transcribeStream.

Questions

Question 1 of 2

Why doesn't a Parakeet TDT call need a language code?

Question 2 of 2

Which of the following best describes the difference between Parakeet TDT's transcribe() result and Whisper's?

index.ts
Loading editor...

Run your code, check your answer, or ask a question. It all shows up here.