Google Cloud 语音转文本 v2 给出错误解码配置:必需的一个字段“解码配置”必须有一个初始化字段

问题描述 投票:0回答:1

这是我的要求:

发布至:https://us-central1-speech.googleapis.com/v2/projects/{SECRET}/locations/us-central1/recognizers/_:batchRecognize

{
  "processingStrategy": "DYNAMIC_BATCHING",
  "files": [
    {
      "uri": "gs://{SECRET}/transcribes/1704048500788"
    }
  ],
  "recognitionOutputConfig": {
    "inlineResponseConfig": {}
  },
  "config": {
    "languageCodes": [
      "he-IL"
    ],
    "model": "chirp",
    "autoDecodingConfig": {}
  }
}

创建的操作,这是操作的响应:

{
  "gs://{SECRET}/transcribes/1704044534650": {
    "error": {
      "code": 3,
      "message": "The RecognitionConfig proto is invalid:\n  * decoding_config: required oneof field 'decoding_config' must have one initialized field"
    },
    "metadata": {
      "totalBilledDuration": "0s"
    },
    "transcript": {},
    "inlineResult": {
      "transcript": {}
    }
  }
}

我试图遵循此处的确切参考:https://cloud.google.com/speech-to-text/v2/docs/reference/rest/v2/projects.locations.recognizers#RecognitionConfig

但是还是不行。我也尝试手动设置解码选项,但仍然不起作用。 当我手动设置解码时遇到完全相同的问题。

这是我手动设置的主体:

{
  "processingStrategy": "DYNAMIC_BATCHING",
  "files": [
    {
      "uri": "gs://{SECRET}/transcribes/1704048774055"
    }
  ],
  "recognitionOutputConfig": {
    "inlineResponseConfig": {}
  },
  "config": {
    "languageCodes": [
      "he-IL"
    ],
    "model": "chirp",
    "explicitDecodingConfig": {
      "audioChannelCount": 1,
      "encoding": "LINEAR16",
      "sampleRateHertz": 16000
    }
  }
}

有什么想法吗?

google-cloud-platform google-cloud-speech
1个回答
0
投票

我用这个 https://console.cloud.google.com/speech/recognizers/list 来生成识别器。然后我用这个 https://console.cloud.google.com/speech/transcriptions/list 进行转录。接下来,我单击顶部菜单栏上的复制代码按钮来获取 Nodejs 代码,它就可以工作了。

const fullPath = getStorage().bucket().file(

${uid}/${id}.m4a
) .cloudStorageURI.href;

console.log(`Full path: ${fullPath}`);

const audioFiles = [{ uri: fullPath }];

// Full recognizer resource name created from `https://console.cloud.google.com/speech/recognizers/list?hl=en&project=${projectid}`
const recognizerName =
  `projects/${projectid}/locations/${location}/recognizers/${name-of-recognizer-created}`;

const recognitionConfig = {
  autoDecodingConfig: {},
  model: "chirp",
  languageCodes: ["auto"],
  features: {
    enableWordTimeOffsets: false,
    enable_word_confidence: false,
  },
};

const outputPath = {
  inlineResponseConfig: {},
};

const request = {
  recognizer: recognizerName,
  files: audioFiles,
  config: recognitionConfig,
  recognitionOutputConfig: outputPath,
};

const callBatchRecoqnize = async () => {
  const [operation] = await client.batchRecognize(request);
  const [response] = await operation.promise();
  return response;
};
© www.soinside.com 2019 - 2024. All rights reserved.