Audio Transcription

Transcribe audio files with precise per-word timestamps using faster-whisper. Supports auto language detection and all common audio formats.

POST /transcribe/detect

Authentication

Bearer token in the Authorization header.

Request

Content-Type: multipart/form-data
FieldTypeRequiredDescription
fileFileRequiredAudio file to transcribe. Accepts MP3, WAV, M4A, FLAC, OGG, and WebM.
languagestringOptionalISO 639-1 language code (e.g. "en", "fr", "de"). Omit for auto-detection.

Response

FieldTypeDescription
textstringFull transcription text.
languagestringDetected or specified language code.
language_probabilitynumberConfidence of the language detection (0.0 – 1.0).
durationnumberAudio duration in seconds.
wordsarrayPer-word timestamps. Each entry: { word, start, end, probability }.
segmentsarraySentence-level segments. Each entry: { id, start, end, text }.

Example

Request

curl -X POST https://api.cacuda.com/transcribe/detect \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "file=@recording.mp3"

Response 200 OK

{
  "text": "Hello, this is a test.",
  "language": "en",
  "language_probability": 0.98,
  "duration": 3.42,
  "words": [
    {
      "word": "Hello,",
      "start": 0,
      "end": 0.42,
      "probability": 0.99
    },
    {
      "word": "this",
      "start": 0.44,
      "end": 0.62,
      "probability": 0.98
    },
    {
      "word": "is",
      "start": 0.64,
      "end": 0.72,
      "probability": 0.99
    },
    {
      "word": "a",
      "start": 0.74,
      "end": 0.8,
      "probability": 0.97
    },
    {
      "word": "test.",
      "start": 0.82,
      "end": 1.1,
      "probability": 0.99
    }
  ],
  "segments": [
    {
      "id": 0,
      "start": 0,
      "end": 1.1,
      "text": "Hello, this is a test."
    }
  ]
}

Error Codes

CodeDescription
400No file provided or unsupported audio format.
401Missing or invalid API key.
402Insufficient credits.
503Transcription service unavailable.

Notes

Transcription time scales roughly linearly with audio duration.

For best results with non-English audio, specify the language parameter.

Try it in the scanner

Test this endpoint interactively with real data. No code required.

Open Scanner