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.audio
和 req.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。
我正在尝试使用 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.audio
和 req.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。