Audio Transcription
Transcribe audio files with precise per-word timestamps using faster-whisper. Supports auto language detection and all common audio formats.
POST
/transcribe/detectAuthentication
Bearer token in the Authorization header.
Request
Content-Type:
multipart/form-data| Field | Type | Required | Description |
|---|---|---|---|
| file | File | Required | Audio file to transcribe. Accepts MP3, WAV, M4A, FLAC, OGG, and WebM. |
| language | string | Optional | ISO 639-1 language code (e.g. "en", "fr", "de"). Omit for auto-detection. |
Response
| Field | Type | Description |
|---|---|---|
| text | string | Full transcription text. |
| language | string | Detected or specified language code. |
| language_probability | number | Confidence of the language detection (0.0 – 1.0). |
| duration | number | Audio duration in seconds. |
| words | array | Per-word timestamps. Each entry: { word, start, end, probability }. |
| segments | array | Sentence-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
| Code | Description |
|---|---|
| 400 | No file provided or unsupported audio format. |
| 401 | Missing or invalid API key. |
| 402 | Insufficient credits. |
| 503 | Transcription 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