【问题标题】:Create object in Google Cloud Storage from Text to Speech Response with Adalo使用 Adalo 在 Google Cloud Storage 中创建从文本到语音响应的对象
【发布时间】:2021-05-07 13:06:45
【问题描述】:

我正在使用 Adalo 构建一个应用程序,并创建了一个自定义操作,我在其中创建了一个 Text to Speech 文件。在 API 响应中,我得到“audioContent”。现在我想进行 API 调用,在其中使用 audioContent 在 Google Cloud Storage 中创建一个新对象。我已经有了我的端点 (https://storage.googleapis.com/upload/storage/v1/b/MYBUCKET/o)、方法 (POST) 和这些查询参数:name=test、uploadType=media 和 contentType=audio/mpeg。我需要在请求的 JSON 正文中添加什么内容?

{"audioContent": "(binary data)"}

像这样?请帮忙!

最好的问候, 本

【问题讨论】:

  • 仍在为此苦苦挣扎...有什么想法吗?
  • 真的需要一个解决方案!请帮忙!

标签: json api google-cloud-storage httprequest


【解决方案1】:

如果您将来自 Text to Speech 的响应保存为包含 {"audioContent": "(binary data)"} 的文本文件,则应将其解码为您在 Text to Speech 中的请求中指定的任何格式。您可以这样解码(假设您在请求中指定了 MP3):

base64 your_file_that_contains_your_audiocontent.txt -d > your_audio.mp3

注意:默认情况下,Text to Speech 将内容编码为 base64,因此使用 base64 进行解码。

获得音频文件后,您将不再需要 JSON 正文来处理请求。请参阅uploading objects 以供参考:只需发送带有以下参数的 POST 请求:

curl -X POST --data-binary @/your/local/path/your_audio.mp3 \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: audio/mpeg" \
    "https://storage.googleapis.com/upload/storage/v1/b/my-bucket/o?uploadType=media&name=your_audio.mp3"

【讨论】:

  • 感谢您的回复!!好的,如果我无法在本地保存 txt 或 mp3 文件怎么办?我可以以某种方式在 POST 请求中包含解码或类似的东西吗?或者如何在 HTTP 请求中将二进制数据解码为 mp3?再次感谢!
  • @beng 我认为您仍然需要将文件保存在本地,因为将文件上传到 GCS 就是将本地文件复制到云端。您可以为此发布一个新问题,以便社区可以分享他们的想法:)
  • 好的,我明白了,谢谢。只是我在使用Adalo,无法将文件保存在数据库中。最后一个问题:如何将 txt 文件保存到 GCS,然后将其作为 mp3 上传到 GCS?还是那不可能?
  • @beng 这是我现在能想到的。如果可能的话 1.) 将文本到语音的响应存储到一个变量 2.) 使用脚本中的 base64 转换器将其转换 3.) 尝试检查 streaming uploads 以上传文件而不将其保存在本地。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-08-06
  • 1970-01-01
  • 1970-01-01
  • 2020-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多