错误:5 NOT_FOUND:在LongRunningRecognize

时间:2018-10-31 14:47:25

标签: node.js google-cloud-functions google-cloud-speech

我正在尝试使用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);
  });

0 个答案:

没有答案