Files
audio-transcription/documentation/transcribe.md
T
JiriUhlir 7a3f61c125 first
2026-07-10 09:46:49 +02:00

2.6 KiB

Endpointy přepisu

Audio se posílá jako proměnná file (multipart/form-data). Všechny ostatní parametry jsou form fields v POST. API klíče jsou v X- hlavičkách. Výstup je vždy JSON.

Hlavičky (secrets)

Hlavička Nutná Popis
X-Deepgram-Api-Key ano Deepgram API klíč
X-OpenAI-Api-Key ano OpenAI API klíč (Whisper + slučovací chat)

POST /transcribe/dual

Paralelní přepis dvěma engine. Vrací dva nezávislé texty.

Form parametry

Pole Typ Default Popis
file soubor Audio k přepisu (povinné)
deepgram_model text nova-2 Deepgram model
whisper_model text whisper-1 OpenAI přepisový model
language text cs Jazyk (ISO kód)
diarize bool true Deepgram diarizace
smart_format bool true Deepgram smart formatting

Odpověď

{
  "text1": "přepis z Deepgramu",
  "text2": "přepis z OpenAI Whisper",
  "deepgram_model": "nova-2",
  "whisper_model": "whisper-1",
  "language": "cs"
}

Příklad (curl)

curl -X POST https://services.csbot.cz/apps/audio-transcription/transcribe/dual \
  -H "X-Deepgram-Api-Key: <DEEPGRAM_KEY>" \
  -H "X-OpenAI-Api-Key: <OPENAI_KEY>" \
  -F "file=@nahravka.mp3" \
  -F "language=cs"

POST /transcribe/combined

Jako dual, navíc oba přepisy sloučí přes OpenAI Chat do jednoho výsledku (merged).

Form parametry

Vše z dual, plus:

Pole Typ Default Popis
combine_prompt text výchozí „Czech Transcript Merger“ System prompt pro sloučení
chat_model text gpt-4o OpenAI chat model pro sloučení

Nezadá-li se combine_prompt, použije se výchozí prompt z app/prompts.py.

Odpověď

{
  "text1": "přepis z Deepgramu",
  "text2": "přepis z OpenAI Whisper",
  "merged": "sloučený, co nejpřesnější výsledný přepis",
  "deepgram_model": "nova-2",
  "whisper_model": "whisper-1",
  "chat_model": "gpt-4o",
  "language": "cs"
}

Příklad (curl)

curl -X POST https://services.csbot.cz/apps/audio-transcription/transcribe/combined \
  -H "X-Deepgram-Api-Key: <DEEPGRAM_KEY>" \
  -H "X-OpenAI-Api-Key: <OPENAI_KEY>" \
  -F "file=@nahravka.mp3"

Chybové stavy

HTTP Kdy
400 Chybí / prázdný audio soubor
401 Chybí X-Deepgram-Api-Key nebo X-OpenAI-Api-Key
502 Chyba upstream API (Deepgram / OpenAI)
500 Neočekávaná chyba serveru

Všechny chyby se logují (bez secrets), žádné tiché selhání.