224
Amazon Polly Developer Guide

Amazon Polly - Developer Guide · tarea de síntesis de voz y el servicio la utilizará para convertir el texto en voz. Amazon Polly no es un servicio de traducción: el fragmento

Embed Size (px)

Citation preview

Amazon PollyDeveloper Guide

Amazon Polly Developer Guide

Amazon Polly: Developer GuideCopyright © 2018 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.

Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's, in any mannerthat is likely to cause confusion among customers, or in any manner that disparages or discredits Amazon. All other trademarks notowned by Amazon are the property of their respective owners, who may or may not be affiliated with, connected to, or sponsored byAmazon.

Amazon Polly Developer Guide

Table of Contents¿Qué es Amazon Polly? ...................................................................................................................... 1

¿Es la primera vez que utiliza Amazon Polly? ................................................................................. 1Funcionamiento .................................................................................................................................. 3

Siguientes pasos ........................................................................................................................ 3Las voces de Amazon Polly ......................................................................................................... 3

Voces disponibles ............................................................................................................... 3Cómo escuchar las voces .................................................................................................... 6Velocidad de la voz ............................................................................................................ 7

Preguntas frecuentes .................................................................................................................. 8Preguntas generales ........................................................................................................... 8Representación de contenido ............................................................................................... 8Seguridad y confidencialidad de los datos .............................................................................. 9

Introducción ..................................................................................................................................... 10Paso 1: Configurar una cuenta y un usuario ................................................................................. 10

Paso 1.1: Inscribirse en AWS ............................................................................................. 10Paso 1.2: Crear un usuario de IAM ..................................................................................... 11Paso siguiente .................................................................................................................. 11

Paso 2: Introducción al uso de la consola .................................................................................... 12Ejercicio 1: Guía de inicio rápido de síntesis de voz (consola) .................................................. 12Ejercicio 2: Sintetizar el habla (entrada de texto sin formato) ................................................... 12Paso siguiente .................................................................................................................. 13

Paso 3: Introducción al uso de AWS CLI ...................................................................................... 13Paso 3.1: Configuración de la AWS CLI ............................................................................... 13Paso 3.2: Ejercicio de introducción ...................................................................................... 15

Siguientes pasos ...................................................................................................................... 16Configurar Python y probar un ejemplo ................................................................................ 16

Las voces de Amazon Polly ............................................................................................................... 18Voces disponibles ....................................................................................................................... 3Cómo escuchar las voces ............................................................................................................ 6Velocidad de la voz .................................................................................................................... 7

Cambio de la velocidad de la voz ....................................................................................... 20Idiomas admitidos por Amazon Polly ........................................................................................... 21

Marcas de voz ................................................................................................................................. 23Tipos de marcas de voz ............................................................................................................ 23

Visemas y Amazon Polly ................................................................................................... 23Uso de marcas de voz .............................................................................................................. 24

Solicitar marcas de voz ..................................................................................................... 24Salida de marcas de voz ................................................................................................... 25Ejemplos de marcas de voz ............................................................................................... 26

Solicitar marcas de voz a través de la consola de Amazon Polly ...................................................... 27Uso de SSML .................................................................................................................................. 29

Uso de SSML en la consola ....................................................................................................... 29Uso de SSML en la CLI de AWS ................................................................................................ 30

Uso de SSML con el comando de síntesis de voz ................................................................. 30Síntesis de un documento mejorado con SSML ..................................................................... 31Uso de SSML para tareas comunes de Amazon Polly ............................................................ 32

Etiquetas SSML admitidas por Amazon Polly ................................................................................ 34Etiquetas SSML admitidas .................................................................................................. 35

Administrar lexicones ....................................................................................................................... 111Aplicar varios lexicones ............................................................................................................ 111Administrar lexicones a través de la consola ............................................................................... 112

Cargar lexicones a través de la consola ............................................................................. 112Aplicar lexicones a través de la consola (síntesis de voz) ...................................................... 113Filtrar la lista de léxico a través de la consola ..................................................................... 114

iii

Amazon Polly Developer Guide

Descargar lexicones a través de la consola ......................................................................... 114Eliminar un lexicón a través de la consola .......................................................................... 115

Administrar lexicones a través de AWS CLI ................................................................................ 115PutLexicon ..................................................................................................................... 115GetLexicon ..................................................................................................................... 120ListLexicons .................................................................................................................... 120DeleteLexicon ................................................................................................................. 121

Creación de archivos de audio largos ................................................................................................ 122Configuración de la política de IAM para síntesis asíncrona .......................................................... 122Creación de archivos de audio largos (consola) ........................................................................... 123Creación de archivos de audio largos (CLI) ................................................................................. 124

Ejemplos de aplicaciones y de código ................................................................................................ 127Código de muestra .................................................................................................................. 127

Muestras de Java ........................................................................................................... 127Muestras de Python ........................................................................................................ 133

Aplicaciones de ejemplo ........................................................................................................... 138Ejemplo de Python .......................................................................................................... 138Ejemplo de Java ............................................................................................................. 148Ejemplo de iOS .............................................................................................................. 152Ejemplo de Android ......................................................................................................... 154

Complemento de WordPress ............................................................................................................ 156Configuración del complemento ................................................................................................. 156

Crear una política de permisos ......................................................................................... 156Crear un usuario de IAM para el complemento .................................................................... 157Instalar y configurar el complemento .................................................................................. 158Personalización de WordPress .......................................................................................... 159Almacenamiento de archivos de audio ............................................................................... 161

Límites ........................................................................................................................................... 164Regiones admitidas ................................................................................................................. 164Limitación controlada ............................................................................................................... 164Lexicones de pronunciación ...................................................................................................... 164Operación SynthesizeSpeech de la API ...................................................................................... 165Operaciones de la API SpeechSynthesisTask .............................................................................. 165Speech Synthesis Markup Language (SSML, Lenguaje de marcado de síntesis de voz) ...................... 165

Integración de CloudTrail ................................................................................................................. 166Información de Amazon Polly en CloudTrail ................................................................................ 166Entradas de archivos de log de Amazon Polly ............................................................................. 167

Integración de CloudWatch ............................................................................................................... 169Obtención de las métricas de CloudWatch (consola) .................................................................... 169Obtención de las métricas de CloudWatch (CLI) .......................................................................... 169Métricas de Amazon Polly ........................................................................................................ 170Dimensiones de métricas de Amazon Polly ................................................................................. 171

Referencia de la API ....................................................................................................................... 172Actions .................................................................................................................................. 172

DeleteLexicon ................................................................................................................. 173DescribeVoices ............................................................................................................... 175GetLexicon ..................................................................................................................... 178GetSpeechSynthesisTask ................................................................................................. 180ListLexicons .................................................................................................................... 182ListSpeechSynthesisTasks ................................................................................................ 184PutLexicon ..................................................................................................................... 186StartSpeechSynthesisTask ................................................................................................ 188SynthesizeSpeech ........................................................................................................... 193

Data Types ............................................................................................................................ 197Lexicon .......................................................................................................................... 198LexiconAttributes ............................................................................................................. 199LexiconDescription .......................................................................................................... 201

iv

Amazon Polly Developer Guide

SynthesisTask ................................................................................................................ 202Voice ............................................................................................................................. 205

Autenticación y control de acceso ...................................................................................................... 207Autenticación .......................................................................................................................... 207Control de acceso ................................................................................................................... 208Información general sobre la administración de acceso ................................................................. 208

Recursos y operaciones de Amazon Polly .......................................................................... 209Titularidad de los recursos ................................................................................................ 209Administración del acceso a los recursos ............................................................................ 209Especificar elementos de política: acciones, efectos y entidades principales ............................. 211Especificación de condiciones en una política ...................................................................... 211

Usar políticas basadas en identidad (políticas de IAM) .................................................................. 212Permisos necesarios para usar la consola de Amazon Polly .................................................. 213Políticas administradas (predefinidas) de AWS para Amazon Polly .......................................... 213Ejemplos de políticas administradas por el cliente ................................................................ 214

Referencia de permisos de la API de Amazon Polly ..................................................................... 216Historial de revisión ......................................................................................................................... 218AWS Glossary ................................................................................................................................ 219

v

Amazon Polly Developer Guide¿Es la primera vez que utiliza Amazon Polly?

¿Qué es Amazon Polly?Amazon Polly es un servicio en la nube que convierte el texto en un segmento hablado muy realista.Puede utilizar Amazon Polly para desarrollar aplicaciones que aumenten la participación y mejoren laaccesibilidad. Amazon Polly admite diferentes idiomas e incluye una serie de voces realistas, lo que lepermite crear aplicaciones que pueden usarse en distintas ubicaciones y emplear la voz más adecuadapara sus clientes. Con Amazon Polly, solo paga por el texto que se sintetiza. También puede almacenar encaché el habla generada con Amazon Polly y reproducirla sin ningún costo adicional.

Entre los casos de uso comunes de Amazon Polly, se incluyen las aplicaciones móviles, como lectores denoticias, juegos, plataformas de recursos de aprendizaje electrónicos, aplicaciones de accesibilidad parapersonas con discapacidad y el segmento de Internet de las cosas (IoT), en rápido crecimiento.

Amazon Polly está certificado para su uso con cargas de trabajo reguladas según la ley de portabilidad yresponsabilidad de los seguros médicos de 1996 (HIPAA, Health Insurance Portability and AccountabilityAct) y GovCloud.

Amazon Polly no está certificado para su uso con el estándar de seguridad de datos del sector de lastarjetas de pago (PCI DSS, Payment Card Industry Data Security Standard) ni con FedRAMP.

Alguno de los beneficios de usar Amazon Polly son:

• Gran calidad: Amazon Polly utiliza la mejor tecnología de conversión de texto a voz (TTS) para sintetizarel lenguaje natural con una pronunciación muy precisa (incluida la expansión de abreviaturas yacrónimos, la interpretación de fechas y horas y la desambiguación homográfica).

 • Baja latencia: Amazon Polly garantiza tiempos de respuesta rápidos, lo que la convierte en una opción

viable para casos de uso de baja latencia, como los sistemas de diálogo.

 • Compatibilidad con un amplio conjunto de idiomas y voces: Amazon Polly admite docenas de voces y

varios idiomas, la mayoría de los cuales disponen de voces masculinas y femeninas.

 • Rentable – El modelo de pago por uso de Amazon Polly significa que no hay existen costos de

instalación. Puede comenzar con pocos recursos e ir aumentándolos a medida que crece la aplicación.

 • Solución basada en la nube: las soluciones de conversión de texto a voz instaladas en los dispositivos

necesitan importantes recursos informáticos y una gran potencia de CPU, así como gran cantidad deRAM y de espacio en disco. Esto puede generar elevados costos de desarrollo y un mayor consumo depotencia en dispositivos como tablets, smartphones, etc. Por el contrario, cuando la conversión de textoa voz se realiza en la nube, los requisitos de recursos locales se reducen drásticamente. Esto permiteusar todos los lenguajes y voces disponibles con la mejor calidad posible. Además, las mejoras delfragmento hablado están disponibles de forma instantánea para todos los usuarios finales y no requierennuevas actualizaciones de los dispositivos.

¿Es la primera vez que utiliza Amazon Polly?Si es la primera vez que utiliza Amazon Polly, le recomendamos que lea las siguientes secciones en elorden en el que aparecen:

1

Amazon Polly Developer Guide¿Es la primera vez que utiliza Amazon Polly?

1. Amazon Polly: Funcionamiento (p. 3): en esta sección, se presentan las diferentes entradas yopciones de Amazon Polly con las que puede trabajar para crear una experiencia completa e integral.

2. Introducción a Amazon Polly (p. 10): en esta sección, configurará la cuenta y probará la síntesis devoz de Amazon Polly.

3. Aplicaciones de ejemplo (p. 138): en esta sección, encontrará otros ejemplos que puede usar paraconocer Amazon Polly en profundidad.

2

Amazon Polly Developer GuideSiguientes pasos

Amazon Polly: FuncionamientoAmazon Polly convierte el texto de entrada en fragmentos de voz en lenguaje natural. Llame a uno de losmétodos de síntesis de voz, proporcione el texto que se quiere sintetizar, seleccione una de las vocesdisponibles en Text-to-Speech (TTS) y especifique el formato de audio de salida. A continuación, AmazonPolly sintetiza el texto proporcionado en una secuencia de audio hablada de gran calidad.

• Texto de entrada: introduzca el texto que desea sintetizar y Amazon Polly devolverá una secuencia deaudio. Puede proporcionar la entrada como texto sin formato o con el formato Speech Synthesis MarkupLanguage (SSML). Si utiliza SSML, podrá controlar diferentes aspectos del fragmento hablado, comola pronunciación, el volumen, el tono y la velocidad de habla. Para obtener más información, consulteGeneración de fragmentos hablados desde documentos SSML (p. 29).

 • Voces disponibles: Amazon Polly proporciona una serie de varios idiomas y diversas voces, incluida una

voz bilingüe (tanto para inglés como para hindi). En la mayoría de los idiomas, puede seleccionar entrediferentes voces, tanto masculinas como femeninas. Especifique el nombre del ID de la voz al lanzar latarea de síntesis de voz y el servicio la utilizará para convertir el texto en voz. Amazon Polly no es unservicio de traducción: el fragmento sintetizado está en el mismo idioma que el texto. No obstante, losnúmeros escritos con dígitos (por ejemplo, 53, en lugar de cincuenta y tres) se sintetizan en el idioma dela voz. Para obtener más información, consulte Voces en Amazon Polly.

 • Formato de salida: Amazon Polly puede proporcionar el resultado de la síntesis de voz en varios

formatos. Puede seleccionar el formato de audio que mejor se adapte a sus necesidades. Por ejemplo,podría preferir el formato MP3 u Ogg Vorbis para utilizarlo en las aplicaciones web y móviles. O elformato de salida PCM para los dispositivos y las soluciones de telefonía de AWS IoT.

Siguientes pasosSi es la primera vez que utiliza Amazon Polly, le recomendamos que lea los siguientes temas en orden:

• Introducción a Amazon Polly (p. 10)• Aplicaciones de ejemplo (p. 138)• Límites de Amazon Polly (p. 164)

Las voces de Amazon PollyAmazon Polly proporciona diversas voces en varios idiomas para su uso al sintetizar el habla a partir detexto.

Voces disponiblesIdiomaNombres/IDmasculinos

Nombres/IDfemeninos

Danés(da-DK)

MadsNaja

3

Amazon Polly Developer GuideVoces disponibles

IdiomaNombres/IDmasculinos

Nombres/IDfemeninos

Neerlandés(nl-NL)

RubenLotte

Inglés(Australia)(en-AU)

RussellNicole

Inglés(ReinoUnido)(en-GB)

BrianAmy

Emma

Inglés(India)(en-IN)

 Aditi(bilingüeconhindi)

Raveena

Inglés(EE. UU.)(en-US)

Joey

Justin

Matthew

Ivy

Joanna

Kendra

Kimberly

Salli

Inglés(Gales)(en-GB-WLS)

Geraint 

Francés(fr-FR)

MathieuCéline/Celine

Francés(Canadá)(fr-CA)

 Chantal

Alemán(de-DE)

HansMarlene

Vicki

4

Amazon Polly Developer GuideVoces disponibles

IdiomaNombres/IDmasculinos

Nombres/IDfemeninos

Hindi(hi-IN)

 Aditi(bilingüeconinglésdeIndia)

Islandés(is-IS)

KarlDóra/Dora

Italiano(it-IT)

GiorgioCarla

Japonés(ja-JP)

TakumiMizuki

Coreano(ko-KR)

 Seoyeon

Noruego(nb-NO)

 Liv

Polaco(pl-PL)

Jacek

Jan

Ewa

Maja

Portugués(Brasil)(pt-BR)

RicardoVitória/Vitoria

Portugués(Europa)(pt-PT)

CristianoInês/Ines

Rumano(ro-RO)

 Carmen

 

Ruso(ru-RU)

MaximTatyana

Español(europeo)(es-ES)

EnriqueConchita

5

Amazon Polly Developer GuideCómo escuchar las voces

IdiomaNombres/IDmasculinos

Nombres/IDfemeninos

Español(Latinoamérica)(es-US)

MiguelPenélope/Penelope

Sueco(sv-SE)

 Astrid

Turco(tr-TR)

 Filiz

Galés(cy-GB)

 Gwyneth

Con el fin de garantizar un soporte continuo para nuestros clientes, no tenemos previsto eliminar ningunavoz. Esto se aplica tanto a las voces disponibles actualmente como a las que lo estarán en un futuro.

Cómo escuchar las vocesPuede utilizar la consola de Amazon Polly para oír una muestra de cualquiera de las voces disponibles enAmazon Polly

Para escuchar una voz en Amazon Polly

1. Inicie sesión en la consola de administración de AWS y abra la consola de Amazon Polly.2. Elija la pestaña Text-to-Speech.3. Seleccione un idioma y una región; a continuación, elija una voz4. Introduzca el texto que desea que lea la voz o utilice la frase predeterminada y, a continuación, elija

Listen to speech (Escuchar fragmento hablado).

Puede elegir cualquiera de los idiomas que ofrece Amazon Polly y la consola mostrará las vocesdisponibles para ese idioma. En la mayoría de los casos, habrá al menos una voz masculina y una vozfemenina, a menudo más de una de cada. Una voz es bilingüe (hindi e inglés de India) y algunos solotienen una sola voz.

Note

El inventario de voces y el número de idiomas incluidos se actualiza de manera continua paraañadir opciones adicionales. Si desea proponer un nuevo idioma o una nueva voz, no dude endejar sus comentarios en esta página. Lamentablemente, no podemos hacer ningún comentariosobre los planes para lanzar nuevos idiomas específicos.

Cada voz se crea con hablantes nativos del idioma, por lo que existen variaciones entre las voces, inclusodentro del mismo idioma. A la hora de seleccionar una voz para un proyecto, pruebe cada una de las vocesposibles con un fragmento de texto para comprobar cuál se adapta mejor a sus necesidades.

6

Amazon Polly Developer GuideVelocidad de la voz

Velocidad de la vozDebido a la variación natural existente entre las voces, cada voz disponible leerá el texto a velocidadesligeramente diferentes. Por ejemplo, con las voces del idioma inglés de Estados Unidos, Ivy y Joanna sonligeramente más rápidas que Matthew al decir "Mary had a little lamb" y notablemente más rápidas queJoey.

Dado que existe tanta variación entre las voces y que el grado de esa variación puede depender el textoque se lee, no hay una velocidad estándar (palabras por minuto) disponible para las voces de AmazonPolly. Sin embargo, puede saber el tiempo que tarda su voz en decir el texto seleccionado mediante lasmarcas de voz. Para obtener más información sobre el uso de marcas de voz en Amazon Polly, consulteUso de marcas de voz (p. 24)

Para saber aproximadamente lo que se tarda en decir un fragmento de texto

1. Abra la CLI de AWS.2. Ejecute el siguiente código, rellenándolo con sus datos según sea necesario

aws polly synthesize-speech \ --language-code optional language code if needed --output-format json \ --voice-id [name of desired voice] \ --text '[desired text]' \ --speech-mark-types='["viseme"]' \ LengthOfText.txt

3. Abra LengthOfText.txt

Si el texto era "Mary had a little lamb", las últimas líneas devueltas por Amazon Polly serían:

{"time":882,"type":"viseme","value":"t"} {"time":964,"type":"viseme","value":"a"} {"time":1082,"type":"viseme","value":"p"}

El último visema, básicamente el sonido de las letras finales de "lamb" comienza 1082 milisegundosdespués del comienzo del fragmento de voz. Si bien no es exactamente la duración del audio, es un valorpróximo y puede servir de base para la comparación entre voces.

En determinadas aplicaciones, es posible que prefiera que la voz que le gusta sea más lenta o más rápida.Si la velocidad de la voz es un problema, Amazon Polly ofrece la posibilidad de modificarla medianteetiquetas SSML.

Por ejemplo, si sus destinatarios hablan inglés, pero no de forma fluida, podría plantearse reducir lavelocidad del fragmento hablado con el fin de darles un poco más tiempo para comprender.

Amazon Polly le ayuda a ralentizar la velocidad de la voz mediante la etiqueta SSML <prosody>, como eneste ejemplo:

<prosody rate="slow">Mary had a little lamb.</prosody>

Dispone de cinco opciones de velocidad diferentes: x-slow, slow, medium, fast y x-fast. La velocidadde cada opción es aproximada, en función de su voz preferida, por lo que le recomendamos que pruebe lavoz para ver si satisface sus necesidades. La opción medium es la velocidad normal de la voz.

7

Amazon Polly Developer GuidePreguntas frecuentes

Preguntas frecuentesEn este tema se ofrecen respuestas a las preguntas frecuentes sobre Amazon Polly.

Temas• Preguntas generales (p. 8)• Representación de contenido (p. 8)• Seguridad y confidencialidad de los datos (p. 9)

Preguntas generalesP: ¿Puedo guardar el fragmento de voz sintetizada?

Cuando utilice la operación SynthesizeSpeech, puede guardar la salida de la síntesis para utilizarlaen su propio sistema. También puede llamar a Amazon Polly, cifrar el archivo con una clave de cifradoy almacenarlo en Amazon Simple Storage Service (Amazon S3) o en cualquier otro almacenamientoseguro. La llamada a SynthesizeSpeech de Amazon Polly no tiene estado y no está asociada a ningunaidentidad de cliente. No podrá recuperarla de Amazon Polly posteriormente.

Cuando se utiliza la operación StartSpeechSynthesisTask (síntesis asíncrona), la salida de la síntesisse almacena automáticamente en un bucket de Amazon S3. Puede recuperarlo como necesite. Paraobtener más información al respecto, consulte Creación de archivos de audio largos (p. 122).

Representación de contenidoP: Me gustaría utilizar la misma voz en dos idiomas distintos. ¿Hay voces bilingües?

Actualmente solo hay una voz bilingüe: Aditi (hindi e inglés de India). Trabajamos sin descanso paramejorar las opciones de idioma de Amazon Polly, entre ellas aumentar el número de voces bilingüesdisponibles.

Si utiliza una voz bilingüe como Aditi, tendrá que añadir el parámetro languagecode opcional al llamar auna tarea de síntesis con el fin de indicar a Amazon Polly el idioma que se utilizará con la voz.

P: Parte del texto se oye con el acento en la sílaba equivocada cuando Amazon Polly lo pronuncia. Heintentado incluso con un acento agudo (U+0301) para marcar el énfasis, pero el acento sigue estando en lasílaba equivocada. ¿Cómo puedo solucionarlo?

Amazon Polly no reconoce actualmente los acentos agudos (U+0301) para marcar el énfasis en unasílaba. Sin embargo, hay dos formas de cambiar el énfasis en una palabra. Puede utilizar símbolosfonéticos IPA y etiquetas SSML para alterar la pronunciación de la palabra. Para obtener más información,consulte Etiquetas SSML admitidas por Amazon Polly (p. 34). En algunos idiomas, también es posibleutilizar un apóstrofo inmediatamente después de la sílaba para indicar un cambio en el énfasis. Porejemplo, en ruso, las palabras страны y страны tienen distinto énfasis (marcado aquí con un acentoagudo). No obstante, debido a que tienen una ortografía idéntica, Amazon Polly las pronunciará con elacento en la última sílaba, de acuerdo con el uso estándar del idioma. Puede utilizar un apóstrofo paramarcar la sílaba acentuada de forma alternativa, como en стран'ы, y Amazon Polly pondrá el énfasis en lasílaba correcta.

P: Cuando utilizo viñetas en el texto, Amazon Polly no las reproduce correctamente. Dice "menos" cadavez que encuentra una. ¿Qué tengo que hacer?

Si utiliza "-" (un guion) como sustituto de una viñeta, en algunos idiomas, Amazon Polly lo reproduce comoun signo menos. Si desea utilizar guiones para reemplazar una viñeta, puede hacerlo con una entrada delexicón. Para obtener más información, consulte Administrar lexicones (p. 111).

8

Amazon Polly Developer GuideSeguridad y confidencialidad de los datos

P: Utilizo el símbolo "/" (barra inclinada) con frecuencia en el texto, especialmente al decir "y/o" y "sí/no".¿Cómo representa esto Amazon Polly?

En inglés, Amazon Polly representa "and/or" en la síntesis de voz como "and or". En la actualidad, estaregla no está disponible en otros idiomas. En los idiomas distintos del inglés, Amazon Polly representa "sí/no" como "sí barra inclinada no". Si desea cambiar este comportamiento, puede utilizar una entrada delexicón. Para obtener más información, consulte Administrar lexicones (p. 111).

P: Cuando utilizo texto de un origen existente para sintetizar el habla mediante la AWS CLI en un equipoLinux, algunos caracteres UTF-8 parecen no funcionar con Amazon Polly, aunque esos mismos caracteresfuncionan correctamente si se utiliza la consola. ¿Qué está ocurriendo?

Esto se debe a la forma en que el shell de Unix gestiona Unicode, y no es un problema específicode Amazon Polly. shell de Unix Existen dos opciones disponibles: puede localizar los caracteresproblemáticos y sustituirlos en el texto de entrada, o bien puede utilizar una forma alternativa de accesoa Amazon Polly que no presente este problema, como la interfaz PHP. Se trata de un problema conocidoy estamos trabajando para resolverlo, aunque solo lo generan unos pocos caracteres Unicode pocofrecuentes.

P: Cuando intento sintetizar texto a partir de un origen que contiene símbolos del Alfabeto FonéticoInternacional (IPA), Amazon Polly no los reconoce e incluso intenta pronunciar algunos. ¿Cómo solucionoesto?

Amazon Polly no reconoce los símbolos IPA a menos que se utilice SSML (Speech Synthesis MarkupLanguage) para definirlos. Sin embargo, ya que pequeñas secciones de símbolos IPA constituyennormalmente una guía de pronunciación para el lector, en muchos casos estas secciones se puedenquitar de forma segura del texto de entrada mediante una simple eliminación. También puede utilizarun lexicón para cambiar la forma en que Amazon Polly los representa. Para obtener más información,consulte Generación de fragmentos hablados desde documentos SSML (p. 29) y Administrarlexicones (p. 111).

Seguridad y confidencialidad de los datosP: ¿Puedo inhabilitar el registro de solicitudes con las API de solicitudes?

Sí, puede hacerlo poniéndose en contacto con AWS Support.

P: ¿Puedo enmascarar ciertos campos de datos para que no se almacenen? (Por ejemplo, si conviertotexto que contiene información confidencial, pero no quiero que se almacene en los sistemas de AWS,¿puedo enmascararlo?)

No. Amazon Polly no admite actualmente esta funcionalidad.

P: El texto que deseo utilizar con Amazon Polly es confidencial. ¿Cómo se protegen mis datos?

Todos los envíos de texto están protegidos mediante Capa de conexión segura (SSL) mientras estánen tránsito, y se almacenan utilizando el cifrado RSA . Almacenamos los logs de servicios y el texto porseparado, de forma que el contenido no se pueda vincular con el ID de cliente. En consecuencia, AmazonPolly no asocia los envíos de texto a la identidad del cliente.

P: ¿Durante cuánto tiempo se conservan los datos?

Amazon Polly conserva los datos durante 14 días. Transcurrido ese tiempo, se eliminan automáticamentede nuestro sistema.

P: ¿Puedo solicitar que los datos se borren antes?

Sí, puede hacerlo poniéndose en contacto con AWS Support.

9

Amazon Polly Developer GuidePaso 1: Configurar una cuenta y un usuario

Introducción a Amazon PollyAmazon Polly cuenta con sencillas operaciones de la API que se pueden integrar fácilmente con lasaplicaciones existentes. Para ver una lista de las operaciones admitidas, consulte Actions (p. 172).Puede utilizar una de las siguientes opciones:

• SDK de AWS: cuanto utilice los SDK, las solicitudes enviadas a Amazon Polly se firmarán y autenticaránautomáticamente con las credenciales proporcionadas. Esta es la opción recomendada para compilarlas aplicaciones.

• AWS CLI: puede utilizar AWS CLI para obtener acceso a cualquiera de las funcionalidades de AmazonPolly sin necesidad de escribir ningún código.

En las secciones siguientes se explica la configuración y se incluye un ejercicio introductorio.

Temas• Paso 1: Configurar una cuenta de AWS y crear un usuario (p. 10)• Paso 2: Introducción al uso de la consola (p. 12)• Paso 3: Introducción al uso de AWS CLI (p. 13)• Siguientes pasos (p. 16)

Paso 1: Configurar una cuenta de AWS y crear unusuario

Antes de usar Amazon Polly por primera vez, realice las siguientes tareas:

1. Paso 1.1: Inscribirse en AWS (p. 10)2. Paso 1.2: Crear un usuario de IAM (p. 11)

Paso 1.1: Inscribirse en AWSCuando se inscriba en Amazon Web Services (AWS), la cuenta de AWS se registrará automáticamente entodos los servicios de AWS, incluido Amazon Polly. Solo se le cobrará por los servicios que utilice.

Con Amazon Polly, solo paga por los recursos que utiliza. Si es un cliente nuevo de AWS, puede empezara usar Amazon Polly gratuitamente. Para obtener más información, consulte Capa gratuita de AWS.

Si ya dispone de una cuenta de AWS, vaya al siguiente paso. Si todavía no dispone de una cuenta deAWS, realice los pasos del siguiente procedimiento para crear una.

Para crear una cuenta de AWS

1. Abra https://aws.amazon.com/ y después elija Create an AWS Account.

Note

Esto podría no estar disponible en el navegador si ha iniciado previamente sesión en laConsola de administración de AWS. En ese caso, elija Sign in to a different account ydespués Create a new AWS account.

10

Amazon Polly Developer GuidePaso 1.2: Crear un usuario de IAM

2. Siga las instrucciones en línea.

Parte del procedimiento de inscripción consiste en recibir una llamada telefónica e introducir unnúmero PIN con el teclado del teléfono.

Anote el ID de su cuenta de AWS, ya que lo necesitará en el paso siguiente.

Paso 1.2: Crear un usuario de IAMCuando se obtiene acceso a los servicios de AWS, como Amazon Polly, es necesario proporcionarcredenciales para que el servicio pueda determinar si tiene los permisos necesarios para los recursos queson propiedad de dicho servicio. La consola requiere que especifique la contraseña. Puede crear claves deacceso para su cuenta de AWS para tener acceso a la AWS CLI o API. Sin embargo, no es recomendableque tenga acceso a AWS con las credenciales de su cuenta de AWS. En lugar de ello, le recomendamosque utilice AWS Identity and Access Management (IAM). Cree un usuario de IAM, añada el usuario a ungrupo de IAM con permisos administrativos y, a continuación, conceda permisos administrativos al usuariode IAM que ha creado. A continuación, podrá tener acceso a AWS mediante una URL especial y esascredenciales de usuario de IAM.

Si se ha registrado en AWS pero no ha creado un usuario de IAM, puede crear uno mediante la consola deIAM.

En los ejercicios de introducción de esta guía se presupone que tiene un usuario (adminuser) conprivilegios de administrador. Siga el procedimiento para crear adminuser en su cuenta.

Para crear un usuario administrador e iniciar sesión en la consola

1. Cree un usuario administrador llamado adminuser en su cuenta de AWS. Para obtener instrucciones,consulte la sección Creating Your First IAM User and Administrators Group de la guía Guía del usuariode IAM.

2. Un usuario puede iniciar sesión en la Consola de administración de AWS mediante una URL especial.Para obtener más información, consulte How Users Sign In to Your Account en la guía Guía delusuario de IAM.

Important

En los ejercicios de introducción se utilizan las credenciales de adminuser. Para mayor seguridad,cuando compile y pruebe la aplicación en producción, es recomendable que cree un usuarioespecífico para el servicio que sea un administrador y que solo tenga permiso para realizar lasacciones de Amazon Polly. Para ver una política de ejemplo en la que se conceden permisosespecíficos para Amazon Polly, consulte Ejemplo 1: Permitir todas las acciones de AmazonPolly (p. 214).

Para obtener más información sobre IAM, consulte lo siguiente:

• AWS Identity and Access Management (IAM)• Introducción• Guía del usuario de IAM

Paso siguientePaso 2: Introducción al uso de la consola (p. 12)

11

Amazon Polly Developer GuidePaso 2: Introducción al uso de la consola

Paso 2: Introducción al uso de la consolaLa consola de Amazon Polly es la forma más fácil de comenzar a probar y utilizar la síntesis de voz deAmazon Polly. La consola de Amazon Polly permite sintetizar el habla a partir de una entrada de texto sinformato o de una entrada SSML.

Temas• Ejercicio 1: Guía de inicio rápido de síntesis de voz (consola) (p. 12)• Ejercicio 2: Sintetizar el habla (entrada de texto sin formato) (p. 12)• Paso siguiente (p. 13)

Ejercicio 1: Guía de inicio rápido de síntesis de voz(consola)En la guía de inicio rápido se explica la forma más rápida de probar la calidad de la síntesis de voz deAmazon Polly. Si selecciona la pestaña Text-to-Speech, verá que el campo de texto ya tiene cargado untexto de ejemplo para que pueda probar rápidamente Amazon Polly.

Para probar rápidamente Amazon Polly

1. Inicie sesión en la consola de administración de AWS y abra la consola de Amazon Polly en https://console.aws.amazon.com/polly/.

2. Elija la pestaña Text-to-Speech.3. (Opcional) Elija SSML.4. Seleccione un idioma y una región; a continuación, elija una voz.5. Elija Listen to speech.

Para ver otras pruebas más avanzadas, consulte los siguientes temas:

• Ejercicio 2: Sintetizar el habla (entrada de texto sin formato) (p. 12)• Uso de SSML (consola) (p. 29)• Aplicar lexicones a través de la consola (síntesis de voz) (p. 113)

Ejercicio 2: Sintetizar el habla (entrada de texto sinformato)El siguiente procedimiento sintetiza el habla a partir de una entrada de texto sin formato. Observe cómo sesintetizan "W3C" y la fecha "10/3" (3 de octubre).

Para sintetizar el habla a partir de una entrada de texto sin formato

1. Después de iniciar sesión en la consola de Amazon Polly, elija Get started y, a continuación, elija lapestaña Text-to-Speech.

2. Elija la pestaña Plain text.3. Escriba o pegue el texto en el cuadro de entrada.

He was caught up in the game.

12

Amazon Polly Developer GuidePaso siguiente

In the middle of the 10/3/2014 W3C meetinghe shouted, "Score!" quite loudly.

4. En Choose a language and region, elija English US y seleccione la voz que desee usar para estetexto.

5. Si desea escuchar el fragmento hablado inmediatamente, elija Listen to speech.6. Para guardar el fragmento hablado en un archivo, realice una de las operaciones siguientes:

a. Elija Save speech to MP3.b. Para cambiar el formato de archivo, elija Change file format, seleccione el formato de archivo que

desee y, a continuación, elija Change.

Para obtener ejemplos más detallados, consulte los siguientes temas:

• Aplicar lexicones a través de la consola (síntesis de voz) (p. 113)• Uso de SSML (consola) (p. 29)

Paso siguientePaso 3: Introducción al uso de AWS CLI (p. 13)

Paso 3: Introducción al uso de AWS CLICon AWS CLI puede realizar prácticamente las mismas operaciones de Amazon Polly que en la consolade Amazon Polly. Sin embargo, no puede escuchar el fragmento sintetizado en AWS CLI. En su lugar,debe guardarlo en un archivo y abrirlo después en una aplicación que permita reproducirlo.

Temas• Paso 3.1: Configurar la AWS Command Line Interface (AWS CLI) (p. 13)• Paso 3.2: Ejercicio de introducción sobre el uso de AWS CLI (p. 15)

Paso 3.1: Configurar la AWS Command Line Interface(AWS CLI)Siga los pasos para descargar y configurar la AWS Command Line Interface (AWS CLI).

Important

No necesita AWS CLI para seguir los pasos de este ejercicio introductorio. Sin embargo, algunosde los ejercicios de esta guía utilizan la AWS CLI. Puede omitir este paso e ir a Paso 3.2: Ejerciciode introducción sobre el uso de AWS CLI (p. 15) y después configurar la AWS CLI más tardecuando la necesite.

Para configurar la AWS CLI

1. Descargue y configure la AWS CLI. Para obtener instrucciones, consulte los siguientes temas de laguía AWS Command Line Interface Guía del usuario:

• Configuración inicial de la AWS Command Line Interface

13

Amazon Polly Developer GuidePaso 3.1: Configuración de la AWS CLI

• Configuración de la AWS Command Line Interface2. Añada un perfil con nombre para el usuario administrador en el archivo de configuración de la AWS

CLI. Puede utilizar este perfil cuando ejecute los comandos de la AWS CLI. Para obtener másinformación sobre los perfiles con nombre, consulte Perfiles con nombre en la guía AWS CommandLine Interface Guía del usuario.

[profile adminuser] aws_access_key_id = adminuser access key ID aws_secret_access_key = adminuser secret access key region = aws-region

Para ver una lista de las regiones de AWS disponibles y admitidas por Amazon Polly, consulteRegiones y puntos de enlace en la Referencia general de Amazon Web Services.

Note

Si utiliza una de las regiones admitidas en Amazon Polly que especificó al configurar AWSCLI, puede omitir la siguiente línea de los ejemplos de código de AWS CLI:

--region aws-region

3. Compruebe la configuración; para ello, escriba el siguiente comando de ayuda en el símbolo delsistema:

aws help

Debería aparecer una lista de comandos de AWS válidos en la ventana de AWS CLI.

Para habilitar Amazon Polly en AWS CLI (opcional)

Si previamente descargó y configuró AWS CLI, es posible que Amazon Polly no pueda utilizarse sinconfigurar de nuevo AWS CLI. Este procedimiento comprueba si esta operación es necesaria y contieneinstrucciones sobre lo que debe hacerse si Amazon Polly no está disponible automáticamente.

1. Compruebe la disponibilidad de Amazon Polly escribiendo el siguiente comando de ayuda en elsímbolo del sistema:

aws polly help

Si se muestra una descripción de Amazon Polly y una lista de comandos válidos, aparece en laventana de la AWS CLI, Amazon Polly está disponible en la AWS CLI y se puede utilizar de formainmediata. En este caso, puede omitir el resto del procedimiento. Si no aparece, continúe en el paso 2.

2. Utilice una de las dos opciones siguientes para habilitar Amazon Polly:

a. Desinstale y vuelve a instalar AWS CLI.

Para obtener instrucciones, consulte el siguiente tema de la AWS Command Line Interface Guíadel usuario: Instalación de la AWS Command Line Interface.

o bienb. Descargue el archivo service-2.json.

En el símbolo del sistema, ejecute lo siguiente:

aws configure add-model --service-model file://service-2.json --service-name polly

14

Amazon Polly Developer GuidePaso 3.2: Ejercicio de introducción

3. Vuelva a comprobar la disponibilidad de Amazon Polly:

aws polly help

La descripción de Amazon Polly debe estar visible.

Paso siguientePaso 3.2: Ejercicio de introducción sobre el uso de AWS CLI (p. 15)

Paso 3.2: Ejercicio de introducción sobre el uso deAWS CLIAhora puede probar el proceso de síntesis de voz que ofrece el servicio Amazon Polly. En este ejercicio,va a llamar a la operación SynthesizeSpeech para pasar el texto de ejemplo. Puede guardar el audioresultante como un archivo y comprobar su contenido.

1. Ejecute el comando synthesize-speech de AWS CLI para sintetizar el texto de muestra en unarchivo de audio (hello.mp3).

El ejemplo siguiente de AWS CLI está preparado para Unix, Linux y macOS. Para Windows,reemplace el carácter de continuación de Unix de barra inversa (\) al final de cada línea por un signode intercalación (^) y use comillas dobles (") para el texto de entrada con comillas simples (') para lasetiquetas interiores.

aws polly synthesize-speech \ --output-format mp3 \ --voice-id Joanna \ --text 'Hello, my name is Joanna. I learned about the W3C on 10/3 of last year.' \ hello.mp3

En la llamada a synthesize-speech, tiene que proporcionar el texto de muestra que se va asintetizar, elegir la voz que se va a utilizar (proporcionando un ID de voz, tal y como se explica acontinuación en el paso 3) y especificar el formato de salida. El comando guarda el audio resultante enel archivo hello.mp3.

Además del archivo MP3, la operación anterior genera el resultado siguiente en la consola.

{ "ContentType": "audio/mpeg", "RequestCharacters": "71"}

2. Reproduzca el archivo hello.mp3 resultante para comprobar la síntesis de voz.3. Puede obtener la lista de voces disponibles utilizando la operación DescribeVoices. Ejecute el

siguiente comando describe-voices de AWS CLI.

aws polly describe-voices

Como respuesta, Amazon Polly devuelve la lista de todas las voces disponibles. La respuesta tambiénproporciona los siguientes metadatos de cada voz: ID de voz, código de idioma, nombre del idioma ysexo de la voz. A continuación, se muestra una respuesta de ejemplo:

{

15

Amazon Polly Developer GuideSiguientes pasos

"Voices": [ { "Gender": "Female", "Name": "Salli", "LanguageName": "US English", "Id": "Salli", "LanguageCode": "en-US" }, { "Gender": "Female", "Name": "Joanna", "LanguageName": "US English", "Id": "Kendra", "LanguageCode": "en-US" } ]}

Si lo prefiere, puede especificar el código de idioma para encontrar las voces disponibles en undeterminado idioma. Amazon Polly admite docenas de voces. En el ejemplo siguiente se muestrantodas las voces disponibles para portugués de Brasil.

aws polly describe-voices \ --language-code pt-BR

Para ver una lista de códigos de idioma, consulte Idiomas admitidos por Amazon Polly (p. 21).Estos códigos de idioma son etiquetas de identificación de idioma de W3C (código ISO 639 delnombre del idioma-código ISO 3166 del país). Por ejemplo, en-US (inglés de EE. UU.), en-GB (inglés británico), es-ES (español), etc.

También puede utilizar la opción help de AWS CLI para obtener la lista de códigos de idioma:

aws polly describe-voices help

Siguientes pasosEsta guía contiene otros ejemplos, algunos de los cuales son ejemplos de código de Python en los quese utiliza AWS SDK for Python (Boto) para realizar llamadas de la API a Amazon Polly. Es recomendableque configure Python y pruebe el código de ejemplo que se incluye en la siguiente sección. Para ver otrosejemplos, consulte Aplicaciones de ejemplo (p. 138).

Configurar Python y probar un ejemploPara probar el código de ejemplo de Python, necesita AWS SDK for Python (Boto). Para obtenerinstrucciones, consulte AWS SDK para Python (Boto3).

Para probar el ejemplo de código de Python

El siguiente ejemplo de código de Python hace lo siguiente:

• Utiliza AWS SDK for Python (Boto) para enviar una solicitud de SynthesizeSpeech a Amazon Polly(proporcionando un texto sencillo como entrada).

• Obtiene acceso a la secuencia de audio resultante de la respuesta y la guarda en un archivo del discolocal (speech.mp3).

• Reproduce el archivo de audio con el reproductor predeterminado del sistema local.

16

Amazon Polly Developer GuideConfigurar Python y probar un ejemplo

Guarde el código en un archivo (example.py) y ejecútelo.

"""Getting Started Example for Python 2.7+/3.3+"""from boto3 import Sessionfrom botocore.exceptions import BotoCoreError, ClientErrorfrom contextlib import closingimport osimport sysimport subprocessfrom tempfile import gettempdir

# Create a client using the credentials and region defined in the [adminuser]# section of the AWS credentials file (~/.aws/credentials).session = Session(profile_name="adminuser")polly = session.client("polly")

try: # Request speech synthesis response = polly.synthesize_speech(Text="Hello world!", OutputFormat="mp3", VoiceId="Joanna")except (BotoCoreError, ClientError) as error: # The service returned an error, exit gracefully print(error) sys.exit(-1)

# Access the audio stream from the responseif "AudioStream" in response: # Note: Closing the stream is important as the service throttles on the # number of parallel connections. Here we are using contextlib.closing to # ensure the close method of the stream object will be called automatically # at the end of the with statement's scope. with closing(response["AudioStream"]) as stream: output = os.path.join(gettempdir(), "speech.mp3")

try: # Open a file for writing the output as a binary stream with open(output, "wb") as file: file.write(stream.read()) except IOError as error: # Could not write to file, exit gracefully print(error) sys.exit(-1)

else: # The response didn't contain audio data, exit gracefully print("Could not stream audio") sys.exit(-1)

# Play the audio using the platform's default playerif sys.platform == "win32": os.startfile(output)else: # the following works on Mac and Linux. (Darwin = mac, xdg-open = linux). opener = "open" if sys.platform == "darwin" else "xdg-open" subprocess.call([opener, output])

Para obtener otros ejemplos, incluida una aplicación, consulte Aplicaciones de ejemplo (p. 138).

17

Amazon Polly Developer GuideVoces disponibles

Las voces de Amazon PollyAmazon Polly proporciona diversas voces en varios idiomas para su uso al sintetizar el habla a partir detexto.

Voces disponiblesIdioma Nombres/ID masculinos Nombres/ID femeninos

Danés (da-DK) Mads Naja

Neerlandés (nl-NL) Ruben Lotte

Inglés (Australia) (en-AU) Russell Nicole

Inglés (Reino Unido) (en-GB) Brian Amy

Emma

Inglés (India) (en-IN)   Aditi (bilingüe con hindi)

Raveena

Inglés (EE. UU.) (en-US) Joey

Justin

Matthew

Ivy

Joanna

Kendra

Kimberly

Salli

Inglés (Gales) (en-GB-WLS) Geraint  

Francés (fr-FR) Mathieu Céline/Celine

Léa

Francés (Canadá) (fr-CA)   Chantal

Alemán (de-DE) Hans Marlene

Vicki

Hindi (hi-IN)   Aditi (bilingüe con inglés de India)

Islandés (is-IS) Karl Dóra/Dora

Italiano (it-IT) Giorgio Carla

Japonés (ja-JP) Takumi Mizuki

Coreano (ko-KR)   Seoyeon

Noruego (nb-NO)   Liv

18

Amazon Polly Developer GuideCómo escuchar las voces

Idioma Nombres/ID masculinos Nombres/ID femeninos

Polaco (pl-PL) Jacek

Jan

Ewa

Maja

Portugués (Brasil) (pt-BR) Ricardo Vitória/Vitoria

Portugués (Europa) (pt-PT) Cristiano Inês/Ines

Rumano (ro-RO)   Carmen

Ruso (ru-RU) Maxim Tatyana

Español (europeo) (es-ES) Enrique Conchita

Español (Latinoamérica) (es-US) Miguel Penélope/Penelope

Sueco (sv-SE)   Astrid

Turco (tr-TR)   Filiz

Galés (cy-GB)   Gwyneth

Con el fin de garantizar un soporte continuo para nuestros clientes, no tenemos previsto eliminar ningunavoz. Esto se aplica tanto a las voces disponibles actualmente como a las que lo estarán en un futuro.

Cómo escuchar las vocesPuede utilizar la consola de Amazon Polly para oír una muestra de cualquiera de las voces disponibles enAmazon Polly

Para escuchar una voz en Amazon Polly

1. Inicie sesión en la consola de administración de AWS y abra la consola de Amazon Polly en https://console.aws.amazon.com/polly/.

2. Elija la pestaña Text-to-Speech.3. Seleccione un idioma y una región; a continuación, elija una voz4. Introduzca el texto que desea que lea la voz o utilice la frase predeterminada y, a continuación, elija

Listen to speech (Escuchar fragmento hablado).

Puede elegir cualquiera de los idiomas que ofrece Amazon Polly y la consola mostrará las vocesdisponibles para ese idioma. En la mayoría de los casos, habrá al menos una voz masculina y una vozfemenina, a menudo más de una de cada. Hay unos pocos que solo disponen de una voz. Para ver unalista completa, consulte Las voces de Amazon Polly (p. 18)

Note

El inventario de voces y el número de idiomas incluidos se actualiza de manera continua paraañadir opciones adicionales. Si desea proponer un nuevo idioma o una nueva voz, no dude endejar sus comentarios en esta página. Lamentablemente, no podemos hacer ningún comentariosobre los planes para lanzar nuevos idiomas específicos.

Cada voz se crea con hablantes nativos del idioma, por lo que existen variaciones entre las voces, inclusodentro del mismo idioma. A la hora de seleccionar una voz para un proyecto, pruebe cada una de las vocesposibles con un fragmento de texto para comprobar cuál se adapta mejor a sus necesidades.

19

Amazon Polly Developer GuideVelocidad de la voz

Velocidad de la vozDebido a la variación natural existente entre las voces, cada voz disponible leerá el texto a velocidadesligeramente diferentes. Por ejemplo, con las voces del idioma inglés de Estados Unidos, Ivy y Joanna sonligeramente más rápidas que Matthew al decir "Mary had a little lamb". Ambas son bastante más rápidasque Joey al decir el mismo texto.

Dado que existe tanta variación entre las voces y que el grado de esa variación puede depender el textoque se lee, no hay una velocidad estándar (palabras por minuto) disponible para las voces de AmazonPolly. Sin embargo, puede saber el tiempo que tarda su voz en decir el texto seleccionado mediante lasmarcas de voz. Para obtener más información sobre el uso de marcas de voz en Amazon Polly, consulteUso de marcas de voz (p. 24)

Para saber aproximadamente lo que se tarda en decir un fragmento de texto

1. Abra la CLI de AWS.2. Ejecute el siguiente código, rellenándolo con sus datos según sea necesario

aws polly synthesize-speech \ --output-format json \ --voice-id [name of desired voice] \ --text '[desired text]' \ --speech-mark-types='["viseme"]' \ LengthOfText.txt

3. Abra LengthOfText.txt

Si el texto era "Mary had a little lamb", las últimas líneas devueltas por Amazon Polly serían:

{"time":882,"type":"viseme","value":"t"}{"time":964,"type":"viseme","value":"a"}{"time":1082,"type":"viseme","value":"p"}

El último visema, básicamente el sonido de las letras finales de "lamb" comienza 1082 milisegundosdespués del comienzo del fragmento de voz. Si bien no es exactamente la longitud del audio, se aproximabastante. Puede utilizar 1082 milisegundos como base para las comparaciones de velocidad de hablaentre voces.

Cambio de la velocidad de la vozEn determinadas aplicaciones, es posible que prefiera que la voz que le gusta sea más lenta o más rápida.Si la velocidad de la voz es un problema, Amazon Polly ofrece la posibilidad de modificarla medianteetiquetas SSML.

Por ejemplo:

Su organización está desarrollando una aplicación que lee libros a un público compuesto por inmigrantes.El público habla inglés, pero su fluidez es limitada. En este caso, puede considerar ralentizar la velocidadde la voz para dar al público un poco más de tiempo para que comprenda lo que aplicación está diciendo.

Amazon Polly le ayuda a ralentizar la velocidad de la voz mediante la etiqueta SSML <prosody>, como eneste ejemplo:

<speak> In some cases, it might help your audience to <prosody rate="85%">slow the speaking rate slightly to aid in comprehension.</prosody>

20

Amazon Polly Developer GuideIdiomas admitidos por Amazon Polly

<speak

o bien

<speak> In some cases, it might help your audience to <prosody rate="85%">slow the speaking rate slightly to aid in comprehension.</prosody><speak

Dispone de dos opciones de velocidad al utilizar SSML con Amazon Polly:

• Velocidades preestablecidas: x-slow, slow, medium, fast y x-fast. En estos casos, la velocidad decada opción es aproximada, dependiendo de la voz elegida. La opción medium es la velocidad normalde la voz.

• n% de la velocidad de habla: se puede utilizar cualquier porcentaje de la velocidad de habla que estécomprendido entre 20% y 200%. En estos casos, puede elegir exactamente la velocidad que desea.Sin embargo, la velocidad real de la voz es aproximada, dependiendo de la voz que haya seleccionado.100% se considera la velocidad normal de la voz.

Debido a que la velocidad de cada opción es aproximada y depende de la voz que elija, recomendamosque pruebe la voz a varias velocidades para comprobar cuál se ajusta mejor a sus necesidades.

Para obtener más información sobre el uso de la etiqueta prosody para obtener el mejor efecto, consulteControl del volumen, velocidad de habla y tono (p. 39)

Idiomas admitidos por Amazon PollyLos siguientes idiomas son compatibles con Amazon Polly y se pueden utilizar para sintetizar la voz. Concada idioma se incluye el código de idioma. Estos códigos de idioma son etiquetas de identificación deidioma de W3C (código ISO 639 del nombre del idioma-código ISO 3166 del país).

Para consultar tablas detalladas que muestran los fonemas y visemas asociados a cada idioma, elija elenlace de cada idioma en la tabla que figura a continuación.

Idioma Código de idioma

Danés (da-DK) (p. 54) da-DK

Neerlandés (nl-NL) (p. 55) nl-NL

Inglés (Australia) (en-AU) (p. 57) en-AU

Inglés (Reino Unido) (en-GB) (p. 62) en-GB

Inglés (India) (en-IN) (p. 60) en-IN

Inglés (India) (en-IN) (p. 65) en-US

Inglés (Gales) (en-GB-WSL) (p. 67) en-GB-WLS

Francés (fr-FR) (p. 70) fr-FR

Francés (Canadá) (fr-CA) (p. 72) fr-CA

Hindi hi-IN

21

Amazon Polly Developer GuideIdiomas admitidos por Amazon Polly

Idioma Código de idioma

Alemán (de-DE) (p. 74) de-DE

Islandés (is-IS) (p. 76) is-IS

Italiano (it-IT) (p. 79) it-IT

Japonés (ja-JP) (p. 81) ja-JP

Coreano (ko-KR) (p. 83) ko-KR

Noruego (nb-NO) (p. 85) nb-NO

Polaco (pl-PL) (p. 87) pl-PL

Portugués (Brasil) (pt-BR) (p. 91) pt-BR

Portugués (pt-PT) (p. 89) pt-PT

Rumano (ro-RO) (p. 93) ro-RO

Ruso (ru-RU) (p. 95) ru-RU

Español (es-ES) (p. 97) es-ES

Español (EE. UU.) (es-US) (p. 100) es-US

Sueco (sv-SE) (p. 102) sv-SE

Turco (tr-TR) (p. 105) tr-TR

Galés (cy-GB) (p. 107) cy-GB

Para obtener más información, consulte Tablas de fonemas y visemas de los idiomas admitidos (p. 53).

22

Amazon Polly Developer GuideTipos de marcas de voz

Marcas de vozLas marcas de voz son metadatos que describen el fragmento que se sintetiza; por ejemplo, dóndeempieza y termina una palabra o una frase en la secuencia de audio. Si solicita las marcas de voz de untexto, Amazon Polly devolverá estos metadatos en lugar del segmento de habla sintetizado. Si utiliza lasmarcas de voz con la secuencia de audio del fragmento hablado, podrá proporcionar a las aplicacionesuna experiencia visual mejorada.

Por ejemplo, si combina los metadatos con la secuencia de audio del texto, podrá sincronizar el habla conanimación facial (sincronización de los labios) o resaltar las palabras escritas a medida que se pronuncian.

Temas• Tipos de marcas de voz (p. 23)• Uso de marcas de voz (p. 24)• Solicitar marcas de voz a través de la consola de Amazon Polly (p. 27)

Tipos de marcas de vozPuede solicitar las marcas de voz mediante la opción SpeechMarkTypes para los comandosSynthesizeSpeech o StartSpeechSynthesisTask. Debe especificar los metadatos del texto de entrada quequiere que se devuelvan. Puede solicitar hasta cuatro tipos de metadatos y debe especificar al menos unoen cada solicitud. Esta solicitud no genera ninguna salida de audio.

En la CLI de AWS, por ejemplo:

--speech-mark-types='["sentence", "word", "viseme", "ssml"]'

Amazon Polly genera las marcas de voz utilizando los siguientes elementos:

• sentence: sirve para señalar frases en el texto de entrada.• word: sirve para señalar palabras en el texto.• viseme: describe los movimientos de la cara y la boca que corresponden a cada fonema que se

pronuncia. Para obtener más información, consulte Visemas y Amazon Polly (p. 23).• ssml: describe un elemento <mark> del texto de entrada SSML. Para obtener más información, consulte

Generación de fragmentos hablados desde documentos SSML (p. 29).

Visemas y Amazon PollyUn visema representa la posición de la cara y la boca al hablar. Es el equivalente visual de un fonema, quees la unidad acústica básica que forma una palabra. Los visemas son los componentes visuales básicosdel habla.

Cada lengua tiene un conjunto de visemas que se corresponden con sus propios fonemas. En un idioma,a cada fonema le corresponde un visema, que representa la forma de la boca al emitir el sonido. Sinembargo, no todos los visemas pueden asignarse a un único fonema, ya que muchos fonemas separecen al hablar, incluso aunque el sonido sea diferente. Por ejemplo, en inglés, las palabras "pet" y

23

Amazon Polly Developer GuideUso de marcas de voz

"bet" son acústicamente diferentes. Sin embargo, cuando se observan visualmente (sin sonido), parecenexactamente iguales.

En la tabla siguiente se muestra una lista parcial de fonemas del Alfabeto Fonético Internacional (IPA, porsus siglas en inglés) y símbolos del Alfabeto Fonético Extendido SAM (X-SAMPA, por sus siglas en inglés),así como sus correspondientes visemas para las voces de inglés de Estados Unidos.

Para ver la tabla completa y las tablas de todos los idiomas disponibles, consulte Tablas de fonemas yvisemas de los idiomas admitidos (p. 53).

IPA X-SAMPA Descripción Ejemplo Visema

Consonantes

b b Oclusiva bilabialsonora

bed p

d d Oclusiva alveolarsonora

dig t

dʒ dZ Africada postalveolarsonora

jump S

ð D Fricativa dentalsonora

then T

f f Fricativa labiodentalsorda

five f

g g Oclusiva velar sonora game k

h h Fricativa glotal sorda house k

... ... ... ... ...

Uso de marcas de vozSolicitar marcas de vozSi desea solicitar marcas de voz para el texto de entrada, utilice el comando synthesize-speech.Además del texto de entrada, son necesarios los siguientes elementos para devolver estos metadatos:

• output-format

Amazon Polly solo es compatible con el formato JSON cuando se devuelven marcas de voz.

--output-format json

Si utiliza un formato de salida no compatible, Amazon Polly genera una excepción.• voice-id

Para asegurarse de que los metadatos coinciden con la secuencia de audio asociada, especifique lamisma voz que se utilizó para generar la secuencia de audio del fragmento sintetizado. La velocidad dehabla no es la misma en todas las voces. Si utiliza una voz diferente que la que se empleó para generarel fragmento hablado, los metadatos no coincidirán con los de la secuencia de audio.

24

Amazon Polly Developer GuideSalida de marcas de voz

--voice-id Joanna

• speech-mark-types

Especifique el tipo o los tipos de marcas de voz que desee. Puede solicitar algunos o todos los tipos demarcas de voz, pero debe especificar al menos un tipo.

--speech-mark-types='["sentence", "word", "viseme", "ssml"]'

• text-type

El texto sin formato es el texto de entrada predeterminado en Amazon Polly; por tanto, debe usar text-type ssml si desea obtener marcas de voz SSML.

• outfile

Especifique el archivo de salida en el que se escribirán los metadatos.

MaryLamb.txt

 

El ejemplo siguiente de AWS CLI está preparado para Unix, Linux y macOS. Para Windows, reemplace elcarácter de continuación de Unix de barra inversa (\) al final de cada línea por un signo de intercalación (^)y use comillas dobles (") para el texto de entrada con comillas simples (') para las etiquetas interiores.

aws polly synthesize-speech \ --output-format json \ --voice-id Voice ID \ --text 'Input text' \ --speech-mark-types='["sentence", "word", "viseme"]' \ outfile

Salida de marcas de vozAmazon Polly devuelve los objetos de marcas de voz en una secuencia JSON delimitada por saltos delínea. Los objetos de marca de voz tienen los siguientes campos:

• time: marca temporal en milisegundos que indica el comienzo de la secuencia de audio correspondiente.• type: tipo de marca de voz (frase, palabra, visema o ssml).• start: desplazamiento en bytes del inicio del objeto en el texto de entrada (sin incluir marcas de visemas).• end: desplazamiento en bytes del final del objeto en el texto de entrada (sin incluir marcas de visemas).• value: varía en función del tipo de marca de voz.

• SSML: etiqueta SSML <mark>.• viseme: nombre del visema• word o sentence: subcadena del texto de entrada delimitada por los campos start y end.

Por ejemplo, Amazon Polly genera el objeto de marca de voz word siguiente a partir del texto "Mary had alittle lamb":

{"time":373,"type":"word","start":5,"end":8,"value":"had"}

25

Amazon Polly Developer GuideEjemplos de marcas de voz

La palabra descrita ("had") comienza 373 milisegundos después de que comience la secuencia de audio;además, se inicia en el byte 5 y termina en el byte 8 del texto de entrada.

Note

Estos metadatos corresponden al ID de voz Joanna. Si utiliza otra voz con el mismo texto deentrada, los metadatos pueden variar.

 

Ejemplos de marcas de vozEn los siguientes ejemplos de solicitudes de marcas de voz se muestra cómo realizar solicitudes comunesy el resultado que generan.

Ejemplo 1: Marcas de voz sin SSMLEn el ejemplo siguiente se muestra el aspecto aproximado que tendrán en su pantalla los metadatos de lafrase "Mary had a little lamb" solicitados. Por simplificar, no se han incluido las marcas de voz SSML en elejemplo.

El ejemplo siguiente de AWS CLI está preparado para Unix, Linux y macOS. Para Windows, reemplace elcarácter de continuación de Unix de barra inversa (\) al final de cada línea por un signo de intercalación (^)y use comillas dobles (") para el texto de entrada con comillas simples (') para las etiquetas interiores.

aws polly synthesize-speech \ --output-format json \ --voice-id Joanna \ --text 'Mary had a little lamb.' \ --speech-mark-types='["viseme", "word", "sentence"]' \ MaryLamb.txt

Si realiza esta solicitud, Amazon Polly devolverá el siguiente archivo .txt:

{"time":0,"type":"sentence","start":0,"end":23,"value":"Mary had a little lamb."}{"time":6,"type":"word","start":0,"end":4,"value":"Mary"}{"time":6,"type":"viseme","value":"p"}{"time":73,"type":"viseme","value":"E"}{"time":180,"type":"viseme","value":"r"}{"time":292,"type":"viseme","value":"i"}{"time":373,"type":"word","start":5,"end":8,"value":"had"}{"time":373,"type":"viseme","value":"k"}{"time":460,"type":"viseme","value":"a"}{"time":521,"type":"viseme","value":"t"}{"time":604,"type":"word","start":9,"end":10,"value":"a"}{"time":604,"type":"viseme","value":"@"}{"time":643,"type":"word","start":11,"end":17,"value":"little"}{"time":643,"type":"viseme","value":"t"}{"time":739,"type":"viseme","value":"i"}{"time":769,"type":"viseme","value":"t"}{"time":799,"type":"viseme","value":"t"}{"time":882,"type":"word","start":18,"end":22,"value":"lamb"}{"time":882,"type":"viseme","value":"t"}{"time":964,"type":"viseme","value":"a"}{"time":1082,"type":"viseme","value":"p"}

En este resultado, cada parte del texto está dividido en función de las marcas de voz:

• Por un lado, la frase "Mary had a little lamb".

26

Amazon Polly Developer GuideSolicitar marcas de voz a travésde la consola de Amazon Polly

• Por otro lado, cada palabra del texto: "Mary", "had", "a", "little" y "lamb".• Por último, el visema de cada sonido de la secuencia de audio correspondiente: "p", "E", "r", "i", etc. Para

obtener más información sobre los visemas, consulte Visemas y Amazon Polly (p. 23).

Ejemplo 2: Marcas de voz con SSMLEl proceso de generar marcas de voz desde un texto mejorado con SSML es muy parecido al proceso quese utiliza cuando SSML no está presente. Utilice el comando synthesize-speech, especifique el textomejorado con SSML y determine el tipo de marcas de voz que desea usar, tal y como se muestra en elejemplo siguiente. Para que el ejemplo resulte más fácil de leer, no hemos incluido las marcas de voz delos visemas, pero también podrían incluirse.

El ejemplo siguiente de AWS CLI está preparado para Unix, Linux y macOS. Para Windows, reemplace elcarácter de continuación de Unix de barra inversa (\) al final de cada línea por un signo de intercalación (^)y use comillas dobles (") para el texto de entrada con comillas simples (') para las etiquetas interiores.

aws polly synthesize-speech \ --output-format json \ --voice-id Joanna \ --text-type ssml \ --text '<speak><prosody volume="+20dB">Mary had <break time="300ms"/>a little <mark name="animal"/>lamb</prosody></speak>' \ --speech-mark-types='["sentence", "word", "ssml"]' \ output.txt

Si realiza esta solicitud, Amazon Polly devolverá el siguiente archivo .txt:

{"time":0,"type":"sentence","start":31,"end":95,"value":"Mary had <break time=\"300ms\"\/>a little <mark name=\"animal\"\/>lamb"}{"time":6,"type":"word","start":31,"end":35,"value":"Mary"}{"time":325,"type":"word","start":36,"end":39,"value":"had"}{"time":897,"type":"word","start":40,"end":61,"value":"<break time=\"300ms\"\/>"}{"time":1291,"type":"word","start":61,"end":62,"value":"a"}{"time":1373,"type":"word","start":63,"end":69,"value":"little"}{"time":1635,"type":"ssml","start":70,"end":91,"value":"animal"}{"time":1635,"type":"word","start":91,"end":95,"value":"lamb"}

Solicitar marcas de voz a través de la consola deAmazon Polly

Puede utilizar la consola para solicitar las marcas de voz de Amazon Polly. Una vez hecho esto, podrá verlos metadatos o guardarlos en un archivo.

Para generar marcas de voz desde la consola

1. Inicie sesión en la consola de administración de AWS y abra la consola de Amazon Polly en https://console.aws.amazon.com/polly/.

2. Elija la pestaña Text-to-Speech.3. Continúe utilizando la pestaña Plain Text o elija la pestaña SSML.4. Escriba o pegue el texto en el cuadro de entrada.5. En Language and region, elija el idioma del texto.6. En Voice, elija la voz que desee usar con el texto.

27

Amazon Polly Developer GuideSolicitar marcas de voz a travésde la consola de Amazon Polly

7. Para cambiar la pronunciación del texto, elija Customize Pronunciation y, en Apply Lexicon, elija ellexicón que desee.

8. Para comprobar si el fragmento hablado está en su formato final, elija Listen to speech.9. Elija Change File Format.

Note

Si la descarga se realiza en los formatos MP3, OGG o PCM, no se generarán marcas de voz.10. En File Format, elija Speech Marks.11. En Speech Mark Types, elija los tipos de marcas de voz que desea generar. La opción para elegir

metadatos SSML solo está disponible en la pestaña SSML. Para obtener más información sobre eluso de SSML con Amazon Polly, consulte Generación de fragmentos hablados desde documentosSSML (p. 29).

12. Elija Change.13. Elija Download Speech Marks.

 

28

Amazon Polly Developer GuideUso de SSML en la consola

Generación de fragmentos habladosdesde documentos SSML

Puede utilizar Amazon Polly para generar fragmentos hablados a partir de una entrada de texto sin formatoo de documentos etiquetados con lenguaje de marcado de síntesis de voz (SSML). Con las etiquetasSSML, puede personalizar y controlar diferentes aspectos del fragmento hablado, como la pronunciación,el volumen y la velocidad de habla.

Amazon Polly es compatible con SSML versión 1.1, tal y como se establece en la siguiente recomendaciónde W3C:

• Recomendación de W3C sobre Speech Synthesis Markup Language (SSML) versión 1.1 del 7 deseptiembre de 2010

Puede utilizar SSML en la consola de Amazon Polly o mediante la AWS CLI. En los siguientes temas seindica cómo puede utilizar SSML para generar fragmentos hablados y controlar la salida con precisión paraque se adapte a sus necesidades.

Temas• Uso de SSML (consola) (p. 29)• Uso de SSML (AWS CLI) (p. 30)• Etiquetas SSML admitidas por Amazon Polly (p. 34)

Uso de SSML (consola)Con las etiquetas SSML, puede personalizar y controlar diferentes aspectos del fragmento hablado,como la pronunciación, el volumen y la velocidad de habla. En la consola de AWS, el texto mejoradocon SSML que desea convertir en audio se introduce en la pestaña SSML de la página de conversiónde texto a voz. Aunque el texto que se introduce sin formato se basa en los valores predeterminadoselegidos para el idioma y la voz, el texto mejorado con SSML indica a Amazon Polly no solo lo que sedesea decir, sino también cómo se desea decirlo. Si se exceptúan las etiquetas SSML añadidas, AmazonPolly sintetiza el texto mejorado con SSML del mismo modo que sintetiza el texto sin formato. Para obtenermás información, consulte Ejercicio 2: Sintetizar el habla (entrada de texto sin formato) (p. 12).

Cuando utilice SSML, incluya todo el texto en una etiqueta <speak> para indicar a Amazon Polly que estáutilizando SSML. Por ejemplo:

<speak>Hi! My name is Joanna. I will read any text you type here.</speak>

A continuación, utilice etiquetas SSML específicas en el texto que está dentro de las etiquetas <speak>para personalizar la forma en la que desea que suene el texto. Puede añadir una pausa, cambiar el ritmode la locución, reducir o aumentar el volumen de la voz, o añadir muchas otras personalizaciones parahacer modo que el texto suene como usted desea. Para obtener una lista completa de las etiquetas SSMLque puede utilizar, consulte Etiquetas SSML admitidas (p. 35).

En el ejemplo siguiente, se usa una etiqueta SSML para indicar a Amazon Polly que sustituya "World WideWeb Consortium" por "W3C" cuando lea un breve párrafo. También puede utilizar etiquetas para introduciruna pausa y susurrar una palabra. Compare los resultados de este ejercicio con los de Aplicar lexicones através de la consola (síntesis de voz) (p. 113).

29

Amazon Polly Developer GuideUso de SSML en la CLI de AWS

Para obtener más información y ejemplos de SSML, consulte Etiquetas SSML admitidas (p. 35).

Para sintetizar la voz de texto mejorado con SSML (consola)

1. Inicie sesión en la consola de administración de AWS y abra la consola de Amazon Polly en https://console.aws.amazon.com/polly/.

2. Si aún no está abierta, elija la pestaña Text-to-Speech (Texto a voz).3. Seleccione la pestaña SSML.4. Escriba o pegue el siguiente texto en el cuadro de texto:

<speak> He was caught up in the game.<break time="1s"/> In the middle of the 10/3/2014 <sub alias="World Wide Web Consortium">W3C</sub> meeting, he shouted, "Score!" quite loudly. When his boss stared at him, he repeated <amazon:effect name="whispered">"Score"</amazon:effect> in a whisper.</speak>

Las etiquetas SSML indican a Amazon Polly cómo representar el texto:

• <break time="1s"/> indica a Amazon Polly que debe detenerse un segundo entre las dosprimeras frases.

• <sub alias="World Wide Web Consortium">W3C</sub> indica a Amazon Polly que debesustituir "World Wide Web Consortium" por el acrónimo "W3C".

• <amazon:effect name="whispered">Score</amazon:effect> indica Amazon Polly quesusurre la segunda aparición de la palabra "Score".

Note

Cuando use la AWS CLI, debe incluir el texto de entrada entre comillas para diferenciarlodel código que lo rodea. La consola de Amazon Polly no muestra el código, por lo que noincluya el texto de entrada entre comillas cuando la utilice.

5. En Choose a language and region (Elija un idioma y una región), elija English US (Inglés de EE. UU.)y, a continuación, elija una voz.

6. Si desea escuchar el fragmento hablado, elija Listen to speech (Escuchar fragmento hablado).7. Para guardar el archivo de voz, elija Download [format] (Descargar [formato]). Si desea guardarlo en

un formato diferente, elija Change file format (Cambiar formato de archivo) y, a continuación, elija elformato que desee. A continuación, elija Change (Cambiar) y Download [format] (Descargar [formato]).

Uso de SSML (AWS CLI)Puede usar la AWS CLI para sintetizar entrada de texto SSML. En los siguientes ejemplos se muestracómo realizar tareas comunes con la AWS CLI.

Temas• Uso de SSML con el comando de síntesis de voz (p. 30)• Síntesis de un documento mejorado con SSML (p. 31)• Uso de SSML para tareas comunes de Amazon Polly (p. 32)

Uso de SSML con el comando de síntesis de vozEste ejemplo muestra cómo utilizar el comando synthesize-speech con una cadena SSML. Cuando seutiliza el comando synthesize-speech, normalmente se proporciona lo siguiente:

30

Amazon Polly Developer GuideSíntesis de un documento mejorado con SSML

• El texto de entrada (obligatorio)• Las etiquetas de apertura y cierre (obligatorio)• El formato de salida• Una voz

En este ejemplo, especifica una cadena de texto sencilla entre comillas junto con las etiquetas <speak></speak> de apertura y cierre necesarias.

Important

Aunque no se utilizan comillas alrededor del texto de entrada en la consola de Amazon Polly,debe usarlas en la AWS CLI. También es importante que diferencie entre las comillas alrededorde texto de entrada y las comillas necesarias para las distintas etiquetas.Por ejemplo, puede usar comillas normales (") para rodear el texto de entrada y comillas simples(') para las etiquetas internas, o viceversa. Cualquiera de las dos opciones funciona para Unix,Linux y macOS. Sin embargo, con Windows debe incluir el texto de entrada entre comillasnormales y usar las comillas simples para las etiquetas.Para todos los sistemas operativos, puede usar comillas normales (") para rodear el texto deentrada y comillas simples (') para las etiquetas internas. Por ejemplo:

--text "<speak>Hello <break time='300ms'/> World</speak>"

Para Unix, Linux y macOS, también puede usarlas al revés: las comillas simples (') para el textode entrada y las comillas normales (") para las etiquetas internas:

--text '<speak>Hello <break time="300ms"/> World</speak>'

El ejemplo siguiente de AWS CLI está preparado para Unix, Linux y macOS. Para Windows, reemplace elcarácter de continuación de Unix de barra inversa (\) al final de cada línea por un signo de intercalación (^)y use comillas dobles (") para el texto de entrada con comillas simples (') para las etiquetas interiores.

aws polly synthesize-speech \--text-type ssml \--text '<speak>Hello world</speak>' \--output-format mp3 \--voice-id Joanna \speech.mp3

Para oír el fragmento hablado sintetizado, reproduzca el archivo speech.mp3 resultante con unreproductor de sonido.

Síntesis de un documento mejorado con SSMLPara el texto de entrada largo, es posible que le resulte más fácil guardar el contenido SSML en un archivoy especificar simplemente el nombre de archivo en el comando synthesize-speech. Por ejemplo,puede guardar lo siguiente en un archivo llamado example.xml:

<?xml version="1.0"?><speak version="1.1" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/2001/10/synthesis http://www.w3.org/TR/speech-synthesis11/synthesis.xsd" xml:lang="en-US">Hello World</speak>

31

Amazon Polly Developer GuideUso de SSML para tareas comunes de Amazon Polly

El atributo xml:lang establece en-US (inglés de EE. UU.) como el idioma del texto de entrada. Sidesea obtener más información acerca de cómo afecta el idioma del texto de entrada y de la vozelegido al funcionamiento de SynthesizeSpeech, consulte Mejorar la pronunciación de palabrasextranjeras (p. 34).

Para ejecutar un archivo mejorado con SSML

1. Guarde el SSML en un archivo (por ejemplo, example.xml).2. Ejecute el siguiente comando synthesize-speech desde la ruta en la que guardó el archivo XML

y especifique el archivo SSML como entrada sustituyendo file:\\example.xml para el texto deentrada. Como este comando apunta a un archivo en lugar de contener el texto de entrada real, no esnecesario usar comillas.

Note

El ejemplo siguiente de AWS CLI está formateado para Unix, Linux y macOS. Para Windows,sustituya la barra diagonal invertida (\) utilizada como carácter de continuación de Unix al finalde cada línea por el signo de intercalación (^).

aws polly synthesize-speech \--text-type ssml \--text file://example.xml \--output-format mp3 \--voice-id Joanna \speech.mp3

3. Para oír el fragmento hablado sintetizado, reproduzca el archivo speech.mp3 resultante con unreproductor de sonido.

Uso de SSML para tareas comunes de Amazon PollyLos siguientes ejemplos muestran cómo utilizar etiquetas SSML para realizar tareas comunes de AmazonPolly. Para ver otras etiquetas SSML, consulte Etiquetas SSML admitidas por Amazon Polly (p. 34).

Para probar los siguientes ejemplos, utilice el siguiente comando synthesize-speech con el textomejorado con SSML correspondiente:

El ejemplo siguiente de AWS CLI está preparado para Unix, Linux y macOS. Para Windows, reemplace elcarácter de continuación de Unix de barra inversa (\) al final de cada línea por un signo de intercalación (^)y use comillas dobles (") para el texto de entrada con comillas simples (') para las etiquetas interiores.

aws polly synthesize-speech \--text-type ssml \--text '<speak>Hello <break time="300ms"/> World</speak>' \--output-format mp3 \--voice-id Joanna \speech.mp3

Añadir una pausaPara añadir una pausa entre palabras, utilice el elemento <break>. El siguiente comando SSMLsynthesize-speech utiliza el elemento <break> para añadir un retraso de 300 milisegundos entre laspalabras "Hello" y "World".

<speak> Hello <break time="300ms"/> World.

32

Amazon Polly Developer GuideUso de SSML para tareas comunes de Amazon Polly

</speak>

Controlar el volumen, el tono y la velocidadPara controlar el tono, el volumen y la velocidad de habla, use el elemento <prosody>.

• En el siguiente comando de síntesis se utiliza el elemento <prosody> para controlar el volumen:

<speak> <prosody volume="+20dB">Hello world</prosody></speak>

• El siguiente comando synthesize-speech utiliza el elemento <prosody> para controlar el tono:

<speak> <prosody pitch="x-high">Hello world.</prosody></speak>

• El siguiente comando synthesize-speech utiliza el elemento <prosody> para especificar lavelocidad de habla:

<speak> <prosody rate="x-fast">Hello world.</prosody></speak>

• Tal y como se muestra en los ejemplos siguientes, puede especificar varios atributos en un elemento<prosody>:

<speak> <prosody volume="x-loud" pitch="x-high" rate="x-fast">Hello world.</prosody></speak>

SusurrosPara susurrar palabras, utilice el elemento <amazon:effect name="whispered">. En el siguienteejemplo, el elemento <amazon:effect name="whispered"> indica a Amazon Polly que susurre "littlelamb":

<speak> Mary has a <amazon:effect name="whispered">little lamb.</amazon:effect></speak>

Para mejorar ese efecto, use el elemento <prosody> para ralentizar ligeramente el fragmento susurrado.

Enfatizar palabrasPara recalcar una palabra o frase, utilice el elemento <emphasis>.

<speak> <emphasis level="strong">Hello</emphasis> world how are you?</speak>

Especificar cómo se pronuncian algunas palabrasPara proporcionar información sobre el tipo de texto que se va pronunciar, utilice el elemento <say-as>.

33

Amazon Polly Developer GuideEtiquetas SSML admitidas por Amazon Polly

Por ejemplo, en el siguiente SSML, <say-as> indica que el texto 4/6 debe interpretarse como una fecha.El atributo interpret-as="date" format="dm" indica que debe leerse como una fecha con elformato mes/día.

También puede utilizar el elemento <say-as> para indicar a Amazon Polly que pronuncie los númeroscomo fracciones, números de teléfono, unidades de medida, etc.

<speak> Today is <say-as interpret-as="date" format="md" >4/6</say-as></speak>

El fragmento hablado resultante es "Today is June 4th". La etiqueta <say-as> describe cómo debeinterpretarse el texto proporcionando información adicional con el atributo interpret-as.

Para comprobar la precisión del fragmento sintetizado, reproduzca el archivo speech.mp3 resultante.

Para obtener más información sobre este elemento, consulte Controlar cómo se leen los tipos especialesde palabras (p. 43).

Mejorar la pronunciación de palabras extranjerasAmazon Polly presupone que el texto de entrada está en el mismo idioma que la voz seleccionada. Paramejorar la pronunciación de palabras extranjeras en el texto de entrada, en el comando synthesize-speech, especifique el idioma de destino con el atributo xml:lang. Esto indica a Amazon Polly queaplique reglas de pronunciación diferentes para las palabras extranjeras etiquetadas.

Los siguientes ejemplos muestran cómo utilizar diferentes combinaciones de idiomas en el texto deentrada y cómo especificar voces y la pronunciación de palabras extranjeras. Para ver una lista completade los idiomas disponibles, consulte Idiomas admitidos por Amazon Polly (p. 21).

En el siguiente ejemplo, la voz (Joanna) está en inglés de EE. UU. De forma predeterminada, AmazonPolly presupone que el texto de entrada está en el mismo idioma que la voz seleccionada (en este caso,inglés de EE. UU.). Cuando utiliza la etiqueta xml:lang, Amazon Polly interpreta el texto como españoly el texto se pronuncia como la voz seleccionada pronunciaría palabras en español, de acuerdo conlas reglas de pronunciación del idioma extranjero. Sin esta etiqueta, el texto se lee con las reglas depronunciación de la voz seleccionada.

<speak> That restaurant is terrific. <lang xml:lang="es-ES">Mucho gusto.</lang></speak>

Dado que el idioma del texto de entrada es inglés, Amazon Polly establece una correspondencia entre losfonemas españoles y los fonemas ingleses que más se parecen. Por consiguiente, Joanna pronuncia eltexto como un hablante estadounidense nativo que pronuncia las palabras correctamente en español, perocon acento inglés de Estados Unidos.

Note

Algunos idiomas son más similares que otros y algunas combinaciones de idiomas funcionanmejor que otras.

Etiquetas SSML admitidas por Amazon PollyEl uso de texto de entrada mejorado con SSML ofrece mayor control sobre el modo en que Amazon Pollygenera el fragmento hablado a partir del texto proporcionado.

Por ejemplo, puede incluir una larga pausa dentro del texto o cambiar la velocidad de habla o el tono.Amazon Polly permite ejercer este tipo de control con un subconjunto de etiquetas de marcado SSML, tal

34

Amazon Polly Developer GuideEtiquetas SSML admitidas

y como se especifica en la recomendación de W3C sobre Speech Synthesis Markup Language (SSML)versión 1.1.

Etiquetas SSML admitidasAmazon Polly admite las siguientes etiquetas SSML:

Acción Etiqueta SSML

Añadir una pausa (p. 36) <break>

Enfatizar palabras (p. 36) <emphasis>

Especificar otro idioma para palabras específicas (p. 37)

<lang>

Colocar una etiqueta personalizada en el texto (p. 38)

<mark>

Añadir una pausa entre párrafos (p. 38) <p>

Uso de la pronunciación fonética (p. 38) <phoneme>

Control del volumen, velocidad de habla y tono (p. 39)

<prosody>

Establecimiento de una duración máxima parafragmento sintetizado (p. 41)

<prosody amazon:max-duration>

Añadir una pausa entre frases (p. 43) <s>

Controlar cómo se leen los tipos especiales depalabras (p. 43)

<say-as>

Identificación de texto mejorado con SSML (p. 35)

<speak>

Pronunciación de acrónimos y abreviaturas (p. 45)

<sub>

Mejorar la pronunciación especificando la categoríagramatical (p. 46)

<w>

Adición de sonido de respiración (p. 47) <amazon:auto-breaths>

Añadir compresión de rango dinámico (p. 49) <amazon:effect name="drc">

Hablar bajo (p. 51) <amazon:effect phonation="soft">

Controlar el timbre (p. 51) <amazon:effect vocal-tract-length>

Susurros (p. 52) <amazon:effect name="whispered">

Las etiquetas SSML no admitidas en el texto de entrada generan errores.

Identificación de texto mejorado con SSML<speak>

35

Amazon Polly Developer GuideEtiquetas SSML admitidas

La etiqueta <speak> es el elemento raíz de todo el texto SSML de Amazon Polly. Todo el texto mejoradocon SSML debe incluirse entre un par de etiquetas <speak>.

<speak>Mary had a little lamb.</speak>

Añadir una pausa<break>

Para añadir una pausa al texto, utilice la etiqueta <break>. Puede establecer una pausa basada enla intensidad (equivalente a la pausa después de una coma, una frase o un párrafo), o bien puedeestablecerla en un periodo de tiempo específico en segundos o milisegundos. Si no se especifica unatributo para determinar la duración de la pausa, Amazon Polly utiliza el valor predeterminado <breakstrength="medium">, que añade una pausa con la duración de una pausa después de una coma.

Valores del atributo strength:

• none: sin pausa. Use none para eliminar una pausa que se produce normalmente, como después de unpunto.

• x-weak: tiene la misma fuerza que none, sin pausa.• weak: establece una pausa de la misma duración que la pausa después de una coma.• medium: tiene la misma fuerza que weak.• strong: establece una pausa de la misma duración que la pausa después de una frase.• x-strong: establece una pausa de la misma duración que la pausa después de un párrafo.

Valores del atributo time:

• [number]s: la duración de la pausa en segundos. La duración máxima es 10s.• [number]ms: la duración de la pausa en milisegundos. La duración máxima es 10000ms.

Por ejemplo:

<speak> Mary had a little lamb <break time="3s"/>Whose fleece was white as snow.</speak>

Si no utiliza un atributo con la etiqueta break, el resultado varia en función del texto:

• Si no hay ningún otro tipo de puntuación junto a la etiqueta break, se crea una de tipo <breakstrength="medium"> (pausa después de una coma).

• Si la etiqueta está junto a una coma, se actualiza la etiqueta a <break strength="strong"> (pausadespués de una frase).

• Si la etiqueta está junto a un punto, se actualiza la etiqueta a <break strength="x-strong">(pausa después de un párrafo).

Enfatizar palabras<emphasis>

Para enfatizar palabras, utilice la etiqueta <emphasis>. Enfatizar las palabras cambia el volumen y lavelocidad de la voz. Más énfasis significa que Amazon Polly lee el texto más alto y lento. Menos énfasishace que el texto se lea más bajo y rápido. Para especificar el grado de énfasis, utilice el atributo level.

Valores del atributo level:

36

Amazon Polly Developer GuideEtiquetas SSML admitidas

• Strong: aumenta el volumen y ralentiza la velocidad de habla, para que la voz sea más alta y lenta.• Moderate: aumenta el volumen y ralentiza la velocidad de habla, pero menos que strong. Moderate

es el valor predeterminado.• Reduced: aumenta el volumen e incrementa la velocidad de habla. La voz es más baja y rápida.

Note

La velocidad y el volumen de habla normales para una voz se encuentran entre los nivelesmoderate y reduced.

Por ejemplo:

<speak> I already told you I <emphasis level="strong">really like</emphasis> that person.</speak>

Especificar otro idioma para palabras específicas<lang>

Especifique otro idioma para una palabra específica, frase u oración con la etiqueta <lang>. Las palabras yfrases extranjeras normalmente se leen mejor cuando se incluyen entre un par de etiquetas <lang>. Paraespecificar el idioma, utilice el atributo xml:lang. Para ver una lista completa de los idiomas disponibles,consulte Idiomas admitidos por Amazon Polly (p. 21).

A menos que aplique la etiqueta <lang>, todas las palabras del texto de entrada se leen en el idioma de lavoz especificada en voice-id. Si aplica la etiqueta <lang>, las palabras se leen en ese idioma.

Por ejemplo, si el voice-id es Joanna (que habla inglés de Estados Unidos), Amazon Polly lee losiguiente en la voz de Joanna sin acento francés:

<speak> Je ne parle pas français.</speak>

Si utiliza la voz de Joanna con la etiqueta <lang>, Amazon Polly lee la frase en la voz de Joanna enfrancés con acento americano:

<speak> <lang xml:lang="fr-FR">Je ne parle pas français.</lang>.</speak>

Como Joanna no es una hablante nativa del francés, la pronunciación tendrá como base su idioma nativo,inglés de Estados Unidos. Por ejemplo, aunque una pronunciación francesa perfecta pronunciaría lapalabra français con una /R/ vibrante uvular, la voz de Joanna, cuyo idioma nativo es el inglés americano,pronuncia este fonema con el sonido /r/ correspondiente.

Si utiliza el voice-id de Giorgio, que habla italiano, con el siguiente texto, Amazon Polly lee la frase en lavoz de Giorgio con pronunciación italiana:

<speak> Mi piace Bruce Springsteen.</speak>

Si utiliza la misma voz con la siguiente etiqueta <lang>, Amazon Polly pronuncia Bruce Springsteen eninglés con acento italiano:

37

Amazon Polly Developer GuideEtiquetas SSML admitidas

<speak> Mi piace <lang xml:lang="en-US">Bruce Springsteen.</lang></speak>

Esta etiqueta también se puede utilizar como sustituto de la opción DefaultLangCode al realizar la síntesisde voz. Sin embargo, esto requiere dar formato al texto con SSML.

Colocar una etiqueta personalizada en el texto<mark>

Para colocar una etiqueta personalizada dentro del texto, utilice la etiqueta <mark>. Amazon Polly norealiza ninguna acción en la etiqueta, pero devuelve la ubicación de la etiqueta en los metadatos SSML.Esta etiqueta puede ser cualquier cosa que se le ocurra, siempre que mantenga el siguiente formato:

<mark name="tag_name"/>

Por ejemplo, suponga que el nombre de la etiqueta es "animal" y el texto de entrada es:

<speak> Mary had a little <mark name="animal"/>lamb.</speak>

Amazon Polly podría devolver los siguientes metadatos SSML:

{"time":767,"type":"ssml","start":25,"end":46,"value":"animal"}

Añadir una pausa entre párrafos<p>

Para añadir una pausa entre los párrafos del texto, utilice la etiqueta <p>. El uso de esta etiquetaproporciona una pausa que incluyen normalmente los hablantes nativos cuando hay una coma o al final deuna frase. Utilice la etiqueta <p> para incluir el párrafo:

<speak> <p>This is the first paragraph. There should be a pause after this text is spoken.</p> <p>This is the second paragraph.</p> </speak>

Esto equivale a especificar una pausa con <break strength="x-strong"/>.

Uso de la pronunciación fonética<phoneme>

Para que Amazon Polly utilice la pronunciación fonética para un determinado texto, utilice la etiqueta<phoneme>.

La etiqueta <phoneme> requiere dos atributos. Indican el alfabeto fonético que utiliza Amazon Polly y lossímbolos fonéticos de la pronunciación corregida:

• alphabet

• ipa: indica que se usará el Sistema Fonético Internacional (IPA, por sus siglas en inglés).

38

Amazon Polly Developer GuideEtiquetas SSML admitidas

• x-sampa: indica que se usará el Alfabeto Fonético Extendido SAM (X-SAMPA, por sus siglas eninglés).

• ph

• Especifica los símbolos fonéticos para la pronunciación. Para obtener más información, consulteTablas de fonemas y visemas de los idiomas admitidos (p. 53)

Con la etiqueta <phoneme>, Amazon Polly utiliza la pronunciación especificada por el atributo ph enlugar de la pronunciación estándar asociada de forma predeterminada con el idioma utilizado por la vozseleccionada.

Por ejemplo, la palabra "pecan" puede pronunciarse de dos formas. En el ejemplo siguiente, a la palabra“pecan” se le asigna una pronunciación diferente en cada línea. Amazon Polly pronuncia "pecan" tal ycomo se especifica en los atributos ph, en lugar de utilizar la pronunciación predeterminada:

<speak> You say, <phoneme alphabet="ipa" ph="p##k##n">pecan</phoneme>. I say, <phoneme alphabet="ipa" ph="#pi.kæn">pecan</phoneme>.</speak>

Control del volumen, velocidad de habla y tono<prosody>

Para controlar el volumen, la velocidad o el tono de la voz seleccionada, utilice la etiqueta prosody.

El volumen, la velocidad de habla, y el tono dependen de la voz seleccionada. Además de las diferenciasentre las voces de diferentes idiomas, existen diferencias entre las voces que hablan el mismo idioma.Por este motivo, aunque los atributos son similares en todos los idiomas, existen claras variaciones de unidioma a otro y no hay ningún valor absoluto disponible.

La etiqueta prosody tiene tres atributos, cada uno de los cuales tiene varios valores disponibles paraestablecer el atributo. Todos los atributos utilizan la misma sintaxis:

<prosody attribute="value"></prosody>

• volume

• default: restablece el volumen al nivel predeterminado de la voz actual.• silent, x-soft, soft, medium, loud, x-loud: establece el volumen en un valor predefinido de la

voz actual.• +ndB, -ndB: cambia el volumen en función del nivel actual. El valor +0dB significa que no se

producen cambios, +6dB significa aproximadamente el doble del volumen actual y -6dB significaaproximadamente la mitad del volumen actual.

Por ejemplo, puede establecer el volumen de un pasaje tal y como se indica a continuación:

<speak> Sometimes it can sometimes be useful to <prosody volume="loud">increase the volume for a specific speech.</prosody> </speak>

También se puede hacer de este modo:

<speak> And sometimes a lower volume <prosody volume="-6dB">is a more effective way of interacting with your audience.</prosody>

39

Amazon Polly Developer GuideEtiquetas SSML admitidas

</speak>

• rate

• x-slow, slow, medium, fast,x-fast. Establece el tono en un valor predefinido para la vozseleccionada.

• n%: un cambio de porcentaje no negativo en la velocidad de habla. Por ejemplo, un valor de 100%significa que no hay ningún cambio en la velocidad de habla; un valor de 200% significa una velocidaddos veces superior a la velocidad predeterminada y un valor de 50% significa una velocidad de hablaa la mitad de la velocidad predeterminada. Este valor tiene un intervalo de 20-200%.

Por ejemplo, puede establecer la velocidad de habla de un pasaje tal y como se indica a continuación:

<speak> For dramatic purposes, you might wish to <prosody rate="slow">speed up the speaking rate of your text.</prosody> </speak>

También se puede hacer de este modo:

<speak> Although in some cases, it might help your audience to <prosody rate="85%">slow the speaking rate slightly to aid in comprehension.</prosody> </speak>

• pitch

• default: restablece el tono en el valor predeterminado de la voz actual.• x-low, low, medium, high, x-high: establece el tono en un valor predefinido de la voz actual.• +n% o -n%: ajusta el tono aplicando un porcentaje relativo. Por ejemplo, un valor de +0% significa que

no hay ningún cambio en el tono de base de referencia, +5% da como resultado un tono de base dereferencia un poco más alto y -5% da como resultado un tono de base de referencia un poco másbajo.

Por ejemplo, puede establecer el tono de un pasaje tal y como se indica a continuación:

<speak> Do you like sythesized speech <prosody pitch="high">with a pitch that is higher than normal?</prosody> </speak>

También se puede hacer de este modo:

<speak> Or do you prefer your speech <prosody pitch="-10%">with a somewhat lower pitch?</prosody> </speak>

La etiqueta <prosody> debe contener al menos un atributo, pero puede incluir más dentro de la mismaetiqueta.

<speak> Each morning when I wake up, <prosody volume="loud" rate="x-slow">I speak quite slowly and deliberately until I have my coffee.</prosody></speak>

También se puede combinar con etiquetas anidadas, tal y como se indica a continuación:

40

Amazon Polly Developer GuideEtiquetas SSML admitidas

<speak> <prosody rate="85%">Sometimes combining attributes <prosody pitch="-10%">can change the impression your audience has of a voice</prosody> as well.</prosody> </speak>

Establecimiento de una duración máxima para fragmentosintetizado<prosody amazon:max-duration>

Para controlar el tiempo que desea que tarde un fragmento de voz cuando se sintetiza, utilice la etiqueta<prosody> con el atributo amazon:max-duration.

La duración del fragmento de voz sintetizado varía ligeramente, en función de la voz que seleccione.Esto puede dificultar la coincidencia del fragmento de voz sintetizado con elementos visuales u otrasactividades que requieran una sincronización precisa. Este problema aumenta en el caso de aplicacionesde traducción, ya que el tiempo que se tarda en decir frases concretas puede variar notablemente endistintos idiomas.

La etiqueta <prosody amazon:max-duration> asigna el fragmento de voz sintetizada a la cantidad detiempo que desea que tarde (la duración).

Esta etiqueta utiliza la siguiente sintaxis:

<prosody amazon:max-duration="time duration">

Con la etiqueta <prosody amazon:max-duration>, puede especificar la duración en segundos omilisegundos:

• ns: la duración máxima en segundos• nms: la duración máxima en milisegundos

Por ejemplo, el siguiente texto hablado tiene una duración máxima de 2 segundos:

<speak> <prosody amazon:max-duration="2s"> Human speech is a powerful way to communicate. </prosody></speak>

Texto colocado dentro de la etiqueta, no supera la duración especificada. Si la voz o el idioma elegidonormalmente requiere más tiempo que la duración, Amazon Polly acelera el fragmento de voz de modoque se ajuste a la duración especificada.

Si la duración especificada es superior a lo que se tarda en leer el texto en una velocidad normal, AmazonPolly lee el fragmento con normalidad. No ralentiza el fragmento de voz ni añade silencio, por lo que elaudio resultante es más corto de lo necesario.

Note

Amazon Polly aumenta la velocidad no más de 5 veces la velocidad normal. Si el texto se lee másrápido que esto, por lo general no tiene sentido. Si un fragmento de voz no puede ajustarse a laduración especificada, incluso aunque la velocidad se acelere al máximo, el audio se acelerará,pero durará más de la duración especificada.

Puede incluir una sola frase o varias frases dentro de una etiqueta <prosody amazon:max-duration>y puede utilizar varias etiquetas <prosody amazon:max-duration> en su texto.

41

Amazon Polly Developer GuideEtiquetas SSML admitidas

Por ejemplo:

<speak> <prosody amazon:max-duration="2400ms"> Human speech is a powerful way to communicate. </prosody> <break strength="strong"/> <prosody amazon:max-duration="5100ms"> Even a simple ‘Hello’ can convey a lot of information depending on the pitch, intonation, and tempo. </prosody> <break strength="strong"/> <prosody amazon:max-duration="8900ms"> We naturally understand this information, which is why speech is ideal for creating applications where a screen isn’t practical or possible, or simply isn’t convenient. </prosody></speak>

El uso de la etiqueta <prosody amazon:max-duration> puede aumentar la latencia cuando AmazonPolly devuelve un fragmento de voz sintetizada. El grado de latencia depende del fragmento y de sulongitud. Le recomendamos que utilice texto compuesto por fragmentos de texto relativamente cortos.

Limitaciones

Existen limitaciones, tanto en la forma de utilizar la etiqueta <prosody amazon:max-duration> y encómo funciona con otras etiquetas de SSML:

• El texto dentro de una etiqueta <prosody amazon:max-duration> no puede tener más de 1500caracteres.

• No puede anidar etiquetas <prosody amazon:max-duration>. Si coloca una etiqueta <prosodyamazon:max-duration> dentro de otra, Amazon Polly omite la etiqueta interior.

Por ejemplo, en el caso siguiente se omite la etiqueta <prosody amazon:max-duration="5s">:

<speak> <prosody amazon:max-duration="16s"> Human speech is a powerful way to communicate. <prosody amazon:max-duration="5s"> Even a simple ‘Hello’ can convey a lot of information depending on the pitch, intonation, and tempo. </prosody>

We naturally understand this information, which is why speech is ideal for creating applications where a screen isn’t practical or possible, or simply isn’t convenient. </prosody></speak>

• No se pueden utilizar las etiquetas <prosody> con el atributo rate dentro de una etiqueta <prosodyamazon:max-duration>. Esto se debe a que ambas afectan a la velocidad a la que se dicta el texto.

En el ejemplo siguiente, Amazon Polly omite la etiqueta <prosody rate="2">:

<speak> <prosody amazon:max-duration="7500ms"> Human speech is a powerful way to communicate.

42

Amazon Polly Developer GuideEtiquetas SSML admitidas

<prosody rate="2"> Even a simple ‘Hello’ can convey a lot of information depending on the pitch, intonation, and tempo. </prosody> </prosody></speak>

Pausas y max-duration

Cuando se utiliza la etiqueta max-duration, puede insertar pausas en el texto. Sin embargo, AmazonPolly incluye la longitud de la pausa al calcular la duración máxima del fragmento de voz. Además, AmazonPolly conserva las pausas breves que se producen cuando hay comas y puntos en un fragmento y lasincluye en la duración máxima.

Por ejemplo, en el siguiente bloque, la interrupción de 600 milisegundos y la interrupción provocada porcomas y puntos se produce en el fragmento de texto de 8 segundos:

<speak> <prosody amazon:max-duration="8s"> Human speech is a powerful way to communicate. <break time="600ms"/> Even a simple ‘Hello’ can convey a lot of information depending on the pitch, intonation, and tempo. </prosody></speak>

Añadir una pausa entre frases<s>

Para añadir una pausa entre líneas o frases del texto, utilice la etiqueta <s>. El uso de esta etiqueta tieneel mismo efecto que:

• Terminar una frase con un punto (.)• Especificar una pausa con <break strength="strong"/>

A diferencia de la etiqueta <break>, la etiqueta <s> incluye la frase. Esto es útil para sintetizar la voz detexto organizado en líneas, en lugar de en frases, como los poemas.

En el siguiente ejemplo, la etiqueta <s> inserta una breve pausa después de la primera y segunda frase.La última frase no tiene ninguna etiqueta <s>, pero también se aplica una breve pausa detrás de ellaporque termina con un punto.

<speak> <s>Mary had a little lamb</s> <s>Whose fleece was white as snow</s> And everywhere that Mary went, the lamb was sure to go.</speak>

Controlar cómo se leen los tipos especiales de palabras<say-as>

Utilice la etiqueta <say-as> con el atributo interpret-as para indicar a Amazon Polly cómo leerdeterminados caracteres, palabras y números. De este modo, puede proporcionar información adicionalpara eliminar cualquier ambigüedad sobre cómo Amazon Polly debe representar el texto.

43

Amazon Polly Developer GuideEtiquetas SSML admitidas

La etiqueta say-as utiliza un atributo, <interpret-as>, que usa una serie de valores posibles. Todos ellosutilizan la misma sintaxis:

<say-as interpret-as="value">[text to be interpreted]</say-as>

Los valores siguientes están disponibles con interpret-as:

• character o spell-out: deletrea cada letra del texto, como en a-b-c.• cardinal o number: interpreta el valor numérico como un número cardinal; por ejemplo, 1.234.• ordinal: interpreta el texto numérico como un número ordinal; por ejemplo, 1.234º.• digits: deletrea cada dígito por separado; por ejemplo, 1-2-3-4.• fraction: interpreta el texto numérico como una fracción. Esto es aplicable a las fracciones comunes,

como 3/20, y a las fracciones mixtas, como 2 ½. Para obtener más información, consulte las seccionessiguientes.

• unit: interpreta un texto numérico como una medida. El valor debe ser un número o una fracciónseguido de una unidad (sin espacio entre ellos) como en 1/2inch, o solo de una unidad, como en1meter.

• date: interpreta el texto como una fecha. El formato de la fecha debe especificarse con el atributoformat. Para obtener más información, consulte las secciones siguientes.

• time: interpreta el texto numérico como una cantidad de tiempo en minutos y segundos; por ejemplo,1'21".

• address: interpreta el texto como parte de una dirección postal.• expletive: emite un pitido en lugar del contenido incluido en la etiqueta.• telephone: interpreta el texto numérico como un número de teléfono de 7 o 10 dígitos, como

en 2025551212. También puede utilizar este valor para las extensiones telefónicas, como en2025551212x345. Para obtener más información, consulte las secciones siguientes.

Note

Actualmente, la opción telephone solo está disponible para las voces en inglés.

Fracciones

Amazon Polly interpreta los valores dentro de la etiqueta say-as que tengan el atributo interpret-as="fraction" como fracciones comunes. A continuación se presenta la sintaxis de las fracciones:

• Fracción

Sintaxis: número cardinal/número cardinal (por ejemplo, 2/9).

Por ejemplo: <say-as interpret-as="fraction">2/9</say-as> se pronuncia "dos novenos."• Número mixto no negativo

Sintaxis: número cardinal+número cardinal/número cardinal (por ejemplo, 3+1/2).

Por ejemplo, <say-as interpret-as="fraction">3+1/2</say-as> se pronuncia "tres y medio".

Note

Debe haber un signo + entre "3" y "1/2". Amazon Polly no admite un número mixto sin el signo+, como, por ejemplo, "3 1/2".

Fechas

Cuando interpret-as se establece en date, también se deberá indicar el formato de la fecha.

44

Amazon Polly Developer GuideEtiquetas SSML admitidas

Utiliza la siguiente sintaxis:

<say-as interpret-as="date" format="format">[date]</say-as>

Por ejemplo:

<speak> I was born on <say-as interpret-as="date" format="dmy">12-31-1900</say-as>.</speak>

Los siguientes formatos pueden utilizarse con el atributo date.

• mdy: mes-día-año.• dmy: día-mes-año.• ymd: año-mes-día.• md: mes-día.• dm: día-mes.• ym: año-mes.• my: mes-año.• d: Día.• m: Month.• y: Year.• yyyymmdd: año-mes-día. Si utiliza este formato, puede hacer que Amazon Polly omita partes de la fecha

mediante signos de interrogación.

Por ejemplo, Amazon Polly reproduce lo siguiente como "22 de septiembre":

<say-as interpret-as="date">????0922</say-as>

Format no es necesario.

Teléfono

Amazon Polly intenta interpretar correctamente el texto proporcionado a partir de su formato aun cuandono aparece la etiqueta <say-as>. Por ejemplo, si el texto incluye "202-555-1212”, Amazon Polly lointerpreta como un número de teléfono de 10 cifras y lee cada cifra individualmente, aplicando una brevepausa en cada guion. En este caso, no es necesario usar <say-as interpret-as="telephone">.Sin embargo, si proporciona el texto “2025551212” y quiere que Amazon Polly lo lea como un número deteléfono, debería especificar <say-as interpret-as="telephone">.

La lógica para interpretar cada elemento depende del idioma. Por ejemplo, en inglés de EE. UU. y eninglés de Reino Unido, los números de teléfono no se expresan igual (en inglés de Reino Unido, seagrupan las secuencias del mismo número; por ejemplo, "doble cinco" o "triple cuatro"). Para ver ladiferencia, puede probar el siguiente ejemplo con una voz de Estados Unidos y otra de Reino Unido:

<speak> Richard's number is <say-as interpret-as="telephone">2122241555</say-as></speak>

Pronunciación de acrónimos y abreviaturas<sub>

45

Amazon Polly Developer GuideEtiquetas SSML admitidas

Utilice la etiqueta <sub> con el atributo alias para sustituir una sola palabra (o pronunciación) del textoseleccionado como un acrónimo o una abreviatura.

Se utiliza esta sintaxis:

<sub alias="new word">abbreviation</sub>

En el siguiente ejemplo, el nombre "Mercury" (Mercurio) se sustituye por el símbolo químico del elementopara que el contenido de audio sea más claro.

<speak> My favorite chemical element is <sub alias="Mercury">Hg</sub>, because it looks so shiny. </speak>

Mejorar la pronunciación especificando la categoría gramatical<w>

Puede utilizar la etiqueta <w> para personalizar la pronunciación de las palabras especificando sucategoría gramatical o su significado alternativo. Esto se realiza mediante el atributo role.

Esta etiqueta utiliza la siguiente sintaxis:

<w role="attribute">text</w>

Los siguientes valores pueden utilizarse con el atributo role:

Para especificar la categoría gramatical:

• amazon:VB: interpreta la palabra como un verbo (presente simple).• amazon:VBD: interpreta la palabra como pretérito o participio pasado.

Por ejemplo, dependiendo de la categoría gramatical, la pronunciación en inglés de Estados Unidos de lapalabra "read" varia en función de la etiqueta:

<speak> The word <say-as interpret-as="characters">read</say-as> may be interpreted as either the present simple form <w role="amazon:VB">read</w>, or the past participle form <w role="amazon:VBD">read</w>.</speak>

Para especificar un significado alternativo:

• amazon:SENSE_1: cuando es aplicable, utiliza un sentido de la palabra que no es el predeterminado.Por ejemplo, el nombre "bass" se pronuncia de forma diferente en función de su significado. Elsignificado predeterminado es la parte más baja de la escala musical. El significado alternativo es unaespecie de pez de agua dulce, también denominado "bass", pero que se pronuncia de forma diferente. Sise utiliza <w role="amazon:SENSE_1">bass</w>, se aplica la pronunciación no predeterminada (esdecir, pez de agua dulce) en el texto del audio.

Esta diferencia se puede oír si se sintetiza lo siguiente:

<speak> Depending on your meaning, the word <say-as interpret-as="characters">bass</say-as> may be interpreted as either a musical element: read, or as its alternative meaning,

46

Amazon Polly Developer GuideEtiquetas SSML admitidas

a fresh waterfish <w role="amazon:SENSE_1">bass</w>.</speak>

Note

Algunos idiomas pueden tener otra selección de categorías gramaticales.

Adición de sonido de respiración<amazon:breath> y <amazon:auto-breaths>

La voz con sonido natural incluye tanto palabras habladas correctamente como sonidos de respiración.Al añadir sonidos de respiración a la voz sintetizada, puede hacer que suene más natural. Las etiquetas<amazon:breath> y <amazon:auto-breaths> proporcionan respiraciones. Dispone de las opcionessiguientes:

• Modo manual: puede establecer la ubicación, la duración y el volumen de un sonido de respiración en eltexto

• Modo automático: Amazon Polly inserta automáticamente sonidos de respiración en la salida de voz• Modo mixto: tanto usted como Amazon Polly añaden sonidos de respiración

Modo manual

En el modo manual, debe colocar la etiqueta <amazon:breath/> en el texto de entrada donde deseeubicar una respiración. Puede personalizar la duración y el volumen de las respiraciones con los atributosduration y volume, respectivamente:

• duration: controla la duración de la respiración. Los valores válidos son: default, x-short, short,medium, long, x-long. El valor predeterminado es medium.

• volume: controla el volumen de la respiración. Los valores válidos son: default, x-soft, soft,medium, loud, x-loud. El valor predeterminado es medium.

Note

La duración y el volumen exactos de cada valor de atributo dependen de la voz de Amazon Pollyespecífica utilizada.

Para establecer un sonido de respiración con los valores predeterminados, utilice <amazon:breath/> sinatributos.

Por ejemplo, para utilizar atributos con el objeto de definir la duración y el volumen de una respiración a lamitad, configure los atributos de la siguiente forma:

<speak> Sometimes you want to insert only <amazon:breath duration="medium" volume="x-loud"/>a single breath.</speak>

Para utilizar los valores predeterminados, se usa la etiqueta:

<speak> Sometimes you need <amazon:breath/>to insert one or more average breathes <amazon:breath/> so that the text sounds correct.</speak>

47

Amazon Polly Developer GuideEtiquetas SSML admitidas

Puede añadir sonidos de respiración individuales en un pasaje, tal y como se indica a continuación:

<speak> <amazon:breath duration="long" volume="x-loud"/> <prosody rate="120%"> <prosody volume="loud"> Wow! <amazon:breath duration="long" volume="loud"/> </prosody> That was quite fast <amazon:breath duration="medium" volume="x-loud"/>. I almost beat my personal best time on this track. </prosody></speak>

Modo automático

En el modo automático, se utiliza la etiqueta <amazon:auto-breaths> para indicar a Amazon Polly quecree automáticamente ruidos de respiración en los intervalos apropiados. Puede establecer la frecuenciade los intervalos, su volumen y su duración. Coloque la etiqueta </amazon:auto-breaths> al principiodel texto al que desee aplicar respiración automática y cierre la etiqueta al final.

Note

A diferencia de la etiqueta de modo manual, <amazon:breath/>, la etiqueta <amazon:auto-breaths> necesita una etiqueta de cierre (</amazon:auto-breaths>).

Puede utilizar los siguientes atributos opcionales con la etiqueta <amazon:auto-breaths>:

• volume: controla el volumen de la respiración. Los valores válidos son: default, x-soft, soft,medium, loud, x-loud. El valor predeterminado es medium.

• frequency: controla la frecuencia con la que se producen los sonidos de respiración en el texto.Los valores válidos son: default, x-low, low, medium, high, x-high. El valor predeterminado esmedium.

• duration: controla la duración de la respiración. Los valores válidos son: default, x-short, short,medium, long, x-long. El valor predeterminado es medium.

De forma predeterminada, la frecuencia de sonidos de respiración depende del texto de entrada. Sinembargo, sonidos de respiración se suelen producir después de comas y puntos.

En los siguientes ejemplos se muestra cómo usar la etiqueta <amazon:auto-breaths>. Para decidirqué opciones se utilizarán en su contenido, copie los ejemplos correspondientes en la consola de AmazonPolly y escuche las diferencias.

• Uso del modo automático sin parámetros opcionales.

<speak> <amazon:auto-breaths>Amazon Polly is a service that turns text into lifelike speech, allowing you to create applications that talk and build entirely new categories of speech- enabled products. Amazon Polly is a text-to-speech service that uses advanced deep learning technologies to synthesize speech that sounds like a human voice. With dozens of lifelike voices across a variety of languages, you can select the ideal voice and build speech- enabled applications that work in many different countries.</amazon:auto-breaths></speak>

• Uso del modo automático con control de volumen. Los parámetros no especificados (duration yfrequency) se establecen en los valores predeterminados (medium).

<speak>

48

Amazon Polly Developer GuideEtiquetas SSML admitidas

<amazon:auto-breaths volume="x-soft">Amazon Polly is a service that turns text into lifelike speech, allowing you to create applications that talk and build entirely new categories of speech-enabled products. Amazon Polly is a text-to-speech service, that uses advanced deep learning technologies to synthesize speech that sounds like a human voice. With dozens of lifelike voices across a variety of languages, you can select the ideal voice and build speech- enabled applications that work in many different countries.</amazon:auto-breaths></speak>

• Uso del modo automático con control de frecuencia. Los parámetros no especificados (duration yvolume) se establecen en los valores predeterminados (medium).

<speak> <amazon:auto-breaths frequency="x-low">Amazon Polly is a service that turns text into lifelike speech, allowing you to create applications that talk and build entirely new categories of speech-enabled products. Amazon Polly is a text-to-speech service, that uses advanced deep learning technologies to synthesize speech that sounds like a human voice. With dozens of lifelike voices across a variety of languages, you can select the ideal voice and build speech- enabled applications that work in many different countries.</amazon:auto-breaths></speak>

• Uso del modo automático con varios parámetros. Para el parámetro Duration sin especificar, AmazonPolly utiliza el valor predeterminado (medium).

<speak> <amazon:auto-breaths volume="x-loud" frequency="x-low">Amazon Polly is a service that turns text into lifelike speech, allowing you to create applications that talk and build entirely new categories of speech-enabled products. Amazon Polly is a text-to-speech service, that uses advanced deep learning technologies to synthesize speech that sounds like a human voice. With dozens of lifelike voices across a variety of languages, you can select the ideal voice and build speech-enabled applications that work in many different countries.</amazon:auto-breaths></speak>

Añadir compresión de rango dinámico

<amazon:effect name="drc">

En función del texto, el idioma y la voz utilizados en un archivo de audio, los sonidos varían desde suavesa altos. Con frecuencia, los sonidos ambientales, como el sonido de un vehículo en movimiento, puedenenmascarar los sonidos más suaves, lo que impide oír con claridad la pista de audio. Para mejorar elvolumen de determinados sonidos en el archivo de audio, utilice la etiqueta de compresión de rangodinámico (drc).

La etiqueta drc establece un umbral de "volumen" de rango medio para el audio y aumenta el volumen (laganancia) de los sonidos alrededor de dicho umbral. El mayor aumento de ganancia se aplica cerca delumbral, y dicho aumento se va reduciendo al alejarse del umbral.

49

Amazon Polly Developer GuideEtiquetas SSML admitidas

Esto facilita la audición de los sonidos de rango medio en un entorno ruidoso, lo que permite que todo elarchivo de audio se oiga con más claridad.

La etiqueta drc es un parámetro booleano (está presente o no lo está). Utiliza la sintaxis:<amazon:effect name="drc"> y se cierra con </amazon:effect>.

Puede utilizar la etiqueta drc con cualquier voz o idioma compatible con Amazon Polly. Puede aplicarla auna sección entera de la grabación o solo a unas pocas palabras. Por ejemplo:

<speak> Some audio is difficult to hear in a moving vehicle, but <amazon:effect name="drc"> this audio is less difficult to hear in a moving vehicle.</amazon:effect></speak>

Note

Si utiliza "drc" en la sintaxis , esta distingue entre mayúsculas y minúsculas.amazon:effect

Uso de drc con la etiqueta prosody volume

Como muestra el siguiente gráfico, la etiqueta prosody volume aumenta de manera uniforme el volumende un archivo de audio desde el nivel original (línea discontinua) a un nivel ajustado (línea continua). Paraaumentar aún más el volumen de determinadas partes del archivo, utilice la etiqueta drc con la etiquetaprosody volume. La combinación de etiquetas no afecta a la configuración de la etiqueta prosodyvolume.

Cuando se utilizan las etiquetas drc y prosody volume juntas, Amazon Polly aplica primero la etiquetadrc, aumentando los sonidos de rango medio (los que están cerca del umbral). A continuación, aplica laetiqueta prosody volume y aumenta el volumen de toda la pista de audio de manera uniforme.

50

Amazon Polly Developer GuideEtiquetas SSML admitidas

Para utilizar las etiquetas juntas, anide una dentro de la otra. Por ejemplo:

<speak> <prosody volume="loud">This text needs to be understandable and loud. <amazon:effect name="drc"> This text also needs to be more understandable in a moving car.</amazon:effect></prosody> </speak>

En este texto, la etiqueta prosody volume establece el nivel de volumen de todo el pasaje en"loud" (alto). La etiqueta drc mejora el volumen de los valores de rango medio de la segunda frase.

Note

Cuando utilice las etiquetas drc y prosody volume juntas, emplee las prácticas estándar deXML para el anidado de etiquetas.

Hablar bajo

<amazon:effect phonation="soft">

Para especificar qué entrada de texto debe leerse en voz más baja de lo normal, utilice la etiqueta<amazon:effect phonation="soft">.

Se utiliza esta sintaxis:

<amazon:effect phonation="soft">text</amazon:effect>

Por ejemplo, puede utilizar esta etiqueta con la voz de Matthew tal y como se indica a continuación:

<speak> This is Matthew speaking in my normal voice. <amazon:effect phonation="soft">This is Matthew speaking in my softer voice.</amazon:effect></speak>

Controlar el timbre

<amazon:effect vocal-tract-length>

El timbre es la calidad tonal de una voz que permite diferenciar entre voces distintas, aunque todas tenganel mismo tono y volumen. Una de las características fisiológicas más importantes que contribuye al timbrede voz es la longitud del tracto vocal. El tracto vocal es una cavidad de aire que se extiende desde la partesuperior de las cuerdas vocales hasta el borde de los labios.

Para controlar el timbre del fragmento hablado en Amazon Polly, utilice la etiqueta vocal-tract-length. Esta etiqueta tiene el efecto de modificar la longitud del tracto vocal del altavoz, lo que hace queeste suene como si hubiese cambiado de tamaño. Al aumentar el valor de vocal-tract-length, elaltavoz suena como si fuera físicamente más grande. Al reducirlo, el altavoz suena como si fuera máspequeño. Puede utilizar esta etiqueta con todas las voces del catálogo de conversión de texto a voz deAmazon Polly.

Para cambiar el timbre, utilice los siguientes valores:

• +n% o -n%: ajusta la longitud del tracto vocal aplicando un cambio de porcentaje relativo a la voz actual.Por ejemplo, +4% o -2%. Los valores válidos están comprendidos entre +100% y -50%. Los valores queestán fuera de este intervalo se recortan. Por ejemplo, +111% suena como +100% y -60% suena como-50%.

51

Amazon Polly Developer GuideEtiquetas SSML admitidas

• n%: cambia la longitud del tracto vocal en un porcentaje absoluto de la longitud del tracto de la vozactual. Por ejemplo, 110% o 75%. Un valor absoluto del 110% equivale a un valor relativo de +10%. Unvalor absoluto del 100% equivale al valor predeterminado para la voz actual.

El siguiente ejemplo muestra cómo modificar la longitud del tracto vocal para cambiar el timbre:

<speak> This is my original voice, without any modifications. <amazon:effect vocal-tract-length="+15%"> Now, imagine that I am much bigger. </amazon:effect> <amazon:effect vocal-tract-length="-15%"> Or, perhaps you prefer my voice when I'm very small. </amazon:effect> You can also control the timbre of my voice by making minor adjustments. <amazon:effect vocal-tract-length="+10%"> For example, by making me sound just a little bigger. </amazon:effect><amazon:effect vocal-tract-length="-10%"> Or, making me sound only somewhat smaller. </amazon:effect> </speak>

Combinación de varias etiquetas

Puede combinar la etiqueta vocal-tract-length con cualquier otra etiqueta SSML compatible conAmazon Polly. Dado que el timbre (longitud del tracto vocal) y el tono están íntimamente relacionados,es probable que obtenga resultados óptimos si utiliza las etiquetas vocal-tract-length y <prosodypitch>. Para crear la voz más realista, le recomendamos utilizar diferentes porcentajes de cambio paraambas etiquetas. Experimente con varias combinaciones para obtener los resultados que desea.

El siguiente ejemplo muestra cómo combinar etiquetas.

<speak> The pitch and timbre of a person's voice are connected in human speech. <amazon:effect vocal-tract-length="-15%"> If you are going to reduce the vocal tract length, </amazon:effect><amazon:effect vocal-tract-length="-15%"> <prosody pitch="+20%"> you might consider increasing the pitch, too. </prosody></amazon:effect> <amazon:effect vocal-tract-length="+15%"> If you choose to lengthen the vocal tract, </amazon:effect> <amazon:effect vocal-tract-length="+15%"> <prosody pitch="-10%"> you might also want to lower the pitch. </prosody></amazon:effect></speak>

Susurros<amazon:effect name="whispered">

Esta etiqueta indica que la entrada de texto debe leerse en susurros y no con voz normal. Puede utilizarsecon todas las voces del catálogo de conversión de texto a voz de Amazon Polly.

Utiliza la siguiente sintaxis:

<amazon:effect name=”whispered”>text</amazon:effect>

Por ejemplo:

<speak> <amazon:effect name="whispered">If you make any noise, </amazon:effect> she said, <amazon:effect name="whispered">they will hear us.</amazon:effect></speak>

52

Amazon Polly Developer GuideEtiquetas SSML admitidas

En este caso, la parte del discurso que dice el personaje se leerá en susurros, mientras que la frase "shesaid" se leerá de forma normal con la voz de Amazon Polly elegida.

Puede mejorar el efecto de "susurro" ralentizando el ritmo prosódico hasta en un 10%, en función delefecto deseado.

Por ejemplo:

<speak> When any voice is made to whisper, <amazon:effect name="whispered"> <prosody rate="-10%">the sound is slower and quieter than normal speech </prosody></amazon:effect></speak>

Cuando se generan las comillas para una voz susurrada, la secuencia de audio debe incluir también la vozsusurrada para garantizar que las comillas coinciden con la secuencia de audio.

Tablas de fonemas y visemas de los idiomas admitidosEn las tablas siguientes se muestra el conjunto de fonemas del Alfabeto Fonético Internacional (IPA, porsus siglas en inglés), los símbolos del Alfabeto Fonético Extendido SAM (X-SAMPA, por sus siglas eninglés) y los correspondientes visemas para las voces de los idiomas admitidos por Amazon Polly.

Temas• Danés (da-DK) (p. 54)• Neerlandés (nl-NL) (p. 55)• Inglés (Australia) (en-AU) (p. 57)• Inglés (India) (en-IN) (p. 60)• Inglés (Reino Unido) (en-GB) (p. 62)• Inglés (EE. UU.) (en-US) (p. 65)• Inglés (Gales) (en-GB-WSL) (p. 67)• Francés (fr-FR) (p. 70)• Francés (Canadá) (fr-CA) (p. 72)• Alemán (de-DE) (p. 74)• Islandés (is-IS) (p. 76)• Italiano (it-IT) (p. 79)• Japonés (ja-JP) (p. 81)• Coreano (ko-KR) (p. 83)• Noruego (nb-NO) (p. 85)• Polaco (pl-PL) (p. 87)• Portugués (pt-PT) (p. 89)• Portugués (Brasil) (pt-BR) (p. 91)• Rumano (ro-RO) (p. 93)• Ruso (ru-RU) (p. 95)• Español (es-ES) (p. 97)• Español (EE. UU.) (es-US) (p. 100)• Sueco (sv-SE) (p. 102)• Turco (tr-TR) (p. 105)• Galés (cy-GB) (p. 107)

53

Amazon Polly Developer GuideEtiquetas SSML admitidas

Danés (da-DK)En la tabla siguiente se muestra el conjunto de fonemas del Alfabeto Fonético Internacional (IPA, por sussiglas en inglés), los símbolos del Alfabeto Fonético Extendido SAM (X-SAMPA, por sus siglas en inglés) ylos correspondientes visemas para las voces del idioma danés admitidas por Amazon Polly.

Tabla de fonemas/visemas

IPA X-SAMPA Descripción Ejemplo Visema

Consonantes

b b oclusiva bilabialsonora

bat p

d d oclusiva alveolarsonora

da t

ð D fricativa dentalsonora

mad, thriller T

f f fricativa labiodentalsorda

fat f

g g oclusiva velar sonora gat k

h h fricativa glotal sorda hat k

j j aproximante palatal jo i

k k oclusiva velar sorda kat k

l l aproximante alveolarlateral

ladt t

m m nasal bilabial mat p

n n nasal alveolar nay t

ŋ N nasal velar lang k

p p oclusiva bilabialsorda

pande p

r r vibrante alveolar thriller, story r

ʁ R fricativa uvularsonora

rat k

s s fricativa alveolarsorda

sat s

t t oclusiva alveolarsorda

tal t

v v fricativa labiodentalsonora

vat f

w w aproximante velo-labial

hav, weekend X

Vocales

54

Amazon Polly Developer GuideEtiquetas SSML admitidas

IPA X-SAMPA Descripción Ejemplo Visema

ø 2 vocal semicerradaanterior redondeada

øst o

ø: 2: vocal largasemicerrada anteriorredondeada

øse o

ɐ 6 vocal casi abiertacentral

mor a

œ 9 vocal semiabiertaanterior redondeada

skøn, grønt O

œ: 9: vocal largasemiabierta anteriorredondeada

høne, gøre O

ə @ vocal media central ane @

æː {: vocal larga casiabierta anterior noredondeada

male a

a a vocal abierta anteriorno redondeada

man a

æ { vocal casi abiertaanterior noredondeada

adresse a

ɑ A vocal abiertaposterior noredondeada

lak, tak a

ɑ: A: vocal larga abiertaposterior noredondeada

rase a

Neerlandés (nl-NL)

En la tabla siguiente se muestra el conjunto de fonemas del Alfabeto Fonético Internacional (IPA, por sussiglas en inglés), los símbolos del Alfabeto Fonético Extendido SAM (X-SAMPA, por sus siglas en inglés) ylos correspondientes visemas para las voces del idioma holandés admitidas por Amazon Polly.

Tabla de fonemas/visemas

IPA X-SAMPA Descripción Ejemplo Visema

Consonantes

b b oclusiva bilabialsonora

bak p

d d oclusiva alveolarsonora

dak t

55

Amazon Polly Developer GuideEtiquetas SSML admitidas

IPA X-SAMPA Descripción Ejemplo Visema

dʒ dZ africada postalveolarsonora

manager S

f f fricativa labiodentalsorda

fel f

g g oclusiva velar sonora goal k

ɣ G fricativa velar sonora hoed k

ɦ h\ fricativa glotal sonora hand k

j j aproximante palatal ja i

k k oclusiva velar sorda kap k

l l aproximante alveolarlateral

land t

m m nasal bilabial met p

n n nasal alveolar net t

ŋ N nasal velar bang k

p p oclusiva bilabialsorda

pak p

r r vibrante alveolar rand r

s s fricativa alveolarsorda

sein s

ʃ S fricativa postalveolarsorda

show S

t t oclusiva alveolarsorda

tak t

v v fricativa labiodentalsonora

vel f

ʋ v\ aproximantelabiodental

wit f

x x fricativa velar sorda toch k

z z fricativa alveolarsonora

ziin s

ʒ Z fricativa postalveolarsonora

bagage S

Vocales

øː 2: vocal largasemicerrada anteriorredondeada

neus o

œy 9y diptongo buit O

56

Amazon Polly Developer GuideEtiquetas SSML admitidas

IPA X-SAMPA Descripción Ejemplo Visema

ə @ vocal media central de @

a: a: vocal largaabierta anterior noredondeada

baad a

ɑ: A vocal abiertaposterior noredondeada

bad a

e: e: vocal largasemicerrada anteriorno redondeada

beet e

ɜː 3: vocal largasemiabierta centralno redondeada

barrière E

ɛ E vocal semiabiertaanterior noredondeada

bed E

ɛi Ei diptongo beet E

i i vocal cerradaanterior noredondeada

vier i

ɪ I vocal casi cerradasemianterior noredondeada

pit i

o: o: vocal largasemicerradaposterior redondeada

boot o

ɔ O vocal semiabiertaposterior redondeada

pot O

u u vocal cerradaposterior redondeada

hoed u

ʌu Vu diptongo fout E

yː y: vocal larga cerradaanterior redondeada

fuut u

ʏ S vocal casi cerradasemianteriorredondeada

hut u

Inglés (Australia) (en-AU)

En la tabla siguiente se muestra el conjunto de fonemas del Alfabeto Fonético Internacional (IPA, por sussiglas en inglés), los símbolos del Alfabeto Fonético Extendido SAM (X-SAMPA, por sus siglas en inglés) ylos correspondientes visemas para las voces del idioma inglés de Australia admitidas por Amazon Polly.

57

Amazon Polly Developer GuideEtiquetas SSML admitidas

Tabla de fonemas/visemas

IPA X-SAMPA Descripción Ejemplo Visema

Consonantes

b b oclusiva bilabialsonora

bed p

d d oclusiva alveolarsonora

dig t

dʒ dZ africada postalveolarsonora

jump S

ð D fricativa dentalsonora

then T

f f fricativa labiodentalsorda

five f

g g oclusiva velar sonora game k

h h fricativa glotal sorda house k

j j aproximante palatal yes i

k k oclusiva velar sorda cat k

l l aproximante alveolarlateral

lay t

l l= aproximante alveolarlateral silábica

battle t

m m nasal bilabial mouse p

m m= nasal bilabial silábica anthem p

n n nasal alveolar nap t

n n= nasal alveolarsilábica

nap t

ŋ N nasal velar thing k

p p oclusiva bilabialsorda

pin p

ɹ r\ aproximante alveolar red r

s s fricativa alveolarsorda

seem s

ʃ S fricativa postalveolarsorda

ship S

t t oclusiva alveolarsorda

task t

tʃ tS africada postalveolarsorda

chart S

58

Amazon Polly Developer GuideEtiquetas SSML admitidas

IPA X-SAMPA Descripción Ejemplo Visema

Θ T fricativa dental sorda thin T

v v fricativa labiodentalsonora

vest f

w w aproximante velo-labial

west u

z z fricativa alveolarsonora

zero s

ʒ Z fricativa postalveolarsonora

vision S

Vocales

ə @ vocal media central arena @

əʊ @U diptongo goat @

æ { vocal casi abiertaanterior noredondeada

trap a

aɪ aI diptongo price a

aʊ aU diptongo mouth a

ɑː A: vocal larga abiertaposterior noredondeada

father a

eɪ eI diptongo face e

ɜː 3: vocal larga abiertamedia central noredondeada

nurse E

ɛ E vocal abiertasemianterior noredondeada

dress E

ɛə E@ diptongo square E

i: i vocal largacerrada anterior noredondeada

fleece i

ɪ I vocal casi cerradasemianterior noredondeada

kit i

ɪə I@ diptongo near i

ɔː OI vocal largasemiabierta posteriorredondeada

thought O

ɔɪ OI Diptongo choice O

59

Amazon Polly Developer GuideEtiquetas SSML admitidas

IPA X-SAMPA Descripción Ejemplo Visema

ɒ Q vocal abiertaposterior redondeada

lot O

u: u: vocal larga cerradaposterior redondeada

goose u

ʊ U vocal casi cerradasemiposteriorredondeada

foot u

ʊə U@ diptongo cure u

ʌ V vocal semiabiertaposterior noredondeada

strut E

Inglés (India) (en-IN)En la tabla siguiente se muestra el conjunto de fonemas del Alfabeto Fonético Internacional (IPA, por sussiglas en inglés), los símbolos del Alfabeto Fonético Extendido SAM (X-SAMPA, por sus siglas en inglés) ylos correspondientes visemas para las voces del idioma inglés de India admitidas por Amazon Polly.

Tabla de fonemas/visemas

IPA X-SAMPA Descripción Ejemplo Visema

Consonantes

b b oclusiva bilabialsonora

bed p

d d oclusiva alveolarsonora

dig t

dʒ dZ africada postalveolarsonora

jump S

ð D fricativa dentalsonora

then T

f f fricativa labiodentalsorda

five f

g g oclusiva velar sonora game k

h h fricativa glotal sorda house k

j j aproximante palatal yes i

k k oclusiva velar sorda cat k

l l aproximante alveolarlateral

lay t

l l= aproximante alveolarlateral silábica

battle t

m m nasal bilabial mouse p

60

Amazon Polly Developer GuideEtiquetas SSML admitidas

IPA X-SAMPA Descripción Ejemplo Visema

m m= nasal bilabial silábica anthem p

n n nasal alveolar nap t

n n= nasal alveolarsilábica

nap t

ŋ N nasal velar thing k

p p oclusiva bilabialsorda

pin p

ɹ r\ aproximante alveolar red r

s s fricativa alveolarsorda

seem s

ʃ S fricativa postalveolarsorda

ship S

t t oclusiva alveolarsorda

task t

tʃ tS africada postalveolarsorda

chart S

Θ T fricativa dental sorda thin T

v v fricativa labiodentalsonora

vest f

w w aproximante velo-labial

west u

z z fricativa alveolarsonora

zero s

ʒ Z fricativa postalveolarsonora

vision S

Vocales

ə @ vocal media central arena @

əʊ @U diptongo goat @

æ { vocal casi abiertaanterior noredondeada

trap a

aɪ aI diptongo price a

aʊ aU diptongo mouth a

ɑː A: vocal larga abiertaposterior noredondeada

father a

eɪ eI diptongo face e

61

Amazon Polly Developer GuideEtiquetas SSML admitidas

IPA X-SAMPA Descripción Ejemplo Visema

ɜː 3: vocal larga abiertamedia central noredondeada

nurse E

ɛ E vocal abiertasemianterior noredondeada

dress E

ɛə E@ diptongo square E

i: i vocal largacerrada anterior noredondeada

fleece i

ɪ I vocal casi cerradasemianterior noredondeada

kit i

ɪə I@ diptongo near i

ɔː OI vocal largasemiabierta posteriorredondeada

thought O

ɔɪ OI Diptongo choice O

ɒ Q vocal abiertaposterior redondeada

lot O

u: u: vocal larga cerradaposterior redondeada

goose u

ʊ U vocal casi cerradasemiposteriorredondeada

foot u

ʊə U@ diptongo cure u

ʌ V vocal semiabiertaposterior noredondeada

strut E

Inglés (Reino Unido) (en-GB)

En la tabla siguiente se muestra el conjunto de fonemas del Alfabeto Fonético Internacional (IPA, por sussiglas en inglés), los símbolos del Alfabeto Fonético Extendido SAM (X-SAMPA, por sus siglas en inglés) ylos correspondientes visemas para las voces del idioma inglés británico admitidas por Amazon Polly.

Tabla de fonemas/visemas

IPA X-SAMPA Descripción Ejemplo Visema

Consonantes

b b oclusiva bilabialsonora

bed p

62

Amazon Polly Developer GuideEtiquetas SSML admitidas

IPA X-SAMPA Descripción Ejemplo Visema

d d oclusiva alveolarsonora

dig t

dʒ dZ africada postalveolarsonora

jump S

ð D fricativa dentalsonora

then T

f f fricativa labiodentalsorda

five f

g g oclusiva velar sonora game k

h h fricativa glotal sorda house k

j j aproximante palatal yes i

k k oclusiva velar sorda cat k

l l aproximante alveolarlateral

lay t

l l= aproximante alveolarlateral silábica

battle t

m m nasal bilabial mouse p

m m= nasal bilabial silábica anthem p

n n nasal alveolar nap t

n n= nasal alveolarsilábica

botón t

ŋ N nasal velar thing k

p p oclusiva bilabialsorda

pin p

ɹ r\ aproximante alveolar red r

s s fricativa alveolarsorda

seem s

ʃ S fricativa postalveolarsorda

ship S

t t oclusiva alveolarsorda

task t

tʃ tS africada postalveolarsorda

chart S

Θ T fricativa dental sorda thin T

v v fricativa labiodentalsonora

vest f

63

Amazon Polly Developer GuideEtiquetas SSML admitidas

IPA X-SAMPA Descripción Ejemplo Visema

w w aproximante velo-labial

west u

z z fricativa alveolarsonora

zero s

ʒ Z fricativa postalveolarsonora

vision S

Vocales

ə @ vocal media central arena @

əʊ @U diptongo goat @

æ { vocal casi abiertaanterior noredondeada

trap a

aɪ aI diptongo price a

aʊ aU diptongo mouth a

ɑː A: vocal larga abiertaposterior noredondeada

father a

eɪ eI diptongo face e

ɜː 3: vocal larga abiertamedia central noredondeada

nurse E

ɛ E vocal abiertasemianterior noredondeada

dress E

ɛə E@ diptongo square E

i: i vocal largacerrada anterior noredondeada

fleece i

ɪ I vocal casi cerradasemianterior noredondeada

kit i

ɪə I@ diptongo near i

ɔː O: vocal largasemiabierta posteriorredondeada

thought O

ɔɪ OI Diptongo choice O

ɒ Q vocal abiertaposterior redondeada

lot O

64

Amazon Polly Developer GuideEtiquetas SSML admitidas

IPA X-SAMPA Descripción Ejemplo Visema

u: u: vocal larga cerradaposterior redondeada

goose u

ʊ U vocal casi cerradasemiposteriorredondeada

foot u

ʊə U@ diptongo cure u

ʌ V vocal semiabiertaposterior noredondeada

strut E

Inglés (EE. UU.) (en-US)

En la tabla siguiente se muestra el conjunto de fonemas del Alfabeto Fonético Internacional (IPA, por sussiglas en inglés), los símbolos del Alfabeto Fonético Extendido SAM (X-SAMPA, por sus siglas en inglés) ylos correspondientes visemas para las voces del idioma inglés americano admitidas por Amazon Polly.

Tabla de fonemas/visemas

IPA X-SAMPA Descripción Ejemplo Visema

Consonantes

b b oclusiva bilabialsonora

bed p

d d oclusiva alveolarsonora

dig t

dʒ dZ africada postalveolarsonora

jump S

ð D fricativa dentalsonora

then T

f f fricativa labiodentalsorda

five f

ɡ g oclusiva velar sonora game k

h h fricativa glotal sorda house k

j j aproximante palatal yes i

k k oclusiva velar sorda cat k

l l aproximante alveolarlateral

lay t

m m nasal bilabial mouse p

n n nasal alveolar nap t

ŋ N nasal velar thing k

65

Amazon Polly Developer GuideEtiquetas SSML admitidas

IPA X-SAMPA Descripción Ejemplo Visema

p p oclusiva bilabialsorda

speak p

ɹ r\ aproximante alveolar red r

s s fricativa alveolarsorda

seem s

ʃ S fricativa postalveolarsorda

ship S

t t oclusiva alveolarsorda

trap t

tʃ tS africada postalveolarsorda

chart S

θ T fricativa dental sorda thin T

v v fricativa labiodentalsonora

vest f

w w aproximante velo-labial

west u

z z fricativa alveolarsonora

zero s

ʒ Z fricativa postalveolarsonora

vision S

Vocales

ə @ vocal media central arena @

ɚ @` vocal media centralrótica

reader @

æ { vocal casi abiertaanterior noredondeada

trap a

aɪ aI diptongo price a

aʊ aU diptongo mouth a

ɑ A vocal larga abiertaposterior noredondeada

father a

eɪ eI diptongo face e

ɝ 3` vocal media centralrótica redondeadaabierta

nurse E

ɛ E vocal abiertasemianterior noredondeada

dress E

66

Amazon Polly Developer GuideEtiquetas SSML admitidas

IPA X-SAMPA Descripción Ejemplo Visema

i i vocal largacerrada anterior noredondeada

fleece i

ɪ I vocal casi cerradasemianterior noredondeada

kit i

oʊ oU diptongo goat o

ɔ O vocal abiertaposterior redondeadalarga

thought O

ɔɪ OI diptongo choice O

u u vocal larga cerradaposterior redondeada

goose u

ʊ U vocal casi cerradasemiposteriorredondeada

foot u

ʌ V vocal semiabiertaposterior noredondeada

strut E

Inglés (Gales) (en-GB-WSL)

En la tabla siguiente se muestra el conjunto de fonemas del Alfabeto Fonético Internacional (IPA, por sussiglas en inglés), los símbolos del Alfabeto Fonético Extendido SAM (X-SAMPA, por sus siglas en inglés) ylos correspondientes visemas para las voces del idioma inglés de Gales admitidas por Amazon Polly.

Tabla de fonemas/visemas

IPA X-SAMPA Descripción Ejemplo Visema

Consonantes

b b oclusiva bilabialsonora

bed p

d d oclusiva alveolarsonora

dig t

dʒ dZ africada postalveolarsonora

jump S

ð D fricativa dentalsonora

then T

f f fricativa labiodentalsorda

five f

g g oclusiva velar sonora game k

h h fricativa glotal sorda house k

67

Amazon Polly Developer GuideEtiquetas SSML admitidas

IPA X-SAMPA Descripción Ejemplo Visema

j j aproximante palatal yes i

k k oclusiva velar sorda cat k

l l aproximante alveolarlateral

lay t

l l= aproximante alveolarlateral silábica

battle t

m m nasal bilabial mouse p

m m= nasal bilabial silábica anthem p

n n nasal alveolar nap t

n n= nasal alveolarsilábica

nap t

ŋ N nasal velar thing k

p p oclusiva bilabialsorda

pin p

ɹ r\ aproximante alveolar red r

s s fricativa alveolarsorda

seem s

ʃ S fricativa postalveolarsorda

ship S

t t oclusiva alveolarsorda

task t

tʃ tS africada postalveolarsorda

chart S

Θ T fricativa dental sorda thin T

v v fricativa labiodentalsonora

vest f

w w aproximante velo-labial

west u

z z fricativa alveolarsonora

zero s

ʒ Z fricativa postalveolarsonora

vision S

Vocales

ə @ vocal media central arena @

əʊ @U diptongo goat @

68

Amazon Polly Developer GuideEtiquetas SSML admitidas

IPA X-SAMPA Descripción Ejemplo Visema

æ { vocal casi abiertaanterior noredondeada

trap a

aɪ aI diptongo price a

aʊ aU diptongo mouth a

ɑː A: vocal larga abiertaposterior noredondeada

father a

eɪ eI diptongo face e

ɜː 3: vocal larga abiertamedia central noredondeada

nurse E

ɛ E vocal abiertasemianterior noredondeada

dress E

ɛə E@ diptongo square E

i: i vocal largacerrada anterior noredondeada

fleece i

ɪ I vocal casi cerradasemianterior noredondeada

kit i

ɪə I@ diptongo near i

ɔː OI vocal largasemiabierta posteriorredondeada

thought O

ɔɪ OI Diptongo choice O

ɒ Q vocal abiertaposterior redondeada

lot O

u: u: vocal larga cerradaposterior redondeada

goose u

ʊ U vocal casi cerradasemiposteriorredondeada

foot u

ʊə U@ diptongo cure u

ʌ V vocal semiabiertaposterior noredondeada

strut E

69

Amazon Polly Developer GuideEtiquetas SSML admitidas

Francés (fr-FR)

En la tabla siguiente se muestra el conjunto de fonemas del Alfabeto Fonético Internacional (IPA, por sussiglas en inglés), los símbolos del Alfabeto Fonético Extendido SAM (X-SAMPA, por sus siglas en inglés) ylos correspondientes visemas para las voces del idioma francés admitidas por Amazon Polly.

Tabla de fonemas/visemas

IPA X-SAMPA Descripción Ejemplo Visema

Consonantes

b b oclusiva bilabialsonora

boire p

d d oclusiva alveolarsonora

madame t

f f fricativa labiodentalsorda

femme f

g g oclusiva velar sonora grand k

ɥ H aproximante labialpalatal

bruit u

j j aproximante palatal meilleur i

k k oclusiva velar sorda quatre k

l l aproximante alveolarlateral

malade t

m m nasal bilabial maison p

n n nasal alveolar astronome t

ɲ J nasal palatal baigner J

ŋ N nasal velar parking k

p p oclusiva bilabialsorda

pomme p

ʁ R fricativa uvularsonora

amoureux k

s s fricativa alveolarsorda

santé s

ʃ S fricativa postalveolarsorda

chat S

t t oclusiva alveolarsorda

téléphone t

v v fricativa labiodentalsonora

vrai f

w w aproximante velo-labial

soir u

70

Amazon Polly Developer GuideEtiquetas SSML admitidas

IPA X-SAMPA Descripción Ejemplo Visema

z z fricativa alveolarsonora

raison s

ʒ Z fricativa postalveolarsonora

aubergine S

Vocales

ø 2 vocal semicerradaanterior redondeada

deux o

œ 9 vocal semiabiertaanterior redondeada

neuf O

œ 9~ vocal nasalsemiabierta anteriorredondeada

brun O

ə @ vocal media central je @

a a vocal abierta anteriorno redondeada

table a

ɑ A~ vocal nasalposterior abierta noredondeada

camembert a

e e vocal semicerradaanterior noredondeada

marché e

ɛ E vocal semiabiertaanterior noredondeada

neige E

ɛ E~ vocal nasalsemiabierta anteriorno redondeada

sapin E

i i vocal cerradaanterior noredondeada

mille i

o o vocal semicerradaposterior redondeada

hôpital o

ɔ O vocal semiabiertaposterior redondeada

homme O

ɔ O~ vocal nasalsemiabierta posteriorredondeada

bon O

u u vocal cerradaposterior redondeada

sous u

y y vocal cerradaanterior redondeada

dur u

71

Amazon Polly Developer GuideEtiquetas SSML admitidas

Francés (Canadá) (fr-CA)

En la tabla siguiente se muestra el conjunto de fonemas del Alfabeto Fonético Internacional (IPA, por sussiglas en inglés), los símbolos del Alfabeto Fonético Extendido SAM (X-SAMPA, por sus siglas en inglés) ylos correspondientes visemas para las voces del idioma francés de Canadá por Amazon Polly.

Tabla de fonemas/visemas

IPA X-SAMPA Descripción Ejemplo Visema

Consonantes

b b oclusiva bilabialsonora

boire p

d d oclusiva alveolarsonora

madame t

f f fricativa labiodentalsorda

femme f

g g oclusiva velar sonora grand k

ɥ H aproximante labialpalatal

bruit u

j j aproximante palatal meilleur i

k k oclusiva velar sorda quatre k

l l aproximante alveolarlateral

malade t

m m nasal bilabial maison p

n n nasal alveolar astronome t

ɲ J nasal palatal baigner J

ŋ N nasal velar parking k

p p oclusiva bilabialsorda

pomme p

ʁ R fricativa uvularsonora

amoureux k

s s fricativa alveolarsorda

santé s

ʃ S fricativa postalveolarsorda

chat S

t t oclusiva alveolarsorda

téléphone t

v v fricativa labiodentalsonora

vrai f

w w aproximante velo-labial

soir u

72

Amazon Polly Developer GuideEtiquetas SSML admitidas

IPA X-SAMPA Descripción Ejemplo Visema

z z fricativa alveolarsonora

raison s

ʒ Z fricativa postalveolarsonora

aubergine S

Vocales

ø 2 vocal semicerradaanterior redondeada

deux o

œ 9 vocal semiabiertaanterior redondeada

neuf O

œ 9~ vocal nasalsemiabierta anteriorredondeada

brun O

ə @ vocal media central je @

a a vocal abierta anteriorno redondeada

table a

ɑ A~ vocal nasalposterior abierta noredondeada

camembert a

e e vocal semicerradaanterior noredondeada

marché e

ɛ E vocal semiabiertaanterior noredondeada

neige E

ɛ E~ vocal nasalsemiabierta anteriorno redondeada

sapin E

i i vocal cerradaanterior noredondeada

mille i

o o vocal semicerradaposterior redondeada

hôpital o

ɔ O vocal semiabiertaposterior redondeada

homme O

ɔ O~ vocal nasalsemiabierta posteriorredondeada

bon O

u u vocal cerradaposterior redondeada

sous u

y y vocal cerradaanterior redondeada

dur u

73

Amazon Polly Developer GuideEtiquetas SSML admitidas

Alemán (de-DE)

En la tabla siguiente se muestra el conjunto de fonemas del Alfabeto Fonético Internacional (IPA, por sussiglas en inglés), los símbolos del Alfabeto Fonético Extendido SAM (X-SAMPA, por sus siglas en inglés) ylos correspondientes visemas para las voces del idioma alemán admitidas por Amazon Polly.

Tabla de fonemas/visemas

IPA X-SAMPA Descripción Ejemplo Visema

Consonantes

ʔ ? oclusiva glotal    

b b oclusiva bilabialsonora

Bier p

d d oclusiva alveolarsonora

Dach t

ç C fricativa palatal sorda ich k

dʒ dZ africada postalveolarsonora

Dschungel S

f f Fricativa labiodentalsorda

Vogel f

g g Oclusiva velar sonora Gabel k

h h Fricativa glotal sorda Haus k

j j Fricativa glotal sorda jemand i

k k Oclusiva velar sorda Kleid k

l l Aproximante alveolarlateral

Loch t

m m Nasal bilabial Milch p

n n Nasal alveolar Natur t

ŋ N Nasal velar klingen k

p p Oclusiva bilabialsorda

Park p

pf pf Africada labiodentalsorda

Apfel  

ʀ R Vibrante uvular Regen  

s s fricativa alveolarsorda

Messer s

ʃ S Fricativa postalveolarsorda

Fischer S

t t Oclusiva alveolarsorda

Topf T

74

Amazon Polly Developer GuideEtiquetas SSML admitidas

IPA X-SAMPA Descripción Ejemplo Visema

ts Ts Africada alveolarsorda

Zahl  

tʃ tS Africada postalveolarsorda

deutsch S

v v Fricativa labiodentalsonora

Wasser f

x x Fricativa velar sorda kochen k

z z Fricativa alveolarsonora

See s

ʒ Z Fricativa postalveolarsonora

Orange S

Vocales

øː 2: vocal largasemicerrada anteriorredondeada

böse o

ɐ 6 vocal casi abiertacentral

besser a

ɐ 6_^ vocal no silábicasemiabierta central

Klar a

œ 9 vocal semiabiertaanterior redondeada

können O

ə @ vocal media central Rede @

a a vocal abierta anteriorno redondeada

Salz a

a: a: vocal largaabierta anterior noredondeada

Sahne a

aɪ aI diptongo nein a

aʊ aU diptongo Augen a

ɑ A~ vocal nasalposterior abierta noredondeada

Restaurant a

e: e: vocal largasemicerrada anteriorno redondeada

Rede e

ɛ E vocal semiabiertaanterior noredondeada

Keller E

75

Amazon Polly Developer GuideEtiquetas SSML admitidas

IPA X-SAMPA Descripción Ejemplo Visema

ɛ E~ vocal nasalsemiabierta anteriorno redondeada

Terrain E

i: i: vocal largacerrada anterior noredondeada

Lied i

ɪ I vocal casi cerradasemianterior noredondeada

bitte i

o: o: vocal largasemicerradaposterior redondeada

Kohl o

ɔ O vocal semiabiertaposterior redondeada

Koffer O

ɔ O~ vocal nasalsemiabierta posteriorredondeada

Annonce O

ɔʏ OY diptongo neu O

u: u: vocal larga cerradaposterior redondeada

Bruder u

ʊ U vocal casi cerradasemiposteriorredondeada

Wunder u

y: y: vocal larga cerradaanterior redondeada

kühl u

ʏ S vocal casi cerradasemianteriorredondeada

Küche u

Islandés (is-IS)

En la tabla siguiente se muestra el conjunto de fonemas del Alfabeto Fonético Internacional (IPA, por sussiglas en inglés), los símbolos del Alfabeto Fonético Extendido SAM (X-SAMPA, por sus siglas en inglés) ylos correspondientes visemas para las voces del idioma islandés admitidas por Amazon Polly.

Tabla de fonemas/visemas

IPA X-SAMPA Descripción Ejemplo Visema

Consonantes

b b oclusiva bilabialsonora

grasbakkanum 0

c c oclusiva palatal sorda pakkin k

76

Amazon Polly Developer GuideEtiquetas SSML admitidas

IPA X-SAMPA Descripción Ejemplo Visema

cʰ c_h oclusiva aspiradapalatal sorda

anarkistai k

ç C fricativa palatal sorda héðan k

d d oclusiva alveolarsonora

bóndi t

ð D fricativa dentalsonora

borð T

f f fricativa labiodentalsorda

duft f

g g oclusiva velar sonora holgóma k

ɣ G fricativa velar sonora hugur k

h h fricativa glotal sorda heili k

j j aproximante palatal jökull i

kʰ k_h oclusiva velaraspirada sorda

ósköpunum k

l l aproximante alveolarlateral

gólf t

l l_0 aproximante lateralalveolar sorda

fólk t

m m nasal bilabial september p

m m_0 nasal bilabial sorda kompa p

n n nasal alveolar númer t

n n_0 nasal alveolar sorda pöntun t

ɲ J nasal palatal pælingar J

ŋ N nasal velar söngvarann k

ŋ N_0 nasal velar sorda frænka k

pʰ p_h oclusiva bilabialaspirada sorda

afplánun p

r r vibrante alveolar afskrifta r

r r_0 vibrante alveolarsorda

andvörpum r

s s fricativa alveolarsorda

baðhús s

tʰ t_h oclusiva alveolaraspirada sorda

tanki t

θ T fricativa dental sorda þeldökki T

77

Amazon Polly Developer GuideEtiquetas SSML admitidas

IPA X-SAMPA Descripción Ejemplo Visema

v v fricativa labiodentalsonora

silfur f

w w aproximante velo-labial

  u

x x fricativa velar sorda samfélags k

Vocales

œ 9 vocal semiabiertaanterior redondeada

þröskuldinum O

œː 9: vocal largasemiabierta anteriorredondeada

tvö O

a a vocal abierta anteriorno redondeada

nefna a

a: a: vocal largaabierta anterior noredondeada

fara a

au au diptongo átta a

au: au: diptongo átján a

ɛ E vocal semiabiertaanterior noredondeada

kennari E

ɛ: E: vocal largasemiabierta anteriorno redondeada

dreka E

i i vocal cerradaanterior noredondeada

Gúlíver i

i: i: vocal largacerrada anterior noredondeada

þrír i

ɪ I vocal casi cerradasemianterior noredondeada

samspil i

ɪ: I: vocal larga casicerrada semianteriorno redondeada

stig i

ɔ O vocal semiabiertaposterior redondeada

regndropar O

ɔ: O: vocal largasemiabierta posteriorredondeada

ullarbolur O

78

Amazon Polly Developer GuideEtiquetas SSML admitidas

IPA X-SAMPA Descripción Ejemplo Visema

ɔu Ou diptongo tólf O

ɔu: Ou: diptongo fjórir O

u u vocal cerradaposterior redondeada

stúlkan u

u: u: vocal larga cerradaposterior redondeada

frú u

ʏ S vocal casi cerradasemianteriorredondeada

tíu u

ʏ: S vocal larga casicerrada semianteriorredondeada

gruninn u

Italiano (it-IT)En la tabla siguiente se muestra el conjunto de fonemas del Alfabeto Fonético Internacional (IPA, por sussiglas en inglés), los símbolos del Alfabeto Fonético Extendido SAM (X-SAMPA, por sus siglas en inglés) ylos correspondientes visemas para las voces del idioma italiano admitidas por Amazon Polly.

Tabla de fonemas/visemas

IPA X-SAMPA Descripción Ejemplo Visema

Consonantes

b b oclusiva bilabialsonora

bacca p

d d oclusiva alveolarsonora

dama t

dz dz africada alveolarsonora

zero s

dʒ dZ africada postalveolarsonora

giro S

f f fricativa labiodentalsorda

famiglia f

g g oclusiva velar sonora gatto k

h h fricativa glotal sorda horror k

j j aproximante palatal dieci i

k k oclusiva velar sorda campo k

l l aproximante alveolarlateral

lido t

ʎ L aproximante palatallateral

aglio J

79

Amazon Polly Developer GuideEtiquetas SSML admitidas

IPA X-SAMPA Descripción Ejemplo Visema

m m nasal bilabial mille p

n n nasal alveolar nove t

ɲ J nasal palatal lasagne J

p p oclusiva bilabialsorda

pizza p

r r vibrante alveolar risata r

s s fricativa alveolarsorda

sei s

ʃ S fricativa postalveolarsorda

scienza S

t t oclusiva alveolarsorda

tavola t

ts ts africada alveolarsorda

forza s

tʃ tS africada postalveolarsorda

cielo S

v v fricativa labiodentalsonora

venti f

w w aproximante velo-labial

quattro u

z z fricativa alveolarsonora

bisogno s

ʒ Z fricativa postalveolarsonora

bijou S

Vocales

a a vocal abierta anteriorno redondeada

arco a

e e vocal semicerradaanterior noredondeada

tre e

ɛ E vocal semiabiertaanterior noredondeada

ettaro E

i i vocal cerradaanterior noredondeada

impero i

o o vocal semicerradaposterior redondeada

cento o

80

Amazon Polly Developer GuideEtiquetas SSML admitidas

IPA X-SAMPA Descripción Ejemplo Visema

ɔ O vocal semiabiertaposterior redondeada

otto O

u u vocal cerradaposterior redondeada

uno u

Japonés (ja-JP)

En la tabla siguiente se muestra el conjunto de fonemas del Alfabeto Fonético Internacional (IPA, por sussiglas en inglés), los símbolos del Alfabeto Fonético Extendido SAM (X-SAMPA, por sus siglas en inglés) ylos correspondientes visemas para las voces del idioma japonés admitidas por Amazon Polly.

IPA X-SAMPA Descripción Ejemplo Visema

Consonantes

ɾ 4 vibrante simplealveolar

練習, renshuu t

ʔ ? oclusiva glotal あつっ, atsu'  

b b oclusiva bilabialsonora

舞踊, buyou p

β B fricativa bilabialsonora

ヴィンテージ,vinteeji

B

c c oclusiva palatal sorda ききょう, kikyou k

ç C fricativa palatal sorda 人, hito k

d d oclusiva alveolarsonora

濁点, dakuten t

dʑ dz\ africada alveolo-palatal sonora

純, jun J

ɡ g oclusiva velar sonora ご飯, gohan k

h h fricativa glotal sorda 本, hon k

j j aproximante palatal 屋根, yane i

ɟ J\ oclusiva palatalsonora

行儀, gyougi J

k k oclusiva velar sorda 漢字, kanji k

ɺ l\ vibrante lateralalveolar

釣り, tsuri r

ɺj l\j vibrante lateralalveolar, aproximantepalatal

流行, ryuukou r

m m nasal bilabial 飯, meshi p

81

Amazon Polly Developer GuideEtiquetas SSML admitidas

IPA X-SAMPA Descripción Ejemplo Visema

n n nasal alveolar 猫, neko t

ɲ J nasal palatal 日本, nippon J

ɴ N\ nasal uvular 缶, kan k

p p oclusiva bilabialsorda

パン, pan p

ɸ p\ fricativa bilabial sorda 福, huku f

s s fricativa alveolarsorda

層, sou s

ɕ s\ fricativa alveolo-palatal sorda

書簡, shokan J

t t oclusiva alveolarsorda

手紙, tegami t

ts ts africada alveolarsorda

釣り, tsuri s

tɕ ts\ africada alveolo-palatal sorda

吉, kichi J

w w aproximante velo-labial

電話, denwa u

z z fricativa alveolarsonora

座敷, zashiki s

Vocales

äː a:_" vocal largaabierta central noredondeada

羽蟻, haari a

ä a_" vocal abierta centralno redondeada

仮名, kana a

eː e:_o vocal largasemianterior noredondeada

学生, gakusei @

e e_o vocal semianterior noredondeada

歴, reki @

i i vocal cerradaanterior noredondeada

気, ki i

iː i: vocal largacerrada anterior noredondeada

詩歌, shiika i

ɯ M vocal cerradaposterior noredondeada

運, un i

82

Amazon Polly Developer GuideEtiquetas SSML admitidas

IPA X-SAMPA Descripción Ejemplo Visema

ɯː M: vocal larga cerradaposterior noredondeada

宗教, shuukyou i

oː o:_o vocal largasemiposteriorredondeada

購読, koodoku o

o o_o vocal semiposteriorredondeada

読者, dokusha o

Coreano (ko-KR)

En la tabla siguiente se muestra el conjunto de fonemas del Alfabeto Fonético Internacional (IPA, por sussiglas en inglés), los símbolos del Alfabeto Fonético Extendido SAM (X-SAMPA, por sus siglas en inglés) ylos correspondientes visemas para las voces del idioma coreano admitidas por Amazon Polly.

IPA X-SAMPA Descripción Ejemplo Visema

Consonantes

k k oclusiva velar sorda 강, [g]ang k

k# k_t oclusiva velar fuertesorda

깨, [kk]e k

n n nasal alveolar 남, [n]am t

t t oclusiva alveolarsorda

도, [d]o t

t# t_t oclusiva alveolarfuerte sorda

때, [tt]e t

ɾ 4 vibrante simplealveolar

사랑, sa[r]ang t

l l aproximante alveolarlateral

돌, do[l] t

m m nasal bilabial 무, [m]u p

p p oclusiva bilabialsorda

봄, [b]om p

p# p_t oclusiva bilabialfuerte sorda

뻘, [pp]eol p

s s fricativa alveolarsorda

새, [s]e s

s# s_t fricativa alveolarfuerte sorda

씨, [ss]i s

ŋ N nasal velar 방, ba[ng] k

83

Amazon Polly Developer GuideEtiquetas SSML admitidas

IPA X-SAMPA Descripción Ejemplo Visema

tɕ ts\ africada alveolo-palatal sorda

조, [j]o J

t#ɕ ts\_t africada alveolo-palatal fuerte sorda

찌, [jj]i J

tɕʰ ts\_h africada alveolo-palatal aspiradasorda

차, [ch]a J

kʰ k_h oclusiva velaraspirada sorda

코, [k]o k

tʰ t_h oclusiva alveolaraspirada sorda

통, [t]ong t

pʰ p_h oclusiva bilabialaspirada sorda

패, [p]e p

h h fricativa glotal sorda 힘, [h]im k

j j aproximante palatal 양, [y]ang i

w w aproximante velo-labial

왕, [w]ang u

ɰ M\ aproximante velar> 의, [wj]i i

Vocales

a a vocal abierta anteriorno redondeada

밥, b[a]b a

ʌ V vocal semiabiertaposterior noredondeada

정, j[eo]ng E

ɛ E vocal semiabiertaanterior noredondeada

배, b[e] E

o o vocal semicerradaposterior redondeada

노, n[o] o

u u vocal cerradaposterior redondeada

둘, d[u]l u

ɯ M vocal cerradaposterior noredondeada

은, [eu]n i

i i vocal cerradaanterior noredondeada

김, k[i]m i

84

Amazon Polly Developer GuideEtiquetas SSML admitidas

Noruego (nb-NO)En la tabla siguiente se muestra el conjunto completo de fonemas del Alfabeto Fonético Internacional (IPA,por sus siglas en inglés) y símbolos del Alfabeto Fonético Extendido SAM (X-SAMPA, por sus siglas eninglés), así como sus correspondientes visemas, tal y como se utilizan en las voces de Amazon Polly parael idioma noruego.

IPA X-SAMPA Descripción Ejemplo Visema

Consonantes

ɾ 4 vibrante simplealveolar

prøv t

b b oclusiva bilabialsonora

labb p

ç C fricativa palatal sorda kino k

d d oclusiva alveolarsonora

ladd t

ɖ d` oclusiva retroflejasonora

verdi t

f f fricativa labiodentalsorda

fot f

ɡ ɡ oclusiva velar sonora tagg k

h h fricativa glotal sorda ha k

j j aproximante palatal gi i

k k oclusiva velar sorda takk k

l l aproximante alveolarlateral

fall, ball t

ɭ l` aproximante lateralretrofleja

ærlig t

m m nasal bilabial lam p

n n nasal alveolar vann t

ɳ n` nasal retrofleja garn t

ŋ N nasal velar sang k

p p oclusiva bilabialsorda

hopp p

s s fricativa alveolarsorda

lass s

ʂ s` fricativa retroflejasorda

års S

ʃ S fricativa postalveolarsorda

skyt S

85

Amazon Polly Developer GuideEtiquetas SSML admitidas

IPA X-SAMPA Descripción Ejemplo Visema

t t oclusiva alveolarsorda

lat t

ʈ t` oclusiva retroflejasorda

hardt t

ʋ v\ aproximantelabiodental

vin f

w w aproximante velo-labial

will x

Vocales

øː 2: vocal largasemicerrada anteriorredondeada

søt o

œ 9 vocal semiabiertaanterior redondeada

søtt O

ə @ vocal media central ape @

æː {: vocal larga casiabierta anterior noredondeada

vær a

ʉ } vocal cerrada centralredondeada

lund u

ʉː }: vocal larga cerradacentral redondeada

lun u

æ { vocal casi abiertaanterior noredondeada

vært a

ɑ A vocal abiertaposterior noredondeada

hatt a

ɑː A: vocal larga abiertaposterior noredondeada

hat a

e: e: vocal largasemicerrada anteriorno redondeada

sen e

ɛ E vocal semiabiertaanterior noredondeada

send E

i: i: vocal largacerrada anterior noredondeada

vin i

86

Amazon Polly Developer GuideEtiquetas SSML admitidas

IPA X-SAMPA Descripción Ejemplo Visema

ɪ I vocal casi cerradasemianterior noredondeada

vind i

oː oː vocal largasemicerradaposterior redondeada

våt o

ɔ O vocal semiabiertaposterior redondeada

vått O

u: u: vocal larga cerradaposterior redondeada

bok u

ʊ U vocal casi cerradasemiposteriorredondeada

bukk u

y: y: vocal larga cerradaanterior redondeada

lyn u

ʏ S vocal casi cerradasemianteriorredondeada

lynne u

Polaco (pl-PL)

En la tabla siguiente se muestra el conjunto de fonemas del Alfabeto Fonético Internacional (IPA, por sussiglas en inglés), los símbolos del Alfabeto Fonético Extendido SAM (X-SAMPA, por sus siglas en inglés) ylos correspondientes visemas para las voces del idioma polaco admitidas por Amazon Polly.

Tabla de fonemas/visemas

IPA X-SAMPA Descripción Ejemplo Visema

Consonantes

b b oclusiva bilabialsonora

bobas, belka p

d d oclusiva alveolarsonora

dar, do t

dz dz africada alveolarsonora

dzwon, widzowie s

dʑ dz\ africada alveolo-palatal sonora

dźwięk J

dʐ dz` africada retroflejasonora

dżem, dżungla S

f f fricativa labiodentalsorda

furtka, film f

g g oclusiva velar sonora gazeta, waga k

87

Amazon Polly Developer GuideEtiquetas SSML admitidas

IPA X-SAMPA Descripción Ejemplo Visema

h h fricativa glotal sorda chleb, handel k

j j aproximante palatal jak, maja i

k k oclusiva velar sorda kura, marek k

l l aproximante alveolarlateral

lipa, alicja t

m m nasal bilabial matka, molo p

n n nasal alveolar norka t

ɲ J nasal palatal koń, toruń J

p p oclusiva bilabialsorda

pora, stop p

r r vibrante alveolar rok, park r

s s fricativa alveolarsorda

sum, pas s

ɕ s\ fricativa alveolo-palatal sorda

śruba, śnieg J

ʂ s` fricativa retroflejasorda

szum, masz S

t t oclusiva alveolarsorda

tok, stół t

ts ts africada alveolarsorda

car, co s

tɕ ts\ africada alveolo-palatal sorda

ćma, mieć J

tʂ ts` africada retroflejasorda

czas, raczej S

v v fricativa labiodentalsonora

worek, mewa f

w w aproximante velo-labial

łaska, mało u

z z fricativa alveolarsonora

zero s

ʑ z\ fricativa alveolo-palatal sonora

źrebię, bieliźnie J

ʐ z` fricativa retroflejasonora

żar, żona S

Vocales

88

Amazon Polly Developer GuideEtiquetas SSML admitidas

IPA X-SAMPA Descripción Ejemplo Visema

a a vocal abierta anteriorno redondeada

ja a

ɛ E vocal semiabiertaanterior noredondeada

echo E

ɛ E~ vocal nasalsemiabierta anteriorno redondeada

węże E

i i vocal cerradaanterior noredondeada

ile i

ɔ O vocal semiabiertaposterior redondeada

oczy O

ɔ O~ vocal nasalsemiabierta posteriorredondeada

wąż O

u u vocal cerradaposterior redondeada

uczta u

ɨ 1 vocal cerrada centralno redondeada

byk i

Portugués (pt-PT)

En la tabla siguiente se muestra el conjunto de fonemas del Alfabeto Fonético Internacional (IPA, por sussiglas en inglés), los símbolos del Alfabeto Fonético Extendido SAM (X-SAMPA, por sus siglas en inglés) ylos correspondientes visemas para las voces del idioma portugués admitidas por Amazon Polly.

Tabla de fonemas/visemas

IPA X-SAMPA Descripción Ejemplo Visema

Consonantes

ɾ 4 vibrante simplealveolar

pira t

b b oclusiva bilabialsonora

dato p

d d oclusiva alveolarsonora

dato t

f f fricativa labiodentalsorda

facto f

g g oclusiva velar sonora gato k

j j aproximante palatal paraguay i

k k oclusiva velar sorda cacto k

89

Amazon Polly Developer GuideEtiquetas SSML admitidas

IPA X-SAMPA Descripción Ejemplo Visema

l l aproximante alveolarlateral

galo t

ʎ L aproximante palatallateral

galho J

m m nasal bilabial mato p

n n nasal alveolar nato t

ɲ J nasal palatal pinha J

p p oclusiva bilabialsorda

pato p

ʀ R\ vibrante uvular barroso k

s s fricativa alveolarsorda

saca s

ʃ S fricativa postalveolarsorda

chato S

t t oclusiva alveolarsorda

tacto t

v v fricativa labiodentalsonora

vaca f

w w aproximante velo-labial

mau u

z z fricativa alveolarsonora

zaca s

ʒ Z fricativa postalveolarsonora

jacto S

Vocales

a a vocal abierta anteriorno redondeada

parto a

a a~ vocal nasalabierta anterior noredondeada

pega a

e e vocal semicerradaanterior noredondeada

pega e

e e~ vocal nasalsemicerrada anteriorno redondeada

movem e

ɛ E vocal semiabiertaanterior noredondeada

café E

90

Amazon Polly Developer GuideEtiquetas SSML admitidas

IPA X-SAMPA Descripción Ejemplo Visema

i i vocal cerradaanterior noredondeada

lingueta i

i i~ vocal nasalcerrada anterior noredondeada

cinto i

o o vocal semicerradaposterior redondeada

poder o

o o~ vocal nasalsemicerradaposterior redondeada

compra o

ɔ O vocal semiabiertaposterior redondeada

cotó O

u u vocal cerradaposterior redondeada

fui u

u u~ vocal nasal cerradaposterior redondeada

sunto u

Portugués (Brasil) (pt-BR)

En la tabla siguiente se muestra el conjunto de fonemas del Alfabeto Fonético Internacional (IPA, por sussiglas en inglés), los símbolos del Alfabeto Fonético Extendido SAM (X-SAMPA, por sus siglas en inglés) ylos correspondientes visemas para las voces del idioma portugués de Brasil admitidas por Amazon Polly.

Tabla de fonemas/visemas

IPA X-SAMPA Descripción Ejemplo Visema

Consonantes

ɾ 4 vibrante simplealveolar

pira t

b b oclusiva bilabialsonora

bato p

d d oclusiva alveolarsonora

dato t

dʒ dZ africada postalveolarsonora

idade S

f f fricativa labiodentalsorda

facto f

g g oclusiva velar sonora gato k

j j aproximante palatal paraguay i

k k oclusiva velar sorda cacto k

91

Amazon Polly Developer GuideEtiquetas SSML admitidas

IPA X-SAMPA Descripción Ejemplo Visema

l l aproximante alveolarlateral

galo t

ʎ L aproximante palatallateral

galho J

m m nasal bilabial mato p

n n nasal alveolar nato t

ɲ J nasal palatal pinha J

p p oclusiva bilabialsorda

pato p

s s fricativa alveolarsorda

saca s

ʃ S fricativa postalveolarsorda

chato S

t t oclusiva alveolarsorda

tacto t

tʃ tS africada postalveolarsorda

noite S

v v fricativa labiodentalsonora

vaca f

w w aproximante velo-labial

mau u

χ X fricativa uvular sorda carro k

z z fricativa alveolarsonora

zaca s

ʒ Z fricativa postalveolarsonora

jacto S

Vocales

a a vocal abierta anteriorno redondeada

parto a

a a~ vocal nasalabierta anterior noredondeada

pensamos a

e e vocal semicerradaanterior noredondeada

pega e

e e~ vocal nasalsemicerrada anteriorno redondeada

movem e

92

Amazon Polly Developer GuideEtiquetas SSML admitidas

IPA X-SAMPA Descripción Ejemplo Visema

ɛ E vocal semiabiertaanterior noredondeada

café E

i i vocal cerradaanterior noredondeada

lingueta i

i i~ vocal nasalcerrada anterior noredondeada

cinto i

o o vocal semicerradaposterior redondeada

poder o

o o~ vocal nasalsemicerradaposterior redondeada

compra o

ɔ O vocal semiabiertaposterior redondeada

cotó O

u u vocal cerradaposterior redondeada

fui u

u u~ vocal nasal cerradaposterior redondeada

sunto u

Rumano (ro-RO)

En la tabla siguiente se muestra el conjunto de fonemas del Alfabeto Fonético Internacional (IPA, por sussiglas en inglés), los símbolos del Alfabeto Fonético Extendido SAM (X-SAMPA, por sus siglas en inglés) ylos correspondientes visemas para las voces del idioma rumano admitidas por Amazon Polly.

Tabla de fonemas/visemas

IPA X-SAMPA Descripción Ejemplo Visema

Consonantes

b b oclusiva bilabialsonora

bubă p

d d oclusiva alveolarsonora

după t

dʒ dZ africada postalveolarsonora

george S

f f fricativa labiodentalsorda

afacere f

g g oclusiva velar sonora agri# k

h h fricativa glotal sorda harpă k

j j aproximante palatal baie i

93

Amazon Polly Developer GuideEtiquetas SSML admitidas

IPA X-SAMPA Descripción Ejemplo Visema

k k oclusiva velar sorda co# k

l l aproximante alveolarlateral

lampa t

m m nasal bilabial mama p

n n nasal alveolar nor t

p p oclusiva bilabialsorda

pilă p

r r vibrante alveolar rampă r

s s fricativa alveolarsorda

soare s

ʃ S fricativa postalveolarsorda

ma#ină S

t t oclusiva alveolarsorda

tata t

ts ts africada alveolarsorda

#ară s

tʃ tS africada postalveolarsorda

ceai S

v v fricativa labiodentalsonora

via#ă f

w w aproximante velo-labial

beau u

z z fricativa alveolarsonora

mozol s

ʒ Z fricativa postalveolarsonora

joacă S

Vocales

ə @ vocal media central babă @

a a vocal abierta anteriorno redondeada

casa a

e e vocal semicerradaanterior noredondeada

elan e

e e_^ Vocal semicerradaanterior noredondeada y nosilábica

beau e

94

Amazon Polly Developer GuideEtiquetas SSML admitidas

IPA X-SAMPA Descripción Ejemplo Visema

i i vocal cerradaanterior noredondeada

mie i

o o vocal semicerradaposterior redondeada

oră o

oa o_^a diptongo oare o

u u vocal cerradaposterior redondeada

unde u

ɨ 1 vocal cerrada centralno redondeada

România i

Ruso (ru-RU)

En la tabla siguiente se muestra el conjunto de fonemas del Alfabeto Fonético Internacional (IPA, por sussiglas en inglés), los símbolos del Alfabeto Fonético Extendido SAM (X-SAMPA, por sus siglas en inglés) ylos correspondientes visemas para las voces del idioma ruso admitidas por Amazon Polly.

Tabla de fonemas/visemas

IPA X-SAMPA Descripción Ejemplo Visema

Consonantes

b b oclusiva bilabialsonora

борт p

bʲ b' oclusiva bilabialpalatal sonora

бюро p

d d oclusiva alveolarsonora

дом t

dʲ d' oclusiva alveolarpalatal sonora

дядя t

f f fricativa labiodentalsorda

флаг f

fʲ f' fricativa labiodentalpalatal sorda

февраль f

g g oclusiva velar sonora нога k

ɡʲ g' oclusiva velar palatalsonora

герой k

j j aproximante palatal дизайн, ящик i

k k oclusiva velar sorda кот k

kʲ k' oclusiva velar palatalsorda

кино k

95

Amazon Polly Developer GuideEtiquetas SSML admitidas

IPA X-SAMPA Descripción Ejemplo Visema

l l aproximante alveolarlateral

лампа t

lʲ l' aproximante lateralalveolar palatal

лес t

m m nasal bilabial мама p

mʲ m' nasal bilabial palatal мяч p

n n nasal alveolar нос t

nʲ n' nasal alveolar palatal няня t

p p oclusiva bilabialsorda

папа p

pʲ p' oclusiva bilabialpalatal sorda

перо p

r r vibrante alveolar роза r

rʲ r' vibrante alveolarpalatal

рюмка r

s s fricativa alveolarsorda

сыр s

sʲ s' fricativa alveolarpalatal sorda

сердце, русь s

ɕ: s\: fricativa largaalveolo-palatal sorda

щека J

ʂ s` fricativa retroflejasorda

шум S

t t oclusiva alveolarsorda

точка t

tʲ t' oclusiva alveolarpalatal sorda

тётя t

ts ts africada alveolarsorda

царь s

tɕ ts\ africada alveolo-palatal sorda

час J

v v fricativa labiodentalsonora

вор f

vʲ v' fricativa labiodentalpalatal sonora

верфь f

x x fricativa velar sorda хор k

xʲ x' fricativa velar palatalsorda

химия k

96

Amazon Polly Developer GuideEtiquetas SSML admitidas

IPA X-SAMPA Descripción Ejemplo Visema

z z fricativa alveolarsonora

зуб s

zʲ z' fricativa alveolarpalatal sonora

зима s

ʑ: z\: fricativa largaalveolo-palatalsonora

уезжать J

ʐ z` fricativa retroflejasonora

жена S

Vocales

ə @ vocal media central канарейка @

a a vocal abierta anteriorno redondeada

два, яблоко a

e e vocal semicerradaanterior noredondeada

печь e

ɛ E vocal semiabiertaanterior noredondeada

это E

i i vocal cerradaanterior noredondeada

один, четыре i

o o vocal semicerradaposterior redondeada

кот o

u u vocal cerradaposterior redondeada

муж, вьюга u

ɨ 1 vocal cerrada centralno redondeada

мышь i

Español (es-ES)

En la tabla siguiente se muestra el conjunto de fonemas del Alfabeto Fonético Internacional (IPA, por sussiglas en inglés), los símbolos del Alfabeto Fonético Extendido SAM (X-SAMPA, por sus siglas en inglés) ylos correspondientes visemas para las voces del idioma español admitidas por Amazon Polly.

Tabla de fonemas/visemas

IPA X-SAMPA Descripción Ejemplo Visema

Consonantes

ɾ 4 vibrante simplealveolar

pero, bravo, amor,eterno

t

97

Amazon Polly Developer GuideEtiquetas SSML admitidas

IPA X-SAMPA Descripción Ejemplo Visema

b b oclusiva bilabialsonora

bestia p

β B fricativa bilabialsonora

bebé B

d d oclusiva alveolarsonora

cuando t

ð D fricativa dentalsonora

arder T

f f fricativa labiodentalsorda

fase, café f

g g oclusiva velar sonora gato, lengua, guerra k

ɣ G fricativa velar sonora trigo, Argos k

j j aproximante palatal hacia, tierra, radio,viuda

i

ʝ j\ fricativa palatalsonora

enhielar, sayo,inyectado, desyerba

J

k k oclusiva velar sorda caña, laca, quisimos k

l l aproximante alveolarlateral

lino, calor, principal t

ʎ L aproximante palatallateral

llave, pollo J

m m nasal bilabial madre, comer,anfibio

p

n n nasal alveolar nido, anillo, sin t

ɲ J nasal palatal cabaña, ñoquis J

ŋ N nasal velar cinco, venga k

p p oclusiva bilabialsorda

pozo, topo p

r r vibrante alveolar perro, enrachado r

s s fricativa alveolarsorda

saco, casa, puertas s

t t oclusiva alveolarsorda

tamiz, átomo t

tʃ tS africada postalveolarsorda

chubasco S

θ T fricativa dental sorda cereza, zorro, lacero,paz

T

98

Amazon Polly Developer GuideEtiquetas SSML admitidas

IPA X-SAMPA Descripción Ejemplo Visema

w w aproximante velo-labial

fuego, fuimos, cuota,cuadro

u

x x fricativa velar sorda jamón, general, suje,reloj

k

z z fricativa alveolarsonora

rasgo, mismo s

Vocales

a a vocal abierta anteriorno redondeada

tanque a

e e vocal semicerradaanterior noredondeada

peso e

i i vocal cerradaanterior noredondeada

cinco i

o o vocal semicerradaposterior redondeada

bosque o

u u vocal semicerradaanterior noredondeada

publicar u

e e vocal semicerradaanterior noredondeada

keçi e

ɛ E vocal semiabiertaanterior noredondeada

dede e

i i vocal cerradaanterior noredondeada

bir i

i: i: vocal largacerrada anterior noredondeada

izah i

ɪ I vocal casi cerradasemianterior noredondeada

keçi i

ɯ M vocal cerradaposterior noredondeada

kıl i

o o vocal largasemicerradaposterior redondeada

kol o

99

Amazon Polly Developer GuideEtiquetas SSML admitidas

IPA X-SAMPA Descripción Ejemplo Visema

o: o: vocal largasemicerradaposterior redondeada

dolar o

u u vocal cerradaposterior redondeada

durum u

u: u: vocal larga cerradaposterior redondeada

ruhum u

ʊ U vocal casi cerradasemiposteriorredondeada

dolu u

S y vocal cerradaanterior redondeada

güvenlik u

ʏ S vocal casi cerradasemianteriorredondeada

aşı u

Español (EE. UU.) (es-US)

En la tabla siguiente se muestra el conjunto de fonemas del Alfabeto Fonético Internacional (IPA, por sussiglas en inglés), los símbolos del Alfabeto Fonético Extendido SAM (X-SAMPA, por sus siglas en inglés) ylos correspondientes visemas para las voces del idioma español de EE. UU. admitidas por Amazon Polly.

IPA X-SAMPA Descripción Ejemplo Visema

Consonantes

b b Oclusiva bilabialsonora

bed p

d d Oclusiva alveolarsonora

dig t

dʒ dZ Africada postalveolarsonora

jump S

ð D Fricativa dentalsonora

then T

f f Fricativa labiodentalsorda

five f

g g Oclusiva velar sonora game k

h h Fricativa glotal sorda house k

j j Aproximante palatal yes i

k k Oclusiva velar sorda cat k

l l Aproximante alveolarlateral

lay t

100

Amazon Polly Developer GuideEtiquetas SSML admitidas

IPA X-SAMPA Descripción Ejemplo Visema

m m Nasal bilabial mouse p

n n Nasal alveolar nap t

ŋ N Nasal velar thing k

p p Oclusiva bilabialsorda

speak p

ɹ r\ Aproximante alveolar red r

s s Fricativa alveolarsorda

seem s

ʃ S Fricativa postalveolarsorda

ship S

t t Oclusiva alveolarsorda

trap t

tʃ tS Africada postalveolarsorda

chart S

Θ T Fricativa dental sorda thin T

v v Fricativa labiodentalsonora

vest f

w w Aproximante velo-labial

west u

z z Fricativa alveolarsonora

zero s

ʒ Z Fricativa postalveolarsonora

vision S

Vocales

ə @ Vocal media central arena @

ɚ @` Vocal media centralrótica

reader @

æ { Vocal casi abiertaanterior noredondeada

trap a

aɪ aI Diptongo price a

aʊ aU Diptongo mouth a

ɑ A Vocal larga abiertaposterior noredondeada

father a

eɪ eI Diptongo face e

101

Amazon Polly Developer GuideEtiquetas SSML admitidas

IPA X-SAMPA Descripción Ejemplo Visema

ɝ 3` Vocal media centralrótica no redondeadaabierta

nurse E

ɛ E Vocal abiertasemianterior noredondeada

dress E

i: i Vocal largacerrada anterior noredondeada

fleece i

ɪ I Vocal casi cerradasemianterior noredondeada

kit i

oʊ oU Diptongo goat o

ɔ O Vocal larga abiertasemiposteriorredondeada

thought O

ɔɪ OI Diptongo choice O

u u Vocal larga cerradaposterior redondeada

goose u

ʊ U Vocal casi cerradasemiposteriorredondeada

foot u

ʌ V vocal semiabiertaposterior noredondeada

strut E

Sueco (sv-SE)

En la tabla siguiente se muestra el conjunto de fonemas del Alfabeto Fonético Internacional (IPA, por sussiglas en inglés), los símbolos del Alfabeto Fonético Extendido SAM (X-SAMPA, por sus siglas en inglés) ylos correspondientes visemas para las voces del idioma sueco admitidas por Amazon Polly.

Tabla de fonemas/visemas

IPA X-SAMPA Descripción Ejemplo Visema

Consonantes

b b oclusiva bilabialsonora

bil p

d d oclusiva alveolarsonora

dal t

ɖ d` oclusiva retroflejasonora

bord t

102

Amazon Polly Developer GuideEtiquetas SSML admitidas

IPA X-SAMPA Descripción Ejemplo Visema

f f fricativa labiodentalsorda

fil f

g g oclusiva velar sonora gås k

h h fricativa glotal sorda hal k

j j aproximante palatal jag i

k k oclusiva velar sorda kal k

l l aproximante alveolarlateral

lös t

ɭ l` aproximante lateralretrofleja

härlig t

m m nasal bilabial mil p

n n nasal alveolar nålar t

ɳ n` nasal retrofleja barn t

ŋ N nasal velar ring k

p p oclusiva bilabialsorda

pil p

r r vibrante alveolar ris r

s s fricativa alveolarsorda

sil s

ɕ s\ fricativa alveolo-palatal sorda

tjock J

ʂ s` fricativa retroflejasorda

fors, schlager S

t t oclusiva alveolarsorda

tal t

ʈ t` oclusiva retroflejasorda

hjort t

v v fricativa labiodentalsonora

vår f

w w aproximante velo-labial

aula, airways u

ɧ x\ fricativa palatal velarsorda

sjuk k

Vocales

ø 2 vocal semicerradaanterior redondeada

föll, förr o

103

Amazon Polly Developer GuideEtiquetas SSML admitidas

IPA X-SAMPA Descripción Ejemplo Visema

ø 2: vocal largasemicerrada anteriorredondeada

föl, nöt, för o

ɵ 8 vocal semicerradacentral redondeada

buss, full o

ə @ vocal media central pojken @

ʉː }: vocal larga cerradacentral redondeada

hus, ful u

a a vocal abierta anteriorno redondeada

hall, matt a

æ { vocal casi abiertaanterior noredondeada

herr a

ɑː A: vocal larga abiertaposterior noredondeada

hal, mat a

e: e: vocal largasemicerrada anteriorno redondeada

vet, hel e

ɛ E vocal semiabiertaanterior noredondeada

vett, rätt, hetta, häll E

ɛː E: vocal largasemiabierta anteriorno redondeada

säl, häl, här E:

i: i: vocal largacerrada anterior noredondeada

vit, sil i:

ɪ I vocal casi cerradasemianterior noredondeada

vitt, sill i

o: o: vocal largasemicerradaposterior redondeada

hål, mål o

ɔ O vocal semiabiertaposterior redondeada

håll, moll O

u: u: vocal larga cerradaposterior redondeada

sol, bot u

ʊ U vocal casi cerradasemiposteriorredondeada

bott u

104

Amazon Polly Developer GuideEtiquetas SSML admitidas

IPA X-SAMPA Descripción Ejemplo Visema

y y vocal cerradaanterior redondeada

bytt u

y: y: vocal larga cerradaanterior redondeada

syl, syl u

Turco (tr-TR)

En la tabla siguiente se muestra el conjunto de fonemas del Alfabeto Fonético Internacional (IPA, por sussiglas en inglés), los símbolos del Alfabeto Fonético Extendido SAM (X-SAMPA, por sus siglas en inglés) ylos correspondientes visemas para las voces del idioma turco admitidas por Amazon Polly.

Tabla de fonemas/visemas

IPA X-SAMPA Descripción Ejemplo Visema

Consonantes

ɾ 4 vibrante simplealveolar

durum t

ɾ 4_0_r vibrante alveolarafricada sorda

bir t

ɾ 4_r vibrante alveolarafricada

raf t

b b oclusiva bilabialsonora

raf p

c c oclusiva palatal sorda kedi k

d d oclusiva alveolarsonora

dede t

dʒ dZ africada postalveolarsonora

cam S

f f fricativa labiodentalsorda

fare f

g g oclusiva velar sonora galibi k

h h fricativa glotal sorda hasta k

j j aproximante palatal yat i

ɟ J\ oclusiva palatalsonora

genç J

k k oclusiva velar sorda akıl k

l l aproximante alveolarlateral

lale t

ɫ 5 aproximante lateralalveolar velarizada

labirent t

105

Amazon Polly Developer GuideEtiquetas SSML admitidas

IPA X-SAMPA Descripción Ejemplo Visema

m m nasal bilabial maaş p

n n nasal alveolar anı t

p p oclusiva bilabialsorda

ip p

s s fricativa alveolarsorda

ses s

ʃ S fricativa postalveolarsorda

aşı S

t t oclusiva alveolarsorda

ütü t

tʃ tS africada postalveolarsorda

çaba S

v v fricativa labiodentalsonora

ekvator, kahveci,akvaryum, isveçli,teşviki, cetvel

f

z z fricativa alveolarsonora

ver s

ʒ Z fricativa postalveolarsonora

azık S

Vocales

ø 2 vocal semicerradaanterior redondeada

göl 0

œ 9 vocal semiabiertaanterior redondeada

banliyö O

a a vocal abierta anteriorno redondeada

kal a

a: a: vocal largaabierta anterior noredondeada

davacı a

æ { vocal casi abiertaanterior noredondeada

özlem, güvenlik,gürel, somersault

a

e e vocal semicerradaanterior noredondeada

keçi e

ɛ E vocal semiabiertaanterior noredondeada

dede E

106

Amazon Polly Developer GuideEtiquetas SSML admitidas

IPA X-SAMPA Descripción Ejemplo Visema

i i vocal cerradaanterior noredondeada

bir i

i: i: vocal largacerrada anterior noredondeada

izah i

ɪ I vocal casi cerradasemianterior noredondeada

keçi i

ɯ M vocal cerradaposterior noredondeada

kıl i

o o vocal semicerradaposterior redondeada

kol o

o: o: vocal largasemicerradaposterior redondeada

dolar o

u u vocal cerradaposterior redondeada

durum u

u: u: vocal larga cerradaposterior redondeada

ruhum u

ʊ U vocal casi cerradasemiposteriorredondeada

dolu u

y y vocal cerradaanterior redondeada

güvenlik u

ʏ S vocal casi cerradasemianteriorredondeada

aşı u

Galés (cy-GB)En la tabla siguiente se muestra el conjunto de fonemas del Alfabeto Fonético Internacional (IPA, por sussiglas en inglés), los símbolos del Alfabeto Fonético Extendido SAM (X-SAMPA, por sus siglas en inglés) ylos correspondientes visemas para las voces del idioma galés admitidas por Amazon Polly.

Tabla de fonemas/visemas

IPA X-SAMPA Descripción Ejemplo Visema

Consonantes

b b oclusiva bilabialsonora

baban p

d d oclusiva alveolarsonora

deg t

107

Amazon Polly Developer GuideEtiquetas SSML admitidas

IPA X-SAMPA Descripción Ejemplo Visema

dʒ dZ africada postalveolarsonora

garej S

ð D fricativa dentalsonora

deuddeg T

f f fricativa labiodentalsorda

ffacs f

g g oclusiva velar sonora gadael k

h h fricativa glotal sorda haearn k

j j aproximante palatal astudio i

k k oclusiva velar sorda cant k

l l aproximante alveolarlateral

lan t

ɬ K fricativa lateralalveolar sorda

llan t

m m nasal bilabial mae p

m m_0 nasal bilabial sorda ymhen p

n n nasal alveolar naw t

n n_0 nasal alveolar sorda anhawster t

ŋ N nasal velar argyfwng k

ŋ N_0 nasal velar sorda anghenion k

p p oclusiva bilabialsorda

pump p

r r vibrante alveolar rhoi r

r r_0 vibrante alveolarsorda

garw r

s s fricativa alveolarsorda

saith s

ʃ S fricativa postalveolarsorda

siawns S

t t oclusiva alveolarsorda

tegan t

tʃ tS africada postalveolarsorda

cytsain S

θ T fricativa dental sorda aberth T

v v fricativa labiodentalsonora

prawf f

108

Amazon Polly Developer GuideEtiquetas SSML admitidas

IPA X-SAMPA Descripción Ejemplo Visema

w w aproximante velo-labial

rhagweld u

χ X fricativa uvular sorda chwech k

z z fricativa alveolarsonora

aids s

ʒ Z fricativa postalveolarsonora

rouge S

Vocales

ə @ vocal media central ychwanega @

a a vocal abierta anteriorno redondeada

acen a

ai ai diptongo dau a

au au diptongo awdur a

ɑː A: vocal larga abiertaposterior noredondeada

mab a

ɑːɨ A:1 diptongo aelod a

e: e: vocal largasemicerrada anteriorno redondeada

peth e

ɛ E vocal semiabiertaanterior noredondeada

pedwar E

ɛi Ei diptongo beic E

i: i: vocal largacerrada anterior noredondeada

tri i

ɪ I vocal casi cerradasemianterior noredondeada

miliwn i

ɨu 1u diptongo unigryw i

o: o: vocal largasemicerradaposterior redondeada

oddi o

ɔ O vocal semiabiertaposterior redondeada

oddieithr O

ɔi Oi diptongo troi O

ɔu Ou diptongo rownd O

109

Amazon Polly Developer GuideEtiquetas SSML admitidas

IPA X-SAMPA Descripción Ejemplo Visema

u: u: vocal larga cerradaposterior redondeada

cwch u

ʊ U vocal casi cerradasemiposteriorredondeada

acwstig u

ʊi Ui diptongo wyth u

110

Amazon Polly Developer GuideAplicar varios lexicones

Administrar lexiconesLos lexicones de pronunciación le permiten personalizar la pronunciación de las palabras. AmazonPolly dispone de operaciones de la API que puede utilizar para almacenar lexicones en una región deAWS. Estos lexicones serán específicos de esa región. Puede utilizar uno o varios lexicones de esaregión cuando sintetice texto mediante la operación SynthesizeSpeech. Esta operación aplica ellexicón especificado al texto de entrada antes de que comience el proceso de síntesis. Para obtener másinformación, consulte SynthesizeSpeech (p. 193).

Note

Los lexicones deben ajustarse a la recomendación de W3C sobre Pronunciation LexiconSpecification (PLS, Especificación de lexicones de pronunciación). Para obtener más información,consulte Pronunciation Lexicon Specification (PLS) versión 1.0 en el sitio web de W3C.

A continuación, se incluyen algunos ejemplos sobre el uso de lexicones con motores de síntesis de voz:

• A veces, en algunas palabras, se utilizan números para sustituir las letras, por ejemplo, "g3t sm4rt" (getsmart). Los humanos pueden leer estas palabras correctamente. Sin embargo, un motor de conversiónde texto a voz (TTS) lee el texto literalmente y pronuncia la palabra tal y como está escrita. En este tipode casos, se pueden utilizar lexicones para personalizar la síntesis de voz mediante Amazon Polly. Eneste ejemplo, se puede especificar un alias (get smart) para la palabra "g3t sm4rt" del lexicón.

• Supongamos que el texto contiene un acrónimo, como W3C. Puede utilizar un lexicón para definir unalias para la palabra W3C, de forma que se lea en su forma expandida (World Wide Web Consortium).

Los lexicones proporcionan mayor control acerca de cómo Amazon Polly pronuncia palabras que sonpoco frecuentes en el idioma seleccionado. Por ejemplo, puede especificar la pronunciación utilizandoun alfabeto fonético. Para obtener más información, consulte Pronunciation Lexicon Specification (PLS)versión 1.0 en el sitio web de W3C.

Temas• Aplicar varios lexicones (p. 111)• Administrar lexicones a través de la consola de Amazon Polly (p. 112)• Administrar lexicones a través de AWS CLI (p. 115)

Aplicar varios lexiconesPuede aplicar hasta cinco lexicones al texto. Si el mismo grafema aparece en varios lexicones distintosque se aplican al texto, el orden en el que se apliquen marcará una diferencia en el fragmento habladoresultante. Por ejemplo, supongamos que tenemos el texto siguiente, "Hello, my name is Bob" ("Hola, mellamo Bob"), y dos lexemas en lexicones distintos que utilizan el grafema Bob.

LexA

<lexeme> <grapheme>Bob</grapheme> <alias>Robert</alias></lexeme>

LexB

<lexeme>

111

Amazon Polly Developer GuideAdministrar lexicones a través de la consola

<grapheme>Bob</grapheme> <alias>Bobby</alias></lexeme>

Si el orden de los lexicones es primero LexA y luego LexB, el resultado de la síntesis de voz será "Hello,my name is Robert" ("Hola, me llamo Robert"). Si el orden es el contrario, y primero va LexB y despuésLexA, el resultado de la síntesis de voz será "Hello, my name is Bobby ("Hola, me llamo Bobby").

Example – Aplicación de LexA antes que LexB

aws polly synthesize-speech \--lexicon-names LexA LexB \--output-format mp3 \--text 'Hello, my name is Bob' \--voice-id Justin \bobAB.mp3

Fragmento hablado resultante: "Hello, my name is Robert" ("Hola, me llamo Robert").

Example – Aplicación de LexB antes que LexA

aws polly synthesize-speech \--lexicon-names LexB LexA \--output-format mp3 \--text 'Hello, my name is Bob' \--voice-id Justin \bobBA.mp3

Fragmento hablado resultante: "Hello, my name is Bobby" ("Hola, me llamo Bobby").

Para obtener más información sobre la aplicación de lexicones a través de la consola de Amazon Polly,consulte Aplicar lexicones a través de la consola (síntesis de voz) (p. 113).

Administrar lexicones a través de la consola deAmazon Polly

Puede utilizar la consola de Amazon Polly para cargar, descargar, aplicar, filtrar y eliminar lexicones. En lossiguientes procedimientos, se muestra cada uno de estos procesos.

Cargar lexicones a través de la consolaPara utilizar un lexicón de pronunciación, primero debe cargarlo. Hay dos ubicaciones en la consola desdelas que se puede cargar un lexicón, la pestaña Text-to-Speech y la pestaña Lexicons.

En los procesos siguientes se explica cómo agregar lexicones que puede utilizar para personalizar el modoen que las palabras y las frases poco comunes se pronuncian en el idioma elegido.

Para agregar un lexicón desde la pestaña Lexicons

1. Inicie sesión en la consola de administración de AWS y abra la consola de Amazon Polly en https://console.aws.amazon.com/polly/.

2. Elija la pestaña Lexicons.3. Seleccione Upload.

112

Amazon Polly Developer GuideAplicar lexicones a través de la consola (síntesis de voz)

4. Busque el lexicón que quiere cargar. Solo puede emplear archivos PLS que utilicen lasextensiones .pls y.xml.

5. Elija Open. Si ya existe un lexicón con el mismo nombre (ya sea un archivo .pls o un archivo .xml), alcargar el lexicón, se remplazará el lexicón existente.

Para agregar un lexicón desde la pestaña Text-to-Speech

1. Inicie sesión en la consola de administración de AWS y abra la consola de Amazon Polly en https://console.aws.amazon.com/polly/.

2. Elija la pestaña Text-to-Speech.3. Elija Customize pronunciation of words or phrases using lexicons, seguido de Upload lexicon.4. Busque el lexicón que quiere cargar. Solo puede emplear archivos PLS que utilicen las

extensiones .pls y.xml.5. Elija Open. Si ya existe un lexicón con el mismo nombre (ya sea un archivo .pls o un archivo .xml), al

cargar el lexicón, se remplazará el lexicón existente.

Aplicar lexicones a través de la consola (síntesis devoz)En el procedimiento siguiente, se muestra cómo se aplica un lexicón al texto de entrada. Para ello, seutiliza el lexicón W3c.pls, que sustituye "World Wide Web Consortium" por "W3C". Si aplica varioslexicones al texto, se aplicarán en orden descendente, por lo que las coincidencias del primer lexicóntendrán prioridad sobre las de los siguientes. El lexicón solamente se aplica al texto si el idiomaespecificado en él es el mismo que el lenguaje elegido.

Puede aplicar un lexicón a una entrada de texto sin formato o a una entrada SSML.

Example – Aplicar el lexicón W3C.pls

Para crear el lexicón necesario para este ejercicio, consulte Uso de la operación PutLexicon (p. 115).Utilice un editor de texto plano para crear el lexicón W3C.pls que aparece al comienzo del tema. No olvidela ubicación en la que guarda el archivo.

Para aplicar el lexicón W3C.pls a la entrada

En este ejemplo, hemos introducido un lexicón para sustituir "World Wide Web Consortium" por "W3C".Compare los resultados de este ejercicio con los de Uso de SSML (consola) (p. 29) tanto en inglés deEstados Unidos como en otro idioma.

1. Inicie sesión en la consola de administración de AWS y abra la consola de Amazon Polly en https://console.aws.amazon.com/polly/.

2. Aplique alguna de las siguientes acciones:

• Elija la pestaña Plain text y escriba o pegue este texto en el cuadro de entrada de texto.

He was caught up in the game. In the middle of the 10/3/2014 W3C meeting he shouted, "Score!" quite loudly.

• Elija la pestaña SSML y escriba o pegue este texto en el cuadro de entrada de texto.

<speak>He wasn't paying attention.<break time="1s"/>In the middle of the 10/3/2014 W3C meeting he shouted, "Score!" quite loudly.</speak>

113

Amazon Polly Developer GuideFiltrar la lista de léxico a través de la consola

3. En la lista Choose a language and region, elija el idioma inglés de Estados Unidos y seleccione la vozque desee usar para este texto.

4. Elija Customize pronunciation of words or phrases using lexicons.5. En la lista de lexicones, seleccione W3C (English, US).

Si el lexicón W3C (English, US) no aparece en la lista, elija Upload lexicon y cárguelo. Acontinuación, selecciónelo en la lista. Para crear este lexicón, consulte Uso de la operaciónPutLexicon (p. 115).

6. Si desea escuchar el fragmento hablado inmediatamente, elija Listen to speech.7. Para guardar el fragmento hablado en un archivo,

a. Elija Save speech to MP3.b. Para cambiar el formato de archivo, elija Change file format, seleccione el formato de archivo que

desee y, a continuación, elija Change.

Repita los pasos anteriores, pero elija otro idioma y observe la diferencia en la salida.

Filtrar la lista de léxico a través de la consolaEn el siguiente procedimiento se describe cómo filtrar la lista de lexicones para que solamente aparezcanlos del idioma elegido.

Para filtrar la lista de lexicones por idioma

1. Inicie sesión en la consola de administración de AWS y abra la consola de Amazon Polly en https://console.aws.amazon.com/polly/.

2. Elija la pestaña Lexicons.3. Elija Filtro.4. En la lista de idiomas, seleccione el idioma que desea utilizar como filtro.

En la lista solo aparecerán los lexicones del idioma seleccionado.

Descargar lexicones a través de la consolaEn el proceso siguiente se describe cómo puede descargar uno o varios lexicones. Si lo desea, puedeañadir, eliminar o modificar las entradas del lexicón en el archivo y volver a cargarlo después paramantenerlo actualizado.

Para descargar uno o varios lexicones

1. Inicie sesión en la consola de administración de AWS y abra la consola de Amazon Polly en https://console.aws.amazon.com/polly/.

2. Elija la pestaña Lexicons.3. Elija el lexicón o lexicones que desee descargar.

a. Para descargar un único lexicón, elija el nombre en la lista.b. Para descargar varios lexicones en un único archivo comprimido, active la casilla situada junto a

cada entrada de la lista que desee descargar.4. Elija Download.5. Abra la carpeta en la que desea descargar el lexicón.6. Seleccione Save.

114

Amazon Polly Developer GuideEliminar un lexicón a través de la consola

Eliminar un lexicón a través de la consolaPara eliminar un lexicón

En el siguiente proceso se describe cómo se elimina un lexicón. Después de eliminar un lexicón, deberávolver a agregarlo para poder utilizarlo de nuevo. Puede eliminar uno o varios lexicones al mismo tiempo.Para ello, active las casillas situadas junto a cada lexicón.

1. Inicie sesión en la consola de administración de AWS y abra la consola de Amazon Polly en https://console.aws.amazon.com/polly/.

2. Elija la pestaña Lexicons.3. Seleccione en la lista uno o varios lexicones que desee eliminar.4. Elija Eliminar.5. Elija Delete para eliminar el lexicón de la región o Cancel para conservarlo.

Administrar lexicones a través de AWS CLIEn los temas siguientes se explican los comandos de AWS CLI necesarios para administrar los lexiconesde pronunciación.

Temas• Uso de la operación PutLexicon (p. 115)• Uso de la operación GetLexicon (p. 120)• Uso de la operación ListLexicons (p. 120)• Uso de la operación DeleteLexicon (p. 121)

Uso de la operación PutLexiconCon Amazon Polly, puede utilizar PutLexicon (p. 186) para almacenar lexicones de pronunciación en unaregión de AWS específica de su cuenta. A continuación, podrá especificar uno o varios de los lexiconesalmacenados en la solicitud SynthesizeSpeech (p. 193) que desee aplicar antes de que el serviciocomience a sintetizar el texto. Para obtener más información, consulte Administrar lexicones (p. 111).

Esta sección contiene lexicones de ejemplo e instrucciones detalladas para guardarlos y probarlos.Note

Los lexicones deben ajustarse a la recomendación de W3C sobre Pronunciation LexiconSpecification (PLS, Especificación de lexicones de pronunciación). Para obtener más información,consulte Pronunciation Lexicon Specification (PLS) versión 1.0 en el sitio web de W3C.

Ejemplo 1: Lexicón con un solo lexemaSupongamos que tiene el siguiente lexicón, que se ajusta a la recomendación PLS de W3C.

<?xml version="1.0" encoding="UTF-8"?><lexicon version="1.0" xmlns="http://www.w3.org/2005/01/pronunciation-lexicon" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/2005/01/pronunciation-lexicon http://www.w3.org/TR/2007/CR-pronunciation-lexicon-20071212/pls.xsd" alphabet="ipa" xml:lang="en-US">

115

Amazon Polly Developer GuidePutLexicon

<lexeme> <grapheme>W3C</grapheme> <alias>World Wide Web Consortium</alias> </lexeme></lexicon>

Tenga en cuenta lo siguiente:

• Los dos atributos especificados en el elemento <lexicon>:• El atributo xml:lang especifica el código de idioma, en-US, al que se va a aplicar el lexicón.

Amazon Polly puede utilizar este lexicón de ejemplo si la voz que se especifica en la llamada aSynthesizeSpeech tiene el mismo código de idioma (en-US).

Note

Puede utilizar la operación DescribeVoices para buscar el código de idioma asociado auna voz.

 • El atributo alphabet está establecido en IPA, lo que significa que se va a utilizar el Alfabeto Fonético

Internacional (IPA, por sus siglas en inglés) para especificar la pronunciación. IPA es uno de losalfabetos disponibles para escribir las pronunciaciones. Amazon Polly también admite el AlfabetoFonético Extendido SAM (X-SAMPA, por sus siglas en inglés).

 • El elemento <lexeme> describe la correspondencia entre <grapheme> (es decir, la representación

gráfica textual de la palabra) y <alias>.

Para probar este lexicón, haga lo siguiente:

1. Guarde el lexicón como example.pls.2. Ejecute el comando put-lexicon de AWS CLI para guardar el lexicón (con el nombre w3c) en la

región us-east-2.

aws polly put-lexicon \--name w3c \--content file://example.pls

3. Ejecute el comando synthesize-speech para sintetizar el texto de ejemplo en una secuencia deaudio (speech.mp3) y especifique el parámetro opcional lexicon-name.

aws polly synthesize-speech \--text 'W3C is a Consortium' \--voice-id Joanna \--output-format mp3 \--lexicon-names="w3c" \speech.mp3

4. Reproduzca el archivo speech.mp3 resultante y observe que la palabra W3C del texto se hasustituido por World Wide Web Consortium.

En el lexicón del ejemplo anterior se utiliza un alias. El alfabeto IPA mencionado en el lexicón no se utiliza.El lexicón siguiente especifica una pronunciación fonética que utiliza el elemento <phoneme> con elalfabeto IPA.

<?xml version="1.0" encoding="UTF-8"?><lexicon version="1.0"

116

Amazon Polly Developer GuidePutLexicon

xmlns="http://www.w3.org/2005/01/pronunciation-lexicon" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/2005/01/pronunciation-lexicon http://www.w3.org/TR/2007/CR-pronunciation-lexicon-20071212/pls.xsd" alphabet="ipa" xml:lang="en-US"> <lexeme> <grapheme>pecan</grapheme> <phoneme>p##k##n</phoneme> </lexeme></lexicon>

Siga los mismos pasos para probar este lexicón. No olvide especificar un texto de entrada que tenga lapalabra "pecan"; por ejemplo, "Pecan pie is delicious" ("La tarta de nueces está deliciosa").

Ejemplo 2: Lexicón con varios lexemasEn este ejemplo, el lexema especificado en el lexicón se aplica exclusivamente al texto de entrada delproceso de síntesis. Pongamos como ejemplo el siguiente lexicón:

<?xml version="1.0" encoding="UTF-8"?><lexicon version="1.0" xmlns="http://www.w3.org/2005/01/pronunciation-lexicon" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/2005/01/pronunciation-lexicon http://www.w3.org/TR/2007/CR-pronunciation-lexicon-20071212/pls.xsd" alphabet="ipa" xml:lang="en-US">

<lexeme> <grapheme>W3C</grapheme> <alias>World Wide Web Consortium</alias> </lexeme> <lexeme> <grapheme>W3C</grapheme> <alias>WWW Consortium</alias> </lexeme> <lexeme> <grapheme>Consortium</grapheme> <alias>Community</alias> </lexeme></lexicon>

El lexicón especifica tres lexemas, dos de los cuales definen un alias para el grafema W3C, tal y como seindica a continuación:

• El primer elemento <lexeme> define un alias (World Wide Web Consortium).• El segundo elemento <lexeme> define un alias alternativo (WWW Consortium).

Amazon Polly utiliza la primera palabra de sustitución con cualquier grafema del lexicón.

El tercer elemento <lexeme> establece una palabra sustituta (Community) para "Consortium".

En primer lugar, vamos a probar este lexicón. Supongamos que desea sintetizar el siguiente textode ejemplo en un archivo de audio (speech.mp3) y que especifica el lexicón en una llamada aSynthesizeSpeech.

The W3C is a Consortium

SynthesizeSpeech se aplica al lexicón de la forma siguiente:

117

Amazon Polly Developer GuidePutLexicon

• De acuerdo con el primer lexema, la palabra W3C se modifica a World Wide Web Consortium. El textorevisado sería el siguiente:

The World Wide Web Consortium is a Consortium

• El alias definido en el tercer lexema solamente se aplica a la palabra Consortium que formaba parte deltexto original, por lo que se obtiene el siguiente texto:

The World Wide Web Consortium is a Community.

Puede comprobarlo utilizando AWS CLI del modo siguiente:

1. Guarde el lexicón como example.pls.2. Ejecute el comando put-lexicon para guardar el lexicón con el nombre w3c en la región us-east-2.

aws polly put-lexicon \--name w3c \--content file://example.pls

3. Ejecute el comando list-lexicons para comprobar que el lexicón w3c está en la lista de lexiconesdevuelta.

aws polly list-lexicons

4. Ejecute el comando synthesize-speech para sintetizar el texto de ejemplo en un archivo de audio(speech.mp3) y especifique el parámetro opcional lexicon-name.

aws polly synthesize-speech \--text 'W3C is a Consortium' \--voice-id Joanna \--output-format mp3 \--lexicon-names="w3c" \speech.mp3

5. Reproduzca el archivo speech.mp3 resultante para comprobar que la síntesis del fragmento habladorefleja los cambios del texto.

Ejemplo 3: Especificar varios lexiconesEn una llamada a SynthesizeSpeech, puede especificar varios lexicones. En este caso, el primer lexicónespecificado (de izquierda a derecha) anulará cualquier lexicón anterior.

Pongamos como ejemplo los dos lexicones siguientes. Tenga en cuenta que cada lexicón especifica aliasdiferentes para el mismo grafema, W3C.

• Lexicón 1: w3c.pls

<?xml version="1.0" encoding="UTF-8"?><lexicon version="1.0" xmlns="http://www.w3.org/2005/01/pronunciation-lexicon" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/2005/01/pronunciation-lexicon http://www.w3.org/TR/2007/CR-pronunciation-lexicon-20071212/pls.xsd" alphabet="ipa" xml:lang="en-US"> <lexeme> <grapheme>W3C</grapheme>

118

Amazon Polly Developer GuidePutLexicon

<alias>World Wide Web Consortium</alias> </lexeme></lexicon>

• Lexicón 2: w3cAlternate.pls

<?xml version="1.0" encoding="UTF-8"?><lexicon version="1.0" xmlns="http://www.w3.org/2005/01/pronunciation-lexicon" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/2005/01/pronunciation-lexicon http://www.w3.org/TR/2007/CR-pronunciation-lexicon-20071212/pls.xsd" alphabet="ipa" xml:lang="en-US">

<lexeme> <grapheme>W3C</grapheme> <alias>WWW Consortium</alias> </lexeme></lexicon>

Suponga que almacena estos lexicones como w3c y w3cAlternate, respectivamente. Si especifica loslexicones en orden (w3c seguido de w3cAlternate) en una llamada a SynthesizeSpeech, el alias deW3C definido en el primer lexicón tendrá prioridad sobre el segundo. Para probar los lexicones, siga estospasos:

1. Guarde los lexicones localmente en sendos archivos denominados w3c.pls y w3cAlternate.pls.2. Cargue estos lexicones utilizando el comando put-lexicon de AWS CLI.

• Cargue el lexicón w3c.pls y guárdelo como w3c.

aws polly put-lexicon \--name w3c \--content file://w3c.pls

• Cargue el lexicón w3cAlternate.pls en el servicio como w3cAlternate.

aws polly put-lexicon \--name w3cAlternate \--content file://w3cAlternate.pls

3. Ejecute el comando synthesize-speech para sintetizar el texto de ejemplo en una secuencia deaudio (speech.mp3) y especifique los dos lexicones a través del parámetro lexicon-name.

aws polly synthesize-speech \--text 'PLS is a W3C recommendation' \--voice-id Joanna \--output-format mp3 \--lexicon-names '["w3c","w3cAlternative"]' \speech.mp3

4. Compruebe el archivo speech.mp3 resultante. Debería decir lo siguiente:

PLS is a World Wide Web Consortium recommendation

Muestras de código adicionales para la API PutLexicon• Muestra de Java: PutLexicon (p. 130)

119

Amazon Polly Developer GuideGetLexicon

• Muestra de Python (Boto3): PutLexicon (p. 136)

Uso de la operación GetLexiconAmazon Polly proporciona la operación GetLexicon (p. 178) de la API para recuperar el contenido de unlexicón de pronunciación guardado en su cuenta en una región específica.

El siguiente comando get-lexicon de AWS CLI recupera el contenido del lexicón example.

aws polly get-lexicon \--name example

Si aún no tiene un lexicón almacenado en su cuenta, puede utilizar la operación PutLexicon parahacerlo. Para obtener más información, consulte Uso de la operación PutLexicon (p. 115).

A continuación, se muestra una respuesta de ejemplo. Además del contenido del lexicón, la respuestadevuelve los metadatos, como el código de idioma que se aplica al lexicón, el número de lexemasdefinidos en el lexicón, el Nombre de recurso de Amazon (ARN) del recurso y el tamaño del lexicón enbytes. El valor de LastModified es una marca temporal de Unix.

{ "Lexicon": { "Content": "lexicon content in plain text PLS format", "Name": "example" }, "LexiconAttributes": { "LanguageCode": "en-US", "LastModified": 1474222543.989, "Alphabet": "ipa", "LexemesCount": 1, "LexiconArn": "arn:aws:polly:us-east-2:account-id:lexicon/example", "Size": 495 }}

Muestras de código adicionales para la API GetLexicon• Muestra de Java: GetLexicon (p. 129)• Muestra de Python (Boto3): GetLexicon (p. 134)

Uso de la operación ListLexiconsAmazon Polly dispone de la operación ListLexicons (p. 182) de la API, que puede utilizar para obtener lalista de lexicones de pronunciación de su cuenta en una determinada región de AWS. La siguiente llamadade AWS CLI muestra los lexicones de su cuenta de la región us-east-2.

aws polly list-lexicons

A continuación se incluye un ejemplo de respuesta, donde se muestran dos lexicones denominados w3cy tomato. En cada lexicón, la respuesta devuelve metadatos; por ejemplo, el código de idioma al que seaplica, el número de lexemas definidos en el lexicón, el tamaño en bytes, etc. El código de idioma indica elidioma y la configuración regional a los que se aplican los lexemas definidos en el lexicón.

{

120

Amazon Polly Developer GuideDeleteLexicon

"Lexicons": [ { "Attributes": { "LanguageCode": "en-US", "LastModified": 1474222543.989, "Alphabet": "ipa", "LexemesCount": 1, "LexiconArn": "arn:aws:polly:aws-region:account-id:lexicon/w3c", "Size": 495 }, "Name": "w3c" }, { "Attributes": { "LanguageCode": "en-US", "LastModified": 1473099290.858, "Alphabet": "ipa", "LexemesCount": 1, "LexiconArn": "arn:aws:polly:aws-region:account-id:lexicon/tomato", "Size": 645 }, "Name": "tomato" } ]}

Muestras de código adicionales para la API ListLexicon• Muestra de Java: ListLexicons (p. 129)• Muestra de Python (Boto3): ListLexicon (p. 135)

Uso de la operación DeleteLexiconAmazon Polly dispone de la operación DeleteLexicon (p. 173) de la API, que permite eliminar un lexicónde pronunciación de una determinada región de AWS de su cuenta. La siguiente instrucción de AWS CLIelimina el lexicón especificado.

El ejemplo siguiente de AWS CLI está preparado para Unix, Linux y macOS. Para Windows, reemplace elcarácter de continuación de Unix de barra inversa (\) al final de cada línea por un signo de intercalación (^)y use comillas dobles (") para el texto de entrada con comillas simples (') para las etiquetas interiores.

aws polly delete-lexicon \--name example

Muestras de código adicionales para la API DeleteLexicon• Muestra de Java: DeleteLexicon (p. 127)• Muestra de Python (Boto3): DeleteLexicon (p. 134)

121

Amazon Polly Developer GuideConfiguración de la política de IAM para síntesis asíncrona

Creación de archivos de audio largosPara crear archivos TTS para fragmentos de texto grandes, utilice la funcionalidad síntesis asíncrona deAmazon Polly. Esta utiliza las tres API de SpeechSynthesisTask:

• StartSpeechSynthesisTask: inicia una tarea de síntesis nueva.• GetSpeechSynthesisTask: devuelve detalles acerca de una tarea de síntesis enviada con

anterioridad.• ListSpeechSynthesisTasks: enumera todas las tareas de síntesis enviadas.

La operación SynthesizeSpeech produce audio casi en tiempo real, con relativamente poca latencia enla mayoría de los casos. Para ello, la operación solo puede sintetizar 3000 caracteres.

La característica de síntesis asíncrona de Amazon Polly supera el desafío que supone el procesamientode un documento de texto de mayor tamaño cambiando la manera en la que el documento sesintetiza y se devuelve. Cuando se realiza una solicitud de síntesis enviando texto de entrada conStartSpeechSynthesisTask, Amazon Polly pone en cola las solicitudes y, a continuación, las procesade forma asíncrona en segundo plano tan pronto como el sistema cuenta con recursos disponibles.Amazon Polly, carga a continuación el flujo de voz o de marcas de voz resultante directamente a su bucketde Amazon Simple Storage Service (Amazon S3) (obligatorio) y le informa acerca de la disponibilidad delarchivo completado a través de su tema de SNS (opcional).

De esta forma, toda la funcionalidad, excepto el procesamiento casi en tiempo real está disponible paratextos de hasta 100 000 caracteres facturables (o 200 000 caracteres totales) de longitud.

Para sintetizar un documento mediante este método, debe disponer de un bucket de Amazon S3 en el quepueda escribir donde pueda guardar el archivo de audio. Puede recibir una notificación cada vez que lasíntesis de audio esté lista proporcionando un identificador de tema de SNS opcional. Cuando la tarea desíntesis se haya completado, Amazon Polly publicará un mensaje sobre ese tema. Este mensaje tambiénpodría contener información de errores útil en aquellos casos en los que la tarea de síntesis no se realicecorrectamente. Para ello, asegúrese de que el usuario que crea la tarea de síntesis pueda publicar tambiénen el tema de SNS. Consulte la documentación de Amazon SNS para obtener más información acerca decómo crear y suscribirse a un tema de SNS.

Cifrado

Puede almacenar el archivo de salida en formato cifrado en el bucket de S3 si lo desea. Para ello, habilitecifrado de bucket de Amazon S3, que utiliza uno de los cifrados de bloques más seguros disponiblesAdvanced Encryption Standard de 256 bits (AES-256).

Temas• Configuración de la política de IAM para síntesis asíncrona (p. 122)• Creación de archivos de audio largos (consola) (p. 123)• Creación de archivos de audio largos (CLI) (p. 124)

Configuración de la política de IAM para síntesisasíncrona

Para utilizar la funcionalidad de síntesis asíncrona, necesitará una política de IAM que permita lo siguiente:

122

Amazon Polly Developer GuideCreación de archivos de audio largos (consola)

• uso de nuevas operaciones de Amazon Polly• escritura en el bucket de S3 de salida• publicar en el tema de SNS de estado [opcional]

La siguiente política concede únicamente los permisos necesarios para síntesis asíncrona y se puedenadjuntar al usuario de IAM.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "polly:StartSpeechSynthesisTask", "polly:GetSpeechSynthesisTask", "polly:ListSpeechSynthesisTasks" ], "Resource": "*" }, { "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::bucket-name/*" }, { "Effect": "Allow", "Action": "sns:Publish", "Resource": "arn:aws:sns:region:account:topic" } ]}

Para obtener más información sobre el uso de las políticas de IAM con Amazon Polly y cómo asociar laspolíticas de IAM con usuarios de IAM, consulte Control de acceso (p. 208).

Creación de archivos de audio largos (consola)Puede utilizar la consola de Amazon Polly para crear fragmentos de voz prolongados mediante la síntesisasíncrona con la misma funcionalidad que puede utilizar con la interfaz de línea de comandos (CLI) deAWS. Esto se realiza mediante la pestaña Text-to-Speech (Texto a voz) de forma muy similar a cualquierotra síntesis.

Las demás funcionalidades de síntesis asíncrona también se encuentran disponibles a travésde la consola. La pestaña S3 synthesis tasks (Tareas de síntesis de S3) refleja la funcionalidadListSpeechSynthesisTasks, que muestra todas las tareas guardadas en el bucket de S3 y le permitefiltrarlas si lo desea. Al hacer clic en una única tarea específica muestra sus detalles, de tal forma querefleja la funcionalidad GetSpeechSynthesisTask.

Para sintetizar un texto grande con la consola de Amazon Polly

1. Inicie sesión en la consola de administración de AWS y abra la consola de Amazon Polly en https://console.aws.amazon.com/polly/.

2. Elija la pestaña Text-to-Speech.3. En la pestaña Plain Text (Texto no cifrado) o en la pestaña SSML, escriba o pegue el texto en el

cuadro de entrada.

123

Amazon Polly Developer GuideCreación de archivos de audio largos (CLI)

4. Elija el idioma, la región y la voz para el texto.5. Elija Synthesize to S3 (Sintetizar en S3).

Note

Tanto las opciones Download (Descargar) como Listen to Speech (Escuchar fragmentohablado) aparecerán atenuadas si la longitud del texto es superior a los límites de laoperación SynthesizeSpeech en tiempo real.

6. Si no ha utilizado la síntesis asíncrona con anterioridad, se mostrará el cuadro Change S3 synthesistask settings (Cambiar configuración de tarea de síntesis de S3) para que pueda elegir dóndealmacenar el archivo de salida.

a. Rellene el nombre del bucket de Amazon S3 de destino.b. Opcionalmente, rellene la clave de prefijo de la salida.

Note

El bucket de S3 de salida debe permitir la escritura.c. Si desea recibir una notificación cuando la tarea de síntesis se haya completado, proporcione el

identificador de tema de SNS opcional.

Note

El SNS debe estar abierto para la publicación por el usuario de consola actual parautilizar esta opción. Para obtener más información, consulte Amazon Simple NotificationService (SNS)

d. Elija Synthesize (Sintetizar).

Para cambiar la configuración de tareas de síntesis de S3

1. En la consola, en la pestaña Test-to-Speech (Texto a voz), elija Change S3 task settings (Cambiarconfiguración de tarea de S3).

2. Realice los cambios que desee en el nombre del bucket de Amazon S3 de destino, su clave de prefijoo el identificador de tema de SNS.

3. Elija Synthesize (Sintetizar) cuando haya terminado.

Para recuperar información sobre sus tareas de síntesis de voz

1. En la consola, elija la pestaña S3 Synthesis Tasks (Tareas de síntesis de S3).2. Las tareas se muestran por orden de fecha. Para filtrar las tareas, elija Filter (Filtro) y, a continuación,

elija qué el filtro que se va a utilizar.3. Para ver los detalles de una tarea en particular, seleccione el Task ID (ID de tarea) vinculado.

Creación de archivos de audio largos (CLI)La funcionalidad de síntesis asíncrona de Amazon Polly utiliza tres API SpeechSynthesisTask paratrabajar con grandes cantidades de texto:

• StartSpeechSynthesisTask: inicia una tarea de síntesis nueva.• GetSpeechSynthesisTask: devuelve detalles acerca de una tarea de síntesis enviada con

anterioridad.• ListSpeechSynthesisTasks: enumera todas las tareas de síntesis enviadas.

124

Amazon Polly Developer GuideCreación de archivos de audio largos (CLI)

Síntesis de grandes cantidades de texto (StartSpeechSynthesisTask)

Cuando desea crear un archivo de audio mayor de lo que puede crear con SynthesizeSpeech en tiemporeal, utilice la operación StartSpeechSynthesisTask. Además de los argumentos necesarios parala operación SynthesizeSpeech, StartSpeechSynthesisTask también requiere el nombre de unbucket de Amazon S3. También se dispone de otros dos otros argumentos opcionales: un prefijo de clavepara el archivo de salida y el ARN de un tema de SNS si desea recibir notificaciones de estado sobre latarea.

• OutputS3BucketName: el nombre del bucket de Amazon S3 en el que debe cargarse la síntesis. Estebucket debe estar en la misma región que el servicio de Amazon Polly. Además, el usuario de IAM quese utiliza para realizar la llamada debe tener acceso al bucket. [Obligatorio]

• OutputS3KeyPrefix: prefijo de clave para el archivo de salida. Utilice este parámetro si desea guardarel archivo de voz de salida en una clave similar a un directorio personalizado en su bucket. [Opcional]

• SnsTopicArn: el ARN de tema de SNS que utilizar si desea recibir una notificación acerca del estadode la tarea. Este tema de SNS debe estar en la misma región que el servicio de Amazon Polly. Además,el usuario de IAM que se utiliza para realizar la llamada debe tener acceso al tema. [Opcional]

Por ejemplo, el siguiente ejemplo se puede utilizar para ejecutar el comando de la CLI de AWS start-speech-synthesis-task en la región EE. UU. Este (Ohio):

El ejemplo siguiente de AWS CLI está preparado para Unix, Linux y macOS. Para Windows, reemplace elcarácter de continuación de Unix de barra inversa (\) al final de cada línea por un signo de intercalación (^)y use comillas dobles (") para el texto de entrada con comillas simples (') para las etiquetas interiores.

aws polly start-speech-synthesis-task \ --region us-east-2 \ --endpoint-url "https://polly.us-east-2.amazonaws.com/" \ --output-format mp3 \ --output-s3-bucket-name your-bucket-name \ --output-s3-key-prefix optional/prefix/path/file \ --voice-id Joanna \ --text file://text_file.txt

Esto dará lugar a una respuesta con un aspecto similar al siguiente:

"SynthesisTask": { "OutputFormat": "mp3", "OutputUri": "https://s3.us-east-2.amazonaws.com/your-bucket-name/optional/prefix/path/file.<task_id>.mp3", "TextType": "text", "CreationTime": [..], "RequestCharacters": [..], "TaskStatus": "scheduled", "TaskId": [task_id], "VoiceId": "Joanna" }

La operación start-speech-synthesis-task devuelve varios campos nuevos:

• OutputUri: la ubicación del archivo de voz de salida.• TaskId: un identificador único para la tarea de síntesis de voz generada por Amazon Polly.• CreationTime: una marca temporal de cuando se envió inicialmente la tarea.• RequestCharacters: el número de caracteres facturables en la tarea.• TaskStatus: proporciona información sobre el estado de la tarea enviada.

125

Amazon Polly Developer GuideCreación de archivos de audio largos (CLI)

Cuando se envía la tarea, el estado inicial mostrará scheduled. Cuando Amazon Polly inicia elprocesamiento de la tarea, el estado cambiará a inProgress y posteriormente, a completed ofailed. Si la tarea no se realiza correctamente, se devuelve un mensaje de error al llamar a laoperación GetSpeechSynthesisTask o ListSpeechSynthesisTasks.

Cuando la tarea se complete, el archivo de voz está disponible en la ubicación especificada enOutputUri.

Recuperación información sobre la tarea de síntesis de voz

Puede obtener información acerca de una tarea como, por ejemplo, errores, estado, etc., utilizandola operación GetSpeechSynthesisTask. Para ello, necesitará el task-id devuelto por elStartSpeechSynthesisTask.

Por ejemplo, el siguiente ejemplo se puede utilizar para ejecutar el comando de la CLI de AWS get-speech-synthesis-task:

aws polly get-speech-synthesis-task \--region us-east-2 \--endpoint-url "https:// polly.us-east-2.amazonaws.com/" \--task-id task identifier

También puede mostrar todas las tareas de síntesis de voz que haya ejecutado en la región actualmediante la operación ListSpeechSynthesisTasks.

Por ejemplo, el siguiente ejemplo se puede utilizar para ejecutar el comando de la CLI de AWS list-speech-synthesis-tasks:

aws polly list-speech-synthesis-tasks \--region us-east-2 \--endpoint-url "https:// polly.us-east-2.amazonaws.com/"

126

Amazon Polly Developer GuideCódigo de muestra

Ejemplos de aplicaciones y de códigoEn esta sección encontrará código de muestra y aplicaciones de ejemplo que puede utilizar para explorarAmazon Polly.

Temas• Código de muestra (p. 127)• Aplicaciones de ejemplo (p. 138)

El tema Código de muestra contiene fragmentos de código organizados por lenguaje de programacióny divididos en ejemplos para las distintas funcionalidades de Amazon Polly. El tema Aplicaciones deejemplo contiene aplicaciones organizadas por lenguaje de programación que se pueden utilizar de formaindependiente para explorar Amazon Polly.

Antes de comenzar a usar estos ejemplos, le recomendamos que primero lea Amazon Polly:Funcionamiento (p. 3) y siga los pasos que se indican en Introducción a Amazon Polly (p. 10).

Código de muestraEste tema contiene ejemplos de código para diversas funcionalidades que se pueden utilizar para explorarAmazon Polly.

Código de muestra por lenguaje de programación• Muestras de Java (p. 127)• Muestras de Python (p. 133)

Muestras de JavaLos siguientes ejemplos de código muestran cómo utilizar aplicaciones basadas en Java para realizardiversas tareas con Amazon Polly. Estas muestras no son ejemplos completos, pero se pueden incluir enaplicaciones de Java de mayor tamaño que utilicen el AWS SDK para Java.

Fragmentos de código• DeleteLexicon (p. 127)• DescribeVoices (p. 128)• GetLexicon (p. 129)• ListLexicons (p. 129)• PutLexicon (p. 130)• StartSpeechSynthesisTask (p. 131)• Marcas de voz (p. 132)• SynthesizeSpeech (p. 133)

DeleteLexiconEl siguiente ejemplo de código Java muestra cómo utilizar aplicaciones basadas en Java para eliminarun lexicón específico almacenado en una región de AWS. Un lexicón eliminado no está disponible para elproceso de síntesis de voz, ni se puede recuperar mediante las API GetLexicon o ListLexicon.

Para obtener más información sobre esta operación, consulte la referencia de la API DeleteLexicon.

127

Amazon Polly Developer GuideMuestras de Java

package com.amazonaws.polly.samples; import com.amazonaws.services.polly.AmazonPolly;import com.amazonaws.services.polly.AmazonPollyClientBuilder;import com.amazonaws.services.polly.model.DeleteLexiconRequest; public class DeleteLexiconSample { private String LEXICON_NAME = "SampleLexicon"; AmazonPolly client = AmazonPollyClientBuilder.defaultClient(); public void deleteLexicon() { DeleteLexiconRequest deleteLexiconRequest = new DeleteLexiconRequest().withName(LEXICON_NAME); try { client.deleteLexicon(deleteLexiconRequest); } catch (Exception e) { System.err.println("Exception caught: " + e); } }}

DescribeVoicesEl siguiente ejemplo de código Java muestra cómo utilizar aplicaciones basadas en Java para generaruna lista de las voces que están disponibles para su uso cuando se solicita la síntesis de voz. Tambiénpuede especificar un código de idioma para filtrar las voces disponibles. Por ejemplo, si especifica en-US,la operación devuelve una lista de todas las voces disponibles para el idioma inglés de EE. UU.

Para obtener más información sobre esta operación, consulte la referencia de la API DescribeVoices.

package com.amazonaws.polly.samples; import com.amazonaws.services.polly.AmazonPolly;import com.amazonaws.services.polly.AmazonPollyClientBuilder;import com.amazonaws.services.polly.model.DescribeVoicesRequest;import com.amazonaws.services.polly.model.DescribeVoicesResult; public class DescribeVoicesSample { AmazonPolly client = AmazonPollyClientBuilder.defaultClient(); public void describeVoices() { DescribeVoicesRequest allVoicesRequest = new DescribeVoicesRequest(); DescribeVoicesRequest enUsVoicesRequest = new DescribeVoicesRequest().withLanguageCode("en-US"); try { String nextToken; do { DescribeVoicesResult allVoicesResult = client.describeVoices(allVoicesRequest); nextToken = allVoicesResult.getNextToken(); allVoicesRequest.setNextToken(nextToken); System.out.println("All voices: " + allVoicesResult.getVoices()); } while (nextToken != null); do { DescribeVoicesResult enUsVoicesResult = client.describeVoices(enUsVoicesRequest); nextToken = enUsVoicesResult.getNextToken(); enUsVoicesRequest.setNextToken(nextToken);

128

Amazon Polly Developer GuideMuestras de Java

System.out.println("en-US voices: " + enUsVoicesResult.getVoices()); } while (nextToken != null); } catch (Exception e) { System.err.println("Exception caught: " + e); } }}

GetLexiconEl siguiente ejemplo de código Java muestra cómo utilizar aplicaciones basadas en Java para generar elcontenido de un lexicón de pronunciación específico almacenado en una región de AWS.

Para obtener más información sobre esta operación, consulte la referencia de la API GetLexicon.

package com.amazonaws.polly.samples; import com.amazonaws.services.polly.AmazonPolly;import com.amazonaws.services.polly.AmazonPollyClientBuilder;import com.amazonaws.services.polly.model.GetLexiconRequest;import com.amazonaws.services.polly.model.GetLexiconResult; public class GetLexiconSample { private String LEXICON_NAME = "SampleLexicon"; AmazonPolly client = AmazonPollyClientBuilder.defaultClient(); public void getLexicon() { GetLexiconRequest getLexiconRequest = new GetLexiconRequest().withName(LEXICON_NAME); try { GetLexiconResult getLexiconResult = client.getLexicon(getLexiconRequest); System.out.println("Lexicon: " + getLexiconResult.getLexicon()); } catch (Exception e) { System.err.println("Exception caught: " + e); } }}

ListLexiconsEl siguiente ejemplo de código Java muestra cómo utilizar aplicaciones basadas en Java para generar unalista de lexicones de pronunciación almacenados en una región de AWS.

Para obtener más información sobre esta operación, consulte la referencia de la API ListLexicons.

package com.amazonaws.polly.samples; import com.amazonaws.services.polly.AmazonPolly;import com.amazonaws.services.polly.AmazonPollyClientBuilder;import com.amazonaws.services.polly.model.LexiconAttributes;import com.amazonaws.services.polly.model.LexiconDescription;import com.amazonaws.services.polly.model.ListLexiconsRequest;import com.amazonaws.services.polly.model.ListLexiconsResult; public class ListLexiconsSample { AmazonPolly client = AmazonPollyClientBuilder.defaultClient(); public void listLexicons() { ListLexiconsRequest listLexiconsRequest = new ListLexiconsRequest();

129

Amazon Polly Developer GuideMuestras de Java

try { String nextToken; do { ListLexiconsResult listLexiconsResult = client.listLexicons(listLexiconsRequest); nextToken = listLexiconsResult.getNextToken(); listLexiconsRequest.setNextToken(nextToken); for (LexiconDescription lexiconDescription : listLexiconsResult.getLexicons()) { LexiconAttributes attributes = lexiconDescription.getAttributes(); System.out.println("Name: " + lexiconDescription.getName() + ", Alphabet: " + attributes.getAlphabet() + ", LanguageCode: " + attributes.getLanguageCode() + ", LastModified: " + attributes.getLastModified() + ", LexemesCount: " + attributes.getLexemesCount() + ", LexiconArn: " + attributes.getLexiconArn() + ", Size: " + attributes.getSize()); } } while (nextToken != null); } catch (Exception e) { System.err.println("Exception caught: " + e); } }}

PutLexiconEl siguiente ejemplo de código Java muestra cómo utilizar aplicaciones basadas en Java para almacenarun lexicón de pronunciación en una región de AWS.

Para obtener más información sobre esta operación, consulte la referencia de la API PutLexicon.

package com.amazonaws.polly.samples; import com.amazonaws.services.polly.AmazonPolly;import com.amazonaws.services.polly.AmazonPollyClientBuilder;import com.amazonaws.services.polly.model.PutLexiconRequest; public class PutLexiconSample { AmazonPolly client = AmazonPollyClientBuilder.defaultClient();

private String LEXICON_CONTENT = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<lexicon version=\"1.0\" xmlns=\"http://www.w3.org/2005/01/pronunciation-lexicon\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" " + "xsi:schemaLocation=\"http://www.w3.org/2005/01/pronunciation-lexicon http://www.w3.org/TR/2007/CR-pronunciation-lexicon-20071212/pls.xsd\" " + "alphabet=\"ipa\" xml:lang=\"en-US\">" + "<lexeme><grapheme>test1</grapheme><alias>test2</alias></lexeme>" + "</lexicon>"; private String LEXICON_NAME = "SampleLexicon"; public void putLexicon() { PutLexiconRequest putLexiconRequest = new PutLexiconRequest() .withContent(LEXICON_CONTENT) .withName(LEXICON_NAME); try { client.putLexicon(putLexiconRequest); } catch (Exception e) { System.err.println("Exception caught: " + e); } }

130

Amazon Polly Developer GuideMuestras de Java

}

StartSpeechSynthesisTaskEl siguiente ejemplo de código Java muestra cómo utilizar aplicaciones basadas en Java para sintetizar unfragmento de voz largo (hasta 100 000 caracteres contabilizados) y almacenarlo directamente en un bucketde Amazon S3.

Para obtener más información, consulte la referencia de la API de StartSpeechSynthesisTask.

package com.amazonaws.parrot.service.tests.speech.task;

import com.amazonaws.parrot.service.tests.AbstractParrotServiceTest;import com.amazonaws.services.polly.AmazonPolly;import com.amazonaws.services.polly.model.*;import org.awaitility.Duration;

import java.util.concurrent.TimeUnit;

import static org.awaitility.Awaitility.await;

public class StartSpeechSynthesisTaskSample {

private static final int SYNTHESIS_TASK_TIMEOUT_SECONDS = 300; private static final AmazonPolly AMAZON_POLLY_CLIENT = AmazonPollyClientBuilder.defaultClient(); private static final String PLAIN_TEXT = "This is a sample text to be synthesized."; private static final String OUTPUT_FORMAT_MP3 = OutputFormat.Mp3.toString(); private static final String OUTPUT_BUCKET = "synth-books-buckets"; private static final String SNS_TOPIC_ARN = "arn:aws:sns:eu-west-2:561828872312:synthesize-finish-topic"; private static final Duration SYNTHESIS_TASK_POLL_INTERVAL = Duration.FIVE_SECONDS; private static final Duration SYNTHESIS_TASK_POLL_DELAY = Duration.TEN_SECONDS;

public static void main(String... args) { StartSpeechSynthesisTaskRequest request = new StartSpeechSynthesisTaskRequest() .withOutputFormat(OUTPUT_FORMAT_MP3) .withText(PLAIN_TEXT) .withTextType(TextType.Text) .withVoiceId(VoiceId.Amy) .withOutputS3BucketName(OUTPUT_BUCKET) .withSnsTopicArn(SNS_TOPIC_ARN);

StartSpeechSynthesisTaskResult result = AMAZON_POLLY_CLIENT.startSpeechSynthesisTask(request); String taskId = result.getSynthesisTask().getTaskId();

await().with() .pollInterval(SYNTHESIS_TASK_POLL_INTERVAL) .pollDelay(SYNTHESIS_TASK_POLL_DELAY) .atMost(SYNTHESIS_TASK_TIMEOUT_SECONDS, TimeUnit.SECONDS) .until( () -> getSynthesisTaskStatus(taskId).equals(TaskStatus.Completed.toString()) ); }

private static SynthesisTask getSynthesisTask(String taskId) { GetSpeechSynthesisTaskRequest getSpeechSynthesisTaskRequest = new GetSpeechSynthesisTaskRequest() .withTaskId(taskId); GetSpeechSynthesisTaskResult result =AMAZON_POLLY_CLIENT.getSpeechSynthesisTask(getSpeechSynthesisTaskRequest); return result.getSynthesisTask();

131

Amazon Polly Developer GuideMuestras de Java

}

private static String getSynthesisTaskStatus(String taskId) { GetSpeechSynthesisTaskRequest getSpeechSynthesisTaskRequest = new GetSpeechSynthesisTaskRequest() .withTaskId(taskId); GetSpeechSynthesisTaskResult result =AMAZON_POLLY_CLIENT.getSpeechSynthesisTask(getSpeechSynthesisTaskRequest); return result.getSynthesisTask().getTaskStatus(); }

}

Marcas de vozEl siguiente ejemplo de código muestra cómo utilizar aplicaciones basadas en Java para sintetizar marcasde voz para el texto introducido. Esta funcionalidad utiliza la API SynthesizeSpeech.

Para obtener más información sobre esta funcionalidad, consulte Marcas de voz (p. 23).

Para obtener más información sobre la API, consulte la referencia de la API de SynthesizeSpeech.

package com.amazonaws.polly.samples; import com.amazonaws.services.polly.AmazonPolly;import com.amazonaws.services.polly.AmazonPollyClientBuilder;import com.amazonaws.services.polly.model.OutputFormat;import com.amazonaws.services.polly.model.SpeechMarkType;import com.amazonaws.services.polly.model.SynthesizeSpeechRequest;import com.amazonaws.services.polly.model.SynthesizeSpeechResult;import com.amazonaws.services.polly.model.VoiceId; import java.io.File;import java.io.FileOutputStream;import java.io.InputStream; public class SynthesizeSpeechMarksSample { AmazonPolly client = AmazonPollyClientBuilder.defaultClient(); public void synthesizeSpeechMarks() { String outputFileName = "/tmp/speechMarks.json"; SynthesizeSpeechRequest synthesizeSpeechRequest = new SynthesizeSpeechRequest() .withOutputFormat(OutputFormat.Json) .withSpeechMarkTypes(SpeechMarkType.Viseme, SpeechMarkType.Word) .withVoiceId(VoiceId.Joanna) .withText("This is a sample text to be synthesized."); try (FileOutputStream outputStream = new FileOutputStream(new File(outputFileName))) { SynthesizeSpeechResult synthesizeSpeechResult = client.synthesizeSpeech(synthesizeSpeechRequest); byte[] buffer = new byte[2 * 1024]; int readBytes; try (InputStream in = synthesizeSpeechResult.getAudioStream()){ while ((readBytes = in.read(buffer)) > 0) { outputStream.write(buffer, 0, readBytes); } } } catch (Exception e) {

132

Amazon Polly Developer GuideMuestras de Python

System.err.println("Exception caught: " + e); } }}

SynthesizeSpeechEl siguiente ejemplo de código Java muestra cómo utilizar aplicaciones basadas en Java para sintetizarvoz con textos más cortos para procesamiento casi en tiempo real.

Para obtener más información, consulte la referencia de la API de SynthesizeSpeech.

package com.amazonaws.polly.samples; import com.amazonaws.services.polly.AmazonPolly;import com.amazonaws.services.polly.AmazonPollyClientBuilder;import com.amazonaws.services.polly.model.OutputFormat;import com.amazonaws.services.polly.model.SynthesizeSpeechRequest;import com.amazonaws.services.polly.model.SynthesizeSpeechResult;import com.amazonaws.services.polly.model.VoiceId; import java.io.File;import java.io.FileOutputStream;import java.io.InputStream; public class SynthesizeSpeechSample { AmazonPolly client = AmazonPollyClientBuilder.defaultClient(); public void synthesizeSpeech() { String outputFileName = "/tmp/speech.mp3"; SynthesizeSpeechRequest synthesizeSpeechRequest = new SynthesizeSpeechRequest() .withOutputFormat(OutputFormat.Mp3) .withVoiceId(VoiceId.Joanna) .withText("This is a sample text to be synthesized."); try (FileOutputStream outputStream = new FileOutputStream(new File(outputFileName))) { SynthesizeSpeechResult synthesizeSpeechResult = client.synthesizeSpeech(synthesizeSpeechRequest); byte[] buffer = new byte[2 * 1024]; int readBytes; try (InputStream in = synthesizeSpeechResult.getAudioStream()){ while ((readBytes = in.read(buffer)) > 0) { outputStream.write(buffer, 0, readBytes); } } } catch (Exception e) { System.err.println("Exception caught: " + e); } }}

Muestras de PythonLos siguientes ejemplos de código muestran cómo utilizar aplicaciones basadas en Python (boto3) pararealizar diversas tareas con Amazon Polly. Estas muestras no pretenden ser ejemplos completos, pero sepueden incluir en aplicaciones de Python de mayor tamaño que utilicen el AWS SDK for Python (Boto).

Fragmentos de código

133

Amazon Polly Developer GuideMuestras de Python

• DeleteLexicon (p. 134)• GetLexicon (p. 134)• ListLexicon (p. 135)• PutLexicon (p. 136)• StartSpeechSynthesisTask (p. 137)• SynthesizeSpeech (p. 137)

DeleteLexiconEn el siguiente ejemplo de código Python se utiliza AWS SDK for Python (Boto) para eliminar un lexicónde la región especificada en la configuración local de AWS. El ejemplo solamente elimina el lexicónespecificado. Antes de eliminar el lexicón, se le preguntará si desea continuar con la operación.

En el siguiente ejemplo, se utilizan las credenciales predeterminadas guardadas en el archivo deconfiguración de AWS SDK. Para obtener más información acerca de cómo crear el archivo deconfiguración, consulte Paso 3.1: Configurar la AWS Command Line Interface (AWS CLI) (p. 13).

Para obtener más información sobre esta operación, consulte la referencia de la API DeleteLexicon.

from argparse import ArgumentParserfrom sys import version_info

from boto3 import Sessionfrom botocore.exceptions import BotoCoreError, ClientError

# Define and parse the command line argumentscli = ArgumentParser(description="DeleteLexicon example")cli.add_argument("name", type=str, metavar="LEXICON_NAME")arguments = cli.parse_args()

# Create a client using the credentials and region defined in the adminuser# section of the AWS credentials and configuration filessession = Session(profile_name="adminuser")polly = session.client("polly")

# Request confirmationprompt = input if version_info >= (3, 0) else raw_inputproceed = prompt((u"This will delete the \"{0}\" lexicon," " do you want to proceed? [y,n]: ").format(arguments.name))

if proceed in ("y", "Y"): print(u"Deleting {0}...".format(arguments.name))

try: # Request deletion of a lexicon by name response = polly.delete_lexicon(Name=arguments.name) except (BotoCoreError, ClientError) as error: # The service returned an error, exit gracefully cli.error(error)

print("Done.")else: print("Cancelled.")

GetLexiconEn el código Python siguiente, se utiliza AWS SDK for Python (Boto) para recuperar todos los lexiconesalmacenados en una región de AWS. El ejemplo acepta el nombre del lexicón como parámetro de línea de

134

Amazon Polly Developer GuideMuestras de Python

comandos y recupera solamente el lexicón, por lo que imprime la ruta de acceso temporal donde se guardólocalmente.

En el siguiente ejemplo, se utilizan las credenciales predeterminadas guardadas en el archivo deconfiguración de AWS SDK. Para obtener más información acerca de cómo crear el archivo deconfiguración, consulte Paso 3.1: Configurar la AWS Command Line Interface (AWS CLI) (p. 13).

Para obtener más información sobre esta operación, consulte la referencia de la API GetLexicon.

from argparse import ArgumentParserfrom os import pathfrom tempfile import gettempdir

from boto3 import Sessionfrom botocore.exceptions import BotoCoreError, ClientError

# Define and parse the command line argumentscli = ArgumentParser(description="GetLexicon example")cli.add_argument("name", type=str, metavar="LEXICON_NAME")arguments = cli.parse_args()

# Create a client using the credentials and region defined in the adminuser# section of the AWS credentials and configuration filessession = Session(profile_name="adminuser")polly = session.client("polly")

print(u"Fetching {0}...".format(arguments.name))

try: # Fetch lexicon by name response = polly.get_lexicon(Name=arguments.name)except (BotoCoreError, ClientError) as error: # The service returned an error, exit gracefully cli.error(error)

# Get the lexicon data from the responselexicon = response.get("Lexicon", {})

# Access the lexicon's contentif "Content" in lexicon: output = path.join(gettempdir(), u"%s.pls" % arguments.name) print(u"Saving to %s..." % output)

try: # Save the lexicon contents to a local file with open(output, "w") as pls_file: pls_file.write(lexicon["Content"]) except IOError as error: # Could not write to file, exit gracefully cli.error(error)else: # The response didn't contain lexicon data, exit gracefully cli.error("Could not fetch lexicons contents")

print("Done.")

ListLexiconEn el siguiente ejemplo de código Python se utiliza AWS SDK for Python (Boto) para obtener la lista de loslexicones de una cuenta que hay en la región especificada en la configuración local de AWS. Para obtenermás información acerca de cómo crear el archivo de configuración, consulte Paso 3.1: Configurar la AWSCommand Line Interface (AWS CLI) (p. 13).

135

Amazon Polly Developer GuideMuestras de Python

Para obtener más información sobre esta operación, consulte la referencia de la API ListLexicons.

import sys

from boto3 import Sessionfrom botocore.exceptions import BotoCoreError, ClientError

# Create a client using the credentials and region defined in the adminuser# section of the AWS credentials and configuration filessession = Session(profile_name="adminuser")polly = session.client("polly")

try: # Request the list of available lexicons response = polly.list_lexicons()except (BotoCoreError, ClientError) as error: # The service returned an error, exit gracefully print(error) sys.exit(-1)

# Get the list of lexicons in the responselexicons = response.get("Lexicons", [])print("{0} lexicon(s) found".format(len(lexicons)))

# Output a formatted list of lexicons with some of the attributesfor lexicon in lexicons: print((u" - {Name} ({Attributes[LanguageCode]}), " "{Attributes[LexemesCount]} lexeme(s)").format(**lexicon))

PutLexiconEl siguiente ejemplo de código muestra cómo utilizar aplicaciones basadas en Python (boto3) paraalmacenar un lexicón de pronunciación en una región de AWS.

Para obtener más información sobre esta operación, consulte la referencia de la API PutLexicon.

Tenga en cuenta lo siguiente:

• Debe actualizar el código proporcionando el nombre de archivo del lexicón local y el nombre del lexicónguardado.

• En el ejemplo se presupone que los archivos del lexicón se han creado en un subdirectorio denominadopls. Deberá que actualizar la ruta como corresponda.

En el siguiente ejemplo, se utilizan las credenciales predeterminadas guardadas en el archivo deconfiguración de AWS SDK. Para obtener más información acerca de cómo crear el archivo deconfiguración, consulte Paso 3.1: Configurar la AWS Command Line Interface (AWS CLI) (p. 13).

Para obtener más información sobre esta operación, consulte la referencia de la API PutLexicon.

from argparse import ArgumentParser

from boto3 import Sessionfrom botocore.exceptions import BotoCoreError, ClientError

# Define and parse the command line argumentscli = ArgumentParser(description="PutLexicon example")cli.add_argument("path", type=str, metavar="FILE_PATH")cli.add_argument("-n", "--name", type=str, required=True, metavar="LEXICON_NAME", dest="name")arguments = cli.parse_args()

136

Amazon Polly Developer GuideMuestras de Python

# Create a client using the credentials and region defined in the adminuser# section of the AWS credentials and configuration filessession = Session(profile_name="adminuser")polly = session.client("polly")

# Open the PLS lexicon file for readingtry: with open(arguments.path, "r") as lexicon_file: # Read the pls file contents lexicon_data = lexicon_file.read()

# Store the PLS lexicon on the service. # If a lexicon with that name already exists, # its contents will be updated response = polly.put_lexicon(Name=arguments.name, Content=lexicon_data)except (IOError, BotoCoreError, ClientError) as error: # Could not open/read the file or the service returned an error, # exit gracefully cli.error(error)

print(u"The \"{0}\" lexicon is now available for use.".format(arguments.name))

StartSpeechSynthesisTaskEn el siguiente ejemplo de código Python se utiliza AWS SDK for Python (Boto) para obtener la lista de loslexicones de una cuenta que hay en la región especificada en la configuración local de AWS. Para obtenermás información acerca de cómo crear el archivo de configuración, consulte Paso 3.1: Configurar la AWSCommand Line Interface (AWS CLI) (p. 13).

Para obtener más información, consulte la referencia de la API de StartSpeechSynthesisTask.

import boto3import time

polly_client = boto3.Session( aws_access_key_id=’’, aws_secret_access_key=’’, region_name='eu-west-2').client('polly’)

response = polly_client.start_speech_synthesis_task(VoiceId='Joanna', OutputS3BucketName='synth-books-buckets', OutputS3KeyPrefix='key', OutputFormat='mp3', Text = 'This is a sample text to be synthesized.')

taskId = response['SynthesisTask']['TaskId']

print "Task id is {} ".format(taskId)

task_status = polly_client.get_speech_synthesis_task(TaskId = taskId)

print task_status

SynthesizeSpeechEn el siguiente ejemplo de código Python se utiliza AWS SDK for Python (Boto) para obtener la lista de loslexicones de una cuenta que hay en la región especificada en la configuración local de AWS. Para obtenermás información acerca de cómo crear el archivo de configuración, consulte Paso 3.1: Configurar la AWSCommand Line Interface (AWS CLI) (p. 13).

137

Amazon Polly Developer GuideAplicaciones de ejemplo

Para obtener más información sobre la API, consulte la referencia de la API de SynthesizeSpeech.

import boto3

polly_client = boto3.Session( aws_access_key_id=, aws_secret_access_key=, region_name='us-west-2').client('polly')

response = polly_client.synthesize_speech(VoiceId='Joanna', OutputFormat='mp3', Text = 'This is a sample text to be synthesized.')

file = open('speech.mp3', 'w')file.write(response['AudioStream'].read())file.close()

Aplicaciones de ejemploEsta sección incluye ejemplos adicionales en forma de aplicaciones de ejemplo que se pueden utilizar paraexplorar Amazon Polly.

Aplicaciones de ejemplo por lenguaje de programación• Ejemplo de Python (cliente HTML5 y servidor de Python) (p. 138)• Ejemplo de Java (p. 148)• Ejemplo de iOS (p. 152)• Ejemplo de Android (p. 154)

Ejemplo de Python (cliente HTML5 y servidor dePython)Esta aplicación de ejemplo se compone de lo siguiente:

• Un servidor HTTP 1.1 que utiliza la codificación de transferencia en bloques de HTTP (consulte elsiguiente tema sobre la codificación de transferencia en bloques)

• Una sencilla interfaz de usuario en HTML5 que interactúa con el servidor HTTP 1.1 (se muestra acontinuación):

 

138

Amazon Polly Developer GuideEjemplo de Python

El objetivo de este ejemplo es enseñarle a usar Amazon Polly para transmitir el fragmento habladodesde una aplicación HTML5 basada en el navegador. En los casos de uso en los que la capacidad derespuesta resulta un factor importante (por ejemplo, en sistemas de diálogo, lectores de pantalla, etc.), esrecomendable emplear la secuencia de audio producida por Amazon Polly a medida que el texto se vasintetizando.

Para ejecutar esta aplicación de ejemplo, necesita lo siguiente:

• Un navegador web compatible con los estándares HTML5 y EcmaScript5 (por ejemplo, Chrome23.0 o versiones posteriores, Firefox 21.0 o versiones posteriores o Internet Explorer 9.0 o versionesposteriores)

• Una versión de Python posterior a la 3.0

Para probar la aplicación

1. Guarde el código del servidor como server.py. Para obtener el código, consulte Ejemplo de Python:Código de servidor de Python (server.py) (p. 143).

2. Guarde el cliente HTML5 como index.html. Para obtener el código, consulte Ejemplo de Python:Interfaz de usuario de HTML5 (index.html) (p. 140).

3. Ejecute el comando siguiente desde la ruta en la que guardó server.py para iniciar la aplicación (enalgunos sistemas, tal vez tenga que usar python3 en lugar de python al ejecutar el comando).

$ python server.py

Una vez que se inicia la aplicación, aparece una dirección URL en el terminal.4. Abra la dirección URL que aparece en el terminal del navegador web.

Puede pasar a server.py la dirección y el puerto del servidor de la aplicación para que se utilicecomo parámetro. Para obtener más información, ejecute python server.py -h.

5. Para escuchar el fragmento hablado, elija una voz de la lista, escriba un texto y seleccione Read. Tanpronto como Amazon Polly transfiera el primer fragmento de datos de audio utilizable, comenzará areproducirse el discurso sintetizado.

139

Amazon Polly Developer GuideEjemplo de Python

6. Para detener el servidor de Python cuando termine de probar la aplicación, pulse Ctrl+C en el terminalen el que se está ejecutando el servidor.

Note

El servidor crea un cliente Boto3 utilizando AWS SDK for Python (Boto). El cliente usa lascredenciales almacenadas en el archivo de configuración de AWS del equipo para firmar yautenticar las solicitudes dirigidas a Amazon Polly. Para obtener más información acerca cómocrear el archivo de configuración de AWS y almacenar credenciales, consulte Configuración de laAWS Command Line Interface en la AWS Command Line Interface Guía del usuario.

Ejemplo de Python: Interfaz de usuario de HTML5 (index.html)Esta sección contiene el código del cliente HTML5 que se describe en Ejemplo de Python (cliente HTML5 yservidor de Python) (p. 138).

<html>

<head> <title>Text-to-Speech Example Application</title> <script> /* * This sample code requires a web browser with support for both the * HTML5 and ECMAScript 5 standards; the following is a non-comprehensive * list of compliant browsers and their minimum version: * * - Chrome 23.0+ * - Firefox 21.0+ * - Internet Explorer 9.0+ * - Edge 12.0+ * - Opera 15.0+ * - Safari 6.1+ * - Android (stock web browser) 4.4+ * - Chrome for Android 51.0+ * - Firefox for Android 48.0+ * - Opera Mobile 37.0+ * - iOS (Safari Mobile and Chrome) 3.2+ * - Internet Explorer Mobile 10.0+ * - Blackberry Browser 10.0+ */

// Mapping of the OutputFormat parameter of the SynthesizeSpeech API // and the audio format strings understood by the browser var AUDIO_FORMATS = { 'ogg_vorbis': 'audio/ogg', 'mp3': 'audio/mpeg', 'pcm': 'audio/wave; codecs=1' };

/** * Handles fetching JSON over HTTP */ function fetchJSON(method, url, onSuccess, onError) { var request = new XMLHttpRequest(); request.open(method, url, true); request.onload = function () { // If loading is complete if (request.readyState === 4) { // if the request was successful if (request.status === 200) { var data;

140

Amazon Polly Developer GuideEjemplo de Python

// Parse the JSON in the response try { data = JSON.parse(request.responseText); } catch (error) { onError(request.status, error.toString()); }

onSuccess(data); } else { onError(request.status, request.responseText) } } };

request.send(); }

/** * Returns a list of audio formats supported by the browser */ function getSupportedAudioFormats(player) { return Object.keys(AUDIO_FORMATS) .filter(function (format) { var supported = player.canPlayType(AUDIO_FORMATS[format]); return supported === 'probably' || supported === 'maybe'; }); }

// Initialize the application when the DOM is loaded and ready to be // manipulated document.addEventListener("DOMContentLoaded", function () { var input = document.getElementById('input'), voiceMenu = document.getElementById('voice'), text = document.getElementById('text'), player = document.getElementById('player'), submit = document.getElementById('submit'), supportedFormats = getSupportedAudioFormats(player);

// Display a message and don't allow submitting the form if the // browser doesn't support any of the available audio formats if (supportedFormats.length === 0) { submit.disabled = true; alert('The web browser in use does not support any of the' + ' available audio formats. Please try with a different' + ' one.'); }

// Play the audio stream when the form is submitted successfully input.addEventListener('submit', function (event) { // Validate the fields in the form, display a message if // unexpected values are encountered if (voiceMenu.selectedIndex <= 0 || text.value.length === 0) { alert('Please fill in all the fields.'); } else { var selectedVoice = voiceMenu .options[voiceMenu.selectedIndex] .value;

// Point the player to the streaming server player.src = '/read?voiceId=' + encodeURIComponent(selectedVoice) + '&text=' + encodeURIComponent(text.value) + '&outputFormat=' + supportedFormats[0]; player.play(); }

141

Amazon Polly Developer GuideEjemplo de Python

// Stop the form from submitting, // Submitting the form is allowed only if the browser doesn't // support Javascript to ensure functionality in such a case event.preventDefault(); });

// Load the list of available voices and display them in a menu fetchJSON('GET', '/voices', // If the request succeeds function (voices) { var container = document.createDocumentFragment();

// Build the list of options for the menu voices.forEach(function (voice) { var option = document.createElement('option'); option.value = voice['Id']; option.innerHTML = voice['Name'] + ' (' + voice['Gender'] + ', ' + voice['LanguageName'] + ')'; container.appendChild(option); });

// Add the options to the menu and enable the form field voiceMenu.appendChild(container); voiceMenu.disabled = false; }, // If the request fails function (status, response) { // Display a message in case loading data from the server // fails alert(status + ' - ' + response); }); });

</script> <style> #input { min-width: 100px; max-width: 600px; margin: 0 auto; padding: 50px; }

#input div { margin-bottom: 20px; }

#text { width: 100%; height: 200px; display: block; }

#submit { width: 100%; } </style></head>

<body> <form id="input" method="GET" action="/read"> <div> <label for="voice">Select a voice:</label> <select id="voice" name="voiceId" disabled> <option value="">Choose a voice...</option> </select>

142

Amazon Polly Developer GuideEjemplo de Python

</div> <div> <label for="text">Text to read:</label> <textarea id="text" maxlength="1000" minlength="1" name="text" placeholder="Type some text here..."></textarea> </div> <input type="submit" value="Read" id="submit" /> </form> <audio id="player"></audio></body>

</html>

Ejemplo de Python: Código de servidor de Python (server.py)Esta sección contiene el código del servidor de Python que se describe en Ejemplo de Python (clienteHTML5 y servidor de Python) (p. 138).

""" Example Python 2.7+/3.3+ Application

This application consists of a HTTP 1.1 server using the HTTP chunked transfercoding (https://tools.ietf.org/html/rfc2616#section-3.6.1) and a minimal HTML5user interface that interacts with it.

The goal of this example is to start streaming the speech to the client (theHTML5 web UI) as soon as the first consumable chunk of speech is returned inorder to start playing the audio as soon as possible.For use cases where low latency and responsiveness are strong requirements,this is the recommended approach.

The service documentation contains examples for non-streaming use cases wherewaiting for the speech synthesis to complete and fetching the whole audio streamat once are an option.

To test the application, run 'python server.py' and then open the URLdisplayed in the terminal in a web browser (see index.html for a list ofsupported browsers). The address and port for the server can be passed asparameters to server.py. For more information, run: 'python server.py -h'"""from argparse import ArgumentParserfrom collections import namedtuplefrom contextlib import closingfrom io import BytesIOfrom json import dumps as json_encodeimport osimport sys

if sys.version_info >= (3, 0): from http.server import BaseHTTPRequestHandler, HTTPServer from socketserver import ThreadingMixIn from urllib.parse import parse_qselse: from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer from SocketServer import ThreadingMixIn from urlparse import parse_qs

from boto3 import Sessionfrom botocore.exceptions import BotoCoreError, ClientError

ResponseStatus = namedtuple("HTTPStatus", ["code", "message"])

ResponseData = namedtuple("ResponseData",

143

Amazon Polly Developer GuideEjemplo de Python

["status", "content_type", "data_stream"])

# Mapping the output format used in the client to the content type for the# responseAUDIO_FORMATS = {"ogg_vorbis": "audio/ogg", "mp3": "audio/mpeg", "pcm": "audio/wave; codecs=1"}CHUNK_SIZE = 1024HTTP_STATUS = {"OK": ResponseStatus(code=200, message="OK"), "BAD_REQUEST": ResponseStatus(code=400, message="Bad request"), "NOT_FOUND": ResponseStatus(code=404, message="Not found"), "INTERNAL_SERVER_ERROR": ResponseStatus(code=500, message="Internal server error")}PROTOCOL = "http"ROUTE_INDEX = "/index.html"ROUTE_VOICES = "/voices"ROUTE_READ = "/read"

# Create a client using the credentials and region defined in the adminuser# section of the AWS credentials and configuration filessession = Session(profile_name="adminuser")polly = session.client("polly")

class HTTPStatusError(Exception): """Exception wrapping a value from http.server.HTTPStatus"""

def __init__(self, status, description=None): """ Constructs an error instance from a tuple of (code, message, description), see http.server.HTTPStatus """ super(HTTPStatusError, self).__init__() self.code = status.code self.message = status.message self.explain = description

class ThreadedHTTPServer(ThreadingMixIn, HTTPServer): """An HTTP Server that handle each request in a new thread""" daemon_threads = True

class ChunkedHTTPRequestHandler(BaseHTTPRequestHandler): """"HTTP 1.1 Chunked encoding request handler""" # Use HTTP 1.1 as 1.0 doesn't support chunked encoding protocol_version = "HTTP/1.1"

def query_get(self, queryData, key, default=""): """Helper for getting values from a pre-parsed query string""" return queryData.get(key, [default])[0]

def do_GET(self): """Handles GET requests"""

# Extract values from the query string path, _, query_string = self.path.partition('?') query = parse_qs(query_string)

response = None

print(u"[START]: Received GET for %s with query: %s" % (path, query))

try: # Handle the possible request paths

144

Amazon Polly Developer GuideEjemplo de Python

if path == ROUTE_INDEX: response = self.route_index(path, query) elif path == ROUTE_VOICES: response = self.route_voices(path, query) elif path == ROUTE_READ: response = self.route_read(path, query) else: response = self.route_not_found(path, query)

self.send_headers(response.status, response.content_type) self.stream_data(response.data_stream)

except HTTPStatusError as err: # Respond with an error and log debug # information if sys.version_info >= (3, 0): self.send_error(err.code, err.message, err.explain) else: self.send_error(err.code, err.message)

self.log_error(u"%s %s %s - [%d] %s", self.client_address[0], self.command, self.path, err.code, err.explain)

print("[END]")

def route_not_found(self, path, query): """Handles routing for unexpected paths""" raise HTTPStatusError(HTTP_STATUS["NOT_FOUND"], "Page not found")

def route_index(self, path, query): """Handles routing for the application's entry point'""" try: return ResponseData(status=HTTP_STATUS["OK"], content_type="text_html", # Open a binary stream for reading the index # HTML file data_stream=open(os.path.join(sys.path[0], path[1:]), "rb")) except IOError as err: # Couldn't open the stream raise HTTPStatusError(HTTP_STATUS["INTERNAL_SERVER_ERROR"], str(err))

def route_voices(self, path, query): """Handles routing for listing available voices""" params = {} voices = []

while True: try: # Request list of available voices, if a continuation token # was returned by the previous call then use it to continue # listing response = polly.describe_voices(**params) except (BotoCoreError, ClientError) as err: # The service returned an error raise HTTPStatusError(HTTP_STATUS["INTERNAL_SERVER_ERROR"], str(err))

# Collect all the voices voices.extend(response.get("Voices", []))

# If a continuation token was returned continue, stop iterating # otherwise if "NextToken" in response: params = {"NextToken": response["NextToken"]} else:

145

Amazon Polly Developer GuideEjemplo de Python

break

json_data = json_encode(voices) bytes_data = bytes(json_data, "utf-8") if sys.version_info >= (3, 0) \ else bytes(json_data)

return ResponseData(status=HTTP_STATUS["OK"], content_type="application/json", # Create a binary stream for the JSON data data_stream=BytesIO(bytes_data))

def route_read(self, path, query): """Handles routing for reading text (speech synthesis)""" # Get the parameters from the query string text = self.query_get(query, "text") voiceId = self.query_get(query, "voiceId") outputFormat = self.query_get(query, "outputFormat")

# Validate the parameters, set error flag in case of unexpected # values if len(text) == 0 or len(voiceId) == 0 or \ outputFormat not in AUDIO_FORMATS: raise HTTPStatusError(HTTP_STATUS["BAD_REQUEST"], "Wrong parameters") else: try: # Request speech synthesis response = polly.synthesize_speech(Text=text, VoiceId=voiceId, OutputFormat=outputFormat) except (BotoCoreError, ClientError) as err: # The service returned an error raise HTTPStatusError(HTTP_STATUS["INTERNAL_SERVER_ERROR"], str(err))

return ResponseData(status=HTTP_STATUS["OK"], content_type=AUDIO_FORMATS[outputFormat], # Access the audio stream in the response data_stream=response.get("AudioStream"))

def send_headers(self, status, content_type): """Send out the group of headers for a successful request""" # Send HTTP headers self.send_response(status.code, status.message) self.send_header('Content-type', content_type) self.send_header('Transfer-Encoding', 'chunked') self.send_header('Connection', 'close') self.end_headers()

def stream_data(self, stream): """Consumes a stream in chunks to produce the response's output'""" print("Streaming started...")

if stream: # Note: Closing the stream is important as the service throttles on # the number of parallel connections. Here we are using # contextlib.closing to ensure the close method of the stream object # will be called automatically at the end of the with statement's # scope. with closing(stream) as managed_stream: # Push out the stream's content in chunks while True: data = managed_stream.read(CHUNK_SIZE) self.wfile.write(b"%X\r\n%s\r\n" % (len(data), data))

# If there's no more data to read, stop streaming

146

Amazon Polly Developer GuideEjemplo de Python

if not data: break

# Ensure any buffered output has been transmitted and close the # stream self.wfile.flush()

print("Streaming completed.") else: # The stream passed in is empty self.wfile.write(b"0\r\n\r\n") print("Nothing to stream.")

# Define and parse the command line argumentscli = ArgumentParser(description='Example Python Application')cli.add_argument( "-p", "--port", type=int, metavar="PORT", dest="port", default=8000)cli.add_argument( "--host", type=str, metavar="HOST", dest="host", default="localhost")arguments = cli.parse_args()

# If the module is invoked directly, initialize the applicationif __name__ == '__main__': # Create and configure the HTTP server instance server = ThreadedHTTPServer((arguments.host, arguments.port), ChunkedHTTPRequestHandler) print("Starting server, use <Ctrl-C> to stop...") print(u"Open {0}://{1}:{2}{3} in a web browser.".format(PROTOCOL, arguments.host, arguments.port, ROUTE_INDEX))

try: # Listen for requests indefinitely server.serve_forever() except KeyboardInterrupt: # A request to terminate has been received, stop the server print("\nShutting down...") server.socket.close()

147

Amazon Polly Developer GuideEjemplo de Java

Ejemplo de JavaEn este ejemplo se muestra cómo utilizar Amazon Polly para transmitir un fragmento hablado desde unaaplicación basada en Java. En este ejemplo se utiliza AWS SDK para Java para leer el texto especificadocon una voz seleccionada en una lista.

El código mostrado incluye la mayoría de las tareas, pero la comprobación de errores es mínima. SiAmazon Polly encuentra un error, la aplicación termina.

Para ejecutar esta aplicación de ejemplo, necesita lo siguiente:

• Java 8 Java Development Kit (JDK)• AWS SDK para Java• Apache Maven

Para probar la aplicación

1. Asegúrese de que la variable de entorno JAVA_HOME está configurada para JDK.

Por ejemplo, si JDK 1.8.0_121 está instalado en Windows en la carpeta C:\Program Files\Java\jdk1.8.0_121, tendría que especificar lo siguiente en el símbolo del sistema:

set JAVA_HOME=""C:\Program Files\Java\jdk1.8.0_121""

Si JDK 1.8.0_121 está instalado en Linux en la carpeta /usr/lib/jvm/java8-openjdk-amd64 ,tendría que especificar lo siguiente en el símbolo del sistema:

export JAVA_HOME=/usr/lib/jvm/java8-openjdk-amd64

2. Configure las variables de entorno de Maven para ejecutar Maven desde la línea de comandos.

Por ejemplo, si Maven 3.3.9 está instalado en Windows en la carpeta C:\Program Files\apache-maven-3.3.9, tendría que especificar lo siguiente:

set M2_HOME=""C:\Program Files\apache-maven-3.3.9""set M2=%M2_HOME%\binset PATH=%M2%;%PATH%

Si Maven 3.3.9 está instalado en Linux en la carpeta /home/ec2-user/opt/apache-maven-3.3.9, tendría que especificar lo siguiente:

export M2_HOME=/home/ec2-user/opt/apache-maven-3.3.9export M2=$M2_HOME/binexport PATH=$M2:$PATH

3. Cree un nuevo directorio llamado polly-java-demo.4. En el directorio polly-java-demo, cree un archivo llamado pom.xml y pegue el siguiente código en

él:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.amazonaws.polly</groupId> <artifactId>java-demo</artifactId>

148

Amazon Polly Developer GuideEjemplo de Java

<version>0.0.1-SNAPSHOT</version>

<dependencies> <!-- https://mvnrepository.com/artifact/com.amazonaws/aws-java-sdk-polly --> <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sdk-polly</artifactId> <version>1.11.77</version> </dependency> <!-- https://mvnrepository.com/artifact/com.googlecode.soundlibs/jlayer --> <dependency> <groupId>com.googlecode.soundlibs</groupId> <artifactId>jlayer</artifactId> <version>1.0.1-1</version> </dependency>

</dependencies> <build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.2.1</version> <executions> <execution> <goals> <goal>java</goal> </goals> </execution> </executions> <configuration> <mainClass>com.amazonaws.demos.polly.PollyDemo</mainClass> </configuration> </plugin> </plugins> </build></project>

5. Cree un nuevo directorio llamado polly en src/main/java/com/amazonaws/demos.6. En el directorio polly, cree un nuevo archivo de origen de Java llamado PollyDemo.java y pegue

el siguiente código:

package com.amazonaws.demos.polly;

import java.io.IOException;import java.io.InputStream;

import com.amazonaws.ClientConfiguration;import com.amazonaws.auth.DefaultAWSCredentialsProviderChain;import com.amazonaws.regions.Region;import com.amazonaws.regions.Regions;import com.amazonaws.services.polly.AmazonPollyClient;import com.amazonaws.services.polly.model.DescribeVoicesRequest;import com.amazonaws.services.polly.model.DescribeVoicesResult;import com.amazonaws.services.polly.model.OutputFormat;import com.amazonaws.services.polly.model.SynthesizeSpeechRequest;import com.amazonaws.services.polly.model.SynthesizeSpeechResult;import com.amazonaws.services.polly.model.Voice;

import javazoom.jl.player.advanced.AdvancedPlayer;import javazoom.jl.player.advanced.PlaybackEvent;import javazoom.jl.player.advanced.PlaybackListener;

149

Amazon Polly Developer GuideEjemplo de Java

public class PollyDemo {

private final AmazonPollyClient polly; private final Voice voice; private static final String SAMPLE = "Congratulations. You have successfully built this working demo of Amazon Polly in Java. Have fun building voice enabled apps with Amazon Polly (that's me!), and always look at the AWS website for tips and tricks on using Amazon Polly and other great services from AWS";

public PollyDemo(Region region) { // create an Amazon Polly client in a specific region polly = new AmazonPollyClient(new DefaultAWSCredentialsProviderChain(), new ClientConfiguration()); polly.setRegion(region); // Create describe voices request. DescribeVoicesRequest describeVoicesRequest = new DescribeVoicesRequest();

// Synchronously ask Amazon Polly to describe available TTS voices. DescribeVoicesResult describeVoicesResult = polly.describeVoices(describeVoicesRequest); voice = describeVoicesResult.getVoices().get(0); }

public InputStream synthesize(String text, OutputFormat format) throws IOException { SynthesizeSpeechRequest synthReq = new SynthesizeSpeechRequest().withText(text).withVoiceId(voice.getId()) .withOutputFormat(format); SynthesizeSpeechResult synthRes = polly.synthesizeSpeech(synthReq);

return synthRes.getAudioStream(); }

public static void main(String args[]) throws Exception { //create the test class PollyDemo helloWorld = new PollyDemo(Region.getRegion(Regions.US_EAST_1)); //get the audio stream InputStream speechStream = helloWorld.synthesize(SAMPLE, OutputFormat.Mp3);

//create an MP3 player AdvancedPlayer player = new AdvancedPlayer(speechStream, javazoom.jl.player.FactoryRegistry.systemRegistry().createAudioDevice());

player.setPlayBackListener(new PlaybackListener() { @Override public void playbackStarted(PlaybackEvent evt) { System.out.println("Playback started"); System.out.println(SAMPLE); } @Override public void playbackFinished(PlaybackEvent evt) { System.out.println("Playback finished"); } }); // play it! player.play(); }}

7. Vuelva al directorio polly-java-demo para limpiar, compilar y ejecutar la demostración:

150

Amazon Polly Developer GuideEjemplo de Java

mvn clean compile exec:java

151

Amazon Polly Developer GuideEjemplo de iOS

Ejemplo de iOSEl ejemplo siguiente utiliza el SDK para iOS de Amazon Polly para leer el texto especificado con una vozseleccionada en una lista de voces.

El código que se muestra aquí incluye la mayoría de las tareas, pero no administra errores. Para ver elcódigo completo, consulte la demostración de Amazon Polly con AWS SDK para iOS.

Initialize

// Region of Amazon Polly.let AwsRegion = AWSRegionType.usEast1 // Cognito pool ID. Pool needs to be unauthenticated pool with// Amazon Polly permissions.let CognitoIdentityPoolId = "YourCognitoIdentityPoolId" // Initialize the Amazon Cognito credentials provider.let credentialProvider = AWSCognitoCredentialsProvider(regionType: AwsRegion, identityPoolId: CognitoIdentityPoolId)

// Create an audio playervar audioPlayer = AVPlayer()

Obtener la lista de voces disponibles

// Use the configuration as defaultAWSServiceManager.default().defaultServiceConfiguration = configuration

// Get all the voices (no parameters specified in input) from Amazon Polly// This creates an async task.let task = AWSPolly.default().describeVoices(AWSPollyDescribeVoicesInput()) // When the request is done, asynchronously do the following block// (we ignore all the errors, but in a real-world scenario they need// to be handled)task.continue(successBlock: { (awsTask: AWSTask) -> Any? in // awsTask.result is an instance of AWSPollyDescribeVoicesOutput in // case of the "describeVoices" method let voices = (awsTask.result! as AWSPollyDescribeVoicesOutput).voices return nil})

Realizar la síntesis de voz

// First, Amazon Polly requires an input, which we need to prepare.// Again, we ignore the errors, however this should be handled in// real applications. Here we are using the URL Builder Request,// since in order to make the synthesis quicker we will pass the// presigned URL to the system audio player.let input = AWSPollySynthesizeSpeechURLBuilderRequest()

// Text to synthesizeinput.text = "Sample text"

// We expect the output in MP3 formatinput.outputFormat = AWSPollyOutputFormat.mp3

// Choose the voice IDinput.voiceId = AWSPollyVoiceId.joanna

152

Amazon Polly Developer GuideEjemplo de iOS

// Create an task to synthesize speech using the given synthesis inputlet builder = AWSPollySynthesizeSpeechURLBuilder.default().getPreSignedURL(input)

// Request the URL for synthesis resultbuilder.continueOnSuccessWith(block: { (awsTask: AWSTask<NSURL>) -> Any? in // The result of getPresignedURL task is NSURL. // Again, we ignore the errors in the example. let url = awsTask.result!

// Try playing the data using the system AVAudioPlayer self.audioPlayer.replaceCurrentItem(with: AVPlayerItem(url: url as URL)) self.audioPlayer.play()

return nil})

153

Amazon Polly Developer GuideEjemplo de Android

Ejemplo de AndroidEl ejemplo siguiente utiliza el SDK para Android de Amazon Polly para leer el texto especificado con unavoz seleccionada en una lista de voces.

El código que se muestra aquí incluye la mayoría de las tareas, pero no administra errores. Para ver elcódigo completo, consulte la demostración de Amazon Polly con AWS SDK para Android.

Initialize

// Cognito pool ID. Pool needs to be unauthenticated pool with// Amazon Polly permissions.String COGNITO_POOL_ID = "YourCognitoIdentityPoolId";

// Region of Amazon Polly.Regions MY_REGION = Regions.US_EAST_1; // Initialize the Amazon Cognito credentials provider.CognitoCachingCredentialsProvider credentialsProvider = new CognitoCachingCredentialsProvider(        getApplicationContext(),        COGNITO_POOL_ID,        MY_REGION);

// Create a client that supports generation of presigned URLs.AmazonPollyPresigningClient client = new AmazonPollyPresigningClient(credentialsProvider);

Obtener la lista de voces disponibles

// Create describe voices request.DescribeVoicesRequest describeVoicesRequest = new DescribeVoicesRequest();

// Synchronously ask Amazon Polly to describe available TTS voices.DescribeVoicesResult describeVoicesResult = client.describeVoices(describeVoicesRequest);List<Voice> voices = describeVoicesResult.getVoices();

Obtener dirección URL de la secuencia de audio

// Create speech synthesis request.SynthesizeSpeechPresignRequest synthesizeSpeechPresignRequest =        new SynthesizeSpeechPresignRequest()        // Set the text to synthesize.        .withText("Hello world!")        // Select voice for synthesis.        .withVoiceId(voices.get(0).getId()) // "Joanna"        // Set format to MP3.        .withOutputFormat(OutputFormat.Mp3);

// Get the presigned URL for synthesized speech audio stream.URL presignedSynthesizeSpeechUrl =        client.getPresignedSynthesizeSpeechUrl(synthesizeSpeechPresignRequest);

Reproducir fragmento sintetizado

// Use MediaPlayer: https://developer.android.com/guide/topics/media/mediaplayer.html

// Create a media player to play the synthesized audio stream.MediaPlayer mediaPlayer = new MediaPlayer();mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);

154

Amazon Polly Developer GuideEjemplo de Android

try {    // Set media player's data source to previously obtained URL.    mediaPlayer.setDataSource(presignedSynthesizeSpeechUrl.toString());} catch (IOException e) {    Log.e(TAG, "Unable to set data source for the media player! " + e.getMessage());}

// Prepare the MediaPlayer asynchronously (since the data source is a network stream).mediaPlayer.prepareAsync();

// Set the callback to start the MediaPlayer when it's prepared.mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {    @Override    public void onPrepared(MediaPlayer mp) {        mp.start();    }});

// Set the callback to release the MediaPlayer after playback is completed.mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { @Override public void onCompletion(MediaPlayer mp) { mp.release(); }});

155

Amazon Polly Developer GuideConfiguración del complemento

Complemento de WordPress paraAmazon Polly

Con el complemento de Amazon Polly para WordPress, puede proporcionar a los visitantes de su sitioweb de WordPress grabaciones de audio de su contenido. Utilice el complemento para crear archivos deaudio con cualquiera de las voces e idiomas admitidos por Amazon Polly. Los visitantes pueden transmitirel audio cuando deseen utilizando reproductores de audio en línea y aplicaciones móviles.

Puede configurar el plugin para hacer lo siguiente:

• Crear de forma automática de grabaciones de audio para nuevo contenido desde el momento de lapublicación o elegir crear grabaciones para publicaciones individuales

• Crear grabaciones de audio del contenido archivado• Utilizar la fuente RSS de Amazon Pollycast para publicar el contenido de audio como podcast

. .

Note

En el procedimiento siguiente, los nombres de comandos y de los campos podrían variarligeramente de los nombres utilizados.

Temas• Instalación del complemento (p. 156)

Instalación del complementoPara instalar y configurar el complemento, utilice la página Add Plugins (Añadir complementos) deWordPress. Después de instalar y activar el complemento, vaya a la página de Amazon Polly Settings(Configuración) y conéctelo a su cuenta de AWS.

Para instalar el complemento de Amazon Polly para WordPress, necesita disponer de una cuenta de AWSy una instalación de WordPress que funcione. Si no tiene una cuenta, consulte Paso 1.1: Inscribirse enAWS (p. 10).

Si tiene una cuenta de AWS, siga los pasos que se indican a continuación para instalar el complemento:

1. Crear una política de permisos (p. 156)2. Crear un usuario de IAM para el complemento (p. 157)3. Instalar y configurar el complemento (p. 158)

Crear una política de permisosEn la Consola de administración de AWS, cree una política de permisos de AWS Identity and AccessManagement (IAM) que se llame PollyForWordPressPolicy. Una política de permisos es un documento que

156

Amazon Polly Developer GuideCrear un usuario de IAM para el complemento

define permisos que se aplican a un usuario (o grupo o rol). Los permisos determinan lo que los usuariospueden hacer en AWS. Copie y pegue el código siguiente:

{

"Version": "2012-10-17", "Statement": [ { "Sid": "Permissions1", "Effect": "Allow", "Action": [ "s3:HeadBucket", "polly:SynthesizeSpeech", "polly:DescribeVoices" ], "Resource": "*" }, { "Sid": "Permissions2", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketAcl", "s3:GetBucketPolicy", "s3:PutObject", "s3:DeleteObject", "s3:CreateBucket", "s3:PutObjectAcl" ], "Resource": [ "arn:aws:s3:::audio_for_wordpress*", "arn:aws:s3:::audio-for-wordpress*" ] } ]}

Para obtener más información acerca de la creación de políticas de permisos, consulte Crear y asociarpolíticas administradas por el cliente.

Crear un usuario de IAM para el complementoAntes de conectar el complemento a su cuenta de AWS, tiene que crear un usuario de IAM, a continuaciónasocie la política de permisos que ha creado en Crear una política de permisos (p. 156) a dicho usuario.Un usuario de IAM es una persona o aplicación en una cuenta de AWS que tiene que realizar llamadas a laAPI a productos de AWS.

Si WordPress ya está implementado en Amazon Elastic Compute Cloud (Amazon EC2), puede omitir estepaso y utilizar el rol de IAM en lugar de un usuario de IAM. Para obtener más información, consulte Rolesde IAM para Amazon EC2 en la Guía del usuario de Amazon EC2.

Para crear un usuario de IAM

1. Inicie sesión en la Consola de administración de AWS y abra la consola de IAM en https://console.aws.amazon.com/iam/.

2. Elija Users (Usuarios).3. Elija Add user (Añadir usuario).4. En User name (Nombre de usuario), escriba WordPress.5. En Access Type (Tipo de acceso), elija Programmatic access (Acceso programado) y, a continuación,

elija Next: Permissions (Siguiente: permisos).

157

Amazon Polly Developer GuideInstalar y configurar el complemento

6. Elija Attach existing policies direction (Asociar la dirección de políticas existentes), elija la políticarecién creada (PollyForWordPressPolicy) de la lista, a continuación, elija Next: Review (Siguiente:Revisar).

7. Elija Create User.8. Registre el ID de clave de acceso y la clave de acceso secreta. Los necesitará para configurar el

complemento.

Important

No podrá volver a obtener acceso a estas claves, así que asegúrese de anotarlas.

Instalar y configurar el complementoInstale el complemento de GitHub y, a continuación, configúrelo para habilitar podcasts, ubicaciones dealmacenamiento alternativas y otras opciones.

Note

En el procedimiento siguiente, los nombres de comandos y de los campos podrían variarligeramente de los nombres utilizados en WordPress.

Para instalar y configurar el complemento

1. Descargue el complemento de Amazon Polly para WordPress en el sitio web de complemento deAmazon Polly en GitHub.

2. En la página WordPress Admin (Administración de WordPress), elija Add New Plugin (Añadir nuevocomplemento) y, a continuación, instale y active el complemento.

3. En la página WordPress Admin (Administración de WordPress), elija Settings (Configuración).4. Configure el complemento utilizando las siguientes opciones de Amazon Polly Settings (Configuración

de Amazon Polly):

• AWS access key and AWS secret key (Claves secreta y de acceso de AWS): estas credenciales deAWS permiten al complemento utilizar Amazon Polly y Amazon Simple Storage Service (AmazonS3). Escriba las claves secretas y de acceso de AWS que ha creado en Crear un usuario de IAMpara el complemento (p. 157). Si aloja su sitio de WordPress en Amazon EC2, puede utilizar lasfunciones de IAM en lugar de credenciales. En ese caso, deje estos dos campos en blanco.

• Sample rate (Velocidad de muestreo): la velocidad de muestreo de los archivos de audio que segeneran, en Hz. Las velocidades de muestreo más altas producen una mayor calidad del audio.

• Voice name (Nombre de la voz): la voz de Amazon Polly que utilizar en el archivo de audio.• Player position(Ubicación del reproductor): el lugar del sitio web en el que situar el reproductor de

audio. Puede situarlo antes o después de la publicación, o no utilizarlo. Si desea poner a disposiciónde los usuarios los archivos en formato de podcast mediante Amazon Pollycast, no muestre elreproductor de audio.

• New post default (Predeterminado para publicaciones nuevas): especifica si Amazon Polly debecrear automáticamente un archivo de audio para todas las nuevas publicaciones. Seleccione estaopción si desea que Amazon Polly utilice los valores de la configuración para crear un archivo deaudio para cada publicación nueva.

• Autoplay (Reproducción automática): especifica si el reproductor de audio comienza a reproducirautomáticamente el audio de una publicación cuando un usuario la visita.

• Store audio in Amazon S3 (Almacenar el audio en Amazon S3): seleccione esta opción si deseaalmacenar los archivos de audio en un bucket de S3 en lugar de en el servidor web. Amazon Pollycrea el bucket por usted. Para obtener más información, incluida la de precios, consulte Amazon S3.

• Amazon CloudFront (CDN) domain name [Nombre de dominio de Amazon CloudFront (CDN)]: sidesea publicar sus archivos de audio con Amazon CloudFront, proporcione el nombre de su dominio

158

Amazon Polly Developer GuidePersonalización de WordPress

de CloudFront. El complemento utiliza el dominio para transmitir audio. Si aún no tiene un dominio,tendrá que crear uno en Amazon CloudFront.

• iTunes category (Categoría en iTunes): la categoría del podcast. Asignar una categoría al podcastpermite a los usuarios encontrarlo más fácilmente en el catálogo de podcasts.

• iTunes explicit(Explícito en iTunes): especifica si habilitar la transmisión de podcasts medianteAmazon Pollycast.

• Bulk update all posts (Actualizar todas las publicaciones en lote): seleccione esta opción si deseaque todas las publicaciones utilicen la nueva configuración del complemento.

5. Elija Save Changes.

Personalización de la página de WordPressPuede utilizar varias opciones para personalizar su contenido de WordPress para que funcione de formamás eficaz con el complemento de WordPress de Amazon Polly:

• Ajustar la configuración del complemento para los archivos de audio (p. 159)• Usar SSML en el contenido para modificar la pronunciación (p. 159)• Usar etiquetas de solo audio o solo palabras en el contenido (p. 160)

Ajustar la configuración del complemento para los archivos deaudioLa configuración del complemento de WordPress de Amazon Polly tiene tres opciones que puedenayudarle a personalizar el sonido del texto de WordPress para el archivo de audio:

• Voice name (Nombre de voz): el nombre de voz y el idioma seleccionado le permiten seleccionar elsexo de la voz de Amazon Polly. Hay voces específicas para cada idioma, y dispone de varias opcionesdentro de cada sexo en muchos idiomas. Para obtener más información, consulte Las voces de AmazonPolly (p. 18).

• Automated breaths (Respiraciones automáticas): si esta opción está activada, Amazon Polly insertaráautomáticamente sonidos de respiración en el contenido en los lugares adecuados. Esta opciónsolo permite usar respiraciones automatizadas y no configurarlas manualmente. Para obtener másinformación, consulte Respiración automatizada.

• Audio speed (Velocidad de audio): esta opción le permite modificar la velocidad de entrega de la versiónde audio de su contenido, con valores que comprenden desde 20% a 200% con respecto a la velocidadde voz predeterminada.

1. En la página WordPress Admin (Administración de WordPress), elija Settings (Configuración).2. En el menú Settings (Configuración), elija Amazon Polly.3. Cambie las distintas opciones según sea necesario.

Usar SSML en el contenido para modificar la pronunciaciónAmazon Polly admite varias etiquetas SSML que le permiten controlar muchos aspectos de cómo AmazonPolly genera fragmentos hablados a partir del texto proporcionado. (Para obtener más información sobreSSML y Amazon Polly, consulte Etiquetas SSML admitidas por Amazon Polly (p. 34)). Algunas de estasetiquetas están reflejadas en la configuración del complemento. En la actualidad, sin embargo, solo laetiqueta <break> está disponible para usarse directamente en el complemento de WordPress. Habrá masetiquetas disponibles en las actualizaciones futuras del complemento.

159

Amazon Polly Developer GuidePersonalización de WordPress

La etiqueta <break> le permite añadir una pausa en la versión hablada del texto. Puede ajustar la longitudde esta pausa para satisfacer sus necesidades concretas. La longitud predeterminada de la pausa esequivalente a la pausa que sigue a una coma. Para obtener más información sobre la etiqueta <break>,consulte Etiquetas SSML admitidas (p. 35).

Para utilizar etiquetas SSML para mejorar el texto de WordPress, debe seleccionar la opción Enable SSMLsupport (Habilitar compatibilidad con SSML) en la configuración de Amazon Polly en la página WordPressAdmin (Administración de WordPress). También debe seleccionar la opción Store audio in Amazon S3(Almacenar audio en Amazon S3) porque los archivos de audio con etiquetas SSML deben almacenarseen un bucket de S3.

Usar etiquetas de solo audio o solo palabras en el contenidoA veces deseará añadir algo a su podcast de audio pero no querrá que se muestre en el navegador. O talvez desee mostrar algo en el navegador, pero no incluirlo en el archivo de audio. Esto se puede hacer conlas etiquetas Audio Only y Word Only, que se colocan en el contenido de WordPress para controlarqué parte del texto se muestra o se lee.

Para convertir texto en audio, pero no mostrarlo en el navegador

1. Aísle el texto seleccionado en su página de WordPress colocando una línea vacía encima y debajo.2. En la línea por encima del texto seleccionado, inserte la siguiente etiqueta:

-AMAZONPOLLY-ONLYAUDIO-START-

3. En la línea detrás del texto seleccionado, inserte la siguiente etiqueta:

-AMAZONPOLLY-ONLYAUDIO-END-

Puede utilizar el mismo procedimiento para mostrar el texto en el navegador sin incluirlo en el archivo deaudio usando las etiquetas -AMAZONPOLLY-ONLYWORDS-START- y -AMAZONPOLLY-ONLYWORDS-END-de la misma manera.

Por ejemplo:

Initial text of your blog displayed in the browser and heard in the audio file.] -AMAZONPOLLY-ONLYAUDIO-START- [This part will not be displayed in the browser but will be heard in the audio file.] -AMAZONPOLLY-ONLYAUDIO-END- [Subsequent text of your blog displayed in the browser and heard in the audio file.]

y

[Initial text of your blog displayed in the browser and heard in the audio file.] -AMAZONPOLLY-ONLYWORD-START- This part will be displayed in the browser but will not be heard in the audio file.] -AMAZONPOLLY-ONLYWORD-END- Subsequent text of your blog displayed in the browser and heard in the audio file.

Añadir texto traducido a la publicaciónEl complemento de WordPress de Amazon Polly utiliza Amazon Translate para crear versiones traducidasde la publicación en uno o varios idiomas. Además del inglés, hay cuatro idiomas disponibles para esteservicio: español, francés, alemán y portugués. Los idiomas que se usan y las voces de esos idiomas sepueden configurar en la página Settings (Configuración) de Amazon Polly bajo la configuración de AmazonTranslate.

160

Amazon Polly Developer GuideAlmacenamiento de archivos de audio

Para traducir la publicación de WordPress a otros idiomas

1. En la página Add New Post (Añadir nueva publicación), cree y publique su publicación de WordPress.2. En la misma página, asegúrese de que la opción Enable Amazon Polly (Habilitar Amazon Polly) está

seleccionada.3. Para saber el costo aproximado de creación de archivos de audio en los idiomas originales además

de en los otros idiomas seleccionados, elija How much will this cost to convert? (¿Cuánto costará laconversión?) Elija OK (Aceptar) para volver a la página Add New Post (Añadir nueva publicación).

4. Elija Translate (Traducir)

Para establecer los idiomas a los que se traduce la publicación

1. En la página Amazon Polly Settings (Configuración de Amazon Polly), en Amazon Translateconfiguration (Configuración de Amazon Translate), elija el idioma de la publicación en la listadesplegable Source language (Idioma de origen).

2. En Target languages (Idiomas de destino), seleccione los idiomas a los que desea traducir supublicación.

3. En la lista desplegable Voice (Voz), elija la voz que desee usar para cada idioma seleccionado.4. Escriba una etiqueta para el idioma elegido.5. Elija Save Changes.

Almacenamiento de archivos de audioAl publicar contenido en su sitio, se envía a Amazon Polly para su síntesis. De forma predeterminada,Amazon Polly almacena los archivos de audio nuevos en el servidor web. También puede almacenar losarchivos en Amazon Simple Storage Service (Amazon S3) o en Amazon CloudFront, que es una red globalde entrega de contenido (CDN).

Los usuarios disfrutarán de la misma experiencia de escucha independientemente de cómo almacene losarchivos de audio. Solo cambia la ubicación de difusión:

1. Los archivos de audio almacenados en el servidor de WordPress se transmiten directamente desde elservidor.

2. Los archivos almacenados en buckets de S3 se transmiten desde dichos buckets.3. Si utiliza CloudFront, los archivos se almacenan en Amazon S3 y se transmiten con CloudFront.

 

161

Amazon Polly Developer GuideAlmacenamiento de archivos de audio

Puede elegir dónde almacenar los archivos al instalar el complemento de Amazon Polly.

Ubicación del reproductor HTMLAl instalar el complemento de Amazon Polly, muestra un reproductor HTML en la parte superior de su sitioweb de WordPress de forma predeterminada a menos que elija mostrarlo debajo del texto del sitio o nomostrarlo.

 

Puede cambiar la posición del reproductor, quitarlo o añadirlo (si ha decidido no mostrarlo) en cualquiermomento.

Para volver a colocar el reproductor, quitarlo o añadirlo a su sitio web de WordPress

1. En la página WordPress Admin (Administración de WordPress), elija Settings (Configuración).2. En la página Amazon Polly Settings (Configuración de Amazon Polly), para Player position (Posición

del reproductor), elija la opción adecuada.

Para obtener más información acerca de las opciones de configuración, consulte Instalar y configurar elcomplemento (p. 158).

Transmisión de podcasts mediante Amazon PollycastCon las fuentes de Amazon Pollycast, los visitantes pueden escuchar contenido de audio a través deaplicaciones de podcast estándar. Las fuentes de Pollycast, compatibles con RSS 2.0, proporcionan los

162

Amazon Polly Developer GuideAlmacenamiento de archivos de audio

datos XML necesarios para agregar podcasts mediante aplicaciones móviles de podcasts populares, comoiTunes, y directorios de podcast.

Al instalar el complemento de Amazon Polly, seleccione la opción ITunes explicit (Explícito en iTunes)para agregar automáticamente los puntos de enlace de Amazon Pollycast a todas las URL de archivo deWordPress. Esto permite sindicar tanto podcasts de todo el sitio como específicos. Si no ha elegido laopción ITunes explicit (Explícito en iTunes) cuando instaló el complemento, siga estos pasos:

1. En la página WordPress Admin (Administración de WordPress), elija Settings (Configuración).2. En la página Amazon Polly Settings (Configuración de Amazon Polly), elija ITunes explicit (Explícito en

iTunes).

Puede añadir puntos de enlace de Amazon Pollycast manualmente a cualquier página incluyendo /amazon-pollycast/ en su dirección URL en cualquier aplicación de transmisión de podcasts. Porejemplo:

example.com/amazon-pollycast/example.com/category/news/amazon-pollycast/example.com/author/john/amazon-pollcast/

163

Amazon Polly Developer GuideRegiones admitidas

Límites de Amazon PollyA continuación, se indican los límites que deben tenerse en cuenta al utilizar Amazon Polly.

Regiones admitidasPara obtener una lista de las regiones de AWS en las que Amazon Polly está disponible, consulteRegiones y puntos de enlace de AWS en la Referencia general de Amazon Web Services.

Limitación controlada• Tasa de limitación por cuenta: 100 transacciones (solicitudes u operaciones) por segundo (tps) con un

límite de ráfaga de 120 tps.

Conexiones simultáneas por cuenta: 90• Tasa de limitación por operación:

Operation Límite

Lexicon  

DeleteLexicon

PutLexicon

GetLexicon

ListLexicons

2 transacciones por segundo (tps) cualesquiera de estasoperaciones combinados.

Ráfaga máxima permitida de 4 tps.

Speech

DescribeVoices 80 tps con un límite de ráfaga de 100 tps

SynthesizeSpeech 80 tps con un límite de ráfaga de 100 tps

StartSpeechSynthesisTask 10 tps con un límite de ráfaga de 12 tps

GetSynthesizeSpeechTask yListSynthesizeSpeechTask

Máximo permitido de 10 tps combinadas

Lexicones de pronunciación• Puede almacenar hasta 100 lexicones por cuenta.• Los nombres de los lexicones pueden contener caracteres alfanuméricos y tener una longitud máxima

de 20 caracteres.• Cada lexicón puede tener un tamaño máximo de 4000 caracteres. (Tenga en cuenta que el tamaño de

los lexicones afecta a la latencia de la operación SynthesizeSpeech).

164

Amazon Polly Developer GuideOperación SynthesizeSpeech de la API

• Puede especificar un máximo de 100 caracteres para cada sustitución de <phoneme> o <alias> en unlexicón.

Para obtener más información sobre el uso de los lexicones, consulte Administrar lexicones (p. 111).

Operación SynthesizeSpeech de la APITenga en cuenta los siguientes límites relacionados con el uso de la operación de la APISynthesizeSpeech:

• El texto de entrada debe tener un tamaño máximo de 3000 caracteres contabilizados (6000 caracterestotales). Las etiquetas SSML no cuentan como caracteres contabilizados.

• Puede especificar hasta cinco lexicones para aplicarlos el texto de entrada.• La secuencia de audio de salida (síntesis) tiene un límite de 10 minutos. Después de esto, se interrumpe

cualquier fragmento de voz restante.

Para obtener más información, consulte SynthesizeSpeech (p. 193).

Note

Puede utilizar la operación de la API StartSythensizeSpeechTask para evitar algunas delas limitaciones de la operación SynthesizeSpeech de la API. Para obtener más información,consulte Creación de archivos de audio largos (p. 122).

Operaciones de la API SpeechSynthesisTaskTenga en cuenta los siguientes límites relacionados con el uso de las operaciones de la APIStartSpeechSynthesisTask, GetSpeechSynthesisTask y ListSpeechSynthesisTasks:

• El texto de entrada debe tener un tamaño máximo de 100,000 caracteres contabilizados (200,000caracteres totales). Las etiquetas SSML no cuentan como caracteres contabilizados.

• Puede especificar hasta cinco lexicones para aplicarlos el texto de entrada.

Speech Synthesis Markup Language (SSML,Lenguaje de marcado de síntesis de voz)

Tenga en cuenta los siguientes límites relacionados con el uso de SSML:

• No se admiten las etiquetas <audio>, <lexicon>, <lookup> y <voice>.• Los elementos <break> pueden especificar una duración máxima de 10 segundos cada uno.• La etiqueta <prosody> no admite valores inferiores a -80 % en el atributo de velocidad.

Para obtener más información, consulte Generación de fragmentos hablados desde documentosSSML (p. 29).

165

Amazon Polly Developer GuideInformación de Amazon Polly en CloudTrail

Registro de llamadas a la API enAmazon Polly con AWS CloudTrail

Amazon Polly está integrado con CloudTrail, un servicio que captura todas las llamadas a la API deAmazon Polly y envía los archivos de log a un bucket de Amazon S3 especificado. CloudTrail capturalas llamadas a la API desde la consola de Amazon Polly o desde su código a las API de Amazon Polly.Mediante la información recopilada por CloudTrail puede determinar la solicitud que se realizó a AmazonPolly, la dirección IP de origen desde la que se realizó la solicitud, quién realizó la solicitud, cuándo larealizó, etcétera.

Para obtener más información sobre CloudTrail, incluido cómo configurarlo y habilitarlo, consulte la AWSCloudTrail User Guide.

Información de Amazon Polly en CloudTrailCuando el registro de CloudTrail está habilitado en su cuenta de AWS, las llamadas a la API realizadas enacciones de Amazon Polly se escriben en los archivos de log de CloudTrail junto con otros registros delservicio de AWS. CloudTrail determina cuándo crear y escribir en un nuevo archivo en función del períodode tiempo y del tamaño del archivo.

CloudTrail registra todas las acciones de Amazon Polly, que se documentan en la Referencia de la API deAmazon Polly (p. 172). Se admiten las siguientes acciones.

• DeleteLexicon (p. 173)• DescribeVoices (p. 175)• GetLexicon (p. 178)• GetSpeechSynthesisTask (p. 180)• ListLexicons (p. 182)• ListSpeechSynthesisTasks (p. 184)• PutLexicon (p. 186)• StartSpeechSynthesisTask (p. 188)• SynthesizeSpeech (p. 193)

Cada entrada de log contiene información sobre quién generó la solicitud. La información de identidad delusuario en la entrada de log le ayuda a determinar lo siguiente:

• Si la solicitud se realizó con las credenciales del nodo raíz o del usuario de IAM.• Si la solicitud se realizó con credenciales de seguridad temporales de un rol o fue un usuario federado• Si la solicitud la realizó otro servicio de AWS

Para obtener más información, consulte el elemento userIdentity de CloudTrail.

Puede almacenar los archivos log en su bucket de Amazon S3 durante todo el tiempo que desee,pero también puede definir reglas de ciclo de vida de Amazon S3 para archivar o eliminar archivos logautomáticamente. De forma predeterminada, los archivos log se cifran con cifrado de servidor de AmazonS3 (SSE).

166

Amazon Polly Developer GuideEntradas de archivos de log de Amazon Polly

Si desea recibir notificaciones sobre la entrega de archivos de log, puede configurar CloudTrail para quepublique las notificaciones de Amazon SNS cuando se envíen nuevos archivos de log. Para obtener másinformación, consulte Configuring Amazon SNS Notifications for CloudTrail.

También puede añadir archivos de log de Amazon Polly de varias regiones y cuentas de AWS en un solobucket de Amazon S3.

Para obtener más información, consulte Receiving CloudTrail Log Files from Multiple Regions y ReceivingCloudTrail Log Files from Multiple Accounts.

Entradas de archivos de log de Amazon PollyLos archivos log de CloudTrail puede contener una o varias entradas de log. Cada entrada muestra varioseventos con formato JSON. Una entrada de log representa una única solicitud de cualquier origen eincluye información sobre la acción solicitada, la fecha y la hora de la acción, los parámetros de la solicitud,etcétera. Las entradas de log no son un rastro de la pila ordenada de las llamadas API públicas, por lo queno aparecen en ningún orden específico.

Debido a posibles problemas de confidencialidad, las entradas del log no contienen el texto sintetizado. Ensu lugar, este texto aparece en su forma escrita.

El ejemplo siguiente contiene una entrada del log de CloudTrail donde se muestra SynthesizeSpeech.

{ "Records": [ { "awsRegion": "us-east-2", "eventID": "19bd70f7-5e60-4cdc-9825-936c552278ae", "eventName": "SynthesizeSpeech", "eventSource": "tts.amazonaws.com", "eventTime": "2016-11-02T03:49:39Z", "eventType": "AwsApiCall", "eventVersion": "1.05", "recipientAccountId": "123456789012", "requestID": "414288c2-a1af-11e6-b17f-d7cfc06cb461", "requestParameters": { "lexiconNames": [ "SampleLexicon" ], "outputFormat": "mp3", "sampleRate": "22050", "text": "**********", "textType": "text", "voiceId": "Kendra" }, "responseElements": { "contentType": "audio/mpeg", "requestCharacters": 25 }, "sourceIPAddress": "1.2.3.4", "userAgent": "Amazon CLI/Polly 1.10 API 2016-06-10", "userIdentity": { "accessKeyId": "EXAMPLE_KEY_ID", "accountId": "123456789012", "arn": "arn:aws:iam::123456789012:user/Alice", "principalId": "EX_PRINCIPAL_ID", "type": "IAMUser", "userName": "Alice" } }

167

Amazon Polly Developer GuideEntradas de archivos de log de Amazon Polly

]}

El elemento eventName identifica la acción ejecutada y puede incluir información sobre la fecha y laversión, como "SynthesizeSpeech20161128"; no obstante, sigue haciendo referencia a la misma APIpública.

168

Amazon Polly Developer GuideObtención de las métricas de CloudWatch (consola)

Integración de CloudWatch conAmazon Polly

Cuando interactúa con Amazon Polly, este envía las siguientes métricas y dimensiones a CloudWatchcada minuto. Puede seguir los siguientes procedimientos para ver las métricas de Amazon Polly.

Puede monitorizar Amazon Polly mediante CloudWatch, que recopila y procesa los datos sin formato deAmazon Polly en métricas legibles y casi en tiempo real. Estas estadísticas se registran durante un periodode dos semanas, de forma que pueda obtener acceso a historical information y obtener una mejorperspectiva sobre el desempeño de la aplicación web o el servicio. De forma predeterminada, los datosde las métricas de Amazon Polly se envían a CloudWatch en intervalos de un minuto. Para obtener másinformación, consulte Qué es Amazon CloudWatch en la Guía de usuario de Amazon CloudWatch.

Obtención de las métricas de CloudWatch (consola)1. Abra la consola de CloudWatch en https://console.aws.amazon.com/cloudwatch/.2. En el panel de navegación, seleccione Metrics.3. En el panel CloudWatch Metrics by Category, en la categoría de métricas de Amazon Polly, seleccione

una categoría de métricas y, a continuación, en el panel superior, desplácese hasta ver la listacompleta de métricas.

Obtención de las métricas de CloudWatch (CLI)El siguiente código muestra las métricas disponibles para Amazon Polly.

aws cloudwatch list-metrics --namespace "AWS/Polly"

El comando anterior devuelve una lista de métricas de Amazon Polly similar a la siguiente. El elementoMetricName identifica qué es la métrica.

{ "Metrics": [ { "Namespace": "AWS/Polly", "Dimensions": [ { "Name": "Operation", "Value": "SynthesizeSpeech" } ], "MetricName": "ResponseLatency" }, { "Namespace": "AWS/Polly", "Dimensions": [ { "Name": "Operation", "Value": "SynthesizeSpeech" } ], "MetricName": "RequestCharacters"

169

Amazon Polly Developer GuideMétricas de Amazon Polly

}

Para obtener más información, consulte GetMetricStatistics en la Referencia de la API de AmazonCloudWatch.

Métricas de Amazon PollyAmazon Polly produce las siguientes métricas para cada solicitud. Estas métricas se agrupan y, enintervalos de un minuto, se envían a CloudWatch, donde están disponibles.

Métrica Descripción

RequestCharacters El número de caracteres de la solicitud. Incluye solo loscaracteres facturables, pero no las etiquetas de SSML.

Dimensión válida: Operation

Estadísticas válidas: Minimum, Maximum, Average,SampleCount, Sum

Unidad: recuento

ResponseLatency La latencia entre el momento en que se realizó lasolicitud y el inicio de la respuesta de streaming.

Dimensiones válidas: Operation

Estadísticas válidas: Minimum, Maximum, Average,SampleCount

Unidad: milisegundos

2XXCount Código de nivel HTTP 200 devuelto tras una respuestacorrecta.

Dimensiones válidas: Operation

Estadísticas válidas: Average, SampleCount, Sum

Unidad: recuento

4XXCount Código de error de nivel HTTP 400 devuelto tras unerror. Para cada respuesta correcta, se emite un cero (0).

Dimensiones válidas: Operation

Estadísticas válidas: Average, SampleCount, Sum

Unidad: recuento

5XXCount Código de error de nivel HTTP 500 devuelto tras unerror. Para cada respuesta correcta, se emite un cero (0).

Dimensiones válidas: Operation

Estadísticas válidas: Average, SampleCount, Sum

Unidad: recuento

170

Amazon Polly Developer GuideDimensiones de métricas de Amazon Polly

Dimensiones de métricas de Amazon PollyLas métricas de Amazon Polly utilizan el espacio de nombres de AWS/Polly y proporcionan métricas parala siguiente dimensión:

Dimensión Descripción

Operation Las métricas se agrupan por el método de API alque hacen referencia. Los valores posibles sonSynthesizeSpeech, PutLexicon, DescribeVoices,etc.

171

Amazon Polly Developer GuideActions

Referencia de la API de AmazonPolly

Esta sección contiene la referencia de la API de Amazon Polly.

Note

Las llamadas al API autenticadas deben firmarse utilizando el Proceso de firma SignatureVersion 4. Para obtener más información, consulte Firma de solicitudes de la API de AWS en laReferencia general de Amazon Web Services.

Temas

• Actions (p. 172)• Data Types (p. 197)

ActionsThe following actions are supported:

• DeleteLexicon (p. 173)• DescribeVoices (p. 175)• GetLexicon (p. 178)• GetSpeechSynthesisTask (p. 180)• ListLexicons (p. 182)• ListSpeechSynthesisTasks (p. 184)• PutLexicon (p. 186)• StartSpeechSynthesisTask (p. 188)• SynthesizeSpeech (p. 193)

172

Amazon Polly Developer GuideDeleteLexicon

DeleteLexiconDeletes the specified pronunciation lexicon stored in an AWS Region. A lexicon which has been deletedis not available for speech synthesis, nor is it possible to retrieve it using either the GetLexicon orListLexicon APIs.

For more information, see Managing Lexicons.

Request SyntaxDELETE /v1/lexicons/LexiconName HTTP/1.1

URI Request ParametersThe request requires the following URI parameters.

Name (p. 173)

The name of the lexicon to delete. Must be an existing lexicon in the region.

Pattern: [0-9A-Za-z]{1,20}

Request BodyThe request does not have a request body.

Response SyntaxHTTP/1.1 200

Response ElementsIf the action is successful, the service sends back an HTTP 200 response with an empty HTTP body.

ErrorsLexiconNotFoundException

Amazon Polly can't find the specified lexicon. This could be caused by a lexicon that is missing, itsname is misspelled or specifying a lexicon that is in a different region.

Verify that the lexicon exists, is in the region (see ListLexicons (p. 182)) and that you spelled its nameis spelled correctly. Then try again.

HTTP Status Code: 404ServiceFailureException

An unknown condition has caused a service failure.

HTTP Status Code: 500

See AlsoFor more information about using this API in one of the language-specific AWS SDKs, see the following:

173

Amazon Polly Developer GuideDescribeVoices

DescribeVoicesReturns the list of voices that are available for use when requesting speech synthesis. Each voice speaksa specified language, is either male or female, and is identified by an ID, which is the ASCII version of thevoice name.

When synthesizing speech ( SynthesizeSpeech ), you provide the voice ID for the voice you want fromthe list of voices returned by DescribeVoices.

For example, you want your news reader application to read news in a specific language, but giving a userthe option to choose the voice. Using the DescribeVoices operation you can provide the user with a listof available voices to select from.

You can optionally specify a language code to filter the available voices. For example, if you specify en-US,the operation returns a list of all available US English voices.

This operation requires permissions to perform the polly:DescribeVoices action.

Request SyntaxGET /v1/voices?IncludeAdditionalLanguageCodes=IncludeAdditionalLanguageCodes&LanguageCode=LanguageCode&NextToken=NextToken HTTP/1.1

URI Request ParametersThe request requires the following URI parameters.

IncludeAdditionalLanguageCodes (p. 175)

Boolean value indicating whether to return any bilingual voices that use the specified language asan additional language. For instance, if you request all languages that use US English (es-US), andthere is an Italian voice that speaks both Italian (it-IT) and US English, that voice will be included if youspecify yes but not if you specify no.

LanguageCode (p. 175)

The language identification tag (ISO 639 code for the language name-ISO 3166 country code) forfiltering the list of voices returned. If you don't specify this optional parameter, all available voices arereturned.

Valid Values: cy-GB | da-DK | de-DE | en-AU | en-GB | en-GB-WLS | en-IN | en-US | es-ES | es-US | fr-CA | fr-FR | is-IS | it-IT | ja-JP | hi-IN | ko-KR |nb-NO | nl-NL | pl-PL | pt-BR | pt-PT | ro-RO | ru-RU | sv-SE | tr-TR

NextToken (p. 175)

An opaque pagination token returned from the previous DescribeVoices operation. If present, thisindicates where to continue the listing.

Request BodyThe request does not have a request body.

Response SyntaxHTTP/1.1 200

175

Amazon Polly Developer GuideDescribeVoices

Content-type: application/json

{ "NextToken": "string", "Voices": [ { "AdditionalLanguageCodes": [ "string" ], "Gender": "string", "Id": "string", "LanguageCode": "string", "LanguageName": "string", "Name": "string" } ]}

Response ElementsIf the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

NextToken (p. 175)

The pagination token to use in the next request to continue the listing of voices. NextToken isreturned only if the response is truncated.

Type: StringVoices (p. 175)

A list of voices with their properties.

Type: Array of Voice (p. 205) objects

ErrorsInvalidNextTokenException

The NextToken is invalid. Verify that it's spelled correctly, and then try again.

HTTP Status Code: 400ServiceFailureException

An unknown condition has caused a service failure.

HTTP Status Code: 500

See AlsoFor more information about using this API in one of the language-specific AWS SDKs, see the following:

• AWS Command Line Interface• AWS SDK for .NET• AWS SDK for C++• AWS SDK for Go• AWS SDK for Java

176

Amazon Polly Developer GuideGetLexicon

GetLexiconReturns the content of the specified pronunciation lexicon stored in an AWS Region. For more information,see Managing Lexicons.

Request Syntax

GET /v1/lexicons/LexiconName HTTP/1.1

URI Request ParametersThe request requires the following URI parameters.

Name (p. 178)

Name of the lexicon.

Pattern: [0-9A-Za-z]{1,20}

Request BodyThe request does not have a request body.

Response Syntax

HTTP/1.1 200Content-type: application/json

{ "Lexicon": { "Content": "string", "Name": "string" }, "LexiconAttributes": { "Alphabet": "string", "LanguageCode": "string", "LastModified": number, "LexemesCount": number, "LexiconArn": "string", "Size": number }}

Response ElementsIf the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

Lexicon (p. 178)

Lexicon object that provides name and the string content of the lexicon.

Type: Lexicon (p. 198) object

178

Amazon Polly Developer GuideGetLexicon

LexiconAttributes (p. 178)

Metadata of the lexicon, including phonetic alphabetic used, language code, lexicon ARN, number oflexemes defined in the lexicon, and size of lexicon in bytes.

Type: LexiconAttributes (p. 199) object

ErrorsLexiconNotFoundException

Amazon Polly can't find the specified lexicon. This could be caused by a lexicon that is missing, itsname is misspelled or specifying a lexicon that is in a different region.

Verify that the lexicon exists, is in the region (see ListLexicons (p. 182)) and that you spelled its nameis spelled correctly. Then try again.

HTTP Status Code: 404ServiceFailureException

An unknown condition has caused a service failure.

HTTP Status Code: 500

See AlsoFor more information about using this API in one of the language-specific AWS SDKs, see the following:

• AWS Command Line Interface• AWS SDK for .NET• AWS SDK for C++• AWS SDK for Go• AWS SDK for Java• AWS SDK for JavaScript• AWS SDK for PHP V3• AWS SDK for Python• AWS SDK for Ruby V2

179

Amazon Polly Developer GuideGetSpeechSynthesisTask

GetSpeechSynthesisTaskRetrieves a specific SpeechSynthesisTask object based on its TaskID. This object contains informationabout the given speech synthesis task, including the status of the task, and a link to the S3 bucketcontaining the output of the task.

Request SyntaxGET /v1/synthesisTasks/TaskId HTTP/1.1

URI Request ParametersThe request requires the following URI parameters.

TaskId (p. 180)

The Amazon Polly generated identifier for a speech synthesis task.

Length Constraints: Minimum length of 1. Maximum length of 128.

Request BodyThe request does not have a request body.

Response SyntaxHTTP/1.1 200Content-type: application/json

{ "SynthesisTask": { "CreationTime": number, "LanguageCode": "string", "LexiconNames": [ "string" ], "OutputFormat": "string", "OutputUri": "string", "RequestCharacters": number, "SampleRate": "string", "SnsTopicArn": "string", "SpeechMarkTypes": [ "string" ], "TaskId": "string", "TaskStatus": "string", "TaskStatusReason": "string", "TextType": "string", "VoiceId": "string" }}

Response ElementsIf the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

SynthesisTask (p. 180)

SynthesisTask object that provides information from the requested task, including output format,creation time, task status, and so on.

180

Amazon Polly Developer GuideGetSpeechSynthesisTask

Type: SynthesisTask (p. 202) object

ErrorsInvalidTaskIdException

The provided Task ID is not valid. Please provide a valid Task ID and try again.

HTTP Status Code: 400ServiceFailureException

An unknown condition has caused a service failure.

HTTP Status Code: 500SynthesisTaskNotFoundException

The Speech Synthesis task with requested Task ID cannot be found.

HTTP Status Code: 400

See AlsoFor more information about using this API in one of the language-specific AWS SDKs, see the following:

• AWS Command Line Interface• AWS SDK for .NET• AWS SDK for C++• AWS SDK for Go• AWS SDK for Java• AWS SDK for JavaScript• AWS SDK for PHP V3• AWS SDK for Python• AWS SDK for Ruby V2

181

Amazon Polly Developer GuideListLexicons

ListLexiconsReturns a list of pronunciation lexicons stored in an AWS Region. For more information, see ManagingLexicons.

Request Syntax

GET /v1/lexicons?NextToken=NextToken HTTP/1.1

URI Request ParametersThe request requires the following URI parameters.

NextToken (p. 182)

An opaque pagination token returned from previous ListLexicons operation. If present, indicateswhere to continue the list of lexicons.

Request BodyThe request does not have a request body.

Response Syntax

HTTP/1.1 200Content-type: application/json

{ "Lexicons": [ { "Attributes": { "Alphabet": "string", "LanguageCode": "string", "LastModified": number, "LexemesCount": number, "LexiconArn": "string", "Size": number }, "Name": "string" } ], "NextToken": "string"}

Response ElementsIf the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

Lexicons (p. 182)

A list of lexicon names and attributes.

Type: Array of LexiconDescription (p. 201) objects

182

Amazon Polly Developer GuideListLexicons

NextToken (p. 182)

The pagination token to use in the next request to continue the listing of lexicons. NextToken isreturned only if the response is truncated.

Type: String

ErrorsInvalidNextTokenException

The NextToken is invalid. Verify that it's spelled correctly, and then try again.

HTTP Status Code: 400ServiceFailureException

An unknown condition has caused a service failure.

HTTP Status Code: 500

See AlsoFor more information about using this API in one of the language-specific AWS SDKs, see the following:

• AWS Command Line Interface• AWS SDK for .NET• AWS SDK for C++• AWS SDK for Go• AWS SDK for Java• AWS SDK for JavaScript• AWS SDK for PHP V3• AWS SDK for Python• AWS SDK for Ruby V2

183

Amazon Polly Developer GuideListSpeechSynthesisTasks

ListSpeechSynthesisTasksReturns a list of SpeechSynthesisTask objects ordered by their creation date. This operation can filter thetasks by their status, for example, allowing users to list only tasks that are completed.

Request Syntax

GET /v1/synthesisTasks?MaxResults=MaxResults&NextToken=NextToken&Status=Status HTTP/1.1

URI Request ParametersThe request requires the following URI parameters.

MaxResults (p. 184)

Maximum number of speech synthesis tasks returned in a List operation.

Valid Range: Minimum value of 1. Maximum value of 100.NextToken (p. 184)

The pagination token to use in the next request to continue the listing of speech synthesis tasks.Status (p. 184)

Status of the speech synthesis tasks returned in a List operation

Valid Values: scheduled | inProgress | completed | failed

Request BodyThe request does not have a request body.

Response Syntax

HTTP/1.1 200Content-type: application/json

{ "NextToken": "string", "SynthesisTasks": [ { "CreationTime": number, "LanguageCode": "string", "LexiconNames": [ "string" ], "OutputFormat": "string", "OutputUri": "string", "RequestCharacters": number, "SampleRate": "string", "SnsTopicArn": "string", "SpeechMarkTypes": [ "string" ], "TaskId": "string", "TaskStatus": "string", "TaskStatusReason": "string", "TextType": "string", "VoiceId": "string" } ]

184

Amazon Polly Developer GuideListSpeechSynthesisTasks

}

Response ElementsIf the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

NextToken (p. 184)

An opaque pagination token returned from the previous List operation in this request. If present, thisindicates where to continue the listing.

Type: StringSynthesisTasks (p. 184)

List of SynthesisTask objects that provides information from the specified task in the list request,including output format, creation time, task status, and so on.

Type: Array of SynthesisTask (p. 202) objects

ErrorsInvalidNextTokenException

The NextToken is invalid. Verify that it's spelled correctly, and then try again.

HTTP Status Code: 400ServiceFailureException

An unknown condition has caused a service failure.

HTTP Status Code: 500

See AlsoFor more information about using this API in one of the language-specific AWS SDKs, see the following:

• AWS Command Line Interface• AWS SDK for .NET• AWS SDK for C++• AWS SDK for Go• AWS SDK for Java• AWS SDK for JavaScript• AWS SDK for PHP V3• AWS SDK for Python• AWS SDK for Ruby V2

185

Amazon Polly Developer GuidePutLexicon

PutLexiconStores a pronunciation lexicon in an AWS Region. If a lexicon with the same name already exists in theregion, it is overwritten by the new lexicon. Lexicon operations have eventual consistency, therefore, itmight take some time before the lexicon is available to the SynthesizeSpeech operation.

For more information, see Managing Lexicons.

Request SyntaxPUT /v1/lexicons/LexiconName HTTP/1.1Content-type: application/json

{ "Content": "string"}

URI Request ParametersThe request requires the following URI parameters.

Name (p. 186)

Name of the lexicon. The name must follow the regular express format [0-9A-Za-z]{1,20}. That is, thename is a case-sensitive alphanumeric string up to 20 characters long.

Pattern: [0-9A-Za-z]{1,20}

Request BodyThe request accepts the following data in JSON format.

Content (p. 186)

Content of the PLS lexicon as string data.

Type: String

Required: Yes

Response SyntaxHTTP/1.1 200

Response ElementsIf the action is successful, the service sends back an HTTP 200 response with an empty HTTP body.

ErrorsInvalidLexiconException

Amazon Polly can't find the specified lexicon. Verify that the lexicon's name is spelled correctly, andthen try again.

186

Amazon Polly Developer GuidePutLexicon

HTTP Status Code: 400LexiconSizeExceededException

The maximum size of the specified lexicon would be exceeded by this operation.

HTTP Status Code: 400MaxLexemeLengthExceededException

The maximum size of the lexeme would be exceeded by this operation.

HTTP Status Code: 400MaxLexiconsNumberExceededException

The maximum number of lexicons would be exceeded by this operation.

HTTP Status Code: 400ServiceFailureException

An unknown condition has caused a service failure.

HTTP Status Code: 500UnsupportedPlsAlphabetException

The alphabet specified by the lexicon is not a supported alphabet. Valid values are x-sampa and ipa.

HTTP Status Code: 400UnsupportedPlsLanguageException

The language specified in the lexicon is unsupported. For a list of supported languages, see LexiconAttributes.

HTTP Status Code: 400

See AlsoFor more information about using this API in one of the language-specific AWS SDKs, see the following:

• AWS Command Line Interface• AWS SDK for .NET• AWS SDK for C++• AWS SDK for Go• AWS SDK for Java• AWS SDK for JavaScript• AWS SDK for PHP V3• AWS SDK for Python• AWS SDK for Ruby V2

187

Amazon Polly Developer GuideStartSpeechSynthesisTask

StartSpeechSynthesisTaskAllows the creation of an asynchronous synthesis task, by starting a new SpeechSynthesisTask.This operation requires all the standard information needed for speech synthesis, plus the name of anAmazon S3 bucket for the service to store the output of the synthesis task and two optional parameters(OutputS3KeyPrefix and SnsTopicArn). Once the synthesis task is created, this operation will return aSpeechSynthesisTask object, which will include an identifier of this task as well as the current status.

Request SyntaxPOST /v1/synthesisTasks HTTP/1.1Content-type: application/json

{ "LanguageCode": "string", "LexiconNames": [ "string" ], "OutputFormat": "string", "OutputS3BucketName": "string", "OutputS3KeyPrefix": "string", "SampleRate": "string", "SnsTopicArn": "string", "SpeechMarkTypes": [ "string" ], "Text": "string", "TextType": "string", "VoiceId": "string"}

URI Request ParametersThe request does not use any URI parameters.

Request BodyThe request accepts the following data in JSON format.

LanguageCode (p. 188)

Optional language code for the Speech Synthesis request. This is only necessary if using a bilingualvoice, such as Aditi, which can be used for either Indian English (en-IN) or Hindi (hi-IN).

If a bilingual voice is used and no language code is specified, Amazon Polly will use the defaultlanguage of the bilingual voice. The default language for any voice is the one returned by theDescribeVoices operation for the LanguageCode parameter. For example, if no language code isspecified, Aditi will use Indian English rather than Hindi.

Type: String

Valid Values: cy-GB | da-DK | de-DE | en-AU | en-GB | en-GB-WLS | en-IN | en-US | es-ES | es-US | fr-CA | fr-FR | is-IS | it-IT | ja-JP | hi-IN | ko-KR |nb-NO | nl-NL | pl-PL | pt-BR | pt-PT | ro-RO | ru-RU | sv-SE | tr-TR

Required: NoLexiconNames (p. 188)

List of one or more pronunciation lexicon names you want the service to apply during synthesis.Lexicons are applied only if the language of the lexicon is the same as the language of the voice.

Type: Array of strings

188

Amazon Polly Developer GuideStartSpeechSynthesisTask

Array Members: Maximum number of 5 items.

Pattern: [0-9A-Za-z]{1,20}

Required: NoOutputFormat (p. 188)

The format in which the returned output will be encoded. For audio stream, this will be mp3,ogg_vorbis, or pcm. For speech marks, this will be json.

Type: String

Valid Values: json | mp3 | ogg_vorbis | pcm

Required: YesOutputS3BucketName (p. 188)

Amazon S3 bucket name to which the output file will be saved.

Type: String

Pattern: ^[a-z0-9][\.\-a-z0-9]{1,61}[a-z0-9]$

Required: YesOutputS3KeyPrefix (p. 188)

The Amazon S3 key prefix for the output speech file.

Type: String

Pattern: ^[0-9a-zA-Z\/\!\-_\.\*\'\(\)]{0,800}$

Required: NoSampleRate (p. 188)

The audio frequency specified in Hz.

The valid values for mp3 and ogg_vorbis are "8000", "16000", and "22050". The default value is"22050".

Valid values for pcm are "8000" and "16000" The default value is "16000".

Type: String

Required: NoSnsTopicArn (p. 188)

ARN for the SNS topic optionally used for providing status notification for a speech synthesis task.

Type: String

Pattern: ^arn:aws(-(cn|iso(-b)?|us-gov))?:sns:.*:\w{12}:.+$

Required: NoSpeechMarkTypes (p. 188)

The type of speech marks returned for the input text.

Type: Array of strings

189

Amazon Polly Developer GuideStartSpeechSynthesisTask

Array Members: Maximum number of 4 items.

Valid Values: sentence | ssml | viseme | word

Required: NoText (p. 188)

The input text to synthesize. If you specify ssml as the TextType, follow the SSML format for the inputtext.

Type: String

Required: YesTextType (p. 188)

Specifies whether the input text is plain text or SSML. The default value is plain text.

Type: String

Valid Values: ssml | text

Required: NoVoiceId (p. 188)

Voice ID to use for the synthesis.

Type: String

Valid Values: Geraint | Gwyneth | Mads | Naja | Hans | Marlene | Nicole |Russell | Amy | Brian | Emma | Raveena | Ivy | Joanna | Joey | Justin |Kendra | Kimberly | Matthew | Salli | Conchita | Enrique | Miguel | Penelope| Chantal | Celine | Lea | Mathieu | Dora | Karl | Carla | Giorgio | Mizuki| Liv | Lotte | Ruben | Ewa | Jacek | Jan | Maja | Ricardo | Vitoria |Cristiano | Ines | Carmen | Maxim | Tatyana | Astrid | Filiz | Vicki |Takumi | Seoyeon | Aditi

Required: Yes

Response Syntax

HTTP/1.1 200Content-type: application/json

{ "SynthesisTask": { "CreationTime": number, "LanguageCode": "string", "LexiconNames": [ "string" ], "OutputFormat": "string", "OutputUri": "string", "RequestCharacters": number, "SampleRate": "string", "SnsTopicArn": "string", "SpeechMarkTypes": [ "string" ], "TaskId": "string", "TaskStatus": "string", "TaskStatusReason": "string", "TextType": "string", "VoiceId": "string"

190

Amazon Polly Developer GuideStartSpeechSynthesisTask

}}

Response ElementsIf the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

SynthesisTask (p. 190)

SynthesisTask object that provides information and attributes about a newly submitted speechsynthesis task.

Type: SynthesisTask (p. 202) object

ErrorsInvalidS3BucketException

The provided Amazon S3 bucket name is invalid. Please check your input with S3 bucket namingrequirements and try again.

HTTP Status Code: 400InvalidS3KeyException

The provided Amazon S3 key prefix is invalid. Please provide a valid S3 object key name.

HTTP Status Code: 400InvalidSampleRateException

The specified sample rate is not valid.

HTTP Status Code: 400InvalidSnsTopicArnException

The provided SNS topic ARN is invalid. Please provide a valid SNS topic ARN and try again.

HTTP Status Code: 400InvalidSsmlException

The SSML you provided is invalid. Verify the SSML syntax, spelling of tags and values, and then tryagain.

HTTP Status Code: 400LanguageNotSupportedException

The language specified is not currently supported by Amazon Polly in this capacity.

HTTP Status Code: 400LexiconNotFoundException

Amazon Polly can't find the specified lexicon. This could be caused by a lexicon that is missing, itsname is misspelled or specifying a lexicon that is in a different region.

Verify that the lexicon exists, is in the region (see ListLexicons (p. 182)) and that you spelled its nameis spelled correctly. Then try again.

191

Amazon Polly Developer GuideStartSpeechSynthesisTask

HTTP Status Code: 404MarksNotSupportedForFormatException

Speech marks are not supported for the OutputFormat selected. Speech marks are only available forcontent in json format.

HTTP Status Code: 400ServiceFailureException

An unknown condition has caused a service failure.

HTTP Status Code: 500SsmlMarksNotSupportedForTextTypeException

SSML speech marks are not supported for plain text-type input.

HTTP Status Code: 400TextLengthExceededException

The value of the "Text" parameter is longer than the accepted limits. For the SynthesizeSpeech API,the limit for input text is a maximum of 6000 characters total, of which no more than 3000 can be billedcharacters. For the StartSpeechSynthesisTask API, the maximum is 200,000 characters, of whichno more than 100,000 can be billed characters. SSML tags are not counted as billed characters.

HTTP Status Code: 400

See AlsoFor more information about using this API in one of the language-specific AWS SDKs, see the following:

• AWS Command Line Interface• AWS SDK for .NET• AWS SDK for C++• AWS SDK for Go• AWS SDK for Java• AWS SDK for JavaScript• AWS SDK for PHP V3• AWS SDK for Python• AWS SDK for Ruby V2

192

Amazon Polly Developer GuideSynthesizeSpeech

SynthesizeSpeechSynthesizes UTF-8 input, plain text or SSML, to a stream of bytes. SSML input must be valid, well-formedSSML. Some alphabets might not be available with all the voices (for example, Cyrillic might not be read atall by English voices) unless phoneme mapping is used. For more information, see How it Works.

Request SyntaxPOST /v1/speech HTTP/1.1Content-type: application/json

{ "LanguageCode": "string", "LexiconNames": [ "string" ], "OutputFormat": "string", "SampleRate": "string", "SpeechMarkTypes": [ "string" ], "Text": "string", "TextType": "string", "VoiceId": "string"}

URI Request ParametersThe request does not use any URI parameters.

Request BodyThe request accepts the following data in JSON format.

LanguageCode (p. 193)

Optional language code for the Synthesize Speech request. This is only necessary if using a bilingualvoice, such as Aditi, which can be used for either Indian English (en-IN) or Hindi (hi-IN).

If a bilingual voice is used and no language code is specified, Amazon Polly will use the defaultlanguage of the bilingual voice. The default language for any voice is the one returned by theDescribeVoices operation for the LanguageCode parameter. For example, if no language code isspecified, Aditi will use Indian English rather than Hindi.

Type: String

Valid Values: cy-GB | da-DK | de-DE | en-AU | en-GB | en-GB-WLS | en-IN | en-US | es-ES | es-US | fr-CA | fr-FR | is-IS | it-IT | ja-JP | hi-IN | ko-KR |nb-NO | nl-NL | pl-PL | pt-BR | pt-PT | ro-RO | ru-RU | sv-SE | tr-TR

Required: NoLexiconNames (p. 193)

List of one or more pronunciation lexicon names you want the service to apply during synthesis.Lexicons are applied only if the language of the lexicon is the same as the language of the voice. Forinformation about storing lexicons, see PutLexicon.

Type: Array of strings

Array Members: Maximum number of 5 items.

Pattern: [0-9A-Za-z]{1,20}

193

Amazon Polly Developer GuideSynthesizeSpeech

Required: NoOutputFormat (p. 193)

The format in which the returned output will be encoded. For audio stream, this will be mp3,ogg_vorbis, or pcm. For speech marks, this will be json.

When pcm is used, the content returned is audio/pcm in a signed 16-bit, 1 channel (mono), little-endianformat.

Type: String

Valid Values: json | mp3 | ogg_vorbis | pcm

Required: YesSampleRate (p. 193)

The audio frequency specified in Hz.

The valid values for mp3 and ogg_vorbis are "8000", "16000", and "22050". The default value is"22050".

Valid values for pcm are "8000" and "16000" The default value is "16000".

Type: String

Required: NoSpeechMarkTypes (p. 193)

The type of speech marks returned for the input text.

Type: Array of strings

Array Members: Maximum number of 4 items.

Valid Values: sentence | ssml | viseme | word

Required: NoText (p. 193)

Input text to synthesize. If you specify ssml as the TextType, follow the SSML format for the inputtext.

Type: String

Required: YesTextType (p. 193)

Specifies whether the input text is plain text or SSML. The default value is plain text. For moreinformation, see Using SSML.

Type: String

Valid Values: ssml | text

Required: NoVoiceId (p. 193)

Voice ID to use for the synthesis. You can get a list of available voice IDs by calling the DescribeVoicesoperation.

Type: String

194

Amazon Polly Developer GuideSynthesizeSpeech

Valid Values: Geraint | Gwyneth | Mads | Naja | Hans | Marlene | Nicole |Russell | Amy | Brian | Emma | Raveena | Ivy | Joanna | Joey | Justin |Kendra | Kimberly | Matthew | Salli | Conchita | Enrique | Miguel | Penelope| Chantal | Celine | Lea | Mathieu | Dora | Karl | Carla | Giorgio | Mizuki| Liv | Lotte | Ruben | Ewa | Jacek | Jan | Maja | Ricardo | Vitoria |Cristiano | Ines | Carmen | Maxim | Tatyana | Astrid | Filiz | Vicki |Takumi | Seoyeon | Aditi

Required: Yes

Response SyntaxHTTP/1.1 200Content-Type: ContentTypex-amzn-RequestCharacters: RequestCharacters

AudioStream

Response ElementsIf the action is successful, the service sends back an HTTP 200 response.

The response returns the following HTTP headers.

ContentType (p. 195)

Specifies the type audio stream. This should reflect the OutputFormat parameter in your request.• If you request mp3 as the OutputFormat, the ContentType returned is audio/mpeg.• If you request ogg_vorbis as the OutputFormat, the ContentType returned is audio/ogg.• If you request pcm as the OutputFormat, the ContentType returned is audio/pcm in a signed 16-

bit, 1 channel (mono), little-endian format.• If you request json as the OutputFormat, the ContentType returned is audio/json.

RequestCharacters (p. 195)

Number of characters synthesized.

The response returns the following as the HTTP body.

AudioStream (p. 195)

Stream containing the synthesized speech.

ErrorsInvalidSampleRateException

The specified sample rate is not valid.

HTTP Status Code: 400InvalidSsmlException

The SSML you provided is invalid. Verify the SSML syntax, spelling of tags and values, and then tryagain.

195

Amazon Polly Developer GuideSynthesizeSpeech

HTTP Status Code: 400LanguageNotSupportedException

The language specified is not currently supported by Amazon Polly in this capacity.

HTTP Status Code: 400LexiconNotFoundException

Amazon Polly can't find the specified lexicon. This could be caused by a lexicon that is missing, itsname is misspelled or specifying a lexicon that is in a different region.

Verify that the lexicon exists, is in the region (see ListLexicons (p. 182)) and that you spelled its nameis spelled correctly. Then try again.

HTTP Status Code: 404MarksNotSupportedForFormatException

Speech marks are not supported for the OutputFormat selected. Speech marks are only available forcontent in json format.

HTTP Status Code: 400ServiceFailureException

An unknown condition has caused a service failure.

HTTP Status Code: 500SsmlMarksNotSupportedForTextTypeException

SSML speech marks are not supported for plain text-type input.

HTTP Status Code: 400TextLengthExceededException

The value of the "Text" parameter is longer than the accepted limits. For the SynthesizeSpeech API,the limit for input text is a maximum of 6000 characters total, of which no more than 3000 can be billedcharacters. For the StartSpeechSynthesisTask API, the maximum is 200,000 characters, of whichno more than 100,000 can be billed characters. SSML tags are not counted as billed characters.

HTTP Status Code: 400

See AlsoFor more information about using this API in one of the language-specific AWS SDKs, see the following:

• AWS Command Line Interface• AWS SDK for .NET• AWS SDK for C++• AWS SDK for Go• AWS SDK for Java• AWS SDK for JavaScript• AWS SDK for PHP V3• AWS SDK for Python• AWS SDK for Ruby V2

196

Amazon Polly Developer GuideData Types

Data TypesThe following data types are supported:

• Lexicon (p. 198)• LexiconAttributes (p. 199)• LexiconDescription (p. 201)• SynthesisTask (p. 202)• Voice (p. 205)

197

Amazon Polly Developer GuideLexicon

LexiconProvides lexicon name and lexicon content in string format. For more information, see PronunciationLexicon Specification (PLS) Version 1.0.

ContentsContent

Lexicon content in string format. The content of a lexicon must be in PLS format.

Type: String

Required: NoName

Name of the lexicon.

Type: String

Pattern: [0-9A-Za-z]{1,20}

Required: No

See AlsoFor more information about using this API in one of the language-specific AWS SDKs, see the following:

• AWS SDK for C++• AWS SDK for Go• AWS SDK for Java• AWS SDK for Ruby V2

198

Amazon Polly Developer GuideLexiconAttributes

LexiconAttributesContains metadata describing the lexicon such as the number of lexemes, language code, and so on. Formore information, see Managing Lexicons.

ContentsAlphabet

Phonetic alphabet used in the lexicon. Valid values are ipa and x-sampa.

Type: String

Required: NoLanguageCode

Language code that the lexicon applies to. A lexicon with a language code such as "en" would beapplied to all English languages (en-GB, en-US, en-AUS, en-WLS, and so on.

Type: String

Valid Values: cy-GB | da-DK | de-DE | en-AU | en-GB | en-GB-WLS | en-IN | en-US | es-ES | es-US | fr-CA | fr-FR | is-IS | it-IT | ja-JP | hi-IN | ko-KR |nb-NO | nl-NL | pl-PL | pt-BR | pt-PT | ro-RO | ru-RU | sv-SE | tr-TR

Required: NoLastModified

Date lexicon was last modified (a timestamp value).

Type: Timestamp

Required: NoLexemesCount

Number of lexemes in the lexicon.

Type: Integer

Required: NoLexiconArn

Amazon Resource Name (ARN) of the lexicon.

Type: String

Required: NoSize

Total size of the lexicon, in characters.

Type: Integer

Required: No

See AlsoFor more information about using this API in one of the language-specific AWS SDKs, see the following:

199

Amazon Polly Developer GuideLexiconDescription

LexiconDescriptionDescribes the content of the lexicon.

ContentsAttributes

Provides lexicon metadata.

Type: LexiconAttributes (p. 199) object

Required: NoName

Name of the lexicon.

Type: String

Pattern: [0-9A-Za-z]{1,20}

Required: No

See AlsoFor more information about using this API in one of the language-specific AWS SDKs, see the following:

• AWS SDK for C++• AWS SDK for Go• AWS SDK for Java• AWS SDK for Ruby V2

201

Amazon Polly Developer GuideSynthesisTask

SynthesisTaskSynthesisTask object that provides information about a speech synthesis task.

ContentsCreationTime

Timestamp for the time the synthesis task was started.

Type: Timestamp

Required: NoLanguageCode

Optional language code for a synthesis task. This is only necessary if using a bilingual voice, such asAditi, which can be used for either Indian English (en-IN) or Hindi (hi-IN).

If a bilingual voice is used and no language code is specified, Amazon Polly will use the defaultlanguage of the bilingual voice. The default language for any voice is the one returned by theDescribeVoices operation for the LanguageCode parameter. For example, if no language code isspecified, Aditi will use Indian English rather than Hindi.

Type: String

Valid Values: cy-GB | da-DK | de-DE | en-AU | en-GB | en-GB-WLS | en-IN | en-US | es-ES | es-US | fr-CA | fr-FR | is-IS | it-IT | ja-JP | hi-IN | ko-KR |nb-NO | nl-NL | pl-PL | pt-BR | pt-PT | ro-RO | ru-RU | sv-SE | tr-TR

Required: NoLexiconNames

List of one or more pronunciation lexicon names you want the service to apply during synthesis.Lexicons are applied only if the language of the lexicon is the same as the language of the voice.

Type: Array of strings

Array Members: Maximum number of 5 items.

Pattern: [0-9A-Za-z]{1,20}

Required: NoOutputFormat

The format in which the returned output will be encoded. For audio stream, this will be mp3,ogg_vorbis, or pcm. For speech marks, this will be json.

Type: String

Valid Values: json | mp3 | ogg_vorbis | pcm

Required: NoOutputUri

Pathway for the output speech file.

Type: String

Required: No

202

Amazon Polly Developer GuideSynthesisTask

RequestCharacters

Number of billable characters synthesized.

Type: Integer

Required: NoSampleRate

The audio frequency specified in Hz.

The valid values for mp3 and ogg_vorbis are "8000", "16000", and "22050". The default value is"22050".

Valid values for pcm are "8000" and "16000" The default value is "16000".

Type: String

Required: NoSnsTopicArn

ARN for the SNS topic optionally used for providing status notification for a speech synthesis task.

Type: String

Pattern: ^arn:aws(-(cn|iso(-b)?|us-gov))?:sns:.*:\w{12}:.+$

Required: NoSpeechMarkTypes

The type of speech marks returned for the input text.

Type: Array of strings

Array Members: Maximum number of 4 items.

Valid Values: sentence | ssml | viseme | word

Required: NoTaskId

The Amazon Polly generated identifier for a speech synthesis task.

Type: String

Length Constraints: Minimum length of 1. Maximum length of 128.

Required: NoTaskStatus

Current status of the individual speech synthesis task.

Type: String

Valid Values: scheduled | inProgress | completed | failed

Required: NoTaskStatusReason

Reason for the current status of a specific speech synthesis task, including errors if the task has failed.

203

Amazon Polly Developer GuideSynthesisTask

Type: String

Required: NoTextType

Specifies whether the input text is plain text or SSML. The default value is plain text.

Type: String

Valid Values: ssml | text

Required: NoVoiceId

Voice ID to use for the synthesis.

Type: String

Valid Values: Geraint | Gwyneth | Mads | Naja | Hans | Marlene | Nicole |Russell | Amy | Brian | Emma | Raveena | Ivy | Joanna | Joey | Justin |Kendra | Kimberly | Matthew | Salli | Conchita | Enrique | Miguel | Penelope| Chantal | Celine | Lea | Mathieu | Dora | Karl | Carla | Giorgio | Mizuki| Liv | Lotte | Ruben | Ewa | Jacek | Jan | Maja | Ricardo | Vitoria |Cristiano | Ines | Carmen | Maxim | Tatyana | Astrid | Filiz | Vicki |Takumi | Seoyeon | Aditi

Required: No

See AlsoFor more information about using this API in one of the language-specific AWS SDKs, see the following:

• AWS SDK for C++• AWS SDK for Go• AWS SDK for Java• AWS SDK for Ruby V2

204

Amazon Polly Developer GuideVoice

VoiceDescription of the voice.

ContentsAdditionalLanguageCodes

Additional codes for languages available for the specified voice in addition to its default language.

For example, the default language for Aditi is Indian English (en-IN) because it was first used for thatlanguage. Since Aditi is bilingual and fluent in both Indian English and Hindi, this parameter wouldshow the code hi-IN.

Type: Array of strings

Valid Values: cy-GB | da-DK | de-DE | en-AU | en-GB | en-GB-WLS | en-IN | en-US | es-ES | es-US | fr-CA | fr-FR | is-IS | it-IT | ja-JP | hi-IN | ko-KR |nb-NO | nl-NL | pl-PL | pt-BR | pt-PT | ro-RO | ru-RU | sv-SE | tr-TR

Required: NoGender

Gender of the voice.

Type: String

Valid Values: Female | Male

Required: NoId

Amazon Polly assigned voice ID. This is the ID that you specify when calling the SynthesizeSpeechoperation.

Type: String

Valid Values: Geraint | Gwyneth | Mads | Naja | Hans | Marlene | Nicole |Russell | Amy | Brian | Emma | Raveena | Ivy | Joanna | Joey | Justin |Kendra | Kimberly | Matthew | Salli | Conchita | Enrique | Miguel | Penelope| Chantal | Celine | Lea | Mathieu | Dora | Karl | Carla | Giorgio | Mizuki| Liv | Lotte | Ruben | Ewa | Jacek | Jan | Maja | Ricardo | Vitoria |Cristiano | Ines | Carmen | Maxim | Tatyana | Astrid | Filiz | Vicki |Takumi | Seoyeon | Aditi

Required: NoLanguageCode

Language code of the voice.

Type: String

Valid Values: cy-GB | da-DK | de-DE | en-AU | en-GB | en-GB-WLS | en-IN | en-US | es-ES | es-US | fr-CA | fr-FR | is-IS | it-IT | ja-JP | hi-IN | ko-KR |nb-NO | nl-NL | pl-PL | pt-BR | pt-PT | ro-RO | ru-RU | sv-SE | tr-TR

Required: No

205

Amazon Polly Developer GuideVoice

LanguageName

Human readable name of the language in English.

Type: String

Required: NoName

Name of the voice (for example, Salli, Kendra, etc.). This provides a human readable voice name thatyou might display in your application.

Type: String

Required: No

See AlsoFor more information about using this API in one of the language-specific AWS SDKs, see the following:

• AWS SDK for C++• AWS SDK for Go• AWS SDK for Java• AWS SDK for Ruby V2

206

Amazon Polly Developer GuideAutenticación

Autenticación y control de acceso deAmazon Polly

Se necesitan credenciales para obtener acceso a Amazon Polly. Estas credenciales deben tener lospermisos necesarios para obtener acceso a los recursos de AWS, como Amazon Polly lexicon o unainstancia Amazon Elastic Compute Cloud (Amazon EC2). En las secciones siguientes, se incluyeinformación detallada sobre cómo usar AWS Identity and Access Management (IAM) y Amazon Polly paraproteger el acceso a sus recursos.

• Autenticación (p. 207)• Control de acceso (p. 208)

AutenticaciónPuede tener acceso a AWS como cualquiera de los siguientes tipos de identidades:

• Usuario de la cuenta raíz de AWS – Cuando crea por primera vez una cuenta de AWS, comienzaúnicamente por una identidad de inicio de sesión único que tiene acceso completo a todos los serviciosy recursos de AWS de la cuenta. Esta identidad recibe el nombre de usuario raíz de la cuenta de AWSy se obtiene acceso a ella iniciando sesión con la dirección de correo electrónico y la contraseña queutilizó para crear la cuenta. Le recomendamos que no utilice el usuario raíz en sus tareas cotidianas,ni siquiera en las tareas administrativas. En lugar de ello, es mejor ceñirse a la práctica recomendadade utilizar el usuario raíz exclusivamente para crear el primer usuario de IAM. A continuación, guardelas credenciales del usuario raíz en un lugar seguro y utilícelas únicamente para algunas tareas deadministración de cuentas y servicios.

• Usuario de IAM: un usuario de IAM es una identidad dentro de su cuenta de AWS que tiene permisospersonalizados específicos (por ejemplo, permisos para crear a lexicon in Amazon Polly). Puede utilizarun nombre de usuario de IAM y una contraseña para iniciar sesión en páginas web seguras de AWS,como la de Consola de administración de AWS, los foros de discusión de AWS o el AWS SupportCenter.

 

Además de un nombre de usuario y una contraseña, también puede generar claves de acceso paracada usuario. Puede utilizar estas claves cuando obtenga acceso a los servicios de AWS medianteprogramación, ya sea a través de uno de los varios SDK o mediante la AWS Command Line Interface(CLI). El SDK y las herramientas de CLI usan claves de acceso para firmar criptográficamente susolicitud. Si no utiliza las herramientas de AWS, debe firmar usted mismo la solicitud. Amazon Pollysupports Signature Version 4, un protocolo para autenticar solicitudes de API de entrada. Para obtenermás información sobre las solicitudes de autenticación, consulte Signature Version 4 Signing Process enla AWS General Reference.

 • Rol de IAM: Un rol de IAM es una identidad de IAM que se puede crear en la cuenta y que tiene

permisos específicos. Es similar a un usuario de IAM, pero no está asociado a una determinada persona.Un rol de IAM le permite obtener claves de acceso temporal que se pueden utilizar para tener accesoa los servicios y recursos de AWS. Los roles de IAM con credenciales temporales son útiles en lassiguientes situaciones:

 

207

Amazon Polly Developer GuideControl de acceso

• Acceso de usuario federado: En lugar de crear un usuario de IAM, puede utilizar identidades deusuario existentes de AWS Directory Service, del directorio de usuarios de su compañía o de unproveedor de identidades web. Esto se conoce como usuarios federados. AWS asigna un rol a unusuario federado cuando se solicita acceso a través de un proveedor de identidad. Para obtener másinformación acerca de los usuarios federados, consulte Usuarios federados y roles en la Guía delusuario de IAM.

 • Acceso al servicio de AWS: puede utilizar un rol de IAM en su cuenta para conceder permisos a un

servicio de AWS de forma que pueda tener acceso a los recursos de su cuenta. Por ejemplo, puedecrear un rol que permita a Amazon Redshift tener acceso a un bucket de Amazon S3 en su nombrey, a continuación, cargar los datos de ese bucket en un clúster de Amazon Redshift. Para obtenermás información, consulte Creating a Role to Delegate Permissions to an AWS Service en la Guía delusuario de IAM.

 • Aplicaciones que se ejecutan en Amazon EC2: puede utilizar un rol de IAM para administrar

credenciales temporales para las aplicaciones que se ejecutan en una instancia EC2 y realizansolicitudes de API de AWS. Es preferible hacerlo de este modo a almacenar claves de acceso en lainstancia EC2. Para asignar un rol de AWS a una instancia EC2 y ponerla a disposición de todas lasaplicaciones, cree un perfil de instancia asociado a la misma. Un perfil de instancia contiene el rol ypermite a los programas que se ejecutan en la instancia EC2 obtener credenciales temporales. Paraobtener más información, consulte Uso de un rol de IAM para conceder permisos a aplicaciones quese ejecutan en instancias Amazon EC2 en la Guía del usuario de IAM.

Control de accesoPuede tener credenciales válidas para autenticar las solicitudes, pero a menos que tenga permisos nopodrá crear ni tener acceso a los recursos de Amazon Polly. Por ejemplo, debe disponer de permisos paracrear una lexicon de Amazon Polly.

En las secciones siguientes se describe cómo administrar los permisos para Amazon Polly. Lerecomendamos que lea primero la información general.

• Introducción a la administración de permisos de acceso a sus recursos de Amazon Polly (p. 208)• Uso de políticas basadas en identidad (políticas de IAM) para Amazon Polly (p. 212)• Permisos de la API de Amazon Polly: referencia de acciones, permisos y recursos (p. 216)

Introducción a la administración de permisos deacceso a sus recursos de Amazon Polly

Cada recurso de AWS es propiedad de una cuenta de AWS, y los permisos para crear o tener acceso aun recurso se rigen por las políticas de permisos. Un administrador de la cuenta puede asociar políticasde permisos a identidades de IAM (es decir, usuarios, grupos y roles) y algunos servicios (como AWSLambda) permiten también asociar políticas de permisos a recursos.

Note

Un administrador de la cuenta (o usuario administrador) es un usuario con privilegios deadministrador. Para obtener más información, consulte la sección IAM Best Practices de la guíaGuía del usuario de IAM.

208

Amazon Polly Developer GuideRecursos y operaciones de Amazon Polly

Cuando concede permisos, decide quién debe obtener los permisos, para qué recursos se obtienenpermisos y qué acciones específicas desea permitir en esos recursos.

Temas• Recursos y operaciones de Amazon Polly (p. 209)• Titularidad de los recursos (p. 209)• Administración del acceso a los recursos (p. 209)• Especificar elementos de política: acciones, efectos y entidades principales (p. 211)• Especificación de condiciones en una política (p. 211)

Recursos y operaciones de Amazon PollyEn Amazon Polly, el recurso principal es a lexicon. En las políticas se emplean nombres de recurso deAmazon (ARN) para identificar los recursos a los que se aplican las políticas.

Estos recursos principales y secundarios tienen asociado un Nombre de recursos de Amazon (ARN) único,tal y como se muestra en la siguiente tabla:

Tipo de recurso Formato de ARN

Lexicon arn:aws:polly:region:account-id:lexicon/LexiconName

Amazon Polly proporciona un conjunto de operaciones para trabajar con recursos de Amazon Polly. Paraobtener una lista de las operaciones disponibles, consulte Amazon Polly Referencia de la API de AmazonPolly (p. 172).

Titularidad de los recursosLa cuenta de AWS es la propietaria de los recursos que se crean en ella, independientemente de quién loshaya creado. En concreto, el propietario de los recursos es la cuenta de AWS; de la entidad principal (esdecir, la cuenta raíz, un usuario de IAM o un rol IAM) que autentica la solicitud de creación de recursos.Los siguientes ejemplos ilustran cómo funciona:

• Si utiliza las credenciales de la cuenta raíz de su cuenta de AWS para crear a lexicon, su cuenta deAWS es la propietaria del recurso (en Amazon Polly, el recurso es a lexicon).

• Si crea un usuario de IAM en su cuenta de AWS y concede permisos para crear una a lexicon para esteusuario, el usuario puede crear una a lexicon. Sin embargo, su cuenta de AWS, a la que pertenece elusuario, es la propietaria del recurso de lexicon.

• Si crea un rol de IAM en su cuenta de AWS con permisos para crear a lexicon, cualquier persona quepueda asumir el rol podrá crear un recurso de a lexicon. La cuenta de AWS, a la que pertenece elusuario, es la propietaria del recurso de lexicon.

Administración del acceso a los recursosUna política de permisos describe quién tiene acceso a qué. En la siguiente sección se explican lasopciones disponibles para crear políticas de permisos.

Note

En esta sección se explica cómo se utiliza IAM en el contexto de Amazon Polly. No seproporciona información detallada sobre el servicio de IAM. Para ver la documentación completa

209

Amazon Polly Developer GuideAdministración del acceso a los recursos

de IAM, consulte What Is IAM? en la Guía del usuario de IAM. Para obtener información sobre lasintaxis y descripciones de las políticas de IAM, consulte AWS IAM Policy Reference en la guíaGuía del usuario de IAM.

Las políticas asociadas a una identidad de IAM se denominan "políticas basadas en identidad" (políticas deIAM) y las políticas asociadas a un recurso se denominan "políticas basadas en recursos". Amazon Pollyadmite políticas basadas en identidad.

Temas• Políticas basadas en identidad (políticas de IAM) (p. 210)• Políticas basadas en recursos (p. 211)

Políticas basadas en identidad (políticas de IAM)Puede asociar políticas a identidades de IAM. Por ejemplo, puede hacer lo siguiente:

• Asociar una política de permisos a un usuario o un grupo de la cuenta: para conceder a un usuariopermisos para crear un recurso de Amazon Polly, como a lexicon, puede asociar una política depermisos a un usuario o a un grupo al que pertenezca el usuario.

• Asociar una política de permisos a un rol (conceder permisos entre cuentas): puede asociar una políticade permisos basada en identidad a un rol de IAM para conceder permisos entre cuentas. Por ejemplo, eladministrador de la cuenta A puede crear un rol para conceder permisos entre cuentas a otra cuenta deAWS (por ejemplo, la cuenta B) o un servicio de AWS como se indica a continuación:1. El administrador de la cuenta A crea un rol de IAM y asocia una política de permisos a dicho rol, que

concede permisos sobre los recursos de la cuenta A.2. El administrador de la cuenta A asocia una política de confianza al rol que identifica la cuenta B como

la entidad principal que puede asumir el rol.3. A continuación, el administrador de la cuenta B puede delegar permisos para asumir el rol a cualquier

usuario de la cuenta B. De este modo, los usuarios de la cuenta B podrán crear recursos y teneracceso a ellos en la cuenta A. La entidad principal de la política de confianza también puede ser laentidad principal de un servicio de AWS si desea conceder permisos para asumir el rol a un serviciode AWS.

Para obtener más información sobre el uso de IAM para delegar permisos, consulte AccessManagement en la Guía del usuario de IAM.

A continuación, se incluye una política de ejemplo que concede permisos para insertar y obtener lexicones,así como para mostrar la lista de los lexicones disponibles actualmente.

Amazon Polly permite usar políticas basadas en identidades con las acciones en el nivel de los recursos.Por tanto, el valor Resource viene especificado por el ARN. Por ejemplo: arn:aws:polly:us-east-2:account-id:lexicon/* con el valor Resource establece permisos en todos los lexiconespropios incluidos en la región us-east-2.

{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowPut-Get-ListActions", "Effect": "Allow", "Action": [ "polly:PutLexicon", "polly:GetLexicon", "polly:ListLexicons"], "Resource": "arn:aws:polly:us-east-2:account-id:lexicon/*" } ]

210

Amazon Polly Developer GuideEspecificar elementos de política:

acciones, efectos y entidades principales

}

Para obtener más información acerca del uso de políticas basadas en identidad con Amazon Polly,consulte Uso de políticas basadas en identidad (políticas de IAM) para Amazon Polly (p. 212). Paraobtener más información acerca de los usuarios, grupos, roles y permisos, consulte Identities (Users,Groups, and Roles) en la Guía del usuario de IAM.

Políticas basadas en recursosOtros servicios, como Amazon S3, admiten también políticas de permisos basadas en recursos. Porejemplo, puede asociar una política a un bucket de S3 para administrar los permisos de acceso a dichobucket. Amazon Polly no admite políticas basadas en recursos.

Especificar elementos de política: acciones, efectos yentidades principalesPara cada recurso de Amazon Polly, el servicio define un conjunto de operaciones de API. Para concederpermisos para estas operaciones de API, Amazon Polly define un conjunto de acciones que usted puedeespecificar en una política. Algunas operaciones de API pueden requerir permisos para más de unaacción para poder realizar la operación de API. Para obtener más información sobre los recursos y lasoperaciones de API, consulte Recursos y operaciones de Amazon Polly (p. 209) y Referencia de la APIde Amazon Polly (p. 172).

A continuación se indican los elementos más básicos de la política:

• Recurso: el Nombre de recurso de Amazon (ARN) se utiliza para identificar el recurso al que se aplicala política basada en identidades. Para obtener más información, consulte Recursos y operaciones deAmazon Polly (p. 209).

• Acción –: use palabras de clave de acción para identificar las operaciones del recurso que desea permitiro denegar. Por ejemplo, puede utilizar polly:PutLexicon para agregar un lexicón a la región.

• Efecto –: especifique el efecto (permitir o denegar) cuando el usuario solicite la acción específica. Si noconcede acceso de forma explícita (permitir) a un recurso, el acceso se deniega implícitamente. Tambiénpuede denegar explícitamente el acceso a un recurso para asegurarse de que un usuario no puedaobtener acceso a él, aunque otra política le conceda acceso.

• Entidad principal –: en las políticas basadas en identidad (políticas de IAM), el usuario al que se asociaesta política es la entidad principal implícita. Para las políticas basadas en recursos, debe especificar elusuario, la cuenta, el servicio u otra entidad que desee que reciba permisos (se aplica solo a las políticasbasadas en recursos). Amazon Polly no admite políticas basadas en recursos.

Para obtener más información sobre la sintaxis y descripciones de las políticas de IAM consulte AWS IAMPolicy Reference en la guía Guía del usuario de IAM.

Para ver una lista con todas las operaciones de API de Amazon Polly y los recursos a los que se aplican,consulte Permisos de la API de Amazon Polly: referencia de acciones, permisos y recursos (p. 216).

Especificación de condiciones en una políticaAl conceder permisos, puede utilizar el lenguaje de la política de acceso para especificar las condicionesen las que se debe aplicar una política. Por ejemplo, es posible que desee que solo se aplique una políticadespués de una fecha específica. Para obtener más información sobre cómo especificar condiciones en unlenguaje de política, consulte Condition en la Guía del usuario de IAM.

Para expresar condiciones, se usan claves de condición predefinidas. No hay claves de condiciónespecíficas para Amazon Polly. No obstante, existen claves de condición que se aplican a todo AWS que

211

Amazon Polly Developer GuideUsar políticas basadas en identidad (políticas de IAM)

puede utilizar cuando corresponda. Para ver una lista completa de claves generales de AWS, consulteAvailable Keys for Conditions en la Guía del usuario de IAM.

Uso de políticas basadas en identidad (políticas deIAM) para Amazon Polly

En este tema se ofrecen ejemplos de políticas basadas en identidad que muestran cómo un administradorde la cuenta puede asociar políticas de permisos a identidades de IAM (es decir, usuarios, grupos y roles)y, de ese modo, conceder permisos para realizar operaciones en recursos de Amazon Polly.

Important

Le recomendamos que consulte primero los temas de introducción en los que se explican losconceptos básicos y las opciones disponibles para administrar el acceso a sus recursos deAmazon Polly. Para obtener más información, consulte Introducción a la administración depermisos de acceso a sus recursos de Amazon Polly (p. 208).

Temas• Permisos necesarios para usar la consola de Amazon Polly (p. 213)• Políticas administradas (predefinidas) de AWS para Amazon Polly (p. 213)• Ejemplos de políticas administradas por el cliente (p. 214)

A continuación se muestra un ejemplo de una política de permisos.

{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowGet-Delete-ListActions", "Effect": "Allow", "Action": [ "polly:GetLexicon", "polly:DeleteLexicon", "polly:ListLexicons"], "Resource": "*" } ], "Statement": [{ "Sid": "NoOverrideMyLexicons", "Effect": "Deny", "Action": [ "polly:PutLexicon"], "Resource": "arn:aws:polly:us-east-2:123456789012:lexicon/my*" } ]}

La política tiene dos declaraciones:

• La primera instrucción concede permiso para ejecutar tres acciones de Polly (polly:GetLexicon,polly:DeleteLexicon y polly:ListLexicons) en cualquier lexicón. Utilice el carácter comodín (*)cuando el recurso conceda permisos universales para estas acciones en todas las regiones y lexiconesde la cuenta.

• La segunda instrucción deniega explícitamente el permiso para ejecutar una acción de Polly(polly:PutLexicon). El ARN indica que el recurso aplica específicamente este permiso a todos loslexicones que comienzan con las letras "my" y que se encuentran en la región us-east-2.

212

Amazon Polly Developer GuidePermisos necesarios para usar la consola de Amazon Polly

Para ver una tabla con todas las operaciones de la API de Amazon Polly y los recursos a los quese aplican, consulte Permisos de la API de Amazon Polly: referencia de acciones, permisos yrecursos (p. 216).

Permisos necesarios para usar la consola de AmazonPollyPara que un usuario pueda trabajar con la consola de Amazon Polly, debe tener un conjunto mínimo depermisos que le permitan describir los recursos de Amazon Polly en su cuenta de AWS.

Si crea una política de IAM que sea más restrictiva que el mínimo de permisos necesarios, la consola nofuncionará del modo esperado para los usuarios con esa política de IAM.

No es necesario que conceda permisos mínimos en la consola a los usuarios que solo realizan llamadas aAWS CLI o a la API de Amazon Polly.

Para utilizar la consola de Amazon Polly, debe conceder permisos a todas las API de Amazon Polly. No esnecesario ningún otro permiso. La siguiente política de permisos es todo lo que se necesita para utilizar laconsola de Amazon Polly.

}"Version": "2012-10-17", "Statement": [{ "Sid": "Console-AllowAllPollyActions", "Effect": "Allow", "Action": [ "polly:*"], "Resource": "*" } ]}

Políticas administradas (predefinidas) de AWS paraAmazon PollyAWS aborda muchos casos de uso comunes proporcionando políticas de IAM independientes creadas yadministradas por AWS. Estas políticas administradas por AWS conceden los permisos necesarios paracasos de uso comunes, lo que le evita tener que investigar los permisos que se necesitan. Para obtenermás información, consulte AWS Managed Policies en la Guía del usuario de IAM.

Las siguientes políticas administradas por AWS, que puede asociar a los usuarios de su cuenta, sonespecíficas de Amazon Polly:

• AmazonPollyReadOnlyAccess: concede acceso de solo lectura a los recursos, lo que permite mostrary recuperar los lexicones, mostrar las voces disponibles y realizar la síntesis de voz (aplicando loslexicones en el proceso).

• AmazonPollyFullAccess: concede acceso total a los recursos y todas las operaciones compatibles.

Note

Para consultar estas políticas de permisos, inicie sesión en la consola de IAM y busque laspolíticas específicas.

También puede crear sus propias políticas de IAM personalizadas para conceder permisos para accionesy recursos de Amazon Polly. Puede asociar estas políticas personalizadas a los usuarios o grupos de IAMque requieran esos permisos.

213

Amazon Polly Developer GuideEjemplos de políticas administradas por el cliente

Ejemplos de políticas administradas por el clienteEn esta sección, encontrará ejemplos de políticas de usuario que conceden permisos para varias accionesde Amazon Polly. Estas políticas funcionan cuando se utiliza el SDK o la AWS CLI. de AWS. Cuando seutiliza la consola, es necesario conceder permisos a todas las API de Amazon Polly. Esto se explica enPermisos necesarios para usar la consola de Amazon Polly (p. 213).

Note

Todos los ejemplos utilizan la región us-east-2 y contienen identificadores de cuenta ficticios.

Ejemplos• Ejemplo 1: Permitir todas las acciones de Amazon Polly (p. 214)• Ejemplo 2: Permitir todas las acciones de Polly excepto DeleteLexicon (p. 214)• Ejemplo 3: Permitir DeleteLexicon (p. 215)• Ejemplo 4: Permitir DeleteLexicon en una región concreta (p. 215)• Ejemplo 5: Permitir DeleteLexicon con un lexicón determinado (p. 215)

Ejemplo 1: Permitir todas las acciones de Amazon PollyDespués de inscribirse (consulte Paso 1.1: Inscribirse en AWS (p. 10)), tiene que crear un usuarioadministrador que se encargue de la cuenta, incluida la creación de usuarios y la administración depermisos.

Si lo desea, puede crear un usuario que tenga permiso para todas las acciones de Amazon Polly (pienseen este usuario como un administrador específico del servicio) para trabajar con Amazon Polly. Puedevincular la siguiente política de permisos con este usuario.

{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowAllPollyActions", "Effect": "Allow", "Action": [ "polly:*"], "Resource": "*" } ]}

Ejemplo 2: Permitir todas las acciones de Polly exceptoDeleteLexiconLa siguiente política concede permisos de usuario que permiten realizar todas las acciones exceptoDeleteLexicon, por lo que se deniegan los permisos para eliminar explícitamente elementos en todaslas regiones.

{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowAllActions-DenyDelete", "Effect": "Allow", "Action": [ "polly:DescribeVoices", "polly:GetLexicon",

214

Amazon Polly Developer GuideEjemplos de políticas administradas por el cliente

"polly:PutLexicon", "polly:SynthesizeSpeech", "polly:ListLexicons"], "Resource": "*" } { "Sid": "DenyDeleteLexicon", "Effect": "Deny", "Action": [ "polly:DeleteLexicon"], "Resource": "*" } ]}

Ejemplo 3: Permitir DeleteLexiconLa siguiente política concede permisos de usuario para eliminar todos los lexicones de su propiedad conindependencia del proyecto o región en que se encuentren.

{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowDeleteLexicon", "Effect": "Allow", "Action": [ "polly:DeleteLexicon"], "Resource": "*" } ]}

Ejemplo 4: Permitir DeleteLexicon en una región concretaLa siguiente política concede permisos de usuario para eliminar lexicones de cualquier proyecto de supropiedad que se encuentre en una única región (en este caso, us-east-2).

{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowDeleteSpecifiedRegion", "Effect": "Allow", "Action": [ "polly:DeleteLexicon"], "Resource": "arn:aws:polly:us-east-2:123456789012:lexicon/*" } ]}

Ejemplo 5: Permitir DeleteLexicon con un lexicón determinadoLa siguiente política otorga permisos de usuario para eliminar un lexicón específico de su propiedad (eneste caso, myLexicon) de una región específica (en este caso, us-east-2).

{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowDeleteForSpecifiedLexicon", "Effect": "Allow",

215

Amazon Polly Developer GuideReferencia de permisos de la API de Amazon Polly

"Action": [ "polly:DeleteLexicon"], "Resource": "arn:aws:polly:us-east-2:123456789012:lexicon/myLexicon" } ]}

Permisos de la API de Amazon Polly: referencia deacciones, permisos y recursos

Cuando configure Control de acceso (p. 208) y escriba una política de permisos que se pueda asociara una identidad de IAM (políticas basadas en identidad), puede utilizar la siguiente lista como referencia.La lista incluye cada operación de API de Amazon Polly, las acciones correspondientes a las que puedeconceder permisos para realizar la acción y el recurso de AWS al que puede conceder los permisos. Lasacciones se especifican en el campo Action de la política y el valor del recurso se especifica en el campoResource de la política.

Puede utilizar claves de condiciones generales de AWS en sus políticas de Amazon Polly para expresarcondiciones. Para ver una lista completa de claves generales de AWS, consulte la sección Available Keysde la guía Guía del usuario de IAM.

Note

Para especificar una acción, use el prefijo polly seguido del nombre de operación de la API (porejemplo, polly:GetLexicon).

Amazon Polly permite usar políticas basadas en identidades con las acciones en el nivel de los recursos.Por tanto, el valor Resource viene especificado por el ARN. Por ejemplo: arn:aws:polly:us-east-2:account-id:lexicon/* con el valor Resource establece permisos en todos los lexiconespropios incluidos en la región us-east-2.

Como Amazon Polly no admite los permisos de acciones en el nivel de recursos, la mayoría de laspolíticas utilizan un carácter comodín (*) como valor de Resource. Sin embargo, si es necesario limitarlos permisos a una región específica, este carácter comodín debe sustituirse por el ARN correspondiente:arn:aws:polly:region:account-id:lexicon/*.

API y permisos necesarios para acciones de Amazon Polly

Operación de la API: DeleteLexicon (p. 173)

Permisos necesarios (acción de la API): polly:DeleteLexicon

Recursos: arn:aws:polly:region:account-id:lexicon/LexiconNameOperación de la API: DescribeVoices (p. 175)

Permisos necesarios (acción de la API): polly:DescribeVoices

Recursos: arn:aws:polly:region:account-id:lexicon/voice-nameOperación de la API: GetLexicon (p. 178)

Permisos necesarios (acción de la API): polly:GetLexicon

Recursos: arn:aws:polly:region:account-id:lexicon/voice-nameOperación de la API: ListLexicons (p. 182)

Permisos necesarios (acción de la API): polly:ListLexicons

216

Amazon Polly Developer GuideReferencia de permisos de la API de Amazon Polly

Recursos: arn:aws:polly:region:account-id:lexicon/*Operación de la API: PutLexicon (p. 186)

Permisos necesarios (acción de la API): polly:ListLexicons

Recursos: *Operación de la API: SynthesizeSpeech (p. 193)

Permisos necesarios (acción de la API): polly:SynthesizeSpeech

Recursos: *

217

Amazon Polly Developer Guide

Historial de revisión de Amazon PollyEn la siguiente tabla se describen los cambios importantes en cada versión de la Guía paradesarrolladores de Amazon Polly. Para obtener notificaciones sobre las actualizaciones de estadocumentación, puede suscribirse a una fuente RSS.

• Última actualización de la documentación: 2 de agosto de 2018

update-history-change update-history-description update-history-date

Se ha añadido un idiomanuevo (p. 218)

Nuevo idioma añadido: Hindi(hi-IN). Esta voz utiliza la vozfemenina de Aditi, que tambiénse utiliza para inglés de India,convirtiendo a Aditi de AmazonPolly en la primera voz bilingüe.

August 2, 2018

Nueva característica de SSMLañadida (p. 218)

Incorporación de Duraciónmáxima para fragmento de vozsintetizado.

July 17, 2018

Nueva característicaañadida (p. 218)

Se ha incorporado Síntesis devoz de pasajes de texto largos(hasta 100 000 caracterescontabilizados).

July 17, 2018

Se ha añadido una voznueva (p. 218)

Se ha añadido una voz nueva:Léa (femenina, francés).

June 5, 2018

Se ha añadido un idiomanuevo (p. 218)

Nuevo idioma añadido: coreano(ko-KR).

June 4, 2018

Característicaampliada (p. 218)

Ampliación de la característica dePlugin de WordPress de AmazonPolly, incluida la incorporaciónde capacidades de AmazonTranslate.

June 4, 2018

Ampliación de región (p. 218) Expansión del servicio deAmazon Polly a todas lasregiones comerciales.

June 4, 2018

Se han añadido vocesnuevas (p. 218)

Se han añadido dos vocesnuevas: Aditi (femenina, inglésde India) y Seoyeon (femenina,coreano).

November 15, 2017

Nueva característica (p. 218) Incorporación de nuevacaracterística Marcas de voz,además de una ampliación de lascapacidades de SSML.

April 19, 2017

Nueva guía (p. 218) Esta es la primera versión de laGuía para desarrolladores deAmazon Polly.

November 30, 2016

218

Amazon Polly Developer Guide

AWS GlossaryFor the latest AWS terminology, see the AWS Glossary in the AWS General Reference.

219