使用 cURL 或 Python 让 Google Cloud Text to Speech 工作

Posted

技术标签:

【中文标题】使用 cURL 或 Python 让 Google Cloud Text to Speech 工作【英文标题】:Getting Google Cloud Text to Speech to work using cURL or Python 【发布时间】:2019-03-22 05:47:17 【问题描述】:

我尝试遵循以下建议:

Google Cloud Text To Speech API Quickstart example

Google Cloud Text-to-Speech Interface Confusion (How do I download the mp3 files?)

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

但即使有所有这些信息,我也无法让它工作。 关于分步指南,我被困在:

“然后你可以像这样使用 curl 命令”或“3)他们提供了一个通用文件的示例请求:”

代码在哪里输入? Powershell 只给我错误,不幸的是这些错误是德语,所以我尝试翻译它们。我不认为它打算在那里使用代码,因为我除了复制并粘贴带有我的凭据的行之外什么也没做。

这是有问题的错误,当我将链接 #2 的代码(步骤 3)粘贴到 Powershell 中时:

In line: 3 characters: 5
+ --data "
+ ~
Expression is missing after the unary operator "-".
In line: 3 characters: 5
+ --data "
+ ~~~~
Unexpected token "data" in expression or statement.
In line: 3 characters: 9
+ --data "
+ ~
In the section "Data" the associated statement block is missing.
In line: 17 characters: 6
+ "" https://texttospeech.googleapis.com/v1/text:synthesize "> synth ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~
Unexpected Token "" https://texttospeech.googleapis.com/v1/text:synthesize "" in expression or statement.
    + CategoryInfo: ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId: MissingExpressionAfterOperator

【问题讨论】:

我可以在 Windows 环境中重现相同的错误,我认为这里的问题是您如何指定 cUrl。正如我所看到的,PS 中的命令应该是不同的,正如some other questions 所解释的那样。但是,我对 PS 不熟悉,您可以对此做进一步的研究。 【参考方案1】:

我已经用Google Cloud Text-to-Speech Interface Confusion (How do I download the mp3 files?) 进行了测试。我在步骤3) 中遇到了这个错误,我猜这就是你所看到的:


  "error": 
    "code": 403,
    "message": "Your application has authenticated using end user credentials from the Google Cloud SDK or Google Cloud Shell which are not supported by the texttospeech.googleapis.com. We recommend that most server applications use service accounts instead. For more information about service accounts and how to use them in your application, see https://cloud.google.com/docs/authentication/.",
    "status": "PERMISSION_DENIED"
  

所以我的问题是身份验证。为了解决这个问题,我按照this document中的步骤操作:

    将服务帐号密钥下载为 JSON 文件 运行export GOOGLE_APPLICATION_CREDENTIALS="[PATH]"(我使用的是Linux环境)

在您的情况下,您应该运行 $env:GOOGLE_APPLICATION_CREDENTIALS="[PATH]",因为您使用的是 Powershell。

【讨论】:

非常感谢您的帮助!!我应该更好地澄清 - 对不起。身份验证过程似乎是成功的,至少它不是我现在问题的罪魁祸首。我翻译了错误代码并编辑了我的帖子。我在编程方面经验不足,但看起来我正在使用 powershell 无法使用的语法。由于没有进一步说明如何处理步骤 3) 中的代码,老实说,我只是将其粘贴到终端中,但这并不太顺利......你知道我做错了什么吗?

以上是关于使用 cURL 或 Python 让 Google Cloud Text to Speech 工作的主要内容,如果未能解决你的问题,请参考以下文章

python 构建要在Google地球或Google地图(MyMaps)中使用的KML文件

无需包装器或使用 API 访问 Google 趋势数据:Python

使用 Google BigQuery Python 库创建或替换表

我可以使用 AccountManager 让用户使用他们的 Google 帐户登录吗?

使用 Python / Django 的 Google API 示例的 Oauth

Google Appengine:Java 或 Python [重复]