Skip to main content

Model Selection

WhisperKit supports all official OpenAI Whisper model variants, from tiny to large-v3. Choosing the right model involves balancing accuracy, speed, and memory usage based on your application’s requirements.

Available Models

Whisper models come in different sizes, each with multilingual and English-only variants:

Model Variants

Best for: Real-time streaming, constrained devices, quick prototyping
  • Fastest inference
  • Lowest memory footprint (~75 MB)
  • Acceptable accuracy for clear audio
  • Available: tiny (multilingual), tiny.en (English-only)
Best for: Mobile apps, moderate accuracy requirements
  • Good balance of speed and accuracy
  • Memory footprint ~140 MB
  • Suitable for most mobile applications
  • Available: base, base.en
Best for: Production applications, higher accuracy needs
  • Good accuracy for production use
  • Memory footprint ~460 MB
  • Slower than base but more accurate
  • Available: small, small.en
Best for: High accuracy requirements, server-side processing
  • Very good accuracy
  • Memory footprint ~1.5 GB
  • Slower inference
  • Available: medium, medium.en
Best for: Maximum accuracy, offline batch processing
  • Best accuracy
  • Memory footprint ~3 GB
  • Slowest inference
  • Available: large, large-v2, large-v3
See ModelVariant

ModelVariant Enum

WhisperKit provides device-specific recommendations:
See WhisperKit.recommendedModels and WhisperKit.recommendedRemoteModels

Device-Specific Recommendations

Recommendations are based on device hardware:
See WhisperKit.deviceName

Downloading Models

Automatic Download

By default, WhisperKit downloads models automatically:
See WhisperKitConfig.download

Manual Download

Download a model without initializing WhisperKit:
See WhisperKit.download

List Available Models

See WhisperKit.fetchAvailableModels

Local Models

Use pre-downloaded or bundled models:
See WhisperKitConfig.modelFolder

Bundle Models in App

Bundling large models increases app size significantly. Consider downloading on first launch instead.

Model Repositories

WhisperKit downloads models from Hugging Face repositories:

Default Repository

Custom Repository

See WhisperKitConfig.modelRepo

Custom Endpoint

See WhisperKitConfig.modelEndpoint

Download Configuration

Background Downloads

Enable background downloads for large models:
See WhisperKitConfig.useBackgroundDownloadSession

Custom Download Location

See WhisperKitConfig.downloadBase

Model States and Loading

Prewarming Models

Prewarm models to reduce peak memory usage:
See WhisperKitConfig.prewarm
Prewarming loads models one at a time to trigger Core ML specialization without high peak memory. This doubles load time but reduces memory pressure.

Deferred Loading

See WhisperKitConfig.load

Unload Models

See WhisperKit.unloadModels

Multilingual vs English-only

When to Use Multilingual Models

  • Transcribing content in multiple languages
  • Language is unknown in advance
  • Need automatic language detection
  • Translation to English (.translate task)

When to Use English-only Models

  • Only transcribing English audio
  • Slightly faster inference
  • Marginally better English accuracy

Model Performance Comparison

Performance varies by device. These are approximate values for reference.

Selection Guidelines

Real-time Streaming

Recommended: tiny, baseFast enough to transcribe live audio without lag on most devices.

Mobile Apps

Recommended: base, smallBalance of accuracy and app size. Consider on-demand download instead of bundling.

High Accuracy

Recommended: medium, large-v3Best for offline processing, server deployments, or high-end devices.

Constrained Devices

Recommended: tinyOnly option for devices with limited memory or older hardware.

Next Steps

Configuration

Configure compute options and advanced settings

Transcription

Start transcribing with your selected model