giovedì 19 settembre 2019

Servizi Speech to text in italiano

I seguenti servizi sono disponibili in italiano:

A pagamento:

https://www.speechmatics.com/       3,6£/ora
https://sonix.ai/ (solo files audio)     10$/ora
https://transcribe.wreally.com/          6$/ora
https://www.trascrivi.it/                     16,8€/ora
https://www.happyscribe.co/user       12$/ora
https://trint.com                                   52$/mese illimitato
https://newportal.transcribeme.com    0,99$/minuto
https://vocalmatic.com/                        15$/ora
https://www.listenbycode.com               2,4$/ora

Gratuiti

https://dictation.io/speech (solo microfono, non accetta files audio)
https://speechlogger.appspot.com/ (solo microfono)
https://speechnotes.co/ (solo microfono, files audio a pagamento)

martedì 10 settembre 2019

Italian Speech Datasets

Degli ASR, il lavoro duro, per fortuna, è già stato fatto da qualche cervello fine.
Tra i vari ASR a disposizione ho scelto di sperimentare Kaldi, come sistema speaker-indipendent.
Ecco qualche consiglio per creare i modelli, basato sulle mie esperienze.
Le competenze: come ho detto, la parte difficile è già stata risolta. Bisogna essere bravi nelle parole incrociate, pazienti compositori di puzzle e ossessivi collezionisti.
La strategia di prendere tantissimi dati e metterli in un calderone non ha soddisfatto le mie aspettative (ho semplificato troppo il senso dei big-data?). Ha prodotto un sistema che fa sì le trascrizioni, ma ha la tendenza a trascrivere la qualsiasi, soprattutto i rumori.
Meglio prendere pochi dati, ma consistenti.
Quanto pochi? Qui ci sono alcune indicazioni https://cmusphinx.github.io/wiki/tutorialam/, ma in generale bisogna usare il buon senso.
Il progetto VoxForge si è posto un minimo di 140 ore, ma ci sono solo 20 ore di audio a disposizione

Si tratta di preparare dei segmenti audio di alcuni secondi, idealmente da 5 a 20 secondi. Un po' di materiale pronto in rete si trova:

Link Ore
http://www.voxforge.org/it/downloads 20
https://voice.mozilla.org/it/datasets 122
https://www.caito.de/2019/01/the-m-ailabs-speech-dataset/ 140

http://voice.fub.it/activities/corpora/emovo/index.html 0,5

Italian Conversational Speech Corpus - MagicHub


facebookresearch/voxpopuli: A large-scale multilingual speech corpus for representation learning, semi-supervised learning and interpretation (github.com)

Multilingual TED at openslr.org

The SIWIS database
https://phonogenres.unige.ch/downloads/siwis_latest.zip                    4,77

ArtiPhon: Articulatory Phone Recognition
http://www.mspkacorpus.it/

Evalita connected digits recognition
http://www.evalita.it/sites/evalita.fbk.eu/files/doc2009/evalita2009srt.zip

Sugar
https://github.com/evalitaunina/SUGAR_Corpus

Altre risorse invece richiedono del lavoro supplementare per segmentare gli audio in files in piccoli:

CLIPS, LIP
http://www.clips.unina.it/it/corpus.jsp
http://www.parlaritaliano.it/index.php/it/volip
http://www.leadhoc.org/index.php/data-access/corpus-of-spoken-italian/
https://kiparla.it/

https://lionbridge.ai/datasets/12-best-italian-datasets-for-machine-learning/

https://github.com/JRMeyer/open-speech-corpora

Dunque il grosso del lavoro è creare i files necessari a Kaldi per l'addestramento del modello, quest'acqua qui https://www.eleanorchodroff.com/tutorial/kaldi/training-acoustic-models.html#create-files-for-datatrain

Che problemi ci sono nell'utilizzo di questi dati?

La qualità audio non sempre è buona.

Clipping


Sottocampionamento approssimativo (aliasing)


Accenti
I volontari che donano la loro voce spesso non sono madrelingua e hanno un forte accento (vedi gli audio librivox all'interno di M-AILABS)

Mismatch

A volte il testo non corrisponde all'audio. E' normale, provare a gestire centinaia di migliaia di prompt!!!!! Per questo servono le capacità di un collezionista


Distribuzione degli speakers
Gran parte del corpus M-AILABS è stato dettato da 2 soli speakers. Volendo fare un modello speaker-indipendent, parrebbe sensato utilizzare il maggior numero possibile di speakers equamente distribuiti

Lexicon arcaico
Alcuni degli audio che si trovano in rete contengono un italiano di 100 anni fa.
Non c'è niente di male in questo se non che è necessario del lavoro supplementare per creare la trascrizione fonetica di parole che mai oggi verrebbero utilizzate.
Ad esempio, per addestrare le novelle di Pirandello presenti in M-AILABS ho dovuto creare la trascrizione fonetica di 30.000 nuove forme lessicali che difficilmente verranno riutilizzate in un contesto reale.


In conclusione, la preparazione dei dati per l'addestramento di un modello richiede tantissimo tempo e impegno.
Preparare i dati da zero anziché partire da quelli a disposizione non è detto che sia una opzione svantaggiosa.
A parte M-AILABS, non mi risulta che ci siano altri tentativi in italiano di progetti tipo https://github.com/kaldi-asr/kaldi/tree/master/egs/librispeech.
Il limite dell' approccio con gli audiolibri, a mio avviso, è che il numero degli speakers è limitato in quanto sono quasi sempre gli stessi attori professionisti, e la voce è impostata e non naturale.



















martedì 8 gennaio 2019

Alexa: le funzionalità presenti nel mercato USA non disponibili in Italia

App Alexa per Windows 10.

Ma anche no, c'è già l'applicazione web

Modalità whisper

Per chiedere di notte al buio "che ore sono" senza svegliare nessuno
Se sussurri un comando ad Alexa, anche lei ti risponderà sussurrando.

Richieste multistep

Permette di inserire nella lista della spesa più elementi con un comando solo: ad esempio "Alexa, aggiungi latte e biscotti alla lista della spesa" e aggiungerà due items alla lista

Tracking ordini

In Italiano Alexa rendiconta solo gli ordini senza descrivne il contenuto. Nella versione americana ci sono tutti i dettagli e nei dispositivi con video appare l'immagine dei prodotti ordinati

Fare un annuncio udibile in tutti i dispositivi in casa

"Alexa, announce it's dinner time," "Alexa, broadcast it's time to go," o "Alexa, tell everyone good night."

Discutere con Alexa delle proprie preferenze in fatto di musica

Qui siamo lontani anni luce.
Nella versione italiana è già difficile farsi capire quando si vuole ascoltare un titolo o una playlist in inglese.
Nella versione americana si può instradare Alexa verso i propri gusti con una specie di dialogo dopo che Aexa ha iniziato a suonare: "Alexa, play dinner music. Alexa, actually, play instrumental dinner music. Alexa! Play upbeat instrumental music. Alexa, why are you playing Windham Hill?"
Inoltre, Alexa è in grado di porre delle domande quando cerchi le canzoni:

"Alexa, metti della musica di Natale"
Alexa riproduce un coro di bimbi e chiede"ti piace questo?"
"No"
Alexa riproduce un brano d Frank Sinatra e chiede"e allora questo?"
"Si"
e via di questo passo.
Il Product Manager millanta che il dialogo per la scoperta delle canzoni è in grado di farti ascoltare la musica che ti piace in 25 - 30 secondi.


Alexa, metti la musica che mi piace

Quando chiedo ad Alexa di mettere della musica, ho l'impressione che non abbia ancora capito i miei gusti.
La possibilità di mettere "mi piace" o "non mi piace" è limitata alle playlist personalizzate
Nella versione americana puoi dire "Alexa, this is my favorite" o "Alexa, I don't like this" su qualsiasi brano e Alexa apprenderà meglio i gusti musicali.

Ascoltare musica in streaming dai miei server

Nel mercato americano sono disponibili skill come Plex o Synology che permettono di ascoltare la propria musica con la qualità che si vuole.

Notifiche uscite discografiche su Amazon Music

Nella versione americana di Amazon Music è possibile seguire gli artisti preferiti e Alexa ti informerà del nuovo album e delle nuove produzioni degli artisti seguiti

ORA DISPONIBILI

Modalità follow-up

Per evitare di dire "Alexa" ad ogni comando. Con questa modalità, Alexa continuerà ad ascoltare i comandi finché non dici "stop" o interviene un timeout.

Integrazione Skype per Alexa

Negli USA puoi chiamare o videochiamare i tuoi contatti Skype dicendo:  "Alexa, call [person's name] on Skype."
continua...