创建时间:2026-09-01
场景:通过 Cloudflare Workers 部署 AI 服务(语音转文字、文本嵌入)
一、背景
Cloudflare Workers 提供了 AI 推理能力,支持在边缘节点运行 Whisper、Qwen、Llama 等模型。免费版每日提供 10,000 Neurons 额度,换算下来约可处理 45 分钟的音频转录,适合个人项目和小规模实验。
前置准备
-
Cloudflare 账号(支持 OAuth/GitHub 登录)
-
wranglerCLI 工具(~/.local/bin/wrangler) -
认证 Token 存储在
~/.config/.wrangler/config/default.toml
二、Whisper 语音转文字 Worker
2.1 服务信息
| 项目 | 值 |
|---|---|
| 服务名 | cf-whisper-worker |
| URL | https://cf-whisper-worker.<username>.workers.dev |
| 功能 | 语音转文字(OpenAI 兼容接口) |
| 部署方式 | wrangler 部署 |
2.2 支持的 API
1. OpenAI 兼容转录接口
POST /v1/audio/transcriptions
请求参数(multipart/form-data):
| 参数 | 说明 | 示例 |
|---|---|---|
file |
音频文件 | audio.wav |
model |
模型名称 | @cf/openai/whisper |
language |
语言代码(可选) | zh, en |
response_format |
返回格式 | json, text, vtt, srt, verbose_json |
temperature |
采样温度(可选) | 0.0 |
2. 简单测试接口
GET / 或 POST / --- 返回基础信息,用于验证服务是否正常。
2.3 可用模型对比
| 模型 | 适用场景 | 速度 | 质量 |
|---|---|---|---|
@cf/openai/whisper |
通用中英文 | 中 | 中 |
@cf/openai/whisper-tiny-en |
纯英文、实时 | 快 | 较低 |
@cf/openai/whisper-large-v3-turbo |
高质量转录 | 慢 | 高 |
选择建议:
-
中英文混合:用基础模型
@cf/openai/whisper -
纯英文会议/播客:用 tiny-en,速度快、额度消耗少
-
需要高准确率、有时间等:用 large-v3-turbo
2.4 使用示例
bash
# 转录音频文件
curl -X POST https://cf-whisper-worker.<username>.workers.dev/v1/audio/transcriptions \
-F "file=@audio.wav" \
-F "model=@cf/openai/whisper" \
-F "language=zh" \
-F "response_format=json"
2.5 返回格式说明
| 格式 | 内容 |
|---|---|
json |
{"text": "..."} |
text |
纯文本内容 |
vtt |
WebVTT 字幕(带时间戳) |
srt |
SRT 字幕格式 |
verbose_json |
详细 JSON(含置信度、时间戳) |
vtt 和 srt 可直接用于视频字幕生成,verbose_json 可用于语音分析或关键词提取。
三、Qwen3 文本嵌入 Worker
3.1 服务信息
| 项目 | 值 |
|---|---|
| 服务名 | qwen3-embedding |
| URL | https://qwen3-embedding.<username>.workers.dev |
| 功能 | 文本向量化(768 维) |
| 部署方式 | Cloudflare Web Editor |
3.2 支持的 API
OpenAI 兼容嵌入接口
POST /v1/embeddings
请求体(JSON):
json
{
"model": "@cf/qwen/qwen3-embedding-0.6b",
"input": "你好世界"
}
支持单条文本或批量文本:
json
{
"model": "@cf/qwen/qwen3-embedding-0.6b",
"input": ["文本1", "文本2", "文本3"]
}
3.3 可用模型
| 模型 | 维度 | 适用场景 |
|---|---|---|
@cf/qwen/qwen3-embedding-0.6b |
768 | 中英文通用 |
@cf/baai/bge-m3 |
1024 | 多语言、长文本 |
选择建议:
-
通用中文场景:用 qwen3-embedding-0.6b,轻量快速
-
多语言混合(中英日等):用 bge-m3,支持更长文本
3.4 返回示例
json
{
"object": "list",
"data": [
{
"object": "embedding",
"index": 0,
"embedding": [0.012, -0.034, 0.056, ...]
}
],
"model": "qwen3-embedding-0.6b"
}
向量数组长度为 768(qwen3)或 1024(bge-m3),可直接用于相似度计算、聚类或 RAG 检索。
四、部署与常用命令
4.1 首次部署(Whisper)
bash
# 创建项目
mkdir cf-whisper-worker && cd cf-whisper-worker
# 初始化 wrangler 配置
wrangler init
# 编写 Worker 代码(JavaScript)
# 部署
wrangler deploy
4.2 常用命令
bash
# 查看已部署的 Worker 列表
wrangler list
# 查看可用 AI 模型
wrangler ai model list
# 查看特定模型信息
wrangler ai model get <model-name>
# 从 Web Editor 部署(嵌入服务适用)
# 在 Cloudflare Dashboard → Workers & Pages → 创建 → 在线编辑
五、使用场景
5.1 音频转录
-
视频会议记录 → 自动生成会议纪要
-
播客转文字 → 生成逐字稿和字幕文件
-
课堂录音 → 语音笔记检索
5.2 文本嵌入
-
RAG 应用:将文档切片向量化,构建知识库
-
推荐系统:计算用户 query 与内容向量的相似度
-
聚类分析:对用户评论或文章进行主题归类
六、踩坑记录
坑 1:音频格式不兼容
Whisper Worker 只接受 WAV/PCM 格式。MP3 或 M4A 需先转码:
bash
ffmpeg -i input.mp3 -ar 16000 -ac 1 output.wav
坑 2:请求超时
Cloudflare Workers 有 30 秒 CPU 时间限制。大文件建议分段或使用 large-v3-turbo 模型,转录速度更快。
坑 3:配额不足
免费版每日 10,000 Neurons。大文件转录消耗约 200-500 Neurons/次,实测约 20-50 次转录。超限后返回 403,可通过 Dashboard 查看用量或升级付费计划。
七、成本估算
| 模型 | 单价(Neurons) | 每日免费次数(估算) |
|---|---|---|
| whisper | 20-50/次 | 200-500 次 |
| qwen3-embedding | 1-2/次 | 5000-10000 次 |
| whisper-large | 100-200/次 | 50-100 次 |
免费额度对个人实验和小型应用完全够用。
八、总结
| Worker | 功能 | 状态 |
|---|---|---|
| cf-whisper-worker | 语音转文字 | ✅ 运行中 |
| qwen3-embedding | 文本向量化 | ✅ 运行中 |
两个服务均通过 Cloudflare Workers AI 部署,支持 OpenAI 兼容接口,可在现有项目中无缝接入,无需额外维护基础设施。免费额度对于个人使用基本够用,适合小规模实验和 prototype 开发。