Introducing Song Creator Pro — create music with AI, locally on your device. Try it now →

Speech to Text API

Speech to text API with word timestamps and speaker labels

Send audio and get back the text with a start and end time for every word, labelled by speaker.

Available now as a local API in the desktop app. Cloud API coming soon.

POST/api/v1/transcription/start
printf '{"audio_base64": "%s", "return_timestamps": true, "num_speakers": 2}' \
"$(base64 < interview.wav | tr -d '\n')" > body.json
 
curl -X POST "http://127.0.0.1:8100/api/v1/transcription/start?sync=true" \
-H "Content-Type: application/json" \
-d @body.json

What developers build with it

It detects the language automatically, or you can set one. Ask for SRT instead of JSON when you need a subtitle file.

  • Searchable transcripts for podcast and interview archives
  • Meeting notes split by who said what
  • Timed text for editing tools that cut video by transcript
See the product page
Response
{
"success": true,
"text": "So how did the launch go? Better than we hoped.",
"timestamps": [
{ "text": "So", "start_time": 0.0, "end_time": 0.21, "speaker": "SPEAKER_00" },
{ "text": "how", "start_time": 0.21, "end_time": 0.38, "speaker": "SPEAKER_00" },
{ "text": "Better", "start_time": 2.1, "end_time": 2.46, "speaker": "SPEAKER_01" }
]
}

Need transcription as a cloud API instead of running locally?

Endpoints

Speech to text endpoints

MethodPathWhat it does
POST/api/v1/transcription/startTranscribe audio, as JSON or SRT
GET/api/v1/transcription/progressPoll a transcription started without sync
POST/api/v1/transcription/cancelCancel a running transcription

Cloud API

Join the cloud API waitlist

We're building a cloud API. Pick the features you need and roughly how much you'd use, and your answers decide which ones come first.

Which features do you need?

We'll only email you about the API. Unsubscribe anytime.

FAQ

Common Questions

Yes. It attributes each part of the transcript to a speaker automatically. Set num_speakers when you know how many people are talking.

Per word. Set return_timestamps to true and each word comes back with its start and end time in seconds, plus a speaker label when speaker detection ran.

Yes. Call /api/v1/transcription/start with sync=true, output_format=srt and return_timestamps set to true, and the response is a SubRip subtitle file.

No. Through the desktop app's local API, transcription runs on your own computer and the audio never leaves it.