transcript: { mode, provider }
Dispatch 時のボットごと設定。mode ∈ {async, realtime}。provider ∈ {hosted-whisper, deepgram, assemblyai, gladia, aws-transcribe, elevenlabs}。
05 · transcription api
H2 2026 提供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.
概要
分離。文字起こしは録画料金にバンドルされるべきではないと考えます。一部のチームはすでにより高品質な出力のために Deepgram や Gladia に支払っており、トランスクリプトを無視するために隠れた $0.15/時を強制するのは侮辱になります。だから 2 つのパスを出荷し、ボットごとに選んでもらいます。新規アカウントのデフォルトは「文字起こしなし」です。最も安い API 呼び出しは行わない呼び出しだからです。
BYOK はプロバイダのキーを meetbot アカウントに保存することを意味します。録画完了時 (またはライブ、WebSocket 経由) で音声をそのプロバイダの API 経由でルーティングし、結果をボットの webhook で返します。トランスクリプトの内容はルーティングに必要な分以上見ません。ホスト型 Whisper は Hetzner GPU マシン (RTX 4090) で動作し、約 20 の同時リアルタイムストリームを処理し、ミーティング途中の言語切り替えをサポートします。話者タグはボットの既存の話者ごと音声マッピングの上に乗ります — 我々はすでに誰が何を言ったかを知っており、トランスクリプトはそれを継承します。
Async でも realtime でも、選んでください。Async はミーティング終了後の 1 回の POST。Realtime は wss://api.meetbot.dev/v1/transcripts/:bot_id で WebSocket を開き、produce されるごとに partial + 確定発話をストリームします。両モードとも、今日字幕に使っているのと同じ speaker-id タグ付き JSONL 形を返すので、下流コンシューマで字幕をトランスクリプトに 1 行で交換できます。
honest scope
BYOK on per-speaker audio is available right now and free. Hosted Whisper-large-v3 lands Q4 2026 at $0.10/hr add-on. We are not in the model-training business; the GA path will use frontier ASR providers as black boxes.
works today
Per-speaker audio tracks (the input you need for ASR)
Every bot dispatch ships audio.{speaker}.webm — one Opus track per participant, name-tagged from the meeting roster. Pipe each into Whisper / Deepgram / AssemblyAI / Gladia / AWS Transcribe / ElevenLabs on your own key. Zero meetbot fee on that leg.
Native captions JSONL passthrough
captions.jsonl already ships per-meeting, surfaced verbatim from Meet/Teams/Zoom's own captioner. Newline-delimited, one row per finalized utterance with speakerId + start/end ms.
BYOK reference implementation
samples/action-items-bot wires the per-speaker tracks into Whisper-large-v3 end-to-end. MIT-licensed; clone, swap your OPENAI_API_KEY, ship by Friday.
not yet
Hosted Whisper-large-v3 endpoint
Q4 2026. Will run on a Hetzner GPU box (RTX 4090). $0.10/hr add-on. Speaker tagging inherits from the bot's existing per-speaker mapping.
Realtime WebSocket (wss://api.meetbot.dev/v1/transcripts/:bot_id)
Q4 2026. Streams partial + finalized utterances as they're produced, per speaker.
Async transcript on completed recordings (POST /v1/recordings/:id/transcript)
Q4 2026. For when you decided to enable transcription only after the call.
Mid-meeting language switching + per-utterance lang tags
Q4 2026. Whisper-large-v3 handles this natively; we just have to surface it.
Hosted BYOK key vault (provider keys at rest under per-tenant KMS)
Q4 2026. Today, BYOK means your key in your env; at GA we'll let you store it under our key-vault and rotate from /account/keys.
BYOK works today: dispatch a bot, take the per-speaker WebM tracks from the manifest, run them through Whisper / Deepgram / AssemblyAI yourself. The action-items-bot sample shows the pattern at github.com/meetbot-dev/sample-action-items-bot-ts.
計画中の機能
Dispatch 時のボットごと設定。mode ∈ {async, realtime}。provider ∈ {hosted-whisper, deepgram, assemblyai, gladia, aws-transcribe, elevenlabs}。
改行区切り JSON。確定発話 1 件につき 1 行、speakerId、name、text、tStart、tEnd 付き。字幕と同じ形。
Realtime WebSocket。発話が produce されるごとに {type: partial|final, ...} フレームを発行。話者ごと。
以前完了した録画に対する async トランスクリプト。通話後に文字起こし有効化を決めた場合に有用。
Whisper-large-v3 がミーティング途中の言語切り替えを検出。発話ごとの lang タグが JSONL に。事前宣言不要。
プロバイダキーはテナントごとの KMS 由来キーで暗号化保存。redeploy なしで /account/keys 経由でローテーション。