Как получить временные метки SSML ‹mark› из API преобразования текста в речь Google Cloud

Я хочу использовать маркеры SSML через Google Cloud API преобразования текста в речь для запроса синхронизации этих маркеров в аудиопотоке. Эти временные метки необходимы для предоставления подсказок для эффектов, выделения слов / разделов и обратной связи с пользователем.

Я нашел этот вопрос, который актуален, хотя вопрос относится к метки времени для каждого слова, а не для тега SSML <mark>.

Следующий запрос API возвращает ОК, но показывает отсутствие запрошенных данных маркера. Это использует Cloud Text-to-Speech API v1.

{
 "voice": {
  "languageCode": "en-US"
 },
 "input": {
  "ssml": "<speak>First, <mark name=\"a\"/> second, <mark name=\"b\"/> third.</speak>"
 },
 "audioConfig": {
  "audioEncoding": "mp3"
 }
} 

Ответ:

{
 "audioContent":"//NExAAAAANIAAAAABcFAThYGJqMWA..."
}

Что обеспечивает только синтезированный звук без какой-либо контекстной информации.

Есть ли запрос API, который я не замечаю, который может предоставить информацию об этих маркерах, например, в случае с IBM Watson и Amazon Polly?


person James    schedule 06.08.2019    source источник
comment
Вы нашли для этого решение? Похоже, API Google не поддерживает речевые знаки. Верный?   -  person Bret    schedule 09.07.2020


Ответы (1)


Похоже, это поддерживается в Cloud Text-to-Speech API v1beta1: https://cloud.google.com/text-to-speech/docs/reference/rest/v1beta1/text/synthesize#TimepointType.

Вы можете использовать https://texttospeech.googleapis.com/v1beta1/text:synthesize. Установите TimepointType на SSML_MARK. Если это поле не задано, по умолчанию точки времени не возвращаются.

person i_am_momo    schedule 01.10.2020