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:
- Estrés principal: Se indica con
ˈ
en IPA y"
en X-SAMPA. - Estrés secundario: Se indica con
ˌ
en IPA y%
en X-SAMPA. - 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
: Esmale
,female
oneutral
.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 comorequired
y no se configura correctamente, la solicitud falla.ordering
: Cualquier atributo enumerado después de una etiquetaordering
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 etiquetaordering
. 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).