Использование SSML (символы интерпретации как =) удаляет пунктуацию

Если я использую тег <say-as interpret-as="characters"></say-as> в своем голосовом ответе, Google Ассистент внезапно произносит весь ответ по-другому. Похоже, Google Ассистент убирает знаки препинания без всякой причины. Паузы, которые инициируются знаком «.», Внезапно исчезают.

Чтобы воспроизвести это поведение, просто запустите действия в симуляторе Google, выберите «Английский (США)» в качестве языка и прослушайте этот звуковой фрагмент:

<speak>This is a test with number spelled as digit. The number is <say-as interpret-as="characters">12345</say-as>. Ask me "What to do with this number?" if you'd like to have more information.</speak>

Если удалить тег <say-as interpret-as="characters"></say-as>, произношение снова заработает:

<speak>This is a test with number spelled as digit. The number is 12345. Ask me "What to do with this number?" if you'd like to have more information.</speak>

Теперь это звучит так, как должно звучать. Вы получите тот же результат, если вообще не укажете тег speak.

На немецком языке этот вопрос стоит еще острее. Использование <say-as interpret-as="characters"></say-as> в немецком голосовом ответе приводит к ответу, который, честно говоря, трудно понять.


person Toni    schedule 06.12.2017    source источник


Ответы (1)


Это из-за «нормализации текста» в процессе TTS Google Assistant.

Из-за этого SSML без использования элемента <s> не всегда будет делать то, что вы ожидаете от пауз, если вы используете встроенную разметку, такую ​​как <say-as>.

Вот пример использования <s> для предоставления намеченных пауз в TTS:

<speak>
  This is a test with number spelled as digit.
  <s>The number is <say-as interpret-as="characters">12345</say-as>.</s>
  Ask me "What to do with this number?" if you'd like to have more information.
</speak>

Вы по-прежнему можете свободно вводить несколько предложений, разделенных точками, в SSML без необходимости <s> разделять предложения и позволять Google Assistant обрабатывать создание разрывов, если вы не используете встроенную разметку, такую ​​как <say-as>.

Дополнительную информацию об элементе <s> можно найти в документации, где говорится о <p>,<s> https://developers.google.com/actions/reference/ssml.

Он будет ссылаться на спецификацию W3C для этих элементов.

person Shuyang Chen    schedule 08.12.2017