Qualche giorno fa ho pubblicato un articolo dedicato al nuovo servizio di text-to-speech basato su WaveNet offerto da Google. Com’è andata? Una bomba. Ho così deciso di far girare un po’ l’articolo, soprattutto per ricevere dei feedback e capire se c’è un servizio che se la cava meglio.
In tanti mi hanno consigliato di dare uno sguardo a IBM Watson e al mondo che ci gira intorno. Così ho scoperto che anche IBM ha la sua API di Text-to-Speech.
Perché non provarla?
Qualche dato in più su IBM Watson Text-to-Speech ed una prima prova
Come facilmente immaginabile (accade un po’ per tutti i progetti di questo tipo), le feature che vengono proposte sul sito non risaltano in modo particolare. Abbiamo infatti:
- voci personalizzabili;
- svariate lingue supportate (anche l’italiano, che ho provato ma il cui risultato non è assolutamente al livello di altre lingue);
- possibilità di dare un certo tipo di “espressività” ad una specifica frase tramite SSML;
- svariati formati audio per l’output (WAV, FLAC, MP3 ed altri);
… e così via. Insomma, fa il suo dovere ma non spicca, ecco. Almeno questo è quello che traspare dall’about page del progetto.
Così ho fatto il passo successivo e mi sono detto: “va bene, facciamo una prova e creiamo un file audio dallo stesso paragrafo usato nelle mie altre prove”.
Che, ricordo, è questo:
Cisco, a worldwide leader in IT and networking, is developing a method of confidential group communications based on Blockchain technology, according to a patent application released by the US Patent and Trademark Office (USPTO) March 29.
Sono così andato sulla pagina delle demo e via, generato! Ecco il risultato:
Questo (per confronto) è invece lo stesso testo sintetizzato con Google Cloud TTS:
Ecco cosa ne penso, papale papale:
- sicuramente meglio di Polly, la voce mi è sembrata più espressiva e più realistica in svariati passaggi. Non esiste confronto invece con Google Cloud TTS. Siamo ancora indietro;
- nella sintesi il sistema tende a mangiarsi alcune parole in modo sbagliato. In particolare ho notato le due sigle (IT ed USPTO) venire steccate entrambe;
- il file generato finale è di 138kB, molto più piccolo del prodotto sintetizzato da Google e poco più grande rispetto a quello di Polly;
- il pricing model è leggermente diverso rispetto ai concorrenti. Ha un piano lite molto piccolo (10000 caratteri/mese) ed uno standard plan che parte con 1 milione di caratteri in free tier (comunque ben lontani dai 5000000 al mese di Polly). Dopodiché ogni 1000 caratteri aggiuntivi vengono $0.020. Il che significa che 1 milione di caratteri vengono $20 dollari;
Conclusioni (anticipate)
Onestamente? Non mi convince. Ne ho viste un bel po’ di meraviglie fatte da Watson: il TTS non è una di queste. Questo servizio, tra gli altri due, si piazza ad un secondo posto. Primo Google, secondo questo e terzo AWS Polly. Tant’è che non ho voluto farci uno script di prova, anche se su GitHub comunque se ne trovano un bel po’.
Non è mai detta l’ultima parola comunque: fino a qualche giorno fa pensavo che il migliore in assoluto fosse Polly, poi mi sono dovuto ricredere con Google Cloud TTS. Le offerte delle piattaforme cloud sono in continuo mutamento e la concorrenza aiuta.
Nel frattempo, tengo le orecchie aperte per eventuali novità. Se IBM dovesse tirar fuori qualcosa di nuovo dal cilindro, sarò ben felice di scriverci un altro articolo!