Local speech recognition & synthesis

Qwen3-ASR vs Whisper: which local transcription model should you choose?

A model supporting more languages does not automatically transcribe your recording more accurately. Similar model names can hide different checkpoints1 and runtimes. This guide separates language coverage, hardware paths, and published speed conditions. It avoids unverified rankings and focuses on which workload each model fits.

Requirements and key details
  • Whisper Turbo lists 99 languages and about 6 GB VRAM. For speech translation, check multilingual Large or Medium.
  • Qwen3-ASR's official total of 52 combines 30 named languages and Chinese dialects. Read the two lists separately.
  • Of Nemotron 3.5's 40 locales, 32 are ready for transcription and 8 need adaptation. Korean is in the ready tier.

Separate language coverage from quality

The Whisper Turbo model card lists 99 languages. Qwen3-ASR2's 52 includes Chinese dialects. Nemotron 3.5 divides 40 locales by readiness. A count alone can make languages that are not ready seem equivalent. Check the tier for the language you need.

Read a benchmark with its dataset, normalization rules, and metric. Error rates vary with sentence length and overlapping speakers; news-reading results do not predict meeting accuracy in the same language. These conditions help you decide whether a published score is relevant to your own recording test.

A laptop showing two audio waveforms beside a microphone and books
Language counts and transcription quality are different claims.

Options beyond Korean, English, and Japanese

Qwen3-ASR lists Arabic, Indonesian, Hindi, Malay, Filipino, Persian, Thai, Vietnamese, and more. Nemotron's ready tier includes Ukrainian, Turkish, Arabic, and Hindi; broad coverage includes Polish, Swedish, and Norwegian. Greek, Hebrew, and Thai are in Nemotron's adaptation-ready tier.

Whisper has a broad choice of local runtimes

Whisper weights are released under MIT. whisper.cpp supports Apple Silicon Metal/Core ML, CPU3, and NVIDIA CUDA4. faster-whisper uses CTranslate2 for CUDA, CPU, and int8, but upstream Metal support was not found. Runtime5 can change model conversion, memory, and speed.

Follow the current faster-whisper README for installation and CUDA dependencies. Reusing an old CUDA/cuDNN combination can cause conflicts, so a clean virtual environment6 is useful. whisper.cpp uses converted GGML model files; do not compare their download size directly with an original Hugging Face checkpoint.

A recorder connected to a mini computer beside note cards
Check model and runtime requirements separately.

Qwen3-ASR's smaller models and limits

Qwen3-ASR 0.6B and 1.7B are Apache-2.0 models including Korean, with official offline and streaming examples. vLLM is recommended for fast GPU7 servers, not as a ready Mac acceleration app. The 0.6B Hugging Face file is 1.88 GB; that is not runtime memory. No official device-specific speed figures were found.

The community `qwen3-asr-rs` project is a third-party Rust/Candle and Metal port. Its short English and Chinese measurements on an M4 Mac mini are not results from the official Python implementation or Korean speech.

The site's Mac speed demo conditionally scales observations from this third-party Metal port; do not expect the same time from the official runtime—test your own setup.

Nemotron and Parakeet input modes

Nemotron 3.5 supports cache-aware streaming across 40 locales, with 19 transcription-ready, 13 broad-coverage, and 8 adaptation-ready. Parakeet TDT v3 handles 25 European languages as whole utterances and does not support cache-aware streaming in this runtime. Parakeet CTC 1.1B is English-only.

Published speeds answer different questions

The faster-whisper RTX 3070 Ti result is completion time and VRAM8 for one 13-minute file. NVIDIA's H100 figures are concurrent real-time streams at different settings. One measures a single job; the other measures server capacity, so choose the metric that matches your workload and purchase decision.

RTF9 divides inference10 time by audio duration; below 1 means inference finished faster than playback. Model download and first load are usually outside that ratio, so distinguish them from the time to your first usable result. For live speech, check both first-text latency and full-job completion to judge responsiveness.

A magnifying glass over transcript pages beside a recorder and headphones
Clip time and server concurrency are different measures.

Terminology notes

  1. CheckpointA file containing saved model weights and related state. Versions or tasks in one model family may use different checkpoints.

    Back to the text
  2. Automatic Speech RecognitionTechnology that recognizes spoken language in audio and converts it to text. The recognized text represents the utterance, not a reconstruction of the audio.

    Back to the text
  3. CPUThe central processor that executes general-purpose program instructions. AI workloads may divide work between it and other processors such as GPUs.

    Back to the text
  4. CUDAA software platform for general-purpose computing on NVIDIA GPUs. Programs built for CUDA are not guaranteed to run unchanged on other GPUs.

    Back to the text
  5. RuntimeSoftware that loads model files and runs their computations. Supported formats, hardware, and optimizations vary by runtime.

    Back to the text
  6. Python virtual environmentAn isolated space for installing Python packages per project. It helps reduce version conflicts and is not a virtual machine.

    Back to the text
  7. GPUA processor designed to handle many calculations in parallel. It performs model computations during AI inference.

    Back to the text
  8. VRAMMemory used by a graphics card’s GPU for model weights and intermediate values. It is distinct from system RAM.

    Back to the text
  9. Real-Time FactorGeneration time divided by the duration of the output. Under comparable conditions, a lower value indicates faster generation.

    Back to the text
  10. InferenceThe process of using a trained model to compute an output for an input. Here, local inference means running the model on the user’s device.

    Back to the text