Visão geral
Normalmente, sintetizar falas não é fácil. Nem sempre é possível garantir que, quando um aplicativo lê cada letra de uma sentença, o resultado fará sentido. Desafios comuns de aplicativos de conversão de texto em fala incluem:
- Palavras escritas da mesma forma, mas pronunciadas de maneira diferente: I live in Las Vegas (Eu vivo em Las Vegas) em comparação a This presentation broadcasts live from Las Vegas (Transmitido ao vivo de Las Vegas).
- Normalização do texto: desambiguação de abreviações, acrônimos e unidades: St., que podem ser expandido como Street (Rua) ou Saint (Santo).
- Converter texto para fonemas em idiomas com mapeamento complexo como, em inglês, tough (difícil), through (através) e though (embora). Neste exemplo, partes semelhantes de palavras diferentes podem ser pronunciadas de forma diferente dependendo da palavra e do contexto.
- Palavras estrangeiras (déjà vu), nomes próprios (François Hollande) e gírias (ASAP, LOL).
O Amazon Polly oferece uma funcionalidade de síntese de fala que supera esses desafios, permitindo que você se concentre em criar aplicativos que usam a conversão de texto em fala em vez de lidar com desafios de interpretação.
O Amazon Polly transforma texto em fala realista. Ele permite criar aplicativos que falam com naturalidade, o que possibilita o desenvolvimento de novas categorias de produtos com recursos de fala. O Amazon Polly é um serviço de IA da Amazon que usa tecnologias avançadas de deep learning para sintetizar falas que soam como a voz humana. Ele inclui dezenas de vozes realistas distribuídas em mais de 20 idiomas, o que permite selecionar a voz ideal e criar aplicativos com recursos de fala que funcionam em vários países diferentes.
Além disso, o Amazon Polly oferece tempos de resposta rápidos e com a uniformidade necessária para possibilitar diálogos interativos em tempo real. Você pode salvar e armazenar em cache o áudio das falas do Polly para reprodução off-line ou redistribuição. (Em outras palavras, o que você converter e salvar é seu. Não há nenhuma taxa adicional de conversão de texto em fala por usar a fala.) O Polly também é fácil de usar. Basta enviar o texto que você quer converter em fala para a API do Amazon Polly. O Amazon Polly devolverá rapidamente o stream de áudio para o seu aplicativo para reprodução imediata ou armazenamento em um formato de arquivo de áudio-padrão, como o MP3.
Neste laboratório, você criará um aplicativo básico e sem servidor que usa o Amazon Polly para converter texto em fala. O aplicativo tem uma interface de usuário simples que aceita textos em diferentes idiomas e os converte em arquivos de áudio que podem ser reproduzidos em um navegador da web. Este laboratório usa publicações de blog, mas você pode usar qualquer tipo de texto. Por exemplo, você pode usar o aplicativo para ler receitas enquanto prepara uma refeição ou para ler notícias e livros enquanto dirige ou anda de bicicleta.
Arquitetura do aplicativo
Você cria um aplicativo sem servidor, o que significa que não será necessário trabalhar com servidores; não há necessidade de provisionamento, patches ou scaling. A nuvem AWS cuida automaticamente disso, permitindo que você foque no aplicativo.
O aplicativo fornece dois métodos: um para enviar informações sobre um novo post, que deve ser convertido em um arquivo MP3, e outro para recuperar informações sobre o post (incluindo um link para o arquivo MP3 armazenado em um bucket do Amazon S3). Ambos os métodos são expostos como serviços da web RESTful por meio do Amazon API Gateway.
Quando o aplicativo envia informações sobre novas publicações:
1 A informação é recebida pela serviço da web RESTful exposto pelo Amazon API Gateway. O serviço da web é invocado por uma página estática hospedada no Amazon Simple Storage Service (Amazon S3).
2 O Amazon API Gateway aciona uma função do AWS Lambda, Nova publicação, que é responsável por inicializar o processo de geração de arquivos de MP3.
3 A função do Lambda insere informações sobre a publicação em uma tabela do Amazon DynamoDB, na qual são armazenadas informações sobre todas as publicações.
4 Para executar todo o processo de maneira assíncrona, você deve usar o Amazon Simple Notification Service (Amazon SNS) para desacoplar o processo de receber informações sobre novas publicações e de iniciar a conversão de áudio.
5 Outra função do Lambda, Convert to Audio (Converter em áudio), é inscrita em seu tópico do SNS e é acionada sempre que uma nova mensagem aparece (o que significa que uma nova publicação deve ser convertida em um arquivo de áudio).
6 A função do Lambda Convert to Audio (Converter em áudio) usa o Amazon Polly para converter o texto em um arquivo de áudio no idioma especificado (o mesmo idioma do texto).
7 O novo arquivo MP3 é salvo em um bucket dedicado do S3.
8 As informações sobre a publicação são atualizadas na tabela do DynamoDB. A URL para o arquivo de áudio armazenado no bucket do S3 é salva com os dados armazenados anteriormente.
Quando o aplicativo recupera informações sobre publicações:
1 O serviço da web RESTful é implantado usando o Amazon API Gateway. O Amazon API Gateway expõe o método de recuperação de informações sobre publicações. Esses métodos contêm o texto da publicação e o link para o bucket do S3 em que o arquivo MP3 está armazenado. O serviço da web é invocado por uma página estática hospedada no Amazon S3.
2 O Amazon API Gateway invoca a função do Lambda Get Post (Obter publicação), que implanta a lógica de recuperação de dados de publicações.
3 A função do Lambda Get Post (Obter publicação) recupera informações sobre a publicação (incluindo a referência ao Amazon S3) da tabela do DynamoDB e apresenta a informação.
Tópicos abordados
Ao final do laboratório, você conseguirá:
- Criar um Amazon DynamoDB para armazenar dados
- Criar uma API RESTful do Amazon API Gateway
- Criar funções do AWS Lambda acionadas pelo API Gateway
- Conectar as funções do AWS Lambda com o Amazon Simple Notification Service (SNS)
- Usar o Amazon Polly para sintetizar fala em diversos idiomas e vozes
Lista de ícones
Vários ícones são usados neste laboratório para chamar a atenção para diferentes tipos de instruções e observações. A lista a seguir explica a finalidade de cada ícone:
- Um comando que você deve executar
- Um exemplo de saída que você pode usar para verificar a saída de um comando ou arquivo editado
- Uma observação, dica ou orientação importante
- Informações de interesse ou importância especiais (não tão importantes a ponto de causar problemas com o equipamento ou dados caso você não as veja, mas que possam resultar na necessidade de repetir determinadas etapas)
- AVISO: uma ação que seja irreversível e que tenha potencial de afetar a falha de um comando ou processo (inclusive avisos sobre configurações que não possam ser alteradas após serem feitas).