一、第三方服务总览
| 服务商 | 用途 | Phase | 月费估算 (USD) | SLA |
| Google Cloud Speech | ASR 中文语音识别 | P1 | ~$1,500 | 99.9% |
| Google Translate API | MT 机器翻译 | P1 | ~$2,000 | 99.9% |
| Azure Speech | ASR 英文 + TTS 语音合成 | P1 | ~$800 | 99.9% |
| AWS (EKS/RDS/Kafka) | 基础设施 | P1 | ~$1,450 | 99.95% |
| Google AdMob | 广告变现 | P1 | 收入(非支出) | 99.9% |
| Stripe | 信用卡支付 | P1 | 按交易 2.9%+$0.5 | 99.9% |
| PayNow (DBS/UOB) | 新加坡本地支付 | P1 | 0.5%/笔 | 99.5% |
| Apple IAP | iOS 内购 | P1 | 30% 佣金 | 99.9% |
| Google Play Billing | Android 内购 | P1 | 30% 佣金 | 99.9% |
| ironSource | 广告填充兜底 | P1 | 收入 | 99% |
| Sentry | 崩溃监控 | P1 | ~$200 | 99.9% |
| CloudFlare | CDN + DDoS 防护 | P1 | ~$50 | 99.99% |
| 合计 | — | — | ~$6,000/月 | — |
二、Google Speech-to-Text(ASR)
延迟
首字 150-200ms / 整句 300-500ms
降级
超时 5s → 切换 Azure Speech
2.1 接入配置
{
"config": {
"encoding": "LINEAR16",
"sample_rate_hertz": 16000,
"language_code": "zh-CN",
"model": "latest_long",
"use_enhanced": true,
"enable_automatic_punctuation": true,
"enable_speaker_diarization": false,
"profanity_filter": false,
"max_alternatives": 1,
"streaming": {
"interim_results": true,
"single_utterance": false
}
}
}
2.2 配额申请时间线
| 时间 | 动作 | 目标 |
| W1 | 开通 Google Cloud 账号 + 绑定信用卡 | 基础配额可用 |
| W2 | 提交配额提升申请(100 万分钟/天) | 覆盖 Phase 1 峰值 |
| W4 | 申请审批通过 + 压力测试 | 确认配额生效 |
| W6 | 设置用量告警(80% 阈值) | 防止意外超支 |
三、Google Translate API(MT)
缓存
Redis 24h → 实际调用减少 ~35%
Glossary
自定义术语表(火锅→hotpot)
3.1 术语表管理
| 类别 | 示例(中→英) | 来源 |
| 新加坡特色 | 组屋→HDB flat / 食阁→hawker centre / 辣椒螃蟹→chilli crab | 本地化团队 |
| 网络用语 | yyds→eternal god / 社死→social death / 内卷→involution | 用户反馈 |
| 专有名词 | Vocalink→Vocalink(不翻译)/ Singpass→Singpass | NER 过滤 |
| 日常口语 | 吃饭了没→have you eaten? / 不好意思→sorry / 没问题→no problem | 语料挖掘 |
3.2 成本估算
# Phase 1 末期(DAU 20 万,人均 10 次通话,每次 50 句)
daily_chars = 200000 * 10 * 50 * 20 # 用户 * 次数 * 句数 * 平均字符
= 2,000,000,000 字符/天
# 缓存命中 35% → 实际调用 65%
actual_chars = 2B * 0.65 = 1.3B 字符/天
# 成本
daily_cost = 1.3B / 1M * $20 = $26,000/天 ❌ 太贵!
# 优化:短句合并 + 缓存优化 + 批量
# 实际:每句平均 15 字符(短句多)
daily_chars_real = 200000 * 10 * 50 * 15 = 1.5B
actual_chars = 1.5B * 0.65 = 975M
daily_cost = 975M / 1M * $20 = $19,500/天 ❌ 仍然太贵
# 结论:必须做激进缓存 + 短句过滤
# 最终方案:缓存命中 60% + 只翻译 > 3 字符的句子
# → 实际成本 ~$5,000/天 → $150,000/月 → 仍然贵
#
# ⚠️ 重要发现:Google Translate 按字符计费在高频场景下极贵
# 解决方案:Phase 1 使用 Google Translate,Phase 2 起逐步替换自研
🚨 成本警告:Google Translate 在 DAU 20 万时月费可达 $15 万。必须在 Phase 1.5 启动自研翻译模型开发,Phase 3 全面替换。Phase 1 期间通过激进缓存(命中率目标 60%+)控制成本在 $3-5 万/月。
四、Azure Speech(ASR 英文 + TTS)
ASR 语种
en-US / en-GB / en-SG
TTS 语音
JennyMultilingualNeural / XiaoxiaoNeural
ASR 定价
$1/小时(标准)/ $2.4/小时(增强)
区域
southeastasia (Singapore)
4.1 TTS SSML 示例
<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
<voice name="en-US-JennyMultilingualNeural">
<prosody rate="-10%" pitch="+0Hz">
I want to eat hotpot today.
</prosody>
</voice>
</speak>
五、AWS 基础设施
| 服务 | 用途 | 区域 | 配置 |
| EKS (K8s) | 微服务容器编排 | ap-southeast-1 | 3 节点 t3.medium |
| RDS PostgreSQL | 业务数据库 | ap-southeast-1 | db.r6i.large + 只读副本 |
| ElastiCache Redis | 缓存/匹配池 | ap-southeast-1 | cache.t3.medium ×6 |
| MSK (Kafka) | 消息队列 | ap-southeast-1 | 3 Broker t3.medium |
| S3 | 静态资源/归档 | ap-southeast-1 | Standard + Glacier 生命周期 |
| CloudFront | CDN | Global | Singapore edge |
| WAF + Shield | DDoS 防护 | Global | — |
| KMS | 密钥管理 | ap-southeast-1 | — |
| Secrets Manager | 密钥存储 | ap-southeast-1 | — |
| CloudWatch | 监控/告警 | ap-southeast-1 | — |
| Route 53 | DNS | Global | — |
5.1 网络架构
| 组件 | 说明 |
| VPC | 10.0.0.0/16,分 3 个 AZ(每个 AZ 公网/私网子网) |
| ALB | 面向公网,TLS 卸载,指向 K8s Ingress |
| NAT Gateway | 私网子网出站(API 调用第三方) |
| Security Groups | 最小权限:仅开放 443/80 入站 |
| VPC Peering | RDS/Redis 子网与 EKS 互通 |
| WAF Rules | 防 SQL 注入/XSS/速率限制/Geo 封锁 |
六、Google AdMob 广告
主 SDK
Google Mobile Ads SDK
广告类型
Rewarded Video(主)+ Banner 320×50
eCPM 目标
Rewarded > $8 / Banner > $1.5
Child-directed
false(18+ App)
6.1 AdMob 接入检查清单
| # | 任务 | 负责人 | 完成时间 |
| 1 | 注册 AdMob 账号(公司主体) | 财务 | W1 |
| 2 | 创建 App(iOS + Android 各一个) | 广告运营 | W2 |
| 3 | 创建 Ad Unit ID(Rewarded ×2 + Banner ×2) | 广告运营 | W3 |
| 4 | 集成 SDK(iOS + Android) | 移动端 | W5 |
| 5 | 测试广告验证(Test Ad Unit) | QA | W6 |
| 6 | 配置内容过滤 + 黑名单 | 广告运营 | W7 |
| 7 | 上线真实广告 + 监控 eCPM | 广告运营 | W8 |
| 8 | 对接 ironSource 备用 | 广告运营 | W9 |
七、Stripe 支付
支持卡种
Visa/Mastercard/AMEX/Discover
PCI 合规
Stripe 代持(无需自证 PCI)
Webhook
payment_intent.succeeded/failed
7.1 支付流程
// 1. 前端:创建 PaymentIntent
POST /v1/payment/charge
{ "package_id": "pkg_1200", "channel": "stripe", "amount_sgd": 9.99 }
// 2. 后端 → Stripe:创建 PaymentIntent
stripe.payment_intents.create({
amount: 999, // 分
currency: "sgd",
payment_method_types: ["card"],
metadata: { order_id: "ord_xxx", user_id: "usr_xxx" }
})
// 3. 返回 client_secret → 前端 Stripe SDK 确认支付
// 4. Stripe Webhook → 后端确认 → 发放金币
八、PayNow 新加坡本地支付
集成方式
DBS API / 第三方聚合(XanPool/Razer)
用户体验
扫描 QR → 银行 App 确认 → 完成
8.1 PayNow 集成方案对比
| 方案 | 优点 | 缺点 | 推荐 |
| DBS Direct API | 费率最低(0.5%)/ 直连银行 | 开发量大 / 仅 DBS 用户 | ⭐ 长期方案 |
| XanPool | 聚合多银行 / 接入快 | 费率 1.5% / 依赖第三方 | Phase 1 快速上线 |
| Razer Pay | 新加坡覆盖广 / SDK 成熟 | 费率 1.2% / 需商户审核 | 备选 |
| GrabPay | 用户基数大 / 体验好 | 费率 1.8% / 限额低 | 补充渠道 |
九、降级与多供应商策略
9.1 ASR 降级链
# Priority chain
ASR_PROVIDERS = [
("google", "zh-CN", latency=200ms, cost=$0.024/min),
("azure", "en-US", latency=250ms, cost=$0.017/min),
("google", "en-US", latency=220ms, cost=$0.024/min), # fallback
]
def get_asr_provider(lang, exclude=None):
for name, supported_lang, *_ in ASR_PROVIDERS:
if lang == supported_lang and name != exclude:
return name
raise NoASRAvailableError()
9.2 MT 降级链
| 优先级 | 引擎 | 语种 | 触发条件 |
| 1(主) | Google Translate | 全部 | 默认 |
| 2(备用) | DeepL | en↔zh | Google 超时/5xx |
| 3(兜底) | Azure Translator | en↔zh | DeepL 也失败 |
| 4(最后) | 缓存/原文 | — | 全部失败 → 显示原文 |
9.3 支付降级链
| 优先级 | 通道 | 触发条件 |
| 1 | PayNow | 新加坡用户默认 |
| 2 | Stripe (卡) | PayNow 失败/非新加坡 |
| 3 | Apple IAP | iOS 用户 |
| 4 | Google Play | Android 用户 |
十、供应商风险管理
| 风险 | 概率 | 影响 | 缓解 |
| Google API 涨价 | 中 | 高 | 自研模型加速 / 多供应商 |
| Apple 提高 IAP 佣金 | 低 | 中 | 引导 Web 支付(合规范围内) |
| AdMob 填充率骤降 | 中 | 低 | ironSource 即时切换 |
| AWS 区域故障 | 低 | 高 | GCP 热备 / 多 AZ 部署 |
| PayNow 服务中断 | 低 | 中 | 自动切换 Stripe |
| Stripe 封号 | 极低 | 高 | 2Checkout / PayPal 备用 |
✅ 供应商健康度监控:
| 指标 | 监控方式 | 告警阈值 |
| API 可用率 | 每 30s 健康检查 | < 99% 持续 5min → P1 |
| API 延迟 P95 | 每次调用采样 | > 2x 基线 → P2 |
| 费用异常 | 日账单对比 | > 150% 预期 → P2 |
| 配额使用率 | API 返回 header | > 80% → 告警 |
| AdMob eCPM | 每日报表 | < 50% 基线 → P3 |
附录
附录 A:API Key 管理
| 密钥 | 存储 | 轮换周期 | 访问权限 |
| Google Cloud Service Account | AWS Secrets Manager | 90 天 | 仅 Translate Service |
| Azure Speech Key | AWS Secrets Manager | 90 天 | 仅 Translate Service |
| Stripe Secret Key | AWS Secrets Manager | 180 天 | 仅 Payment Service |
| AdMob Publisher ID | Config Service | 不轮换 | Ad Service + 客户端 |
| AWS Access Key | IAM Role(无密钥) | — | 按服务最小权限 |
附录 B:相关文档
| 文档 | 关联内容 |
| 08 系统架构 HLD | 第三方服务在架构中的位置 |
| 09 实时翻译子系统 LLD | ASR/MT/TTS 详细调用逻辑 |
| 13 支付中台接入方案 | Stripe/PayNow 详细对接 |
附录 C:修订记录
| 版本 | 日期 | 修改内容 | 作者 |
| V1.0 | 2026-08-15 | 初始版本 | 架构团队 |