Capability
Transcription
Transcribe audio to text, with optional word-level timestamps.
Native only — new capability
No compat route exists for transcription — it wasn’t part of the old Enterprise API this compat layer mirrors. Call POST /v1/generations directly.
transcribe — native payload
POST/v1/generationstool_id for (model="whisper-transcribe-v1", "transcribe")
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| song | file input | Yes | — | The audio to transcribe. Whisper accepts one file up to ~25MB; a larger master is auto-compacted to fit. |
| language | string | No | "" | Optional ISO 639-1 code, e.g. 'en', 'hi', 'ko'. Leave blank to auto-detect — forcing a wrong code produces garbled output. |
| word_timestamps | boolean | No | true | Return per-word start/end timestamps in addition to the transcript text. |
| force | boolean | No | false | Re-transcribe even if a cached transcript already exists for this file. |
curl -X POST https://apiv2.soundverse.ai/v1/generations \
-H "Authorization: Bearer sksoundverse_..." \
-H "Content-Type: application/json" \
-H "Idempotency-Key: transcribe-req-001" \
-d '{
"tool_id": "<whisper-transcribe-v1 tool_id>",
"payload_json": "{\"song\": {\"url\": \"https://example.com/track.mp3\"}, \"word_timestamps\": true}"
}'Response
Once the task completes, its output has this shape:
{
"text": "full transcript...",
"language": "en",
"words": [{"word": "hello", "start": 0.0, "end": 0.32}, ...],
"segments": [{"text": "hello there", "start": 0.0, "end": 1.2}, ...]
}words is only populated when word_timestamps was true.
Pricing
| Version | Royalty-Free | Standard | Distribution | Sync | Master |
|---|---|---|---|---|---|
| whisper-transcribe-v1 | $0.03 | $0.03 | $0.03 | $0.03 | $0.03 |
USD per transcription, by license tier.