Speech to text
Transcribe recordings, calls and meetings with Whisper large-v3-turbo. Get plain text, timestamped segments, or ready-made subtitles.
API reference: Audio transcriptions
Transcribe a file
Send the file as multipart/form-data. Common formats work: MP3, WAV, OGG, FLAC, M4A and the audio track of most video files.
with open("meeting.mp3", "rb") as audio:
transcript = client.audio.transcriptions.create(
model="arklabsai/whisper-large-v3-turbo",
file=audio,
language="pl",
)
print(transcript.text)import fs from "node:fs";
const transcript = await client.audio.transcriptions.create({
model: "arklabsai/whisper-large-v3-turbo",
file: fs.createReadStream("meeting.mp3"),
language: "pl",
});
console.log(transcript.text);curl https://api.ark-labs.cloud/api/v1/audio/transcriptions \
-H "Authorization: Bearer $ARK_API_KEY" \
-F model=arklabsai/whisper-large-v3-turbo \
-F file=@meeting.mp3 \
-F language=pl{
"text": "Dzień dobry, zaczynamy przegląd kwartalny…",
"usage": { "type": "duration", "seconds": 1834.2, "credits_used": 918, "credit_balance": 49069 }
}Parameters
The audio to transcribe.
arklabsai/whisper-large-v3-turbo.The spoken language as an ISO-639-1 code, such as pl, en or de. Set it whenever you know the language: ARK runs no separate language detection. An unsupported language returns 400.
json (default), text, verbose_json, srt or vtt.Sampling temperature. Defaults to 0.
Accepted for compatibility. verbose_json always returns segment-level timestamps; word-level timestamps are not available.
Response formats
| Format | You receive |
|---|---|
json | {"text": …, "usage": …} |
verbose_json | The text plus duration, language and segments with start and end times in seconds. |
text | The transcript as plain text. |
srt | SubRip subtitles. |
vtt | WebVTT subtitles. |
curl https://api.ark-labs.cloud/api/v1/audio/transcriptions \
-H "Authorization: Bearer $ARK_API_KEY" \
-F model=arklabsai/whisper-large-v3-turbo \
-F file=@interview.wav \
-F language=en \
-F response_format=srt \
-o interview.srtsrt = client.audio.transcriptions.create(
model="arklabsai/whisper-large-v3-turbo",
file=open("interview.wav", "rb"),
language="en",
response_format="srt",
)
open("interview.srt", "w").write(srt)1
00:00:00,000 --> 00:00:04,120
Thanks for joining us today.
2
00:00:04,600 --> 00:00:09,880
Let's start with how your team moved its workloads to Europe.How audio is processed
ARK finds the speech in the recording, transcribes each stretch of speech separately and joins the results, so long recordings with pauses are handled well. A stretch that cannot be made out appears as [inaudible] in subtitles.
Billing
Transcription is billed by the duration of the audio file, silence included, at a price per audio hour. usage.seconds in json and verbose_json responses shows the billed duration. See Pricing.