meetbot.dev

05 · transcription api

dostarcza H2 2026

Transkrypcje, opcjonalne.

The recording is the product; the transcript is an add-on. Bring your own key for AWS Transcribe, Deepgram, AssemblyAI, Gladia, or ElevenLabs and pay $0. Or pay $0.10/hr for hosted Whisper-large-v3 with speaker tagging built in.

przegląd

Dlaczego to istnieje.

Rozdzielenie. Nie sądzimy, że transkrypcja powinna być wpakowana w cenę nagrywania. Niektóre zespoły już płacą Deepgramowi lub Gladii za wyższej jakości wyjścia; zmuszanie ich do płacenia nam ukrytych $0.15/godz., żeby ignorować naszą transkrypcję, byłoby obraźliwe. Dlatego dostarczamy dwie ścieżki i pozwalamy wybrać per bot. Domyślnie dla nowych kont jest „bez transkrypcji", bo najtańsze wywołanie API to to, którego nie robisz.

BYOK oznacza, że trzymasz klucz dostawcy w swoim koncie meetbot; przy ukończeniu nagrania (lub na żywo, przez WebSocket) routujemy audio przez API tego dostawcy i zwracamy wynik na webhooku Twojego bota. Nigdy nie widzimy treści transkrypcji poza tym, co potrzebne do routingu. Hostowany Whisper działa na maszynie GPU Hetzner (RTX 4090), serwuje około dwudziestu współbieżnych strumieni realtime i wspiera przełączanie języka w środku spotkania. Tagowanie mówców jest przykręcone na istniejącym mapowaniu audio per mówca bota — wiemy już, kto co powiedział; transkrypt to dziedziczy.

Async lub realtime, Twój wybór. Async to jeden POST po zakończeniu spotkania; realtime otwiera WebSocket na wss://api.meetbot.dev/v1/transcripts/:bot_id i strumieniuje partial + sfinalizowane wypowiedzi w miarę produkcji. Oba tryby zwracają ten sam kształt JSONL z tagami speaker-id, którego używamy dziś dla napisów, więc możesz wymienić napisy na transkrypty w downstream konsumentu jedną zmianą linii.

planowany zakres API

Spec, na widoku.

item

transcript: { mode, provider }

Konfiguracja per bot przy dispatch. mode ∈ {async, realtime}. provider ∈ {hosted-whisper, deepgram, assemblyai, gladia, aws-transcribe, elevenlabs}.

item

transcript.jsonl

JSON oddzielony nowymi liniami. Jeden wiersz na sfinalizowaną wypowiedź, ze speakerId, name, text, tStart, tEnd. Ten sam kształt co napisy.

item

wss://api.meetbot.dev/v1/transcripts/:id

WebSocket realtime. Emituje ramki {type: partial|final, ...} w miarę produkcji wypowiedzi. Per mówca.

item

POST /v1/recordings/:id/transcript

Async transkrypt na wcześniej ukończonym nagraniu. Przydatne, jeśli zdecydowałeś się włączyć transkrypcję dopiero po połączeniu.

item

Multilingual + language switching

Whisper-large-v3 wykrywa przełączenia języka w środku spotkania. Tag lang per wypowiedź w JSONL. Bez konieczności deklaracji z góry.

item

BYOK key vault

Klucze dostawców przechowywane zaszyfrowane kluczami KMS-derived per tenant. Rotacja przez /account/keys bez redeployów.