使用Google.Cloud.TextToSpeech.V1遇Gaia ID未找到错误的解决求助
解决Google.Cloud.TextToSpeech.V1调用时的"Gaia id not found"错误
错误根源
你使用gcloud auth application-default login --impersonate-service-account xxx@gmail.com时指定的xxx@gmail.com是个人谷歌账号,而--impersonate-service-account参数要求传入的是谷歌云服务账号邮箱(格式为[账号ID]@[项目ID].iam.gserviceaccount.com),系统无法找到个人账号对应的服务账号Gaia ID,因此抛出404错误。
解决步骤
1. 创建谷歌云服务账号
- 登录谷歌云控制台,进入你的目标项目
- 导航到「IAM与管理」→「服务账号」
- 点击「创建服务账号」,填写账号名称、ID(自动生成或自定义),完成创建
- 记录生成的服务账号邮箱(格式如
my-text-to-speech-sa@my-project-12345.iam.gserviceaccount.com)
2. 为服务账号授予Text-to-Speech权限
- 在服务账号列表中找到刚创建的账号,点击「权限」选项卡
- 点击「添加权限」,搜索并选择
Cloud Text-to-Speech Editor或Cloud Text-to-Speech Admin权限,保存配置
3. 重新生成本地应用默认凭据(ADC)
- 先清除旧的凭据:执行命令
gcloud auth application-default revoke - 使用正确的服务账号邮箱重新登录:
gcloud auth application-default login --impersonate-service-account [你的服务账号邮箱] - 按照提示在浏览器中完成授权流程
4. 确认Text-to-Speech API已启用
- 在谷歌云控制台搜索「Cloud Text-to-Speech API」,确保API状态为「已启用」(未启用的话点击「启用」按钮)
备选方案:直接使用服务账号密钥文件
如果不想使用账号 impersonation,也可以直接下载服务账号的密钥文件,在代码中指定凭据路径:
var client = new TextToSpeechClientBuilder { CredentialsPath = @"C:\path\to\your\service-account-key.json", GrpcAdapter = RestGrpcAdapter.Default }.Build();
内容的提问来源于stack exchange,提问作者ggg uuu
相关产品推荐
相关产品推荐

