Google Cloud Text-to-Speech - 时间点 returns 一个空数组

Google Cloud Text-to-Speech - Timepoint returns an empty array

我正在使用 Google TTS API 并且想使用时间点以便在正确的时间显示句子中的单词。 (如字幕)。不幸的是,我无法让它工作。

HTTP请求

POST https://texttospeech.googleapis.com/v1beta1/text:synthesize

请求正文

  "input": {
      "ssml": "<speak>Hello World</speak>"
      },
  "voice": {
    "languageCode": "nl-NL",
    "name": "nl-NL-Wavenet-E",
    "ssmlGender": "FEMALE"
  },
  "audioConfig": {
    "audioEncoding": "MP3"
  },
  "enableTimePointing": [
    "SSML_MARK"
  ]
}

响应正文

{
    "audioContent": "base64"
    "timepoints": [],
    "audioConfig": {
        "audioEncoding": "MP3",
        "speakingRate": 1,
        "pitch": 0,
        "volumeGainDb": 0,
        "sampleRateHertz": 24000,
        "effectsProfileId": []
    }
}

我希望在 return 中有一个时间点对象,但如您所见,它 return 是一个空数组。

要获取时间点,您只需在输入中添加 <mark>。这是使用您的请求正文的示例。

请求正文:

{
  "input": {
      "ssml": "<speak><mark name=\"1st\"/>Hello <mark name=\"2nd\"/>world</speak>"
      },
  "voice": {
    "languageCode": "nl-NL",
    "name": "nl-NL-Wavenet-E",
    "ssmlGender": "FEMALE"
  },
  "audioConfig": {
    "audioEncoding": "MP3"
  },
  "enableTimePointing": [
    "SSML_MARK"
  ]
}

我添加了 <mark name=\"1st\"/><mark name=\"2nd\"/> 来创建 2 个标记,只是为了展示如何添加多个标记。如果您只需要一个标记,只需删除第二个标记,响应也应该只显示一个标记。

响应(我刚刚包含了 base64 的片段):