inference.eu

POST /v1/audio/transcriptions

Speech to text API: Whisper transcription, processed in the EU

The transcriptions endpoint turns recorded speech into text with open speech recognition models such as Whisper. It accepts the same multipart upload as the OpenAI audio API, so existing code and tools work after a base URL change. Customer calls, meetings and dictation often contain personal data, and here they are processed in European data centres.

  1. 01API format: OpenAI
  2. 02EU data centres
  3. 03Covered by one DPA
POST /v1/audio/transcriptions
curl https://api.inference.eu/v1/audio/transcriptions \
  -H "Authorization: Bearer $INFERENCE_EU_API_KEY" \
  -F file="@kundengespraech.mp3" \
  -F model="whisper-large-v3-turbo" \
  -F language="de" \
  -F response_format="verbose_json" \
  -F "timestamp_granularities[]=segment"

What the endpoint does

POST /v1/audio/transcriptions takes an audio file as multipart/form-data and returns what was said. Send the file in the file field and the model id in model, for example whisper-large-v3-turbo. Common formats such as mp3, mp4, m4a, wav, webm, ogg and flac are accepted.

Whisper models recognise speech in close to a hundred languages, including every major EU language, and detect the language automatically if you do not specify one. The default response is {"text": "..."}, which is often all you need to feed the transcript into a summary, a search index or a ticket.

Key request fields

language takes an ISO 639-1 code such as de, fr or nl. Setting it improves accuracy and speed on short or noisy recordings, where automatic detection can guess wrong. prompt gives the model context: names, product terms or the previous segment's text, so that it spells "Kubernetes" or a colleague's surname correctly.

response_format can be json, text, srt, vtt or verbose_json. Use srt or vtt for subtitles. verbose_json returns the detected language, duration and a segments array with start and end times, and with timestamp_granularities[] set to word you get word-level timings as well. temperature is best left at 0 for transcription.

A practical pattern for calls and meetings

A common workflow records a support call or meeting, transcribes it with verbose_json to keep timestamps, then sends the transcript to a chat model with a prompt that asks for a summary, action items and any commitments made. Store the segments with their times so that people can jump to the moment in the recording.

For large archives of recordings, upload them and process them in the background instead of holding a connection open for each one. Keep the language setting per customer or per team, and keep a short glossary of names and terms to pass in prompt for every file.

Errors and edge cases

Files above the maximum upload size return HTTP 413 or a 400 error. Split long recordings into parts, ideally at silences, and keep the last sentence of one part as the prompt for the next so that context carries over. The size limit depends on your plan, and we confirm it with you.

An unsupported or corrupted file returns a 400 error that names the problem. Long stretches of silence or music can make Whisper models repeat a phrase or invent text, so trim silence first or use voice activity detection. Speaker labels are not part of this response; add a diarisation step if you need to know who said what.

Speech to text: common questions

The questions buyers, developers and legal teams ask us most. Something missing? Ask us directly.

Ask a question

Move your AI workloads to EU infrastructure

Tell us which models you use and roughly how much traffic you have. We reply within one working day with pricing and next steps.

  • Reply within one working day
  • Pricing for your volume
  • DPA ready to sign