Google Cloud Text-to-Speech 界面混乱(如何下载 mp3 文件?)

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

首先,我不是 programmer/developer - 我是一名多媒体设计师。我使用文本转语音生成占位符音频文件,这些文件可用于在我们录制官方音频旁白之前为动画计时。

之前我使用的是 Amazon Polly,但我想尝试一下 Google Cloud。然而,我最难弄清楚如何生成 mp3 文件并保存它们。

使用 Amazon Polly,您只需访问一个网站,在一个字段中输入您的文本,然后单击一个按钮,它就会将您的文件保存为 mp3 文件。使用 Google Cloud,它似乎远比这复杂。 "quick start" 指南让我启用 API、下载 JSON 文件、设置环境凭据、初始化 SDK 以及在命令提示符中输入代码。

我在他们的文档页面上阅读的每一个指南似乎都不可避免地把我带到一个我根本不理解的步骤。我讨厌听起来像个彻头彻尾的小丑,但这似乎让我有些不知所措。我不打算创建软件或将机器学习集成到网站中,我只是想输入几行文本并生成一个 mp3 文件。

有什么方法可以用 Google Cloud 做到这一点吗?启动页面 (https://cloud.google.com/text-to-speech/) 提供了我想要的内容,但没有下载文件的选项,只能预览它们。

在此先感谢您为这位新手提供的任何帮助。

所有 Google 的 ML 相关工具的 'general user' 用户体验都非常差,并且专为程序化使用而设计。如果您只是在寻找一些使用合​​理的基本工具,那么目前可能不是 GCP。

鉴于此,如果您愿意在开始时稍作努力,样本并不难变成更多的东西。我建议使用 command line described here.

我将添加一些初始步骤。 1) Download and setup the Gcloud SDK tools. 2) 在终端 运行 gcloud auth application-default login 中。这将打开浏览器,像登录 GCP 控制台一样登录。 3) 他们提供了通用文件的示例请求:

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/v1/text:synthesize" > synthesize-text.txt

这就是我说的体验差,代码https://texttospeech.googleapis.com/v1/text:synthesize" > synthesize-text.txt将文字转语音操作的结果写入synthesize-text.txt,txt里面是你的mp3文件。但是等等,他们希望你以编程方式使用它,这样 MP3 就不仅仅是一个直接文件,你可能想用它做一些其他事情,所以它以一种称为 Base64 的编码返回,这使得通过 http 使用二进制数据变得更容易(文本最常见的地方)。因此,您得到的不是 mp3,而是 json 文件,例如:

{ "audioContent": "//NExAASCCIIAAhEAGAAEMW4kAYPnwwIKw/BBTpwTvB+IAxIfghUfW.." }

以 // 开头的文字是您的音频。但是因为您是手动执行此操作,所以您需要将引号内的所有内容复制出来(这将是一串非常长的文本字符,以 //... 保留 // 字符)到一个名为任何您想要的新文件中,他们将其命名为 synthesize-output-base64.txt。然后 运行 base64 synthesize-output-base64.txt --decode > synthesized-audio.mp3

大功告成....原始请求允许您指定文本、语音等。但实际上,如果您正在寻找具有漂亮 UI、GCP 的休闲文本转语音还没有。

或者这条线(需要jq):

curl -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
  -H "Content-Type: application/json; charset=utf-8" \
  --data "{
    'input':{
      'text':'Hello 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/v1/text:synthesize" | jq --raw-output '.audioContent' | base64 --decode > synthesized-audio.mp3

虽然 Google Wavenet 语音似乎是最好的,但 Google 并不像 Microsoft 那样提供流畅的 Speech Studio。只需在此处尝试 LITE 版本:https://speech.microsoft.com/audiocontentcreation