Telegram speech2text con AWS Transcribe

Introduzione
In questo breve articolo illustreremo come ottenere la trascrizione di un messaggio audio di un gruppo Telegram, utilizzando AWS Transcribe, fornendo sia i sorgenti di esempio che due possibili architetture.
telegram2transcribe: architettura e codice

Questa è l'architettura del progetto telegram2transcribe che abbiamo rilasciato su GitHub:
- un bot attivo su di una EC2 si accorge che un audio è appena stato rilasciato nel gruppo Telegram;
- ne salva una copia MP3 su di un bucket S3;
- comunica a Transcribe di tradurre il file MP3;
- controlla che, dopo un certo tempo, Transcribe abbia compreso il testo e lo salva come TXT su S3;
- il testo viene inviato in un secondo gruppo Telegram.
Architettura alternativa

Questa architettura disaccoppia ulteriormente i passi necessari in più servizi indipendenti, sfruttando la possibilità di trigger offerta da S3:
- un bot attivo su di una EC2 si accorge che un audio è appena stato rilasciato nel gruppo Telegram;
- ne salva una copia MP3 su di un bucket S3;
- il bucket aggiunge un messaggio in una coda SQS relativo a un audio da processare;
- la coda SQS attiva una lambda in grado di inviare a Transcribe la richiesta e, dopo un certo tempo, controlla che la risposta sia pronta, inviandola su di un secondo gruppo Telegram.
Conclusioni
A nostro giudizio, AWS Transcribe è più semplice da utilizzare e meglio documentato di altri sistemi cloud API di speech2text: con il suo aiuto è stato possibile sviluppare in qualche ora di lavoro sia la pipeline descritta che il relativo codice.
--
Foto di Sebastian Pandelache su Unsplash