transcript: { mode, provider }
Config par bot au dispatch. mode ∈ {async, realtime}. provider ∈ {hosted-whisper, deepgram, assemblyai, gladia, aws-transcribe, elevenlabs}.
05 · transcription api
livre H2 2026L'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
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
Config par bot au dispatch. mode ∈ {async, realtime}. provider ∈ {hosted-whisper, deepgram, assemblyai, gladia, aws-transcribe, elevenlabs}.
JSON délimité par nouvelle ligne. Une ligne par énoncé finalisé, avec speakerId, name, text, tStart, tEnd. Même forme que captions.
WebSocket realtime. Émet des frames {type: partial|final, ...} au fur et à mesure que les énoncés sont produits. Par locuteur.
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.
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.
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.