Skip to main content
Billing note Billing is per second of audio (minimum 10 credits). 840 credits (the 1-hour maximum) are reserved when the job starts - or the file's actual length when it is a WAV/MP3/MP4/M4A whose header can be read - and the difference is refunded to the length Replicate measured. This is also the model for segment timestamps once OpenAI shuts whisper-1 down on 2027-02-26.
OpenAIMediumUltra

Whisper

OpenAI's Whisper large-v3 speech recognition (144M+ runs) — the standard for transcription. Automatic language detection across ~100 languages, English translation, and plain text / SRT / VTT output formats.

840 credits
per minute of audio (0.2325/s, minimum 10 credits, settled on measured length)
The standard for speech-to-text (144M+ runs)
~100 languages with auto detection (Korean included)
Translate any language to English
Plain text, SRT, or VTT subtitle output
Segments with timestamps in the JSON result

Run it right now

Test this model instantly in the Console Playground — no code required

Sign in to try

Use with AI Assistant

Copy usage instructions for Claude, ChatGPT, or other AI

Quick Start

curl -X POST "https://api.core.today/v1/predictions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: cdt_your_api_key" \
  -d '{
  "model": "openai/whisper",
  "input": {
    "audio": "https://example.com/meeting.mp3",
    "language": "auto",
    "transcription": "plain text"
  }
}'

Parameters

ParameterTypeRequiredDefaultDescription
audiostringYes-Audio file to transcribe (mp3, wav, m4a, ...), up to 1 hour
transcriptionstringNoplain textFormat for the transcription output
plain textsrtvtt
translatebooleanNofalseTranslate the transcription to English
languagestringNoautoLanguage spoken in the audio. 'auto' detects automatically ('ko' for Korean)
autoafamarasazbabebgbnbobrbscacscydadeeleneseteufafifofrglguhahawhehihrhthuhyidisitjajwkakkkmknkolalblnloltlvmgmimkmlmnmrmsmtmynenlnnnoocpaplpsptrorusasdsiskslsnsosqsrsusvswtatetgthtktltrttukuruzviyiyoyuezhAfrikaansAlbanianAmharicArabicArmenianAssameseAzerbaijaniBashkirBasqueBelarusianBengaliBosnianBretonBulgarianBurmeseCantoneseCastilianCatalanChineseCroatianCzechDanishDutchEnglishEstonianFaroeseFinnishFlemishFrenchGalicianGeorgianGermanGreekGujaratiHaitianHaitian CreoleHausaHawaiianHebrewHindiHungarianIcelandicIndonesianItalianJapaneseJavaneseKannadaKazakhKhmerKoreanLaoLatinLatvianLetzeburgeschLingalaLithuanianLuxembourgishMacedonianMalagasyMalayMalayalamMalteseMandarinMaoriMarathiMoldavianMoldovanMongolianMyanmarNepaliNorwegianNynorskOccitanPanjabiPashtoPersianPolishPortuguesePunjabiPushtoRomanianRussianSanskritSerbianShonaSindhiSinhalaSinhaleseSlovakSlovenianSomaliSpanishSundaneseSwahiliSwedishTagalogTajikTamilTatarTeluguThaiTibetanTurkishTurkmenUkrainianUrduUzbekValencianVietnameseWelshYiddishYoruba
temperaturenumberNo0Sampling temperature. 0 is deterministic
patiencenumberNo-optional patience value to use in beam decoding, as in https://arxiv.org/abs/2204.05424, the default (1.0) is equivalent to conventional beam search
suppress_tokensstringNo-1comma-separated list of token ids to suppress during sampling; '-1' will suppress most special characters except common punctuations
initial_promptstringNo-Optional vocabulary hint for the first window (names, jargon)
condition_on_previous_textbooleanNotrueif True, provide the previous output of the model as a prompt for the next window; disabling may make the text inconsistent across windows, but the model becomes less prone to getting stuck in a failure loop
temperature_increment_on_fallbacknumberNo0.2temperature to increase when falling back when the decoding fails to meet either of the thresholds below
compression_ratio_thresholdnumberNo2.4if the gzip compression ratio is higher than this value, treat the decoding as failed
logprob_thresholdnumberNo-1if the average log probability is lower than this value, treat the decoding as failed
no_speech_thresholdnumberNo0.6if the probability of the <|nospeech|> token is higher than this value AND the decoding has failed due to `logprob_threshold`, consider the segment as silence

How to Provide File Input

There are 3 ways to provide files for the audio parameter:

Recommended

Image URL

Pass a publicly accessible URL directly. With the Storage API (POST /v1/files/upload-url) the file uploads straight to S3 (50MB per file) and you pass the returned file_url.

{
  "model": "openai/whisper",
  "input": {
    "prompt": "your prompt here",
    "audio": "https://example.com/image.jpg"
  }
}

Direct Upload (Multipart)

Attach files directly to POST /v1/predictions/upload. No separate upload step, but the bytes pass through the API server so the whole request is capped at 10MB.

curl -X POST "https://api.core.today/v1/predictions/upload" \
  -H "X-API-Key: cdt_your_api_key" \
  -F "model=openai/whisper" \
  -F 'input={"prompt":"your prompt here"}' \
  -F "file:audio=@your_file.png"
See the File Upload docs for more upload methods including Presigned URLs.

Common Parameters

Common parameters used when calling POST /v1/predictions.

ParameterTypeRequiredDefaultDescription
modelstringYes-Model identifier
inputobjectYes-Object containing the model-specific parameters from the table above
output_folderstringNo-Folder path for output files (max 256 chars, '..' not allowed)
webhook_urlstringNo-Webhook URL to call on completion
is_publicbooleanNofalseIf true, output files are also available via permanent public URLs

Examples

Korean Meeting Transcription

Transcribe a Korean recording with auto detection

curl -X POST "https://api.core.today/v1/predictions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: cdt_your_api_key" \
  -d '{
  "model": "openai/whisper",
  "input": {
    "audio": "https://example.com/meeting.mp3",
    "language": "auto",
    "transcription": "plain text"
  }
}'

SRT Subtitles

Generate subtitle file content directly

curl -X POST "https://api.core.today/v1/predictions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: cdt_your_api_key" \
  -d '{
  "model": "openai/whisper",
  "input": {
    "audio": "https://example.com/video-audio.mp3",
    "transcription": "srt"
  }
}'

Tips & Best Practices

1Set transcription to 'srt' or 'vtt' to get subtitle-ready output
2Use initial_prompt to teach names, acronyms, and domain terms for better accuracy
3translate: true gives you English text from any source language
4The JSON result includes per-segment timestamps for building custom UIs
5For faster long-audio jobs use incredibly-fast-whisper; for speaker labels use whisper-diarization
6Billed per second of audio: clips up to ~43 seconds cost the 10-credit minimum, a 10-minute file about 140 credits. The reservation uses the measured length (WAV/MP3/MP4/M4A) or 1 hour when it can't be measured, and the difference is refunded on completion
7Need the OpenAI API parameters (verbose_json, timestamp_granularities)? Use openai/whisper-1 until OpenAI shuts it down on 2027-02-26. For the OpenAI SDK going forward use openai/gpt-transcribe (text only, no timestamps)

Use Cases

Meeting and interview transcription
Video subtitle generation (SRT/VTT)
Podcast show notes
Voice memo digitization
Multilingual content transcription