Referencia del lenguaje de marcación de síntesis de voz (SSML) (beta)

La plataforma Actions on Google admite varias funciones beta de SSML, además del Elementos de SSML estándar de Actions on Google.

Resumen de las funciones de SSML en versión beta compatibles:

  • <phoneme>: Personaliza la pronunciación de palabras específicas.
  • <say-as interpret-as="duration">: Especifica las duraciones.
  • <voice>: Alterna entre voces en la misma solicitud.
  • <lang>: Usa varios idiomas en la misma solicitud.
  • Timepoints: Usa la etiqueta <mark> para mostrar el punto temporal de un valor especificado en tu transcripción.

<phoneme>

Puedes usar la etiqueta <phoneme> para producir pronunciaciones personalizadas de palabras intercaladas. Actions on Google acepta las IPA y alfabetos fonéticos de X-SAMPA. Consulta la página de fonemas para obtener una lista de las lenguajes y fonemas.

Cada aplicación de la etiqueta <phoneme> dirige la pronunciación de una sola palabra:

  <phoneme alphabet="ipa" ph="ˌmænɪˈtoʊbə">manitoba</phoneme>
  <phoneme alphabet="x-sampa" ph='m@"hA:g@%ni:'>mahogany</phoneme>

Marcadores de acentuación

Existen hasta tres niveles de acentuación que se pueden colocar en una transcripción:

  1. Estrés principal: Se indica con ˈ en IPA y " en X-SAMPA.
  2. Estrés secundario: Se indica con ˌ en IPA y % en X-SAMPA.
  3. No acentuado: No se indica con un símbolo (en ninguna notación).

Algunos idiomas pueden tener menos de tres niveles o no denotan ninguna posición de acentuación. Consulta la página de fonemas para ver lo siguiente: los niveles de estrés disponibles en tu idioma. Los marcadores de estrés se colocan en inicio de cada sílada tensa. Por ejemplo, en inglés de EE.UU.:

Palabra de ejemplo IPA X-SAMPA
agua ˈwɑːtɚ "wA:t@`
underwater ˌʌndɚˈwɑːtɚ %Vnd@"wA:t@

Transcripciones amplias frente a transcripciones estrechas

Como regla general, mantén tus transcripciones más amplias y fonéticas. Por ejemplo, en inglés de EE.UU., transcribe t intervocal (en lugar de usar un presionar):

Palabra de ejemplo IPA X-SAMPA
mantequilla ˈbʌtɚ en lugar de ˈbʌɾɚ "bVt@` en lugar de "bV4@`

Hay algunos casos en los que el uso de la representación fonética hace que los resultados de TTS no suenen naturales (por ejemplo, si la secuencia de fonemas es difícil de pronunciar).

Un ejemplo de esto es la asimilación por voz de s en inglés. En este caso, la asimilación se debe reflejar en la transcripción:

Palabra de ejemplo IPA X-SAMPA
cats ˈkæts "k{ts
dogs ˈdɑːgz en lugar de ˈdɑːgs "dA:gz en lugar de "dA:gs

Reducción

Cada sílaba debe contener una (y solo una) vocal. Esto significa que debes evitar las consonantes silábicas y, en su lugar, transcribirlas con una vocal reducida. Por ejemplo:

Palabra de ejemplo IPA X-SAMPA
kitten ˈkɪtən en lugar de ˈkɪtn "kIt@n en lugar de "kitn
kettle ˈkɛtəl en lugar de ˈkɛtl "kEt@l en lugar de "kEtl

Silabeo

De manera opcional, puedes usar . para especificar límites de sílabas. Cada sílabo debe contener una (y solo una) vocal. Por ejemplo:

Palabra de ejemplo IPA X-SAMPA
readability ˌɹiː.də.ˈbɪ.lə.tiː %r\i:.d@."bI.l@.ti:

Duraciones

La plataforma Actions on Google admite <say-as interpret-as="duration"> para realizar correctamente de lecturas de lectura. Por ejemplo, el siguiente ejemplo se leería como "cinco hours and treinta minutes":

<say-as interpret-as="duration" format="h:m">5:30</say-as>

La string de formato admite los siguientes valores:

Abreviatura Valor
h hora
m minuto
s segundos
ms milésimas de segundo

<voice>

La etiqueta <voice> te permite usar más de una voz en una sola solicitud de SSML. En el siguiente ejemplo, la voz predeterminada es una voz masculina en inglés. Todas las palabras se sintetizarán en esta voz, excepto “qu'est-ce qui t'amène ici”, que se verbalizará en francés con una voz femenina en lugar del idioma (inglés) y género (masculino) predeterminados.

<speak>And then she asked, <voice language="fr-FR" gender="female">qu'est-ce qui
t'amène ici</voice><break time="250ms"/> in her sweet and gentle voice.</speak>

También puedes usar una etiqueta <voice> para especificar una voz individual (el nombre de la voz en la página de idiomas y voces compatibles) en lugar de especificar language o gender:

<speak>The dog is friendly<voice name="fr-CA-Wavenet-B">mais la chat est
mignon</voice><break time="250ms"/> said a pet shop
owner</speak>

Cuando usas la etiqueta <voice>, Actions on Google espera recibir un elemento name (el nombre de la voz que usar) o una combinación de los siguientes atributos. Los tres son opcionales, pero debes incluir al menos uno si no proporcionas una name

  • gender: Es male, female o neutral.
  • variant: Se usa como tiebreaker en los casos en los que hay varios de qué voz usar según tu configuración.
  • language: El idioma que deseas. Solo se puede especificar un idioma en una etiqueta <voice> determinada. Especifica tu idioma en formato BCP-47. Puedes encontrar el código BCP-47 para el idioma en la columna código de idioma de la página de idiomas y voces compatibles.

También puedes controlar la prioridad relativa de cada uno de los atributos gender, variant y language mediante dos etiquetas adicionales: required y ordering.

  • required: Si un atributo se designa como required y no se configura correctamente, la solicitud falla.
  • ordering: Cualquier atributo enumerado después de una etiqueta ordering se considera como atributo preferido en lugar de obligatorio. El SSML considera atributos preferidos según el criterio del mejor esfuerzo, en el orden en que se enumeran después de la etiqueta ordering. Si se configuran atributos preferidos incorrectamente, es posible que Actions on Google siga mostrando una voz válida, pero se eliminó la configuración incorrecta.

Ejemplos de configuración mediante las etiquetas required y ordering:

<speak>And there it was <voice language="en-GB" gender="male" required="gender"
ordering="gender language">a flying bird </voice>roaring in the skies for the
first time.</speak>
<speak>Today is supposed to be <voice language="en-GB" gender="female"
ordering="language gender">Sunday Funday.</voice></speak>

<lang>

Puedes usar <lang> para incluir texto en varios idiomas dentro de la misma solicitud de SSML. Todos los idiomas se sintetizarán con la misma voz, a menos que uses la etiqueta <voice> para cambiar la voz de forma explícita. La cadena xml:lang debe contener el idioma de destino en formato BCP-47 (este valor aparece como "código de idioma" en las voces compatibles tabla). En el siguiente ejemplo, "chat" se verbalizará en francés en lugar de el idioma predeterminado (inglés):

<speak>The french word for cat is <lang xml:lang="fr-FR">chat</lang></speak>

La plataforma de Actions on Google admite la etiqueta <lang> en función del mejor esfuerzo. Es posible que no todas las combinaciones de idiomas producen los mismos resultados de calidad si se especifican en el mismo solicitud de SSML. En algunos casos, una combinación de idiomas puede producir un efecto que es detectable, pero sutil o percibido como negativo. Problemas conocidos:

  • El japonés con caracteres kanji no es compatible con la etiqueta <lang>. El entrada se transliterará y se leerá en caracteres chinos.
  • Los idiomas semíticos, como el árabe, el hebreo y el persa, no son compatibles con la etiqueta <lang> y dará como resultado un silencio. Si quieres usar cualquiera de estas idiomas que recomendamos usar la etiqueta <voice> para cambiar a una voz que habla el idioma que deseas (si está disponible).