Создайте объект в облачном хранилище Google из текста в речь с помощью Adalo

# #json #api #google-cloud-storage #httprequest

Вопрос:

Я создаю приложение с помощью Adalo и создал пользовательское действие, в котором я создаю файл преобразования текста в речь. В ответе API я получаю «аудиоКонтент». Теперь я хотел бы сделать вызов API, в котором я создам новый объект в облачном хранилище Google с помощью аудиоконтента. У меня уже есть моя конечная точка (https://storage.googleapis.com/upload/storage/v1/b/MYBUCKET/o), метод (СООБЩЕНИЕ) и следующие параметры запроса: имя=тест, тип загрузки=носитель и тип содержимого=аудио/mpeg. Что мне нужно поместить в тело JSON для запроса?

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

что-то вроде этого? Пожалуйста, помогите!

С наилучшими пожеланиями, Бен

Комментарии:

1. Все еще борюсь с этим… Есть какие-нибудь идеи?

2. Действительно нужно было бы найти решение! Пожалуйста, помогите!

Ответ №1:

Если вы сохранили ответ из текста в речь в виде текстового файла , который содержит {"audioContent": "(binary data)"} , вы должны декодировать его в любом формате, который вы указали в своем запросе в разделе Преобразование текста в речь. Вы можете расшифровать его таким образом (допустим, вы указали MP3 в своем запросе).:

 base64 your_file_that_contains_your_audiocontent.txt -d > your_audio.mp3
 

ПРИМЕЧАНИЕ: по умолчанию преобразование текста в речь кодирует содержимое в base64, следовательно, декодирование с использованием base64.

Как только вы получите свой аудиофайл, вам не понадобится тело JSON для запроса. См. раздел Загрузка объектов для справки: Просто отправьте запрос на публикацию со следующими параметрами:

 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=mediaamp;name=your_audio.mp3"
 

Комментарии:

1. Спасибо, что откликнулись!! Хорошо, а что, если я не смогу сохранить файл txt или mp3 локально? Могу ли я каким-то образом включить расшифровку в запрос POST или что-то в этом роде? Или как я могу декодировать двоичные данные в mp3 в HTTP-запросе? Еще раз спасибо!

2. @beng Я думаю, что вам все равно нужно будет сохранить файлы локально, так как загрузка файлов в GCS-это копирование локального файла в облако. Вы можете опубликовать новый вопрос для этого, чтобы сообщество могло поделиться своими идеями 🙂

3. Хорошо, я понимаю, спасибо. Просто я работаю с Adalo и не могу сохранять файлы в базе данных. Последний вопрос: Как я могу сохранить файл txt в GCS, а затем загрузить его в GCS в формате mp3? Или это невозможно?

4. @бенг Это то, о чем я могу думать прямо сейчас. Если это возможно 1.) сохраните текст в речевой ответ на переменную 2.) преобразуйте его с помощью конвертера base64 в своем сценарии 3.) попробуйте проверить потоковую загрузку , чтобы загрузить файл без сохранения его локально.