As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Uso da operação PutLexicon
Com o Amazon Polly, você pode usar PutLexicon para armazenar léxicos de pronúncia em uma região da AWS específica para sua conta. Em seguida, você pode especificar um ou mais desses léxico armazenados na sua solicitação SynthesizeSpeech que você deseja aplicar antes de o serviço começar a sintetizar o texto. Para obter mais informações, consulte Gerenciamento de léxicos.
Esta seção fornece exemplos de léxicos e instruções passo a passo para armazená-los e testá-los.
nota
Esses léxicos devem estar em conformidade com a recomendação PLS (Pronunciation Lexicon Specification, Especificação do léxico de pronúncia), do W3C. Para obter mais informações, consulte Pronunciation Lexicon Specification (PLS) Version 1.0
Exemplo 1: Léxico com um lexema
Considere o léxico compatível com a PLS do W3C a seguir.
<?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>
Observe o seguinte:
-
Os dois atributos especificados no elemento
<lexicon>
:-
O atributo
xml:lang
especifica o código do idioma,en-US
, ao qual o léxico se aplica. O Amazon Polly pode usar esse léxico de exemplo se a voz que você especificar na chamadaSynthesizeSpeech
tiver o mesmo código de idioma (en-US).nota
Você pode usar a operação
DescribeVoices
para localizar o código de idioma associado a uma voz. -
O atributo
alphabet
especificaIPA
, o que significa que o Alfabeto Fonético Internacional (AFI; IPA na sigla em inglês, que significa "International Phonetic Alphabet") é usado para pronúncias. O AFI é um dos alfabetos para escrever pronúncias. O Amazon Polly também é compatível com Alfabeto fonético de métodos de avaliação da fala (X-SAMPA).
-
-
O elemento
<lexeme>
descreve o mapeamento entre<grapheme>
(ou seja, uma representação textual da palavra) e<alias>
.
Para testar esse léxico, faça o seguinte:
-
Salve o léxico como
example.pls
. -
Execute o comando da AWS CLI
put-lexicon
para armazenar o léxico (com o nomew3c
), na região us-east-2.aws polly put-lexicon \ --name w3c \ --content file://example.pls
-
Execute o comando
synthesize-speech
para sintetizar o texto de amostra em um fluxo de áudio (speech.mp3
) e especifique parâmetrolexicon-name
opcional.aws polly synthesize-speech \ --text 'W3C is a Consortium' \ --voice-id Joanna \ --output-format mp3 \ --lexicon-names="w3c" \ speech.mp3
-
Reproduza o
speech.mp3
resultante e observe que a palavra W3C no texto é substituída por World Wide Web Consortium.
O léxico do exemplo anterior usa um alias. O AFI mencionado no léxico não é usado. O léxico a seguir especifica uma pronúncia fonética usando o elemento <phoneme>
com o AFI.
<?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 as mesmas etapas para testar esse léxico. Coloque um texto que tenha a palavra "pecan" (por exemplo, "Pecan pie is delicious").
Exemplo 2: Léxico com vários lexemas
Neste exemplo, o lexema que você especificar no léxico se aplica exclusivamente ao texto de entrada para a síntese. Considere o seguinte léxico:
<?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>
O léxico especifica três lexemas, dois dos quais definem um alias para o grafema W3C, da seguinte forma:
-
O primeiro elemento
<lexeme
> define um alias (World Wide Web Consortium). -
O segundo
<lexeme>
define um alias alternativo (WWW Consortium).
O Amazon Polly usa a primeira substituição para determinado grafema em um léxico.
O terceiro <lexeme>
define uma substituição (Community) para a palavra Consortium.
Primeiro, vamos testar esse léxico. Suponha que você deseja sintetizar o texto de exemplo a seguir para um arquivo de áudio (speech.mp3
) e especifica o léxico em uma chamada para SynthesizeSpeech
.
The W3C is a Consortium
O SynthesizeSpeech
primeiro aplica a léxico da seguinte forma:
-
De acordo com o primeiro lexema, a palavra W3C é revisada como World Wide Web Consortium. O texto revisado aparece da seguinte forma:
The World Wide Web Consortium is a Consortium
-
O alias definido no terceiro lexema se aplica somente à palavra Consortium, que foi parte do texto original, resultando no texto a seguir:
The World Wide Web Consortium is a Community.
Você pode testar isso usando a AWS CLI, da seguinte forma:
Salve o léxico como
example.pls
.Execute o comando
put-lexicon
para armazenar o léxico com o nome w3c na região us-east-2.aws polly put-lexicon \ --name w3c \ --content file://example.pls
Execute o comando
list-lexicons
para verificar se o léxico w3c está na lista de léxicos retornados.aws polly list-lexicons
-
Execute o comando
synthesize-speech
para sintetizar o texto de amostra para um arquivo de áudio (speech.mp3
) e especifique parâmetrolexicon-name
opcional.aws polly synthesize-speech \ --text 'W3C is a Consortium' \ --voice-id Joanna \ --output-format mp3 \ --lexicon-names="w3c" \ speech.mp3
Reproduza o arquivo
speech.mp3
resultante para verificar se a fala sintetizada reflete as alterações no texto.
Exemplo 3: Especificação de vários léxicos
Em uma chamada para SynthesizeSpeech
, você pode especificar vários léxicos. Neste caso, o primeiro léxico especificado (da esquerda para a direita) sobrepõe quaisquer léxicos anteriores.
Considere os dois léxicos a seguir. Observe que cada léxico descreve aliases diferentes para o mesmo grafema de W3C.
-
Léxico 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>
-
Léxico 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>
Vamos supor que você armazene esses léxicos como w3c
e w3cAlternate
, respectivamente. Se você especificar léxicos na ordem (w3c
seguido por w3cAlternate
) em uma chamada SynthesizeSpeech
, o alias de W3C definido no primeiro léxico terá precedência sobre o segundo. Para testar os léxicos, faça o seguinte:
Salve os léxicos localmente em arquivos chamados
w3c.pls
ew3cAlternate.pls
.Faça upload desses léxicos usando o comando da AWS CLI
put-lexicon
.-
Faça upload do léxico
w3c.pls
e armazene-o comow3c
.aws polly put-lexicon \ --name w3c \ --content file://w3c.pls
-
Faça upload do léxico
w3cAlternate.pls
no serviço comow3cAlternate
.aws polly put-lexicon \ --name w3cAlternate \ --content file://w3cAlternate.pls
-
Execute o comando
synthesize-speech
para sintetizar texto de exemplo em um fluxo de áudio (speech.mp3
) e especifique os dois léxicos usando o 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
-
Teste o
speech.mp3
resultante. Ele deve ler da seguinte forma:PLS is a World Wide Web Consortium recommendation
Amostras de código adicionais para a API PutLexicon
-
Amostra de Java: PutLexicon
-
Amostra de Python (Boto3): PutLexicon