我正在尝试使用node.js客户端Google Speech to Text和Google Cloud Function转录音频文件。 不幸的是,我收到此错误:
错误:5 NOT_FOUND:找不到请求的实体
我以为它来自身份验证问题,但我不确定。
首先,我假设GCF将使用ADC(应用程序默认凭据),但没有凭据也尝试过。 之后,我将服务帐户中的client_email和private_key添加到了SpeechClient选项参数中,但是没有用。 我添加了projectId和keyFilename ...不太好。
也许这不是好方法……我不知道!
这是我的代码。感谢您的帮助。
const audioFilename = 'gs://' + outputBucket.name + '/' + event.data.name;
const request = {
"config": {
"enableWordTimeOffsets": false,
"languageCode": "fr-FR",
"encoding":"FLAC"
},
"audio": {
"uri": audioFilename
}
}
const options = {
credentials :{
projectId: 'xxxxxx',
keyFilename: './xxxxx.json',
client_email:'xxxx@xxxxx',
private_key:'xxxxxxxxx'
}
};
const client = new speech.SpeechClient(options);
client
.longRunningRecognize(request)
.then(data => {
const response = data[0];
const operation = response;
operation.on('progress', (metadata, apiResponse) => {
console.log(JSON.stringify(metadata))
});
// Get a Promise representation of the final result of the job
return operation.promise();
})
.then(data => {
const [response] = data[0];
const content = response.results
.map(result => result.alternatives[0].transcript)
.join('\n');
console.log(`Transcription: ${content}`);
resolve(content);
})
.catch(err => {
reject(err);
});