Google Cloud文字转语音API - 权限错误

时间:2018-04-12 15:50:55

标签: google-cloud-platform text-to-speech google-cloud-speech

我正在尝试按照这些说明设置Google Cloud Text-to-Speech API - https://cloud.google.com/text-to-speech/docs/quickstart 我已成功按照步骤1-6设置Google SDK并使用服务帐户凭据进行身份验证。 但是,当我尝试运行示例HTTP请求以合成语音时,我收到以下错误:

  

云之间的文字转语音API尚未在项目可用的auth-library中使用,之前或已被禁用。访问https://console.developers.google.com/apis/api/texttospeech.googleapis.com/overview?project=usable-auth-library启用它,然后重试。

当关注错误消息中的链接时,它会转到以下页面:

  

API" texttospeech.googleapis.com"不存在或您无权访问它。

我很感激你的帮助。

3 个答案:

答案 0 :(得分:2)

我更容易使用API​​密钥集成到大多数plarforms中,而不是Google在其文档上推荐的服务帐户密钥。

这些是获取API密钥所需的所有步骤

  1. Cloud Console中创建项目(或使用现有项目)。
  2. 确保为您的项目启用了billing
  3. 启用Text-to-Speech API
  4. 创建API key
  5. 您可能只需要最后一步(如果您按照所说的那样正确地执行了所有步骤)。

    然后你可以像这样使用curl命令

    Curl -H "X-Goog-Api-Key: PUT_YOUR_API_KEY_HERE" \
      -H "Content-Type: application/json; charset=utf-8" \
      --data "{
        'input':{
          'text':'Android is a mobile operating system developed by Google,
             based on the Linux kernel and designed primarily for
             touchscreen mobile devices such as smartphones and tablets.'
        },
        'voice':{
          'languageCode':'en-gb',
          'name':'en-GB-Standard-A',
          'ssmlGender':'FEMALE'
        },
        'audioConfig':{
          'audioEncoding':'MP3'
        }
      }" "https://texttospeech.googleapis.com/v1beta1/text:synthesize" > synthesize-text.txt
    

答案 1 :(得分:0)

如果这有助于任何人,我在通过Google控制台将API添加到具有JWT凭据的现有Google服务帐户后遇到了此错误。

我点击了快速入门协议的链接,并且能够让它工作在下面的页面上,我点击了Enable the API

https://cloud.google.com/text-to-speech/docs/quickstart-protocol

Text-to-Speech Quickstart

在下一页上,我点击了Create a project下拉列表并选择了一个现有项目。没有必要获得新的证书。

enter image description here

我使用Go然后能够使用golang.org/x/oauth2/google运行我的代码。

答案 2 :(得分:0)

一旦创建了API密钥,这就是您的curl直线,它可以获取结果,对其进行解析,对其进行格式化并对其进行解码。

  1. https://console.cloud.google.com/apis/credentials?showWizardSurvey=true处生成API密钥
  2. 安装jq JSON解析器
  3. 运行:
curl -H "X-Goog-Api-Key: APIKEYHERE" -H "Content-Type: application/json; charset=utf-8" --data "{ 'input':{ 'text':'I\'ve added the event to your calendar.' }, 'voice':{ 'languageCode':'en-gb', 'name':'en-GB-Standard-A', 'ssmlGender':'FEMALE' }, 'audioConfig':{ 'audioEncoding':'MP3' } }" "https://texttospeech.googleapis.com/v1/text:synthesize" | jq '.audioContent' | cut -d "\"" -f 2 > encodedOutput && base64 --decode encodedOutput > texttospeech.mp3