Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Uso de la operación PutLexicon
Con Amazon Polly, puede utilizar PutLexicon para almacenar lexicones de pronunciación en una región de AWS específica de su cuenta. A continuación, podrá especificar uno o varios de los lexicones almacenados en la solicitud SynthesizeSpeech que desee aplicar antes de que el servicio comience a sintetizar el texto. Para obtener más información, consulte Administrar lexicones.
Esta sección contiene lexicones de ejemplo e instrucciones detalladas para guardarlos y probarlos.
nota
Los lexicones deben ajustarse a la recomendación de W3C sobre Pronunciation Lexicon Specification (PLS, Especificación de lexicones de pronunciación). Para obtener más información, consulte Pronunciation Lexicon Specification (PLS) versión 1.0
Ejemplo 1: Lexicón con un solo lexema
Supongamos 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"> <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).nota
Puede utilizar la operación
DescribeVoices
para buscar el código de idioma asociado a una voz. -
El atributo
alphabet
está establecido enIPA
, 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 los alfabetos disponibles para escribir las pronunciaciones. Amazon Polly también admite el Alfabeto Foné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:
-
Guarde el lexicón como
example.pls
. -
Ejecute el comando AWS CLI de
put-lexicon
para guardar el lexicón (con el nombrew3c
) en la región us-east-2.aws polly put-lexicon \ --name w3c \ --content file://example.pls
-
Ejecute el comando
synthesize-speech
para sintetizar el texto de ejemplo en una secuencia de audio (speech.mp3
) y especifique el parámetro opcionallexicon-name
.aws polly synthesize-speech \ --text 'W3C is a Consortium' \ --voice-id Joanna \ --output-format mp3 \ --lexicon-names="w3c" \ speech.mp3
-
Reproduzca el archivo
speech.mp3
resultante y observe que la palabra W3C del texto se ha sustituido 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 el alfabeto IPA.
<?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>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 la palabra "pecan"; por ejemplo, "Pecan pie is delicious" ("La tarta de nueces está deliciosa").
Ejemplo 2: Lexicón con varios lexemas
En este ejemplo, el lexema especificado en el lexicón se aplica exclusivamente al texto de entrada del proceso 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 se indica 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 texto de ejemplo en un archivo de audio (speech.mp3
) y que especifica el lexicón en una llamada a SynthesizeSpeech
.
The W3C is a Consortium
SynthesizeSpeech
se aplica al lexicón de la forma siguiente:
-
De acuerdo con el primer lexema, la palabra W3C se modifica a World Wide Web Consortium. El texto revisado 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 del texto 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:
Guarde el lexicón como
example.pls
.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
Ejecute el comando
list-lexicons
para comprobar que el lexicón w3c está en la lista de lexicones devuelta.aws polly list-lexicons
-
Ejecute el comando
synthesize-speech
para sintetizar el texto de ejemplo en un archivo de audio (speech.mp3
) y especifique el parámetro opcionallexicon-name
.aws polly synthesize-speech \ --text 'W3C is a Consortium' \ --voice-id Joanna \ --output-format mp3 \ --lexicon-names="w3c" \ speech.mp3
Reproduzca el archivo
speech.mp3
resultante para comprobar que la síntesis del fragmento hablado refleja los cambios del texto.
Ejemplo 3: Especificar varios lexicones
En una llamada a SynthesizeSpeech
, puede especificar varios lexicones. En este caso, el primer lexicón especificado (de izquierda a derecha) anulará cualquier lexicón anterior.
Pongamos como ejemplo los dos lexicones siguientes. Tenga en cuenta que cada lexicón especifica alias diferentes 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> <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 los lexicones en orden (w3c
seguido de w3cAlternate
) en una llamada a SynthesizeSpeech
, el alias de W3C definido en el primer lexicón tendrá prioridad sobre el segundo. Para probar los lexicones, siga estos pasos:
Guarde los lexicones localmente en sendos archivos denominados
w3c.pls
yw3cAlternate.pls
.Cargue estos lexicones utilizando el comando AWS CLI de
put-lexicon
.-
Cargue el lexicón
w3c.pls
y guárdelo comow3c
.aws polly put-lexicon \ --name w3c \ --content file://w3c.pls
-
Cargue el lexicón
w3cAlternate.pls
en el servicio comow3cAlternate
.aws polly put-lexicon \ --name w3cAlternate \ --content file://w3cAlternate.pls
-
Ejecute el comando
synthesize-speech
para sintetizar el texto de ejemplo en una secuencia de audio (speech.mp3
) y especifique los dos lexicones a través del parámetrolexicon-name
.aws polly synthesize-speech \ --text 'PLS is a W3C recommendation' \ --voice-id Joanna \ --output-format mp3 \ --lexicon-names '["w3c","w3cAlternative"]' \ speech.mp3
-
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
-
Muestra de Python (Boto3): PutLexicon