You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Postman调用GCP Text-to-Speech API返回403鉴权错误问题咨询

GCP Text-to-Speech API 403 PERMISSION_DENIED 报错解决步骤

你遇到的报错由两个核心问题共同触发:对应项目下Text-to-Speech API未启用、使用gcloud个人终端用户凭据调用时未指定计费归属项目。按以下步骤操作即可完成调用,拿到音频Base64结果。

前置检查

  • 确认你使用的GCP项目已经绑定了有效计费账户,所有GCP API调用均要求项目关联计费(Text-to-Speech提供免费调用额度,绑定后不会自动产生费用)
  • 提前记录你的GCP项目ID(控制台项目首页可以查到,即错误返回里projects/后面的数字ID对应的项目)

步骤1:启用Text-to-Speech API

  • 登录GCP控制台,切换到你要使用的目标项目
  • 顶部搜索栏输入Text-to-Speech API,进入API详情页
  • 点击页面上的「启用」按钮,等待1-2分钟服务开通完成,这一步解决错误中SERVICE_DISABLED的根因。

步骤2:配置鉴权与请求(二选一即可,新手推荐方案1快速调试)

方案1:临时调试用(无需创建服务账号)

  • 打开本地终端,执行命令配置gcloud默认配额项目:
gcloud config set project 替换成你的GCP项目ID
  • 执行命令重新生成访问令牌:
gcloud auth application-default print-access-token
  • 打开Postman,原有配置保留:
    • 请求方法:POST
    • 请求地址:https://texttospeech.googleapis.com/v1/text:synthesize
    • 请求头Content-Type:application/json
    • 鉴权方式选Bearer Token,填入上一步刚生成的令牌
    • 请求体用你之前准备的JSON即可,无需修改
  • 额外新增一个请求头:
    • 头名称:X-Goog-User-Project
    • 头值:你的GCP项目ID

方案2:规范调用(服务账号鉴权,适合长期/生产使用)

  • 进入GCP控制台「IAM与管理」-「服务账号」页面
  • 点击「创建服务账号」,填写账号名称后,给该账号授予Cloud Text-to-Speech 用户角色,完成创建
  • 进入刚创建的服务账号详情页,切换到「密钥」标签,选择「添加密钥」-「创建新密钥」,密钥类型选JSON,下载生成的密钥文件到本地
  • 本地终端执行命令,通过服务账号密钥生成访问令牌:
gcloud auth activate-service-account --key-file=替换成你下载的JSON密钥文件的本地路径
gcloud auth print-access-token
  • Postman中Bearer鉴权填入上一步生成的服务账号令牌即可,不需要额外添加X-Goog-User-Project头,其余请求配置和你之前的配置保持一致。

步骤3:验证返回结果

发送请求后,接口会返回如下结构的响应,其中audioContent字段就是你需要的MP3音频Base64编码字符串:

{
  "audioContent": "//NExAARqoIIAAhEuWAAAGNmBGMY4EBcxvABAXBPmPIAF//yAuh9Tn5CEap3/o......"
}

常见踩坑说明

  • 不要直接用未配置配额项目的个人账号令牌调用接口,这类终端用户凭据不被Text-to-Speech API直接认可
  • 令牌有效期为1小时,过期后重新执行对应命令生成新令牌替换即可
  • 若提示权限不足,检查服务账号是否正确绑定了Text-to-Speech相关角色,遵循最小权限原则,不要授予多余权限

内容的提问来源于stack exchange,提问作者Calladrus2k1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 17:09:22