Javascript 请求云函数

Javascript request to a cloud function

我正在尝试使用 Google Speech to Text API,因此我正在尝试在 Cloud Function (Cloud Function API) 中实现它。 问题是我想从 javascript 文件调用该函数,该文件是 运行 创建语音生成订单的网站部分代码。那么我有 3 个问题:

· 我不知道如何在调用URL 的同时发送函数需要的参数。我猜 POST。 数据是这样的:

const data = {
    audio: base64AudioFormat,
    lan: language
}

· 然后一旦在云功能中,我不知道如何修改 Google 给定的代码,以便它在这种情况下工作。 给出的代码是这样的:

// Imports the Google Cloud client library
const fs = require('fs');
const speech = require('@google-cloud/speech');

// Creates a client
const client = new speech.SpeechClient();

const config = {
  encoding: LINEAR16,
  sampleRateHertz: 16000,
  languageCode: (my 'lan' parameter from data),
};
const audio = {
  content: (my 'base64AudioFormat' parameter from data),
};

const request = {
  config: config,
  audio: audio,
};

// Detects speech in the audio file
const [response] = await client.recognize(request);
const transcription = response.results
  .map(result => result.alternatives[0].transcript)
  .join('\n');
console.log('Transcription: ', transcription);

· 最后我想在我的 javascript 文件中接收 API returns 的字符串。我猜是 GET。

如有任何帮助,我将不胜感激!

我用你的代码在云函数中使用。此云函数将接受数据为 { "audio": "base64 format data", "lan": "en-US"} 的请求。请求参数将被放入 int req.body.audioreq.body.lan,您现在可以在您的代码中使用它们。

为了测试,我使用了quickstart of speech to text中的示例数据。云函数使用Node.js14.

index.js:

exports.speechToText = async (req, res) => {

// Imports the Google Cloud client library
const speech = require('@google-cloud/speech');

// Creates a client
const client = new speech.SpeechClient();

const encoding = 'LINEAR16';
const sampleRateHertz = 16000;

const config = {
  encoding: encoding,
  sampleRateHertz: sampleRateHertz,
  languageCode: req.body.lan,
};

const audio = {
  content: req.body.audio,
};

const request = {
  config: config,
  audio: audio,
};

// Detects speech in the audio file
const [response] = await client.recognize(request);
const transcription = response.results
  .map(result => result.alternatives[0].transcript)
  .join('\n');
console.log('Transcription: ', transcription);

  res.status(200).send(transcription);
};

package.json:

{
  "dependencies": {
    "@google-cloud/speech": "^4.5.1"
  },
  "name": "sample-http",
  "version": "0.0.1"
}

下面是我在云函数中测试代码时的请求和响应:

如果您想查看触发函数的不同方式,请参阅 Cloud function Triggers