# Whisper - Core.Today AI API > 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. - **Provider**: OpenAI - **Model ID**: openai/whisper - **Category**: Audio & TTS - **Credits**: 10 per run (runtime grows with audio length) - **Speed**: Medium - **Quality**: Ultra ## Features - 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 ## Use Cases - Meeting and interview transcription - Video subtitle generation (SRT/VTT) - Podcast show notes - Voice memo digitization - Multilingual content transcription ## API Endpoint Base URL: https://api.core.today/v1 Create Prediction: POST /predictions Get Status: GET /predictions/{job_id} ## Authentication Header: X-API-Key: YOUR_API_KEY ## Input Parameters ### Required - **audio**: string - Audio file to transcribe (mp3, wav, m4a, ...) ### Optional - **transcription**: string (default: plain text) - Format for the transcription output Options: plain text, srt, vtt - **translate**: boolean (default: false) - Translate the transcription to English - **language**: string (default: auto) - Language spoken in the audio. 'auto' detects automatically ('ko' for Korean) Options: auto, af, am, ar, as, az, ba, be, bg, bn, bo, br, bs, ca, cs, cy, da, de, el, en, es, et, eu, fa, fi, fo, fr, gl, gu, ha, haw, he, hi, hr, ht, hu, hy, id, is, it, ja, jw, ka, kk, km, kn, ko, la, lb, ln, lo, lt, lv, mg, mi, mk, ml, mn, mr, ms, mt, my, ne, nl, nn, no, oc, pa, pl, ps, pt, ro, ru, sa, sd, si, sk, sl, sn, so, sq, sr, su, sv, sw, ta, te, tg, th, tk, tl, tr, tt, uk, ur, uz, vi, yi, yo, yue, zh, Afrikaans, Albanian, Amharic, Arabic, Armenian, Assamese, Azerbaijani, Bashkir, Basque, Belarusian, Bengali, Bosnian, Breton, Bulgarian, Burmese, Cantonese, Castilian, Catalan, Chinese, Croatian, Czech, Danish, Dutch, English, Estonian, Faroese, Finnish, Flemish, French, Galician, Georgian, German, Greek, Gujarati, Haitian, Haitian Creole, Hausa, Hawaiian, Hebrew, Hindi, Hungarian, Icelandic, Indonesian, Italian, Japanese, Javanese, Kannada, Kazakh, Khmer, Korean, Lao, Latin, Latvian, Letzeburgesch, Lingala, Lithuanian, Luxembourgish, Macedonian, Malagasy, Malay, Malayalam, Maltese, Mandarin, Maori, Marathi, Moldavian, Moldovan, Mongolian, Myanmar, Nepali, Norwegian, Nynorsk, Occitan, Panjabi, Pashto, Persian, Polish, Portuguese, Punjabi, Pushto, Romanian, Russian, Sanskrit, Serbian, Shona, Sindhi, Sinhala, Sinhalese, Slovak, Slovenian, Somali, Spanish, Sundanese, Swahili, Swedish, Tagalog, Tajik, Tamil, Tatar, Telugu, Thai, Tibetan, Turkish, Turkmen, Ukrainian, Urdu, Uzbek, Valencian, Vietnamese, Welsh, Yiddish, Yoruba - **temperature**: number (default: 0) - Sampling temperature. 0 is deterministic - **patience**: number - 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_tokens**: string (default: -1) - comma-separated list of token ids to suppress during sampling; '-1' will suppress most special characters except common punctuations - **initial_prompt**: string - Optional vocabulary hint for the first window (names, jargon) - **condition_on_previous_text**: boolean (default: true) - if 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_fallback**: number (default: 0.2) - temperature to increase when falling back when the decoding fails to meet either of the thresholds below - **compression_ratio_threshold**: number (default: 2.4) - if the gzip compression ratio is higher than this value, treat the decoding as failed - **logprob_threshold**: number (default: -1) - if the average log probability is lower than this value, treat the decoding as failed - **no_speech_threshold**: number (default: 0.6) - if 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 ## Examples ### Korean Meeting Transcription Transcribe a Korean recording with auto detection ```json { "model": "openai/whisper", "input": { "audio": "https://example.com/meeting.mp3", "language": "auto", "transcription": "plain text" } } ``` ### SRT Subtitles Generate subtitle file content directly ```json { "model": "openai/whisper", "input": { "audio": "https://example.com/video-audio.mp3", "transcription": "srt" } } ``` ## Response Format ```json { "job_id": "abc123", "status": "pending | processing | completed | failed", "result": "URL or data (when completed)" } ``` ## Usage Flow 1. POST /predictions with model and input -> receive job_id 2. GET /predictions/{job_id} -> poll until status is completed or failed 3. Result contains output URL(s) ## Tips - Set transcription to 'srt' or 'vtt' to get subtitle-ready output - Use initial_prompt to teach names, acronyms, and domain terms for better accuracy - translate: true gives you English text from any source language - The JSON result includes per-segment timestamps for building custom UIs - For faster long-audio jobs use incredibly-fast-whisper; for speaker labels use whisper-diarization ## Documentation https://replicate.com/openai/whisper