Как загрузить ответ Google Cloud text to speech API в Cloud Storage [Node.js] - PullRequest
0 голосов
/ 26 мая 2020

Я делаю простое веб-приложение для создания аудио, используя Node.js сервер. Я хотел бы создать звук с помощью облачного API преобразования текста в речь, а затем загрузить этот звук в облачное хранилище.

(я использую Windows 10, Windows Подсистемы для Linux, Debian 10.3 и Google Chrome браузер.)

Это код на сервере Node.js.

const client = new textToSpeech.TextToSpeechClient();
        async function quickStart() {

            // The text to synthesize
            const text = 'hello, world!';

            // Construct the request
            const request = {
                input: {text: text},
                // Select the language and SSML voice gender (optional)
                voice: {languageCode: 'en-US', ssmlGender: 'NEUTRAL'},
                // select the type of audio encoding
                audioConfig: {audioEncoding: 'MP3'},
            };

            // Performs the text-to-speech request
            const [response] = await client.synthesizeSpeech(request);
            // Write the binary audio content to a local file
            console.log(response);

Я хочу загрузить response в облачное хранилище.

Могу ли я загрузить response напрямую в облачное хранилище? Или мне нужно сохранить response на сервере Node.js и загрузить его в облачное хранилище?

Я искал Inte rnet, но не смог найти способ загрузить response в облачное хранилище прямо. Так что, если есть подсказка, скажите, пожалуйста. Заранее спасибо.

1 Ответ

1 голос
/ 26 мая 2020

Вы должны иметь возможность сделать это со всем вашим кодом в одном файле. Лучший способ добиться этого - использовать облачную функцию, которая будет отправлять файл в ваше облачное хранилище. Но да, вам нужно будет сохранить свой файл с помощью Node.js, поэтому вы загрузите его в Clou Storage.

Для этого вам нужно будет сохранить файл локально, а затем загрузите его в облачное хранилище. Как вы можете проверить в полном руководстве в этом другом посте здесь , вам нужно создать файл, сохранить его локально, а затем загрузить его. Код ниже - это основная часть, которую вам нужно будет добавить в свой код.

...
const options = { // construct the file to write
     metadata: {
          contentType: 'audio/mpeg',
          metadata: {
              source: 'Google Text-to-Speech'
          }
     }
};

// copied from https://cloud.google.com/text-to-speech/docs/quickstart-client-libraries#client-libraries-usage-nodejs
const [response] = await client.synthesizeSpeech(request);
// Write the binary audio content to a local file
// response.audioContent is the downloaded file
     return await file.save(response.audioContent, options)
     .then(() => {
         console.log("File written to Firebase Storage.")
         return;
     })
     .catch((error) => {
         console.error(error);
     });
...

После того, как вы внедрите эту часть, у вас будет файл, который сохранен локально, загружен и готов к отправке. Я бы порекомендовал вам лучше взглянуть на другой пост, который я упомянул , если у вас есть больше сомнений в том, как этого добиться.

Сообщите мне, помогла ли вам эта информация!

...