用途:用 Deepgram 的 callback 功能实现异步语音转写。提交音频时传入 callback URL,Deepgram 立即返回 request_id,在后台处理音频,完成后把结果 POST 到你的端点;也支持 WebSocket 回调,失败时自动重试(最多 10 次、间隔 30 秒)。
主要能力:通过 SDK 或 curl 提交异步转写(model 可用 nova-3,支持 smart_format、diarize、utterances,callback 指向你的 HTTPS 端点,可选 callback_method 用 PUT);搭建回调服务器接收结果,先用原始请求体做 HMAC-SHA256 签名校验(x-deepgram-signature 头,配合 DEEPGRAM_WEBHOOK_SECRET),再解析 metadata.request_id、results.channels[0].alternatives[0] 等字段;用 Redis 做任务状态跟踪(processing/completed)并通过 pub/sub 通知;封装 submit/poll/wait 客户端;用 request_id 做幂等去重(本地 Set 或 Redis SET NX);本地用 ngrok 暴露回调端口测试。
使用方式:提交阶段调用 transcribeUrl 并传 callback,或直接 curl POST 到 https://api.deepgram.com/v1/listen 带 callback 参数;回调端返回 200 表示成功,非 2xx 会触发重试;解析前先验签、按不透明事件 ID 去重、尽快确认并只把状态或结果元数据写日志。
适用场景:长时间音频、批量录音、播客等无法保持连接等待结果的转写任务,需要异步结果回调与失败恢复的流程。
限制与注意事项:回调端点必须可被 Deepgram 访问(HTTPS、防火墙放行,本地开发需 ngrok);必须实现幂等,因重试会产生重复回调;验签需与 Console 中的 webhook secret 一致;请求体较大时需调大原始体限制(如 express.raw 的 limit);下游处理慢时应先返回 200 再异步处理,避免超时;对瞬时失败应有界退避重试,对终态失败做隔离而非盲目重放音频或转写结果。前置条件还包括已校验的回调端点、签名/认证要求、幂等存储、脱敏可观测性,以及数据留存/同意的决策和失败回调恢复的负责人。文中未提供具体的收费、价格与配额信息。