在Heroku上使用Google的TextToSpeech API

时间:2018-05-19 20:48:30

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

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

我有一个服务帐户密钥文件,在本地工作正常,但我无法弄清楚如何在没有安装Google Cloud SDK的Heroku上运行它。也就是说,考虑这个sample curl call from the quickstart

$(gcloud auth application-default print-access-token)

取决于bash命令GOOGLE_CLOUD_KEYFILE_JSON,后者依赖于正在安装的Google云端SDK(我在本地安装了mac版本)。

我研究过使用ruby client library,如果它通过.shadow env变量拥有密钥文件,我相信它会在引擎盖下处理身份验证,但它似乎不支持TextToSpeech。

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

1 个答案:

答案 0 :(得分:2)

您只需要使用服务帐户凭据通过OAuth 2.0获取访问令牌。您可以手动执行此操作或使用SDK。谷歌作为一组语音到文本客户端库在此链接。支持一些语言,包括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密钥文件内容存储在环境变量中,以便于从Heroku实例中读取。虽然这使用google/google-api-go-client SDK,但我刚刚注意到并且现在会考虑升级到GoogleCloudPlatform/google-cloud-go

这将检索访问令牌,然后实例化Google Go Client SDK:

Google Go SDK支持文字转语音:

使用此处记录的godep也很容易使用Heroku:

我还有一个脚手架应用程序,它将创建启用"部署到Heroku"所需的文件。这里的Go应用按钮:

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