Panoramica
In generale, la sintesi vocale non è semplice. Non si può dare per scontato che quando un’applicazione legge ogni lettera della frase, il risultato avrà necessariamente senso. Tra le sfide più comuni delle applicazioni di sintesi vocale da testo a voce troviamo:
- Parole che si scrivono nello stesso modo, ma si pronunciano in maniera diversa, ad esempio in inglese: I live in Las Vegas (Vivo a Las Vegas) e This presentation broadcasts live from Las Vegas (Questa presentazione trasmette live da Las Vegas).
- Normalizzazione del testo: abbreviazioni, acronimi e unità disambiguanti: St., che può indicare sia Street (strada, via) o Saint (Santo/a).
- Convertire il testo in fonemi in lingue con mappature complesse, come l’inglese, ad es. tough, through e though. In questo esempio, parti simili di parole diverse possono essere pronunciate in modo diverso a seconda della parola e del contesto.
- Parole in una lingua straniera (déjà vu), nomi propri (François Hollande) e slang (ASAP, LOL).
Amazon Polly fornisce funzionalità di sintesi vocale che superano queste sfide, consentendoti di investire le energie nella creazione di applicazioni che utilizzano la sintesi vocale anziché nella risoluzione dei problemi di interpretazione.
Amazon Polly converte il testo in voce naturale. Ti permette di creare applicazioni che parlano in maniera naturale, sviluppando categorie completamente nuove di prodotti con funzionalità vocali. Amazon Polly è un servizio Amazon AI che utilizza tecnologie avanzate di apprendimento approfondito per sintetizzare una voce che assomiglia a quella umana. Attualmente include decine tipi di voce naturale e supporta 20 lingue per permettere di selezionare la voce più adatta e distribuire le proprie applicazioni dotate di funzionalità vocali in diversi mercati.
Inoltre, Amazon Polly offre i tempi di risposta rapidi e costanti necessari per supportare dialoghi interattivi in tempo reale. Puoi memorizzare nella cache e salvare i file audio di Polly per riprodurli o ridistribuirli offline. In altre parole, i file che converti e salvi sono tuoi. Non ci sono costi aggiuntivi per l’utilizzo della sintesi vocale da testo a voce. Polly è anche facile da usare. Basta inviare all’API di Amazon Polly il testo che vuoi convertire in voce e Amazon Polly restituisce immediatamente alla tua applicazione un flusso audio che può essere riprodotto direttamente o memorizzato in un formato di file audio standard come MP3.
In questo laboratorio creerai un’applicazione serverless di base che utilizza Amazon Polly per convertire il testo in voce. L’applicazione ha un’interfaccia semplice che accetta del testo in numerose lingue diverse e lo converte in file audio riproducibili da un browser web. Questo laboratorio utilizza dei post di un blog, ma tu puoi utilizzare qualsiasi tipo di testo. Ad esempio, puoi utilizzare l’applicazione per leggere le ricette mentre prepari un piatto, o un articolo di giornale o un libro mentre guidi l’auto o sei in bicicletta.
Architettura dell’applicazione
Creare un’applicazione serverless significa lavorare senza utilizzare alcun server: nessun provisioning, nessuna patch, nessun ridimensionamento. AWS Cloud si occupa automaticamente di tutto questo, consentendoti di concentrarti sulla tua applicazione.
L’applicazione fornisce due metodi: uno per l’invio di informazioni su un nuovo post, che dovrebbe essere convertito in un file MP3, e uno per recuperare informazioni sul post (incluso un link al file MP3 memorizzato in un bucket Amazon S3). Entrambi i metodi sono esposti come servizi web RESTful tramite Amazon API Gateway.
Quando l’applicazione invia informazioni su nuovi post:
1 Le informazioni vengono ricevute dal servizio web REST esposto da Amazon API Gateway. Questo servizio web viene richiamato da una pagina web Amazon Simple Storage Service (Amazon S3).
2 Amazon API Gateway attiva una funzione AWS Lambda, New Post (Nuovo post), che ha il compito di inizializzare il processo di generazione dei file MP3.
3 La funzione Lambda inserisce le informazioni sul post in una tabella Amazon DynamoDB, in cui sono archiviate le informazioni su tutti i post.
4 Per eseguire l’intero processo in maniera asincrona, utilizzerai (Amazon SNS) per separare il processo di ricezione delle informazioni sui nuovi post e avviare la relativa conversione audio.
5 Un’altra funzione Lambda, Convert to Audio (Converti in audio) è iscritta al topic SNS e viene attivata ogni volta che appare un nuovo messaggio (ciò significa che un nuovo post deve essere convertito in file audio).
6 la funzione Lambda Convert to Audio (Converti in audio) utilizza Amazon Polly per convertire il testo in un file audio nella lingua specificata (la stessa lingua del testo).
7 Il nuovo file MP3 viene salvato in un bucket S3 dedicato.
8 Informazioni sul post vengono aggiornate nella tabella DynamoDB. L’URL del file audio archiviato nel bucket S3 viene salvato con i dati precedentemente archiviati.
Quando l’applicazione recupera informazioni sui post:
1 Il servizio web RESTful viene distribuito utilizzando Amazon API Gateway. Amazon API Gateway espone il metodo di recupero delle informazioni sul post. Questi metodi contengono il testo dei post e il collegamento al bucket S3 in cui il file MP3 è archiviato. Il servizio web viene richiamato da una pagina web in hosting su Amazon S3.
2 Amazon API Gateway richiama la funzione Lambda Get Post (Ottieni post), che distribuisce la logica per il recupero dei dati del post.
3 La funzione Lambda Get Post (Ottieni post) recupera le informazioni (compreso il riferimento su Amazon S3) dalla tabella DynamoDB e restituisce le informazioni.
Argomenti trattati
Alla fine di questo laboratorio sarai in grado di:
- Creare una tabella Amazon DynamoDB per archiviare i dati
- Creare un’API RESTful di Amazon API Gateway
- Creare funzioni AWS Lambda attivate da API Gateway
- Collegare le funzioni AWS Lambda con Amazon Simple Notification Service (SNS)
- Utilizzare Amazon Polly per sintetizzare la voce in una serie di lingue e voci
Legenda icone
In questo laboratorio vengono utilizzate varie icone per richiamare l’attenzione su diversi tipi di istruzioni e note. Nell’elenco seguente viene illustrato lo scopo di ciascuna di esse:
- Un comando da eseguire
- Un output di esempio che puoi utilizzare per verificare l’output di un comando o di un file modificato
- Una nota, un suggerimento o indicazioni importanti
- Informazioni di particolare interesse o importanza, non così importanti da causare problemi alle apparecchiature o ai dati se non si rispettano, ma che potrebbero comportare la necessità di ripetere determinati passaggi
- AVVISO: un’azione irreversibile e che potrebbe provocare la mancata esecuzione di un comando o di un processo. Include avvisi su configurazioni che sarà impossibile modificare dopo l’esecuzione.