
Twilio Video 本身不提供内置的语音转文字功能,但可通过下载录制的 .mka 音频文件,再交由第三方 ASR 服务(如 Google Cloud Speech 或 Azure Cognitive Services)完成转录。本文详解完整实现流程,包括下载、格式适配与集成建议。
twilio video 本身不提供内置的语音转文字功能,但可通过下载录制的 `.mka` 音频文件,再交由第三方 asr 服务(如 google cloud speech 或 azure cognitive services)完成转录。本文详解完整实现流程,包括下载、格式适配与集成建议。
Twilio Programmable Video 支持高质量音视频录制,并将音频与视频分别存储为独立轨道(如 .mka 音频容器),但其 Video API 不包含语音识别(ASR)能力——无论是实时转录还是录制后异步转录均未开放。这意味着,若需获取视频通话中语音内容的文字稿,开发者必须自行完成以下三步链路:
-
获取录制元数据并下载音频文件
使用 RecordingInstance 获取录制详情后,通过其 media 子资源下载原始音频(.mka 格式):
use Twilio\Rest\Client;
$twilio = new Client($sid, $token);
$recording = $twilio->video->recordings($recordingSid)->fetch();
// 获取媒体 URL(需注意:该 URL 具有时效性,通常 24 小时内有效)
$mediaUrl = $recording->media->uri;
// 示例:https://video.twilio.com/v1/Recordings/RT.../Media
// 使用 cURL 或 Guzzle 下载 .mka 文件
$audioContent = file_get_contents($mediaUrl);
file_put_contents('call_audio.mka', $audioContent);-
处理音频格式兼容性
Twilio 输出的音频为 Matroska 容器(.mka),内部编码通常为 Opus。主流 ASR 服务(如 Google Cloud Speech-to-Text、Azure Speech Service、AWS Transcribe)默认不直接支持 .mka。您需提前验证或转换格式:
-
✅ 推荐方案:使用 FFmpeg 转换为 .wav(PCM 16-bit, 16kHz 单声道)或 .flac(无损压缩,兼容性更广):
ffmpeg -i call_audio.mka -ar 16000 -ac 1 -c:a pcm_s16le call_audio.wav
⚠️ 替代方案:调用 Twilio 的 Compositions API 生成 MP4/MKV 合成文件(含音频轨),再提取音频——但此方式增加延迟与成本,仅当需多轨混合时考虑。
-
提交至 ASR 服务并解析结果
以 Google Cloud Speech-to-Text 为例(REST API):curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data '{ "config": { "encoding": "LINEAR16", "sampleRateHertz": 16000, "languageCode": "en-US", "enableWordTimeOffsets": true }, "audio": { "content": "'$(base64 call_audio.wav | tr -d '\n')'" } }' \ "https://speech.googleapis.com/v1/speech:recognize"
关键注意事项:
- ? 访问 media.uri 需确保请求携带有效 Twilio 认证头(Authorization: Basic <base64-encoded-credentials>),否则返回 401;
- ⏱️ .mka 下载链接有效期默认为 24 小时,建议立即处理或持久化存储至自有对象存储;
- ? 若业务对隐私敏感,避免将音频上传至公有云 ASR 服务,可选用本地部署模型(如 Whisper.cpp)或私有化 ASR 解决方案;
- ? 大规模场景下,建议构建异步任务队列(如 RabbitMQ + Worker),避免阻塞主业务流。
综上,Twilio Video 录制音频的转文字本质是“分离式架构”:Twilio 负责可靠采集与存储,ASR 服务专注语言理解。清晰划分职责边界,既保障系统稳定性,也便于按需切换更优识别引擎。

















