使用服务器上生成的AccessToken连接到GCP文本到语音



我希望能够使用服务器上生成的访问令牌从react.js前端连接到GCP文本到语音。我调整了链接回复中的代码以生成访问令牌。然而,我在文档中找不到如何使用该令牌从前端连接到GCP。

为了简单起见,我想从修改文档中链接的工作节点.js示例开始,使用硬编码的访问令牌而不是默认凭据文件来连接服务。

以下是我的尝试(与示例相比,仅修改了client的构造(:

'use strict';
function main() {
// [START tts_quickstart]
// Imports the Google Cloud client library
const textToSpeech = require('@google-cloud/text-to-speech');
// Import other required libraries
const fs = require('fs');
const util = require('util');
// Creates a client
const client = new textToSpeech({tk: 'ya29.c.Kp8BCQj<etc.>'}).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
const writeFile = util.promisify(fs.writeFile);
await writeFile('output.mp3', response.audioContent, 'binary');
console.log('Audio content written to file: output.mp3');
}
quickStart();
// [END tts_quickstart]
}
main(...process.argv.slice(2));

我得到一个错误,textToSpeech不是构造函数。如何修复此示例以使用访问令牌连接到GCP文本到语音?

遗憾的是,无法使用Text to Speech Nodejs客户端库通过访问令牌进行身份验证。Node运行时中的TextToSpeechClient只接受可以从服务帐户中找到的凭据对象。

根据您问题中包含的SO示例,它生成访问令牌并在Android中使用。这是有意义的,因为目前还没有Android的客户端库,所以OP使用Text-To-Speech REST API来创建HTTP请求。使用HTTP请求需要访问令牌来进行身份验证,因此SO示例的解决方案。

我的建议如下:

  1. 调整类似于SO示例的解决方案,即通过HTTP发送请求,以便您可以使用访问令牌进行身份验证
  2. 使用不同的编程语言,如Python(由于您使用的是React,所以似乎不太可能(。在Python客户端库中,可以使用访问令牌进行身份验证,因为它接受凭据对象

此外,为了添加您在客户端对象上错误地传递参数。应该是const client = new textToSpeech.TextToSpeechClient(object);

相关内容

  • 没有找到相关文章

最新更新