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