Fast English-only batch transcription with optional word-level timings and speaker diarization. Trades enrichment features for the lowest possible turnaround.
When enabled, the response includes a words array giving
the start and end time of every word in text, in seconds
from the start of the file, with an alignment confidence
where one was measured.
Timestamps are produced by aligning the final transcript
against the audio, so the words always match text exactly.
Every whitespace-separated token of text appears in
words exactly once, in order; the per-word timing field
says whether the span was fully measured, measured over a
prefix, or bracketed between neighbours.
On the non-diarized path, word timings are available up to a
maximum audio length configured per deployment (default one
hour). Above it the transcript is returned normally and
words_unavailable carries the
audio_too_long_for_alignment reason. Treat the exact
ceiling as environment-specific: read max_audio_seconds
from that response rather than hard-coding a value.
Setting speaker_diarization=true removes the ceiling
entirely, because each speaker turn is aligned separately.
When enabled, the transcript is refined for medical
dictation: misheard clinical terms (drug names,
conditions, procedures) are corrected with a medical
language model, and an opening or ending one transcriber
dropped (patient name, chart number, date of birth) is
recovered. Adds some latency. When disabled or omitted,
the standard transcription is returned.
Speaker diarization identifies different speakers in the
audio. When enabled, the response includes an utterances
array of time-ordered speaker turns with non-empty
transcripts, each attributed to a speaker (e.g., 1, 2)
with its timing, and text is the time-ordered
concatenation of the utterance texts. The array may be
empty when no transcribable speech is found.
The complete transcribed text from the audio file. Text includes
automatic capitalization and punctuation. May be an empty string
if no speech was recognized.
Word-level timings covering text, in document order. Present
only when time_stamps is enabled and timings were produced;
when they were not, words_unavailable is present instead. Absent
otherwise, never null.
Every whitespace-separated token of text appears here exactly
once, so words and text.split() have the same length and the
same order. A word the aligner could not place fully is still
returned, marked partial or estimated - see WordTime.timing.
Times are seconds from the start of the file, including when
speaker_diarization is also enabled. Note this differs from
utterances, whose start_ms and duration_ms are integer
milliseconds.
Why words is absent. Present only when time_stamps is enabled
and words is absent; absent otherwise, never null. Exactly one
of words and words_unavailable appears on a time_stamps=true
request.
Time-ordered speaker turns with non-empty transcripts. Present
only when speaker_diarization is enabled; may be an empty
array when no transcribable speech is found.
{ "text": "Hello, how are you doing today?", "duration_ms": 2000}
{"docsConfig":{"theme":"sequoia","$schema":"https://mintlify.com/docs.json","name":"Modulate","description":"Build with the modulate.ai models — real-time transcription, deepfake detection, and PII/PHI redaction at scale.","colors":{"primary":"#285FEB","light":"#5B82F0","dark":"#285FEB"},"logo":{"light":"https://mintcdn.com/modulateai/0NHKM9zXEnghoEfZ/images/wordmark-navy.svg?fit=max\u0026auto=format\u0026n=0NHKM9zXEnghoEfZ\u0026q=85\u0026s=7ee7a19111bb0154aa2e6934ebd29607","dark":"https://mintcdn.com/modulateai/0NHKM9zXEnghoEfZ/images/wordmark-white.svg?fit=max\u0026auto=format\u0026n=0NHKM9zXEnghoEfZ\u0026q=85\u0026s=98ae552c2cd0d6bf2268f8374825c88a","href":"https://modulate.ai"},"favicon":"https://mintcdn.com/modulateai/0NHKM9zXEnghoEfZ/images/favicon.svg?fit=max\u0026auto=format\u0026n=0NHKM9zXEnghoEfZ\u0026q=85\u0026s=d8e2a95af577097e3287379354855376","appearance":{"default":"system"},"navbar":{"links":[{"href":"https://platform.modulate.ai/signin","label":"Sign in"}],"primary":{"type":"button","label":"Start building free","href":"https://platform.modulate.ai/signup-request"}},"footer":{"socials":{"website":"https://modulate.ai"},"links":[{"header":"Product","items":[{"label":"Modulate","href":"https://modulate.ai"},{"label":"Velma Preview","href":"https://preview.modulate.ai"}]},{"header":"Support","items":[{"label":"Email support","href":"mailto:support@modulate.ai"},{"label":"Privacy policy","href":"https://www.modulate.ai/privacy-policy"},{"label":"Report a vulnerability","href":"/security"}]}]},"integrations":{"ga4":{"measurementId":"G-0WV1JKWMB3"}},"contextual":{"options":["copy","view","assistant","chatgpt","claude","perplexity"],"display":"header"},"markdown":{"schema":true},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"modulateai","hasAudioNarration":false,"actualSubdomain":"modulateai","customDomains":["docs.modulate.ai"],"gitSource":{"type":"gitlab","owner":"modulate","repo":"modulate-user-docs","projectId":81929608,"deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae8b8d621d86b83cef2b55b","collectionId":"edb8ba97-3e05-4ed6-950a-9032b207844d","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae8b8d621d86b83cef2b55b"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae8b8d621d86b83cef2b55b","clientVersion":"0.0.4054","searchFilterCounts":[{"language":"default","tag":"API Reference","count":31},{"language":"default","tag":"Velma","count":17},{"language":"default","tag":"Get Started","count":16},{"language":"default","tag":"By capability","count":10},{"language":"default","tag":"Speech-to-text Transcription","count":7},{"language":"default","tag":"Detection packages","count":7},{"language":"default","tag":"Benchmarks","count":6},{"language":"default","tag":"Support","count":4},{"language":"default","tag":"Behaviors","count":4},{"language":"default","tag":"AI Music Detection","count":3}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true,"deflection":{"enabled":true,"email":"support@modulate.ai","showHelpButton":true}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/stt/batch-english-vfast","slug":"/api-reference/stt/batch-english-vfast","pageMetadata":{"title":"Speech-to-Text Transcription Batch English VFast","sidebarTitle":"Batch English VFast","description":"Fast English-only batch transcription with optional word-level timings and speaker diarization. Trades enrichment features for the lowest possible turnaround.","openapi":"api/velma_2_stt_batch_english_vfast.yaml POST /api/velma-2-stt-batch-english-vfast","href":"/api-reference/stt/batch-english-vfast"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Fast English-only batch transcription with optional word-level timings and speaker diarization. Trades enrichment features for the lowest possible turnaround.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Speech-to-Text Transcription Batch English VFast","sidebarTitle":"Batch English VFast","description":"Fast English-only batch transcription with optional word-level timings and speaker diarization. Trades enrichment features for the lowest possible turnaround.","openapi":"api/velma_2_stt_batch_english_vfast.yaml POST /api/velma-2-stt-batch-english-vfast","href":"/api-reference/stt/batch-english-vfast"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/modulateai/6f43a4827c59f292/hubspot.js","/_mintlify/custom/modulateai/0bb96afd82713278/swan.js","/_mintlify/custom/modulateai/476f212ab71e7bd6/hubspot-forms.js","/_mintlify/custom/modulateai/06d8e9ccae2eea7a/detection-package-download.js"],"openApiReferenceData":{"operation":{"operationId":"transcribeEnglishVfast2","summary":"Transcribe an English audio file","description":"Fast English-only batch transcription with optional word-level timings and speaker diarization. Trades enrichment features for the lowest possible turnaround.","security":["cc34f31b-b085-45c0-90da-12d22bf24cb0"],"requestBody":"e98aa73c-0562-4070-9cd8-2fd7b4795bb4","responses":{"200":"d6a34840-3464-41f9-83cc-b3f224642a07","400":"03ed91dd-017f-4d64-a6e6-044b628ea114","401":"0c132374-03fd-4644-b762-8432db6c1532","403":"8638a4d7-edf2-4383-8e18-98545d12d789","413":"919aa170-f99e-4350-a4a2-bfe235df9c14","422":"4cd3d686-725a-4a43-8288-9c2da7f481c7","429":"f80829b8-d9e0-4146-8432-b9188739913a","500":"b3e18ac4-b39e-4a32-8b0d-b7ae914482ec","502":"74b36d10-599c-4942-b627-457d39939410","503":"f5e45077-2b10-4972-a601-0f670a7dc649","504":"3d9d1517-c52c-4063-9f5c-5aa0e7a1b374"},"method":"post","type":"path","servers":["ee905043-899e-4541-a9ca-c64903e01e0c"],"path":"/api/velma-2-stt-batch-english-vfast","baseUrlOptions":["https://platform.modulate.ai"],"title":"Transcribe an English audio file","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["upload_file"],"properties":{"upload_file":{"type":"string","format":"binary","description":"Audio file to transcribe. Must be non-empty. Supported formats:\n`.3g2`, `.3ga`, `.3gp`, `.3gpp`, `.8svx`, `.aa3`, `.aac`,\n`.ac3`, `.act`, `.adts`, `.aif`, `.aifc`, `.aiff`, `.alac`,\n`.amb`, `.amr`, `.ape`, `.asf`, `.at3`, `.au`, `.avi`,\n`.avr`, `.awb`, `.bwf`, `.c2`, `.caf`, `.dss`, `.dts`,\n`.dtshd`, `.eac3`, `.ec3`, `.f4a`, `.f4b`, `.flac`, `.flv`,\n`.gsm`, `.iff`, `.m2a`, `.m2ts`, `.m4a`, `.m4b`, `.m4r`,\n`.m4v`, `.mka`, `.mkv`, `.mlp`, `.mmf`, `.mov`, `.mp+`,\n`.mp1`, `.mp2`, `.mp3`, `.mp4`, `.mpa`, `.mpc`, `.mpeg`,\n`.mpg`, `.mpga`, `.mpp`, `.mts`, `.mxf`, `.nist`, `.oga`,\n`.ogg`, `.ogx`, `.oma`, `.omg`, `.opus`, `.paf`, `.pvf`,\n`.qcp`, `.ra`, `.rf64`, `.rka`, `.rm`, `.rmvb`, `.sf`,\n`.shn`, `.snd`, `.sph`, `.svx`, `.tak`, `.thd`,\n`.ts`, `.tta`, `.vob`, `.voc`, `.vqf`, `.w64`, `.wav`,\n`.wave`, `.weba`, `.webm`, `.wma`, `.wmv`,\n`.wv`. Maximum file size: 100 MB.\n`.aac`, `.aiff`, `.flac`, `.mov`, `.mp3`, `.mp4`, `.ogg`,\n`.opus`, `.wav`, `.webm`. Maximum file size: 100 MB.\n","isRequired":true,"uniqueKey":"upload_file","typeLabel":"file"},"time_stamps":{"type":"boolean","default":false,"description":"When enabled, the response includes a `words` array giving\nthe start and end time of every word in `text`, in seconds\nfrom the start of the file, with an alignment confidence\nwhere one was measured.\n\nTimestamps are produced by aligning the final transcript\nagainst the audio, so the words always match `text` exactly.\nEvery whitespace-separated token of `text` appears in\n`words` exactly once, in order; the per-word `timing` field\nsays whether the span was fully measured, measured over a\nprefix, or bracketed between neighbours.\n\nOn the non-diarized path, word timings are available up to a\nmaximum audio length configured per deployment (default one\nhour). Above it the transcript is returned normally and\n`words_unavailable` carries the\n`audio_too_long_for_alignment` reason. Treat the exact\nceiling as environment-specific: read `max_audio_seconds`\nfrom that response rather than hard-coding a value.\n\nSetting `speaker_diarization=true` removes the ceiling\nentirely, because each speaker turn is aligned separately.\n","uniqueKey":"time_stamps","typeLabel":"boolean"},"medical_domain":{"type":"boolean","default":false,"description":"When enabled, the transcript is refined for medical\ndictation: misheard clinical terms (drug names,\nconditions, procedures) are corrected with a medical\nlanguage model, and an opening or ending one transcriber\ndropped (patient name, chart number, date of birth) is\nrecovered. Adds some latency. When disabled or omitted,\nthe standard transcription is returned.\n","uniqueKey":"medical_domain","typeLabel":"boolean"},"speaker_diarization":{"type":"boolean","default":false,"description":"Speaker diarization identifies different speakers in the\naudio. When enabled, the response includes an `utterances`\narray of time-ordered speaker turns with non-empty\ntranscripts, each attributed to a speaker (e.g., 1, 2)\nwith its timing, and `text` is the time-ordered\nconcatenation of the utterance texts. The array may be\nempty when no transcribable speech is found.\n","uniqueKey":"speaker_diarization","typeLabel":"boolean"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"upload_file":"\u003cstring>","time_stamps":false,"medical_domain":false,"speaker_diarization":false}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"d6a34840-3464-41f9-83cc-b3f224642a07":{"description":"Transcription completed successfully.","content":{"application/json":{"schema":{"type":"object","required":["text","duration_ms"],"properties":{"text":{"type":"string","description":"The complete transcribed text from the audio file. Text includes\nautomatic capitalization and punctuation. May be an empty string\nif no speech was recognized.\n","example":"Hello, how are you doing today?","isRequired":true,"uniqueKey":"text","typeLabel":"string"},"duration_ms":{"type":"integer","minimum":0,"description":"The total duration of the processed audio in milliseconds.\n","example":14253,"isRequired":true,"uniqueKey":"duration_ms","typeLabel":"integer"},"words":{"type":"array","description":"Word-level timings covering `text`, in document order. Present\nonly when `time_stamps` is enabled and timings were produced;\nwhen they were not, `words_unavailable` is present instead. Absent\notherwise, never null.\n\nEvery whitespace-separated token of `text` appears here exactly\nonce, so `words` and `text.split()` have the same length and the\nsame order. A word the aligner could not place fully is still\nreturned, marked `partial` or `estimated` - see `WordTime.timing`.\n\nTimes are seconds from the start of the file, including when\n`speaker_diarization` is also enabled. Note this differs from\n`utterances`, whose `start_ms` and `duration_ms` are integer\nmilliseconds.\n","items":{"type":"object","required":["word","start","end","timing"],"properties":{"word":{"type":"string","description":"The word as it appears in `text`, including any attached\npunctuation and capitalization.\n","example":"Hello,","isRequired":true,"uniqueKey":"words.items.[INDEX].word","typeLabel":"string"},"start":{"type":"number","format":"double","minimum":0,"description":"Start time of this word in seconds from the beginning of the\nfile, rounded to three decimal places.\n","example":0.12,"isRequired":true,"uniqueKey":"words.items.[INDEX].start","typeLabel":"number\u003cdouble>"},"end":{"type":"number","format":"double","minimum":0,"description":"End time of this word in seconds from the beginning of the file,\nrounded to three decimal places.\n","example":0.48,"isRequired":true,"uniqueKey":"words.items.[INDEX].end","typeLabel":"number\u003cdouble>"},"timing":{"type":"string","enum":["aligned","partial","estimated"],"description":"How this word's span was obtained. Always present.\n\n- `aligned` - every audio-carrying character was placed by the\n aligner. `start` and `end` are measured.\n- `partial` - some characters are outside the aligner's\n vocabulary (for example the digits in \"COVID-19\"), so the\n measured span covers a prefix of the word. `end` is extended in\n proportion to the untimed characters and clamped to the next\n word's start; treat it as approximate at the tail. `confidence`\n is the measured value over the characters that were timed.\n- `estimated` - no character could be placed (for example\n \"2024\"). `start` and `end` bracket the interval between the\n timed neighbours, within which the word occurs; `confidence` is\n omitted because nothing was measured.\n","example":"aligned","isRequired":true,"uniqueKey":"words.items.[INDEX].timing","typeLabel":"enum\u003cstring>"},"confidence":{"type":"number","format":"double","minimum":0,"maximum":1,"description":"Alignment confidence for this word in the range 0-1, rounded to\nfour decimal places. Higher is more confident.\n\nPresent whenever a confidence was measured; absent on an\n`estimated` word, never null. This scores how well the word was\nlocated in the audio, not whether the word is correct.\n\nReplaces `score`, which is no longer returned: a client reading\n`score` gets a missing key, not a value on a different scale.\n","example":0.9912,"uniqueKey":"words.items.[INDEX].confidence","typeLabel":"number\u003cdouble>"}},"uniqueKey":"words.items.[INDEX]","typeLabel":"object"},"uniqueKey":"words","typeLabel":"object[]"},"words_unavailable":{"type":"object","description":"Why `words` is absent. Present only when `time_stamps` is enabled\nand `words` is absent; absent otherwise, never null. Exactly one\nof `words` and `words_unavailable` appears on a `time_stamps=true`\nrequest.\n","required":["reason","message","audio_seconds","max_audio_seconds","alternative"],"properties":{"reason":{"type":"string","enum":["audio_too_long_for_alignment","alignment_disabled","alignment_failed","empty_transcript"],"description":"Stable machine-readable token. Branch on this, never on `message`.\n\n- `audio_too_long_for_alignment` - the audio is longer than\n `max_audio_seconds`. Checked before any alignment work begins.\n Cannot occur when `speaker_diarization` is enabled, since that\n path aligns per turn and carries no length ceiling.\n- `alignment_disabled` - word timings are turned off on this\n deployment.\n- `alignment_failed` - the alignment pass did not produce timings\n for this file. Retryable.\n- `empty_transcript` - no speech was transcribed, so there are no\n words to time.\n","example":"audio_too_long_for_alignment","isRequired":true,"uniqueKey":"words_unavailable.reason","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"One human-readable sentence, safe to surface in a UI. Wording may\nchange; do not parse it.\n","example":"Word timings are available up to 3600s of audio; this file is 5400s. The transcript is unaffected.","isRequired":true,"uniqueKey":"words_unavailable.message","typeLabel":"string"},"audio_seconds":{"type":"number","format":"double","minimum":0,"description":"Duration of the submitted audio in seconds, rounded to one decimal\nplace.\n","example":5400,"isRequired":true,"uniqueKey":"words_unavailable.audio_seconds","typeLabel":"number\u003cdouble>"},"max_audio_seconds":{"type":"number","format":"double","minimum":0,"description":"The maximum audio length in seconds for which this deployment\nproduces word timings on the non-diarized path, rounded to one\ndecimal place. Configured per deployment; the default is 3600.\nRead this value rather than hard-coding a ceiling.\n","example":3600,"isRequired":true,"uniqueKey":"words_unavailable.max_audio_seconds","typeLabel":"number\u003cdouble>"},"alternative":{"type":"string","description":"What to do instead, or an empty string when there is nothing to\noffer. Empty is a normal value, not an error.\n","example":"Set speaker_diarization=true to receive word timings on audio of any length. That path aligns each speaker turn separately, so it has no length ceiling; it is slower and its transcript is produced per turn.","isRequired":true,"uniqueKey":"words_unavailable.alternative","typeLabel":"string"}},"uniqueKey":"words_unavailable","typeLabel":"object"},"utterances":{"type":"array","description":"Time-ordered speaker turns with non-empty transcripts. Present\nonly when `speaker_diarization` is enabled; may be an empty\narray when no transcribable speech is found.\n","items":{"type":"object","required":["utterance_uuid","text","start_ms","duration_ms","speaker"],"properties":{"utterance_uuid":{"type":"string","format":"uuid","description":"Unique identifier for this utterance.\n","example":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","isRequired":true,"uniqueKey":"utterances.items.[INDEX].utterance_uuid","typeLabel":"string\u003cuuid>"},"text":{"type":"string","description":"The transcribed text of this utterance, with automatic\ncapitalization and punctuation.\n","example":"Thanks for calling, how can I help?","isRequired":true,"uniqueKey":"utterances.items.[INDEX].text","typeLabel":"string"},"start_ms":{"type":"integer","minimum":0,"description":"Start time of this utterance within the audio, in milliseconds.\n","example":0,"isRequired":true,"uniqueKey":"utterances.items.[INDEX].start_ms","typeLabel":"integer"},"duration_ms":{"type":"integer","minimum":0,"description":"Duration of this utterance in milliseconds.\n","example":3800,"isRequired":true,"uniqueKey":"utterances.items.[INDEX].duration_ms","typeLabel":"integer"},"speaker":{"type":"integer","minimum":1,"description":"Speaker number for this utterance (1-indexed). Speaker numbers are\nconsistent within a single audio file but may vary between\ndifferent files.\n","example":1,"isRequired":true,"uniqueKey":"utterances.items.[INDEX].speaker","typeLabel":"integer"},"words":{"type":"array","description":"Word-level timings for this utterance only. Present when both\n`time_stamps` and `speaker_diarization` are enabled and timings\nwere produced for the file; absent otherwise, never null.\n\nTimes are seconds from the start of the FILE, not from the start\nof the utterance, so they can be compared directly against the\ntop-level `words` array.\n","items":{"type":"object","required":["word","start","end","timing"],"properties":{"word":{"type":"string","description":"The word as it appears in `text`, including any attached\npunctuation and capitalization.\n","example":"Hello,","isRequired":true,"uniqueKey":"utterances.items.[INDEX].words.items.[INDEX].word","typeLabel":"string"},"start":{"type":"number","format":"double","minimum":0,"description":"Start time of this word in seconds from the beginning of the\nfile, rounded to three decimal places.\n","example":0.12,"isRequired":true,"uniqueKey":"utterances.items.[INDEX].words.items.[INDEX].start","typeLabel":"number\u003cdouble>"},"end":{"type":"number","format":"double","minimum":0,"description":"End time of this word in seconds from the beginning of the file,\nrounded to three decimal places.\n","example":0.48,"isRequired":true,"uniqueKey":"utterances.items.[INDEX].words.items.[INDEX].end","typeLabel":"number\u003cdouble>"},"timing":{"type":"string","enum":["aligned","partial","estimated"],"description":"How this word's span was obtained. Always present.\n\n- `aligned` - every audio-carrying character was placed by the\n aligner. `start` and `end` are measured.\n- `partial` - some characters are outside the aligner's\n vocabulary (for example the digits in \"COVID-19\"), so the\n measured span covers a prefix of the word. `end` is extended in\n proportion to the untimed characters and clamped to the next\n word's start; treat it as approximate at the tail. `confidence`\n is the measured value over the characters that were timed.\n- `estimated` - no character could be placed (for example\n \"2024\"). `start` and `end` bracket the interval between the\n timed neighbours, within which the word occurs; `confidence` is\n omitted because nothing was measured.\n","example":"aligned","isRequired":true,"uniqueKey":"utterances.items.[INDEX].words.items.[INDEX].timing","typeLabel":"enum\u003cstring>"},"confidence":{"type":"number","format":"double","minimum":0,"maximum":1,"description":"Alignment confidence for this word in the range 0-1, rounded to\nfour decimal places. Higher is more confident.\n\nPresent whenever a confidence was measured; absent on an\n`estimated` word, never null. This scores how well the word was\nlocated in the audio, not whether the word is correct.\n\nReplaces `score`, which is no longer returned: a client reading\n`score` gets a missing key, not a value on a different scale.\n","example":0.9912,"uniqueKey":"utterances.items.[INDEX].words.items.[INDEX].confidence","typeLabel":"number\u003cdouble>"}},"uniqueKey":"utterances.items.[INDEX].words.items.[INDEX]","typeLabel":"object"},"uniqueKey":"utterances.items.[INDEX].words","typeLabel":"object[]"}},"uniqueKey":"utterances.items.[INDEX]","typeLabel":"object"},"uniqueKey":"utterances","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"short_audio":{"title":"short_audio","value":{"text":"Hello, how are you doing today?","duration_ms":2000}},"longer_audio":{"title":"longer_audio","value":{"text":"Welcome to today's meeting. We'll be discussing the quarterly results and planning for next quarter.","duration_ms":14253}},"timestamped_audio":{"title":"timestamped_audio","value":{"text":"Hello, how are you?","duration_ms":2000,"words":[{"word":"Hello,","start":0.12,"end":0.48,"timing":"aligned","confidence":0.9912},{"word":"how","start":0.62,"end":0.78,"timing":"aligned","confidence":0.9873},{"word":"are","start":0.8,"end":0.94,"timing":"aligned","confidence":0.9765},{"word":"you?","start":0.96,"end":1.24,"timing":"aligned","confidence":0.9698}]}},"mixed_timing":{"title":"mixed_timing","value":{"text":"COVID-19 cases fell in 2024.","duration_ms":3400,"words":[{"word":"COVID-19","start":0.21,"end":0.94,"timing":"partial","confidence":0.9614},{"word":"cases","start":0.97,"end":1.36,"timing":"aligned","confidence":0.9807},{"word":"fell","start":1.39,"end":1.68,"timing":"aligned","confidence":0.9752},{"word":"in","start":1.7,"end":1.82,"timing":"aligned","confidence":0.9689},{"word":"2024.","start":1.82,"end":2.61,"timing":"estimated"}]}},"words_unavailable_too_long":{"title":"words_unavailable_too_long","value":{"text":"Welcome to today's meeting...","duration_ms":5400000,"words_unavailable":{"reason":"audio_too_long_for_alignment","message":"Word timings are available up to 3600s of audio; this file is 5400s. The transcript is unaffected.","audio_seconds":5400,"max_audio_seconds":3600,"alternative":"Set speaker_diarization=true to receive word timings on audio of any length. That path aligns each speaker turn separately, so it has no length ceiling; it is slower and its transcript is produced per turn."}}},"words_unavailable_empty":{"title":"words_unavailable_empty","value":{"text":"","duration_ms":4000,"words_unavailable":{"reason":"empty_transcript","message":"No speech was transcribed, so there are no words to time.","audio_seconds":4,"max_audio_seconds":3600,"alternative":""}}},"diarized_audio":{"title":"diarized_audio","value":{"text":"Thanks for calling, how can I help? Hi, my account got locked.","duration_ms":9000,"utterances":[{"utterance_uuid":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","text":"Thanks for calling, how can I help?","start_ms":0,"duration_ms":3800,"speaker":1},{"utterance_uuid":"b2c3d4e5-f6a7-8901-bcde-f23456789012","text":"Hi, my account got locked.","start_ms":4400,"duration_ms":2900,"speaker":2}]}},"diarized_with_timestamps":{"title":"diarized_with_timestamps","value":{"text":"Thanks for calling. My account got locked.","duration_ms":9000,"words":[{"word":"Thanks","start":0.2,"end":0.61,"timing":"aligned","confidence":0.9881},{"word":"for","start":0.64,"end":0.79,"timing":"aligned","confidence":0.9799},{"word":"calling.","start":0.82,"end":1.35,"timing":"aligned","confidence":0.9744},{"word":"My","start":4.51,"end":4.68,"timing":"aligned","confidence":0.9702},{"word":"account","start":4.7,"end":5.18,"timing":"aligned","confidence":0.9835},{"word":"got","start":5.2,"end":5.39,"timing":"aligned","confidence":0.9781},{"word":"locked.","start":5.42,"end":5.94,"timing":"aligned","confidence":0.9668}],"utterances":[{"utterance_uuid":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","text":"Thanks for calling.","start_ms":0,"duration_ms":1500,"speaker":1,"words":[{"word":"Thanks","start":0.2,"end":0.61,"timing":"aligned","confidence":0.9881},{"word":"for","start":0.64,"end":0.79,"timing":"aligned","confidence":0.9799},{"word":"calling.","start":0.82,"end":1.35,"timing":"aligned","confidence":0.9744}]},{"utterance_uuid":"b2c3d4e5-f6a7-8901-bcde-f23456789012","text":"My account got locked.","start_ms":4400,"duration_ms":1700,"speaker":2,"words":[{"word":"My","start":4.51,"end":4.68,"timing":"aligned","confidence":0.9702},{"word":"account","start":4.7,"end":5.18,"timing":"aligned","confidence":0.9835},{"word":"got","start":5.2,"end":5.39,"timing":"aligned","confidence":0.9781},{"word":"locked.","start":5.42,"end":5.94,"timing":"aligned","confidence":0.9668}]}]}}},"exampleType":"examples"}},"exampleType":"examples"},"03ed91dd-017f-4d64-a6e6-044b628ea114":{"description":"Bad request - the uploaded file is empty, its format is not supported, or the audio could not be decoded.\n","content":{"application/json":{"schema":{"type":"object","required":["detail"],"properties":{"detail":{"type":"string","description":"Human-readable error message.","isRequired":true,"uniqueKey":"detail","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"invalid_format":{"title":"invalid_format","value":{"detail":"Unsupported file format. Supported formats: .3g2, .3ga, .3gp, .3gpp, .8svx, .aa3, .aac, .ac3, .act, .adts, .aif, .aifc, .aiff, .alac, .amb, .amr, .ape, .asf, .at3, .au, .avi, .avr, .awb, .bwf, .c2, .caf, .dss, .dts, .dtshd, .eac3, .ec3, .f4a, .f4b, .flac, .flv, .gsm, .iff, .m2a, .m2ts, .m4a, .m4b, .m4r, .m4v, .mka, .mkv, .mlp, .mmf, .mov, .mp+, .mp1, .mp2, .mp3, .mp4, .mpa, .mpc, .mpeg, .mpg, .mpga, .mpp, .mts, .mxf, .nist, .oga, .ogg, .ogx, .oma, .omg, .opus, .paf, .pvf, .qcp, .ra, .rf64, .rka, .rm, .rmvb, .sf, .shn, .snd, .sph, .svx, .tak, .thd, .ts, .tta, .vob, .voc, .vqf, .w64, .wav, .wave, .weba, .webm, .wma, .wmv, .wv."}},"empty_file":{"title":"empty_file","value":{"detail":"The uploaded file is empty."}},"no_audio_stream":{"title":"no_audio_stream","value":{"detail":"No decodable audio stream was found in the file."}},"unsupported_codec":{"title":"unsupported_codec","value":{"detail":"The audio codec is not supported."}},"corrupt_file":{"title":"corrupt_file","value":{"detail":"The audio file appears to be corrupted or truncated."}},"unprocessable":{"title":"unprocessable","value":{"detail":"The audio could not be processed. It may be corrupted or in an unsupported format."}},"bad_value":{"title":"bad_value","value":{"detail":"Invalid request."}}},"exampleType":"examples"}},"exampleType":"examples"},"0c132374-03fd-4644-b762-8432db6c1532":{"description":"Unauthorized - the API key is missing or invalid.","content":{"application/json":{"schema":{"type":"object","required":["detail"],"properties":{"detail":{"type":"string","description":"Human-readable error message.","isRequired":true,"uniqueKey":"detail","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"missing_api_key":{"title":"missing_api_key","value":{"detail":"Missing API key."}},"invalid_api_key":{"title":"invalid_api_key","value":{"detail":"Invalid API key."}}},"exampleType":"examples"}},"exampleType":"examples"},"8638a4d7-edf2-4383-8e18-98545d12d789":{"description":"Forbidden - the request is not permitted, or the API key does not have access to this model.\n","content":{"application/json":{"schema":{"type":"object","required":["detail"],"properties":{"detail":{"type":"string","description":"Human-readable error message.","isRequired":true,"uniqueKey":"detail","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"not_permitted":{"title":"not_permitted","value":{"detail":"This request is not permitted."}},"model_access_denied":{"title":"model_access_denied","value":{"detail":"This API key does not have access to this model."}}},"exampleType":"examples"}},"exampleType":"examples"},"919aa170-f99e-4350-a4a2-bfe235df9c14":{"description":"Payload too large - the uploaded file exceeds the maximum file size.","content":{"application/json":{"schema":{"type":"object","required":["detail"],"properties":{"detail":{"type":"string","description":"Human-readable error message.","isRequired":true,"uniqueKey":"detail","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"detail":"The uploaded file is too large."},"examples":{"Example":{"title":"Example","value":{"detail":"The uploaded file is too large."}}},"exampleType":"examples"}},"exampleType":"examples"},"4cd3d686-725a-4a43-8288-9c2da7f481c7":{"description":"Unprocessable entity - a required request parameter is missing or invalid (for example, the `upload_file` field).\n","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"array","items":{"type":"object","required":["loc","msg","type"],"properties":{"loc":{"type":"array","items":{"oneOf":[{"type":"string","uniqueKey":"detail.items.[INDEX].loc.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"integer","uniqueKey":"detail.items.[INDEX].loc.items.[INDEX].oneOf.1","typeLabel":"integer"}],"uniqueKey":"detail.items.[INDEX].loc.items.[INDEX]","typeLabel":"string | integer"},"isRequired":true,"uniqueKey":"detail.items.[INDEX].loc","typeLabel":"(string | integer)[]"},"msg":{"type":"string","isRequired":true,"uniqueKey":"detail.items.[INDEX].msg","typeLabel":"string"},"type":{"type":"string","isRequired":true,"uniqueKey":"detail.items.[INDEX].type","typeLabel":"string"}},"uniqueKey":"detail.items.[INDEX]","typeLabel":"object"},"uniqueKey":"detail","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"detail":[{"loc":["\u003cstring>"],"msg":"\u003cstring>","type":"\u003cstring>"}]}}},"exampleType":"generated"}},"exampleType":"generated"},"f80829b8-d9e0-4146-8432-b9188739913a":{"description":"Too many requests - the request was denied due to insufficient credits, a concurrent request limit, or a monthly usage limit.\n","content":{"application/json":{"schema":{"type":"object","required":["detail"],"properties":{"detail":{"type":"string","description":"Human-readable error message.","isRequired":true,"uniqueKey":"detail","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"insufficient_credits":{"title":"insufficient_credits","value":{"detail":"Insufficient credits."}},"concurrency_limit":{"title":"concurrency_limit","value":{"detail":"Concurrent request limit reached. Please retry after your in-flight requests complete."}},"monthly_limit":{"title":"monthly_limit","value":{"detail":"Monthly usage limit reached."}}},"exampleType":"examples"}},"exampleType":"examples"},"b3e18ac4-b39e-4a32-8b0d-b7ae914482ec":{"description":"Internal server error during processing.","content":{"application/json":{"schema":{"type":"object","required":["detail"],"properties":{"detail":{"type":"string","description":"Human-readable error message.","isRequired":true,"uniqueKey":"detail","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"detail":"Internal server error"},"examples":{"Example":{"title":"Example","value":{"detail":"Internal server error"}}},"exampleType":"examples"}},"exampleType":"examples"},"74b36d10-599c-4942-b627-457d39939410":{"description":"Bad gateway - the request could not be completed.","content":{"application/json":{"schema":{"type":"object","required":["detail"],"properties":{"detail":{"type":"string","description":"Human-readable error message.","isRequired":true,"uniqueKey":"detail","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"detail":"Unable to complete the request. Please try again."},"examples":{"Example":{"title":"Example","value":{"detail":"Unable to complete the request. Please try again."}}},"exampleType":"examples"}},"exampleType":"examples"},"f5e45077-2b10-4972-a601-0f670a7dc649":{"description":"Service unavailable - the service is temporarily unavailable, or `speaker_diarization` was requested while diarization is disabled on this deployment.\nNote that `time_stamps` behaves differently: when word timings are disabled on a deployment the request still succeeds, and `words_unavailable` carries the `alignment_disabled` reason.\n","content":{"application/json":{"schema":{"type":"object","required":["detail"],"properties":{"detail":{"type":"string","description":"Human-readable error message.","isRequired":true,"uniqueKey":"detail","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"detail":"The service is temporarily unavailable. Please try again later."},"examples":{"Example":{"title":"Example","value":{"detail":"The service is temporarily unavailable. Please try again later."}}},"exampleType":"examples"}},"exampleType":"examples"},"3d9d1517-c52c-4063-9f5c-5aa0e7a1b374":{"description":"Gateway timeout - processing timed out.","content":{"application/json":{"schema":{"type":"object","required":["detail"],"properties":{"detail":{"type":"string","description":"Human-readable error message.","isRequired":true,"uniqueKey":"detail","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"detail":"The request timed out. Please try again."},"examples":{"Example":{"title":"Example","value":{"detail":"The request timed out. Please try again."}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"cc34f31b-b085-45c0-90da-12d22bf24cb0":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-Key","description":"API key used for authentication and usage tracking.","scopes":[],"schemeName":"ApiKeyAuth"}}},"servers":{"ee905043-899e-4541-a9ca-c64903e01e0c":{"url":"https://platform.modulate.ai","description":"Modulate English STT Batch Server"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"X-API-Key","description":"API key used for authentication and usage tracking.","scopes":[],"schemeName":"ApiKeyAuth"},"schema":{"title":"X-API-Key","type":"string","description":"API key used for authentication and usage tracking.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKeyAuth","name":"X-API-Key"}],"title":"ApiKeyAuth"}]},"originalFileLocation":"api/velma_2_stt_batch_english_vfast.yaml"},"subdomain":"modulateai","siteName":"Modulate","title":"Speech-to-Text Transcription Batch English VFast - Modulate","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-08-19T17:34:45.302Z","originalFileLocation":"api-reference/stt/batch-english-vfast.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Fast English-only batch transcription with optional word-level timings and speaker diarization. Trades enrichment features for the lowest possible turnaround.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Modulate\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/modulateai/DjDAyeOufX95soiv/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/modulateai/DjDAyeOufX95soiv/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/modulateai/DjDAyeOufX95soiv/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/modulateai/DjDAyeOufX95soiv/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/modulateai/DjDAyeOufX95soiv/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/modulateai/DjDAyeOufX95soiv/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/modulateai/DjDAyeOufX95soiv/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/modulateai/DjDAyeOufX95soiv/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/modulateai/DjDAyeOufX95soiv/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Speech-to-Text Transcription Batch English VFast - Modulate\">\u003cmeta data-mint-head property=\"og:description\" content=\"Fast English-only batch transcription with optional word-level timings and speaker diarization. Trades enrichment features for the lowest possible turnaround.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Modulate\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.modulate.ai/api-reference/stt/batch-english-vfast\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://modulateai.mintlify.app/_mintlify/api/og/v2?division=Speech-to-text+Transcription\u0026amp;title=Speech-to-Text+Transcription+Batch+English+VFast\u0026amp;description=Fast+English-only+batch+transcription+with+optional+word-level+timings+and+speaker+diarization.+Trades+enrichment+features+for+the+lowest+possible+turnaround.\u0026amp;theme=5b1c5018c22e2de339bbf72b\u0026amp;signature=7b4424d6fbd1721fd8b4ba5a53862f9ba4e32fbc130feab81eb985e6e5933001\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Speech-to-Text Transcription Batch English VFast - Modulate\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Fast English-only batch transcription with optional word-level timings and speaker diarization. Trades enrichment features for the lowest possible turnaround.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://modulateai.mintlify.app/_mintlify/api/og/v2?division=Speech-to-text+Transcription\u0026amp;title=Speech-to-Text+Transcription+Batch+English+VFast\u0026amp;description=Fast+English-only+batch+transcription+with+optional+word-level+timings+and+speaker+diarization.+Trades+enrichment+features+for+the+lowest+possible+turnaround.\u0026amp;theme=5b1c5018c22e2de339bbf72b\u0026amp;signature=7b4424d6fbd1721fd8b4ba5a53862f9ba4e32fbc130feab81eb985e6e5933001\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/modulateai/DjDAyeOufX95soiv/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Modulate\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#285FEB\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.modulate.ai/api-reference/stt/batch-english-vfast\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/stt/batch-english-vfast.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.modulate.ai/#organization\",\"name\":\"Modulate\",\"url\":\"https://docs.modulate.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/modulateai/0NHKM9zXEnghoEfZ/images/wordmark-navy.svg?fit=max\u0026auto=format\u0026n=0NHKM9zXEnghoEfZ\u0026q=85\u0026s=7ee7a19111bb0154aa2e6934ebd29607\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.modulate.ai#website\",\"name\":\"Modulate\",\"url\":\"https://docs.modulate.ai\",\"publisher\":{\"@id\":\"https://docs.modulate.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.modulate.ai/api-reference/stt/batch-english-vfast#webpage\",\"url\":\"https://docs.modulate.ai/api-reference/stt/batch-english-vfast\",\"name\":\"Speech-to-Text Transcription Batch English VFast\",\"description\":\"Fast English-only batch transcription with optional word-level timings and speaker diarization. Trades enrichment features for the lowest possible turnaround.\",\"dateModified\":\"2026-08-19T17:34:45.302Z\",\"isPartOf\":{\"@id\":\"https://docs.modulate.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.modulate.ai/api-reference/stt/batch-english-vfast#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.modulate.ai/api-reference/stt/batch-english-vfast#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Speech-to-text Transcription\",\"item\":\"https://docs.modulate.ai/api-reference/stt/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Speech-to-Text Transcription Batch English VFast\",\"item\":\"https://docs.modulate.ai/api-reference/stt/batch-english-vfast\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.modulate.ai/api-reference/stt/batch-english-vfast#apireference\",\"headline\":\"Speech-to-Text Transcription Batch English VFast\",\"name\":\"Speech-to-Text Transcription Batch English VFast\",\"description\":\"Fast English-only batch transcription with optional word-level timings and speaker diarization. Trades enrichment features for the lowest possible turnaround.\",\"url\":\"https://docs.modulate.ai/api-reference/stt/batch-english-vfast\",\"mainEntityOfPage\":{\"@id\":\"https://docs.modulate.ai/api-reference/stt/batch-english-vfast#webpage\"},\"dateModified\":\"2026-08-19T17:34:45.302Z\",\"publisher\":{\"@id\":\"https://docs.modulate.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.modulate.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Modulate\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Modulate","nav":{"global":null,"tabs":[{"tab":"Get Started","pages":[{"title":"Get Started","href":""}]},{"tab":"Velma","pages":[{"title":"Velma","href":"/velma/overview"}]},{"tab":"API Reference","groups":[{"group":"Velma","icon":"comments","pages":[{"title":"Velma","sidebarTitle":"Overview","href":"/api-reference/velma/overview"},{"title":"Velma Batch","sidebarTitle":"Batch","openapi":"api/velma_2_batch.yaml POST /api/velma-2-batch","href":"/api-reference/velma/batch"},{"title":"List behavior presets","sidebarTitle":"Behavior presets","openapi":"api/velma_2_batch.yaml GET /api/velma-2-batch/list-presets","href":"/api-reference/velma/presets"},{"title":"Velma Streaming","sidebarTitle":"Streaming","asyncapi":"api/velma_2_streaming.yaml velma2Streaming","href":"/api-reference/velma/streaming"}]},{"group":"Speech-to-text Transcription","icon":"microphone","pages":[{"title":"Speech-to-text Transcription","sidebarTitle":"Overview","href":"/api-reference/stt/overview"},{"title":"Speech-to-Text Transcription Batch Multilingual","sidebarTitle":"Batch Multilingual","openapi":"api/velma_2_stt_batch.yaml POST /api/velma-2-stt-batch","href":"/api-reference/stt/batch"},{"title":"Speech-to-Text Transcription Streaming Multilingual","sidebarTitle":"Streaming Multilingual","asyncapi":"api/velma_2_stt_streaming.yaml velma2SttStreaming","description":"Real-time speech-to-text over WebSocket, with optional speaker diarization, emotion detection, accent detection, and PII/PHI tagging.","href":"/api-reference/stt/streaming"},{"title":"Speech-to-Text Transcription Batch English VFast","sidebarTitle":"Batch English VFast","openapi":"api/velma_2_stt_batch_english_vfast.yaml POST /api/velma-2-stt-batch-english-vfast","href":"/api-reference/stt/batch-english-vfast"},{"title":"Speech-to-Text Streaming English","sidebarTitle":"Streaming English","asyncapi":"api/velma_2_stt_streaming_english_v2.yaml velma2SttStreamingEnglishV2","description":"Low-latency English speech-to-text over WebSocket. Emits rolling partial transcripts during streaming, with optional utterance segmentation at pauses (endpointing), optional speaker labels (diarize), and optional word timings (time_stamps). No other enrichments.","href":"/api-reference/stt/streaming-vfast"},{"title":"Multilingual Fast Transcription Batch","sidebarTitle":"Batch Multilingual VFast","openapi":"api/velma_2_stt_batch_multilingual_vfast.yaml POST /api/velma-2-stt-batch-multilingual-vfast","href":"/api-reference/stt/batch-multilingual-vfast"},{"title":"Multilingual Fast Transcription Streaming","sidebarTitle":"Streaming (Multilingual Fast)","asyncapi":"api/stt_streaming_multilingual_vfast.yaml velma2SttStreamingMultilingualVfast","href":"/api-reference/stt/streaming-multilingual-vfast"}]},{"group":"Deepfake Detection","icon":"shield-halved","pages":[{"title":"Deepfake Detection","sidebarTitle":"Overview","href":"/api-reference/svd/overview"},{"title":"Deepfake Detection Batch","sidebarTitle":"Batch","openapi":"api/velma_2_synthetic_voice_detection_batch.yaml POST /api/velma-2-synthetic-voice-detection-batch","href":"/api-reference/svd/batch"},{"title":"Deepfake Detection Streaming","sidebarTitle":"Streaming","asyncapi":"api/velma_2_synthetic_voice_detection_streaming.yaml streaming-detection","href":"/api-reference/svd/streaming"}]},{"group":"Emotion Detection","icon":"face-smile","pages":[{"title":"Emotion Detection","sidebarTitle":"Overview","href":"/api-reference/emotion/overview"},{"title":"Emotion Detection Batch","sidebarTitle":"Batch","openapi":"api/velma_2_emotion_batch.yaml POST /api/velma-2-emotion-batch","href":"/api-reference/emotion/batch"}]},{"group":"Accent Detection","icon":"globe","pages":[{"title":"Accent Detection","sidebarTitle":"Overview","href":"/api-reference/accent/overview"},{"title":"Accent Detection Batch","sidebarTitle":"Batch","openapi":"api/velma_2_accent_batch.yaml POST /api/velma-2-accent-batch","href":"/api-reference/accent/batch"}]},{"group":"PII/PHI Redaction","icon":"eye-slash","pages":[{"title":"PII/PHI Redaction","sidebarTitle":"Overview","href":"/api-reference/redaction/overview"},{"title":"PII/PHI Redaction Batch","sidebarTitle":"Batch","openapi":"api/velma_2_pii_phi_redaction_batch.yaml POST /api/velma-2-pii-phi-redaction-batch","href":"/api-reference/redaction/batch"},{"title":"PII/PHI Redaction Streaming","sidebarTitle":"Streaming","asyncapi":"api/velma_2_pii_phi_redaction_streaming.yaml velma2PiiPhiRedactionStreaming","href":"/api-reference/redaction/streaming"}]},{"group":"Music Detection","icon":"music","pages":[{"title":"Music Detection","sidebarTitle":"Overview","href":"/api-reference/music-detection/overview"},{"title":"Music Detection Batch","sidebarTitle":"Batch","openapi":"api/velma_2_music_detection_batch.yaml POST /api/velma-2-music-detection-batch","href":"/api-reference/music-detection/batch"},{"title":"Music Detection Streaming","sidebarTitle":"Streaming","asyncapi":"api/velma_2_music_detection_streaming.yaml streaming-detection","href":"/api-reference/music-detection/streaming"}]},{"group":"AI Music Detection","icon":"robot","pages":[{"title":"AI Music Detection","sidebarTitle":"Overview","href":"/api-reference/ai-music-detection/overview"},{"title":"AI Music Detection Batch","sidebarTitle":"Batch","openapi":"api/velma_2_ai_music_detection_batch.yaml POST /api/velma-2-ai-music-detection-batch","href":"/api-reference/ai-music-detection/batch"},{"title":"AI Music Detection Streaming","sidebarTitle":"Streaming","asyncapi":"api/velma_2_ai_music_detection_streaming.yaml streaming-detection","href":"/api-reference/ai-music-detection/streaming"}]},{"group":"Language Detection","icon":"language","pages":[{"title":"Language Detection","sidebarTitle":"Overview","href":"/api-reference/language-detection/overview"},{"title":"Language Detection Batch","sidebarTitle":"Batch","openapi":"api/velma_2_language_detection_batch.yaml POST /api/velma-2-language-detection-batch","href":"/api-reference/language-detection/batch"}]},{"group":"Audio Event Detection","icon":"waveform-lines","pages":[{"title":"Audio Event Detection","sidebarTitle":"Overview","href":"/api-reference/audio-event-detection/overview"},{"title":"Audio Event Detection Batch","sidebarTitle":"Batch","openapi":"api/velma_2_audio_event_classifier.yaml POST /api/velma-2-audio-event-classifier","href":"/api-reference/audio-event-detection/batch"}]}]},{"tab":"Benchmarks","pages":[{"title":"Benchmarks","href":"/benchmarks/overview"}]},{"tab":"Support","pages":[{"title":"Support","href":"/support"}]}]},"basePath":"","title":"Speech-to-Text Transcription Batch English VFast - Modulate","buildId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","deploymentId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","dynamics":["c2aa737661","b0f84f53ff","a9bb46feb3","2b790eda92"],"chunks":["OpenApiReferenceProvider-C8RPHPxo.js","utils-0BK-9q6z.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DfjzsUJT.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-B4v9psJ4.js","snippetPresets-CpTQv-Ez.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","Page-Buji1S4J.js","ApiExamples-BNP-Fvr0.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BSgu6h1D.js","shallow-Biv1i9Gs.js","getApiPlaygroundDisplay-BoGOXhtF.js","CodeSnippet-DvQoT18_.js","CodeSnippets-Dnpa15xT.js","getPastedJson-xAIyhUFE.js","icon-S6FBih11.js","MethodPill-SaYeUZyk.js","DuplicateIcon-Cs-p3v2Q.js","createIcon-DjCFEoHq.js","DynamicMarkdown-BcnBltEQ.js","SectionHeading-BUBl0eEF.js","axios-vUo_bRtp.js","Markdown-h4cOoD8d.js","clsx-B2v50t8t.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-DJnKvr0g.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BHrrjR1K.js"]}