meetbot.dev

05 · transcription api

livre H2 2026

Transcriptions, optionnelles.

L'enregistrement est le produit ; la transcription est un add-on. Apportez votre propre clé pour AWS Transcribe, Deepgram, AssemblyAI, Gladia ou ElevenLabs et payez $0. Ou payez $0,10/h pour Whisper-large-v3 hébergé avec étiquetage de locuteur intégré.

aperçu

Pourquoi ça existe.

La séparation. Nous ne pensons pas que la transcription devrait être bundlée dans le prix d'enregistrement. Certaines équipes paient déjà Deepgram ou Gladia pour des sorties de meilleure qualité ; les forcer à nous payer un $0,15/h caché pour ignorer notre transcription serait insultant. Donc nous livrons deux chemins et vous laissons choisir par bot. Par défaut pour les nouveaux comptes c'est « pas de transcription », parce que l'appel API le moins cher est celui que vous ne faites pas.

BYOK signifie que vous stockez votre clé de fournisseur dans votre compte meetbot ; à la complétion de l'enregistrement (ou en direct, sur WebSocket) nous routons l'audio à travers l'API de ce fournisseur et retournons le résultat sur le webhook de votre bot. Nous ne voyons jamais le contenu de la transcription au-delà de ce qui est nécessaire pour router. Whisper hébergé tourne sur une box GPU Hetzner (RTX 4090), sert environ vingt streams realtime concurrents, et supporte le changement de langue en milieu de réunion. L'étiquetage de locuteur est boulonné au mapping audio par locuteur existant du bot — nous savons déjà qui a dit quoi ; la transcription en hérite.

Async ou realtime, votre choix. Async est un POST après la fin de la réunion ; realtime ouvre un WebSocket sur wss://api.meetbot.dev/v1/transcripts/:bot_id et stream les énoncés partiels + finalisés au fur et à mesure qu'ils sont produits. Les deux modes retournent la même forme JSONL étiquetée speaker-id que nous utilisons aujourd'hui pour les captions, donc vous pouvez échanger les captions contre les transcriptions dans votre consommateur downstream avec un changement d'une ligne.

surface prévue

Spec, à découvert.

item

transcript: { mode, provider }

Config par bot au dispatch. mode ∈ {async, realtime}. provider ∈ {hosted-whisper, deepgram, assemblyai, gladia, aws-transcribe, elevenlabs}.

item

transcript.jsonl

JSON délimité par nouvelle ligne. Une ligne par énoncé finalisé, avec speakerId, name, text, tStart, tEnd. Même forme que captions.

item

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

WebSocket realtime. Émet des frames {type: partial|final, ...} au fur et à mesure que les énoncés sont produits. Par locuteur.

item

POST /v1/recordings/:id/transcript

Transcription async sur un enregistrement précédemment complété. Utile si vous avez décidé d'activer la transcription seulement après l'appel.

item

Multilingue + changement de langue

Whisper-large-v3 détecte les changements de langue en milieu de réunion. Tag de langue par énoncé dans le JSONL. Pas besoin de déclarer en amont.

item

Coffre de clés BYOK

Clés de fournisseur stockées chiffrées avec des clés dérivées KMS par tenant. Rotation à travers /account/keys sans redéploiements.