heroku - 在 Heroku 上使用 Google 的 TextToSpeech API

标签 heroku oauth-2.0 google-cloud-platform text-to-speech google-cloud-speech

我正在尝试使用Google's TextToSpeech REST API在 Heroku 上。

我有一个服务帐户 key 文件,在本地运行良好,但我不知道如何使其在未安装 Google Cloud SDK 的 Heroku 上运行。也就是说,考虑这个sample curl call from the quickstart :

curl -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) -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-output.txt

这取决于bash命令$(gcloud auth application-default print-access-token),这又取决于正在安装的google cloud SDK(我本地安装了mac版本) .

我研究过使用 ruby client library ,我相信如果它通过 GOOGLE_CLOUD_KEYFILE_JSON 环境变量具有 key 文件,它会在后台处理身份验证,但它似乎不支持 TextToSpeech。

如何在 Heroku 上进行 TextToSpeech API 调用?

最佳答案

您实际上只需要使用服务帐户凭据即可通过 OAuth 2.0 获取访问 token 。您可以手动执行此操作或使用 SDK。 Google 作为一组语音转文本客户端库,位于此处的链接。支持多种语言,包括 Ruby、C#、Go、Java、Node.js、PHP 和 Python:

您可以使用以下命令安装 Ruby SDK:

$ gem install google-cloud-speech

然后将文件路径作为环境变量添加到您的凭据文件中:

$ export GOOGLE_APPLICATION_CREDENTIALS="/path/to[FILE_NAME].json"

我使用 Go,这里有一个 Google 文本转语音示例,调用 text.synthesize (如您的示例)和 voices.list。此示例将 Google key 文件内容存储在环境变量中,这样可以轻松从 Heroku 实例读取。虽然这使用 google/google-api-go-client SDK ,我刚刚注意到并会考虑升级到 GoogleCloudPlatform/google-cloud-go现在。

这会检索访问 token ,然后实例化 Google Go 客户端 SDK:

Google Go SDK 在此处支持文本转语音:

Go 也可以使用 godep 轻松访问 Heroku,如下所述:

我还有一个脚手架应用程序,它将创建为此处的 Go 应用程序启用“部署到 Heroku”按钮所需的文件:

如果您使用 Go 并有任何疑问,请告诉我。

关于heroku - 在 Heroku 上使用 Google 的 TextToSpeech API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50429362/

相关文章:

ruby-on-rails - LinkedIn OAuth 返回不明确的错误

ruby-on-rails - Heroku 上的 Rails 3.1 运行 rake db :migrate does not happen

PHP Heroku - 调用未定义函数 mb_detect_encoding()

c# - 您在哪里可以找到 GoogleOAuth2AuthenticationOptions?

google-api - 在谷歌云库中查找 script.container.ui API

python - Google App Engine 部署问题 - 未找到主应用

java - SpannerOptions 处的 Google Spanner NullPointerException

django - Heroku 在 git push 上删除文件?

javascript - 无法浏览部署到 Heroku 的 React 应用程序

java - 在java中使用XOauth2通过IMAP连接到microsoft Outlook.com