Audio-transkribering

Senast uppdaterad:

På denna sida
text
POST https://api.staik.se/v1/audio/transcriptions

Transkribera ljud till text med KB-Whisper large — Kungliga bibliotekets svensk-tränade Whisper-modell (50 000 timmar svenskt tal). OpenAI-kompatibel: peka openai-SDK:n mot api.staik.se så fungerar den direkt. Modellnamnet whisper-1 routar också hit.

python
from openai import OpenAI

client = OpenAI(api_key="sk-st-your-key", base_url="https://api.staik.se/v1")

with open("moten.mp3", "rb") as f:
    result = client.audio.transcriptions.create(
        model="kb-whisper-large",
        file=f,
        language="sv",
    )
print(result.text)

Stödda format: mp3, wav, m4a, ogg, webm, mp4. Max filstorlek: 100 MB. response_format: json (default), text, srt, vtt eller verbose_json (med segments).

Långa filer — asynkront jobb

Det synkrona anropet passar filer upp till ~20 minuter. För längre inspelningar finns jobb-API:t: ladda upp, få ett job_id direkt, polla tills klart. Gatewayn delar själv upp ljudet, transkriberar och sätter ihop resultatet — inga timeouts, och talare hålls konsekventa över hela filen.

bash
# 1. Ladda upp → svarar direkt med ett job_id (status "queued")
curl https://api.staik.se/v1/audio/transcriptions/jobs \
  -H "Authorization: Bearer sk-st-your-key" \
  -F file=@langt-mote.m4a \
  -F model=kb-whisper-large \
  -F language=sv \
  -F diarize=true

# → {"id":"390cc2dc-...","status":"queued","progress":0, ...}

# 2. Polla tills status = "completed" (progress 0–100 under tiden)
curl https://api.staik.se/v1/audio/transcriptions/jobs/390cc2dc-... \
  -H "Authorization: Bearer sk-st-your-key"

# → {"status":"completed","progress":100,"audio_duration_seconds":4769,
#    "tokens_charged":79483,"result":{"text":"...","segments":[...]}}

Status går queued → processing → completed (eller failed/cancelled). result följer med först när jobbet är klart, formaterat enligt response_format. Lista jobb med GET /v1/audio/transcriptions/jobs, avbryt med DELETE /v1/audio/transcriptions/jobs/{id}. Debitering sker när jobbet är klart, per faktisk ljudlängd.

Talarseparering

diarize=true ger talaretiketter i segmenten. Talare hålls konsekventa även när långa filer delas upp internt.

Tokens-åtgång

Transkribering debiteras 2 500 tokens per minut ljud (≈42/sekund) från samma tokenpool som chat-modellerna — 1 timme ljud kostar 150 000 tokens. Se vad din plan motsvarar under Planer och kvoter.

Varje synkront svar innehåller headrarna X-Audio-Duration-Seconds och X-Audio-Tokens-Charged; för async-jobb finns samma info i jobbets audio_duration_seconds/tokens_charged.