martedì 20 luglio 2021

Sottotitolazione di eventi dal vivo

E' difficile ottenere buoni risultati con la sottotitolazione di eventi dal vivo.

In parte perché il risultato deve essere prodotto entro pochi millisecondi, in parte perché si può basare solo su informazioni del passato, a differenza della trascrizione in differita, in cui si possono fare più passaggi di trascrizione e si dispone di tutte le informazioni comprese quelle future.

Approcciando il problema della visualizzazione in modo semplicistico non so decidermi se sia meglio visualizzare i risultati in tempo reale durante la decodifica o se visualizzare solo i risultati quando sono definitivi. 

video 1: sottotitolazione live di tg con risultati parziali e finali



video 2: sottotitolazione live di tg con risultati finali


Cosa vi pare meglio?

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...
 

martedì 25 dicembre 2018

C'è più umanità nel mondo di Alexa che nel resto di internet

Nel giorno di Natale i server di Alexa si sono fermati e gli utenti, anziché manifestare le solite lamentele del tipo: "ho pagato un servizio, è vergognoso che non funzioni", sono per la maggior parte a favore di Alexa che si è presa un po' di riposo, insomma una ribellione allo sfruttamento dei lavoratori amazon.
Ma la cosa veramente bella di Alexa è che puoi avere una risposta immediata a domande quali i risultati delle partite di calcio o alla programmazione dei cinema, senza pubblicità di mezzo, mentre porre la stessa domanda in un browser ti costringe a lottare contro una miriade di popup prima di ottenere le stesse informazioni.
Fino a quando Alexa resterà così?
 

mercoledì 9 maggio 2018

Controllo WebView UWP in una applicazione WPF o Windows Forms

Si torna indietro? Alcuni nuovi controlli per apps UWP saranno utilizzabili anche nelle applicazioni Win32

Nell'esempio in coda, il controllo WebView UWP è inserito dentro una finestra WPF e apre
la pagina https://developer.microsoft.com/en-us/microsoft-edge/testdrive/demos/microphone/

Windows 10 1803
Visual Studio 15.7.0
Pacchetto NuGet Microsoft.Toolkit.Win32.UI.Controls 3.0.0-preview https://github.com/Microsoft/WindowsCommunityToolkit

Progetto di esempio: WebView.zip

martedì 1 maggio 2018

Dettatura in italiano con Windows 10 1803

L'annuncio della nuova feature introdotta con April 2018 Update ha deluso le mie aspettative.



In realtà nelle Impostazioni->Accessibilità->Comandi vocali, la nuova feature è disponibile solo per inglese USA.

Più in basso nella stessa pagina c'è un'altra opzione ma penso si riferisca a quella presente fin da Windows 7 implementata tramite system.speech namespace


Al solito le possibilità per dettare in italiano rimangono:

- Chrome e Google: https://www.studiocataldi.it/risorse/riconoscimento-vocale.asp
- Microsoft Garage Dictate https://www.microsoft.com/en-us/garage/profiles/dictate/
- fai da te con windows.media.speechrecognition namespace https://docs.microsoft.com/en-us/uwp/api/windows.media.speechrecognition