使用WhatsApp Cloud API获取音频URL及转文本技术咨询
处理WhatsApp Cloud API音频消息:获取音频URL与转文本方案
一、Payload的核心作用
这个Payload是WhatsApp Cloud API通过Webhook推送的音频消息事件数据,每个字段的实际意义:
from: 发送音频的用户WhatsApp号码id: 这条消息的全局唯一标识timestamp: 消息发送的Unix时间戳type: 明确消息类型为音频data对象:存储音频媒体的关键元数据mime_type: 音频文件的格式(此处为带opus编码的OGG格式)sha256: 音频文件的哈希值,用于校验文件完整性id: 媒体文件唯一ID,是获取音频文件的核心凭证voice: 标记该音频是否为用户录制的语音消息(true表示是语音消息)
二、获取音频文件的下载URL
要拿到音频文件的可访问链接,需调用WhatsApp的媒体检索接口:
- 准备你的WhatsApp Cloud API访问令牌(Bearer Token)
- 用Payload中
data.id的值作为媒体ID,发起GET请求到媒体检索端点 - 接口响应会返回包含
url字段的JSON数据,该字段即为音频文件的临时下载链接(注意链接有有效期,需及时下载)
示例请求逻辑(伪代码):
import requests media_id = "715960496164079" # 取自Payload的data.id access_token = "你的API访问令牌" request_url = f"https://graph.facebook.com/v18.0/{media_id}" headers = { "Authorization": f"Bearer {access_token}" } response = requests.get(request_url, headers=headers) audio_download_url = response.json()["url"]
三、音频转文本的实现方案
拿到OGG格式的音频文件后,可通过主流语音转文本(STT)工具完成转换,以下是两种常用方案:
方案1:使用OpenAI Whisper(本地/API)
Whisper原生支持OGG格式音频,步骤如下:
- 通过下载URL将音频文件保存到本地
- 安装依赖:
pip install openai-whisper
- 转录代码示例:
import whisper # 加载模型(可选tiny/base/small/medium/large,精度越高资源消耗越大) model = whisper.load_model("base") # 转录音频文件 transcribe_result = model.transcribe("your-audio-file.ogg") # 输出转录文本 print(transcribe_result["text"])
方案2:使用云厂商STT服务(如Google Speech-to-Text、AWS Transcribe)
以Google Speech-to-Text为例:
- 下载音频文件后,确认格式符合服务要求(部分服务已支持直接上传OGG文件)
- 调用对应云服务的STT API,传入音频数据即可获取转录文本
内容的提问来源于stack exchange,提问作者Manspof
相关产品推荐
相关产品推荐

