使用 Adalo 在 Google Cloud Storage 中创建从文本到语音响应的对象

问题描述

我正在使用 Adalo 构建一个应用程序,并创建了一个自定义操作,我在其中创建了一个文本到语音文件。在 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)"}

有这样的吗?请帮忙!

最好的问候, 本

解决方法

如果您将 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"