Newsgroup: it.lavoro.informatica
Titolo: Complessità Speech-to-Text vs Text-to-Speech

Ciao a tutti!
 
In ufficio è nata una discussione tra il livello di complessità della 
SINTESI VOCALE (Text-to-Speech) e del RICONOSCIMENTO VOCALE 
(Speech-to-Text): secondo voi cosaè più complesso? Se avete fonti ben 
volentieri :)
 
-- 
Al3xI98O
«L'importante non è cadere, ma sapersi rialzare»

 volentieri :)
 
Non ho sottomano basi scientifiche, ma a "naso" è ben più complesso il secondo. Basti questo come considerazione: un Text-to-speech un po' buffo ma comprensibile si riusciva a farlo con il commodore 64 trent'anni fa... sullo Speech to Text cominciamo ad avere qualcosa di vagamente usabile ora con capacità di calcolo superiori di parecchi ordini di grandezza, non sarà un caso, no?
 
Ciao!

Hermooz in data 15/10/2015 10:29:33 disse:

Esattamente le tesi di 3 di noi :) Ho postato qui perchè volevo vedere 
se altri avevano la stessa idea e magari più basi scientifiche :D


 volentieri :)
 
Anche solo ad intuito, dovrebbe essere ovvio che il riconoscimento vocale e` piu` complesso di diversi ordini di grandezza. Il text-to-speech e` fondamentalmente piu` semplice perche` si parte da un'informazione non ambigua, il testo, e, associando suoni a dei fonemi, si recita il testo abbastanza facilmente. Esistevano programmini TTS gia` 30 anni fa, che usavano lo speaker del PC, mentre le prime applicazioni del riconoscimento vocale di largo consumo le vediamo oggi, sugli smartphone. 
 
 

 vocale di largo consumo le vediamo oggi, sugli smartphone. 
 
Il mio collega sostiene che l'"enfasi" di una frase non è facilmente 
riproducibile ed è quello che fa aumentare (IMO all'infinito a questo 
punto) la complessità...


 punto) la complessità...
 
L'enfasi di una frase e` comunque parametrizzabile (Loquendo, per esempio, riesce a pronunciare frasi in maniera pressoche` indistinguibile da un umano basandosi sulla semplice punteggiatura). E` chiaro che le intenzioni con cui affermi qualcosa - e cosi` le intonazioni che dai alla frase - possono essere milioni di milioni, ma questo e` un problema di gran lunga piu` complicato per il riconoscimento vocale, che per il TTS.
 
 

4ndre4 in data 15/10/2015 11:06:31 disse:

Esattamente la mia tesi :D



 
A naso sicuramente la seconda. C'è in più la variabile del fornitore di 
'speech'. Io e te non parliamo allo stesso modo.
 
-- 
Ciao!
Luca
 

Luca Menegotto in data 15/10/2015 11:22:08 disse:

Il tipo che sostiene il contrario non ha la "R"... figurati :P



 
Condivido. Però io, te e il tuo collega, pronunciamo la stessa frase, 
con lo stesso significato, con tre enfasi differenti. Moltiplica questo 
per la popolazione italiana (volendo fermarci alla nostra lingua) e vedi 
che cosa vien fuori.
 
-- 
Ciao!
Luca


   Tecnicamente parlando il problema di fondo è la varietà dell'input. 
Nel caso del TTS si ha un testo preciso, unico e invariante, da dover 
elaborare e far pronunciare.  Nel secondo caso si deve invece tenere 
conto delle numerosissime varianti legate all'intonazione, pronuncia 
dialettale, caratteristiche glottologiche e fisiologiche dell'individuo 
che legge o pronuncia la frase ecc., che fanno si che l'applicativo STT 
debba eseguire non una trasformazione da-un-input-ad-un-output, ma da 
molti-input-equivalenti ad un output risultante.
 
 
   Ciao,
 
 
-- 
Alessandro Selli 
http://alessandro.route-add.net
 
AVVERTENZA: i messaggi inviati a "trappola" non mi arriveranno.
WARNING: messages sent to "trappola" will never reach me.

 molti-input-equivalenti ad un output risultante.
 
Esatto...


 volentieri :)
 
sono due "problemi" diversi: il primo è di associare un pattern di frequenze ad un determinato simbolo, il secondo è di associare un determinato simbolo ad un pattern di frequenze conosciuto solo in parte.  Nel primo caso, è conosciuto a priori sia il pattern di frequenze che i simboli. Nel secondo caso il pattern di frequenze ha incognite. Il secondo caso è un problema statistico di "classificazione", in cui c'è da individuare parametri statistici da un "training set" ed istruire un "classificatore". Il difficile sta nell'individuare i parametri statistici e nella scelta del training set. E tralasciamo considerazioni pratiche di rumore del segnale, che il riconoscitore vocale deve risolvere, mentre il sintetizzatore no.
 
Per far capire il concetto ai colleghi, basta dire: si è vero che hanno la stessa complessità, ma solo se il riconoscimento vocale è dalla voce di un sintetizzatore vocale di cui si conosce a priori il pattern di frequenze associate ai simboli ;-)
 

>>>>  
http://www.bb2002.it
 :)  <<<<<
........... [ al lavoro ] ...........

 si riusciva a farlo con il commodore 64 trent'anni fa...
 
S.A.M. Software Automated Mouth (o qualcosa di simile)
c'era anche l'articolo su MC Microcomputer...


 associate ai simboli ;-)
 
Bell'esempio :D


 c'è in giro roba free? quelli che ho trovato sono per l'inglese :(
 
ahimè non conosco... provo a vedere il collega incriminato :D


 
 
http://www.digitanto.it/mc-online/PDF/Articoli/031_102_103_0.pdf
 


 
http://www.digitanto.it/mc-online/PDF/Articoli/031_102_103_0.pdf
 
 
PErò! Interessante lettura "storica"



Veramente programmi di dettatura esistono da almeno 20 anni, dalle prime versioni di Dragon NaturalSpeak, ed anche altri. Sicuramente erano mooolto meno efficaci di quelli attuali, ad esempio serviva un addestramento da parte di chi l'avrebbe usato. Invece oggi con Android il riconoscimento è quasi immediato ed in varie lingue... Ops, più che Android bisogna dire coi mainframe o cluster di server di Google :-) Simili prestazioni sono probabilmente tuttora impossibili sul singolo pc stand-alone, peggio ancora sul telefonino.
 
 

Ops, più che Android bisogna dire coi mainframe o cluster di server di Google :-) Simili prestazioni sono probabilmente tuttora impossibili sul singolo pc stand-alone, peggio ancora sul telefonino.
 
Stai dicendo che il sistema S-Voice sul mio Samsung si collega al server Google per riconoscere quel che detto? (e che riconosce perfettamente)
 

4ndre4 in data 15/10/2015 16:51:03 disse:

Prova senza la connessione...


 Stai dicendo che il sistema S-Voice sul mio Samsung si
 > collega al server Google per riconoscere quel che detto?
 > (e che riconosce perfettamente)
 
Il mio SP, nel momento in cui non c'è la connessione dati, chiude 
qualsiasi possibilità di accesso vocale.
Il che posso anche capirlo, se si tratta di fare ricerche in internet; 
ma per un numero di telefono?!?
 
-- 
Ciao!
Luca
 
 
 

 Stai dicendo che il sistema S-Voice sul mio Samsung si collega al server Google per riconoscere quel che detto? (e che riconosce perfettamente)
 
Non ho uno sm.p. Samsung, e non so cosa sia S-Voice. Parlo del servizio Google di riconoscimento parlato e traduzione semi-istantanea in N lingue, disponibile su tutti gli sm.p. Android: quello è sicuramente basato sui server di Google (e non vedo come potrebbe essere stand-alone), e richiede la connessione .
Ciò non toglie che sia una meraviglia, pur con tutti gli errori che ancora fa.

 ma per un numero di telefono?!?
 
Evidentemente perchè uno s.p. non ha la capacità di calcolo e di memoria per  supportare un riconoscimento istantaneo pari a quello fatto tramite server remoto.
Magari ce la farebbe con un sistema anni 90 con addestramento, ma chi se lo comprerebbe un accrocco del genere.

 sul telefonino.
 
Quello che dici e' vero solo in parte. Provo a spiegare meglio, anche se ho solo pochi minuti. Allora, il problema del riconoscimento vocale si affronta con un approccio di machine learning, questo sia 20 anni fa col NaturallySpeaking che oggi con google. Come tutti i problemi di machine learning, c'e' una parte di training per individuare i parametri statistici ed una parte di classificazione. Mentre sto scrivendo ora, sto facendo una classificazione su un training set di 1000 samples (non e' audio, pero' il concetto e' lo stesso), e sto scrivendo questo post aspettando che finisca, altri 10 minuti, visto che il training set e' piccolino ;-) 
La parte del learning e' la piu' complessa e controversa, e serve molta potenza computazionale (quello che ho lanciato ora l'ho distributo su 20 nodi da 8 cores). Quando il learning e' finito, una volta individuati i parametri statistici, il classificatore ci mette poco ad individuare a quale classe appartiene un determinato sample che non e' nel training set, e questo processo puo' essere fatto anche sul telefonino. Se su android viene fatto in remoto e' probabilmente perche' non vogliono distribuire agli utenti il classificatore, immagino per non farlo usare a terzi. Ma puo' essere anche perche' la tua voce viene ri-utilizzata nel loro algoritmo di learning. La gente non ha idea di quello che possono fare con la gigantesca quantita' di dati che gli viene fornita ogni giorno ;-)
 
A dirla tutta (qstat mi da' il tempo di scrivere altre due linee :) il problema di speech recognition in realta' non e' particolarmente complesso, il riconoscimento puo' essere fatto usando le sole basse frequenze nelle trasformata di Fourier: frequenze dei lowpeak di ampiezza possono essere indicativi della lunghezza della parola in questione, e per refinire la ricerca si possono usare differenziali di fase alle basse frequenze. Sono veramente pochi cicli: nello spazio di Fourier basta una moltiplicazione (cross-correlation tra sample e classi di riferimento). Sicuramente useranno anche altri parametri, ma di certo non lo vanno a dire in giro ;-)
 

 volentieri :)
 
la terza che non hai detto: la comprensione dei concetti 
 
In America sono stati realizzati progetti di call-center con assistenti 
virtuali, in grado di gestire le chiamate con il cliente. Che poi è quello 
che fanno in misura ridotta anche gli smartphone
 
-- 
Massimiliano Adamo

 A dirla tutta (qstat mi da' il tempo di scrivere altre due linee :) il problema di speech recognition in realta' non e' particolarmente complesso, il riconoscimento puo' essere fatto usando le sole basse frequenze nelle trasformata di Fourier: frequenze dei lowpeak di ampiezza possono essere indicativi della lunghezza della parola in questione, e per refinire la ricerca si possono usare differenziali di fase alle basse frequenze. Sono veramente pochi cicli: nello spazio di Fourier basta una moltiplicazione (cross-correlation tra sample e classi di riferimento). Sicuramente useranno anche altri parametri, ma di certo non lo vanno a dire in giro ;-)
 
Mi sembra che la fai molto semplice, forse 20 anni di ricerca non sono propriamente passati invano :-)
Comunque il fatto che usino i nostri input vocali (ma anche nelle traduzione, ed altro) per alimentare i loro algoritmi e banche dati è cosa nota e pubblica.
Certamente c'è la volontà di mantenere in qualche modo "vincolati" gli utenti, tuttavia non penso che l'applicazione dell'algoritmo di classificazione (non il training) sia così estremamente leggera, sia per potenza di calcolo sia per memoria dove mantenere i dati del classificatore. Sempre parlando di riconoscimento *istantaneo* di qualunque voce, senza addestramento specifico, ed in molte lingue, e pure con traduzione. Aivoglia a classificatori da usare contemporaneamente :-)
In realtà vedevo che esiste qualche app stand-alone per smartphone per riconoscimento del parlato, senza necessità di connessione internet. Basta provare :-)

ispas in data giovedì, 15/10/2015 ha detto:

Quoto la meraviglia... detto messaggi come farei di persone :D


Max_Adamo in data giovedì, 15/10/2015 ha detto:

Beh quello è il passo successivo :)


 del parlato, senza necessità di connessione internet. Basta provare :-)
 
mi sarei stupito del contrario 

 si stava parlando del riconoscimento vocale, un problema alla volta, la lingua immagino venga selezionata dall'utente, e la traduzione è completamente un altro problema ;-)
 
Veramente se ci limitiamo al riconoscimento vocale avevo già scritto che è roba che esiste in commercio da almeno 20 anni  (immagino che  ricercatori e militari ce l'avessero anche prima). Pertanto sono d'accordo, non è cosa "troppo" difficile.
 E stavo rivedendo che si tratta del riconoscimento del parlato continuo, poichè quello a parole separate esisteva ancora prima (Dragon Dictate, ed altri).  Anche quella una meraviglia, ma negli anni 80 :-)
Se ricordo bene la lingua non viene selezionata, ma è automatica.  
 
 
 

 ha scritto nel messaggio 
news:mvp212$m7h$1...@dont-email.me...

Se dai un'occhiata a Ibm Watson in Jeopardy
 
es.
https://www.youtube.com/watch?v=WFR3lOm_xhE
 
 
vedrai  che ha la capacità non solo di ascoltare
(nella fattispecie le domande fatte da un conduttore televisivo)
ma anche di capire il senso della  domanda
e rispondere esattamente,
il tutto a  velocità sovrumana ...: -)
 
ciao
fm 
 
 

fm in data 16/10/2015 09:14:14 disse:

In pausa me lo guardo volentieri :D


 Veramente programmi di dettatura esistono da almeno 20 anni, 
 
 
facciamo a capirci, invece di puntualizzare per il gusto di puntualizzare:
- su linux il text-to-speech lo fai con programmi da 50kB
- i navigatori hanno prima imparato a parlare e adesso solo alcuni
  navigatori accettano comandi. TomTom ad esempio, in Italiano ancora 
  non accetta comandi. 
 

MaxAdamo wrote on 16/10/15 14:06:

Siri su iOS sì! e se le chiedi "strada per casa di Gino" ti ci porta.
 
A proposito di Siri, ditele "sbiriguda come fosse antani" e sentite la risposta :D
 
Gabriele
 

 Se ricordo bene la lingua non viene selezionata, ma è automatica.
 
Purtroppo ricordavo male. Il rilevamento automatico della lingua in Google Translate avviene solo con il testo scritto, non con la dettatura.
 

Translate avviene solo con il testo scritto, non con la dettatura.
 
Ha senso.
 
...basta sentire come parla un inglese di Oxford e come parla un Texano ... 
:-)
 
ciao
fm
 
 
 

 :-)
 
Oggi è così (e non è poco), tra qualche anno anche questo limite sarà superato.
A parte il fatto che, secondo quanto dici, Translate sarebbe incapace di capire e tradurre ciò che dice uno dei due tra l'oxfordiano ed il texano, anche se gli indichi prima che parlano inglese. 
Può essere, io sono già stupito che dico una frase qualunque in (pessimo) inglese ed istantaneamente me la traduce e pronuncia in italiano. Cosa che "solo" qualche decennio fa vedevo in Start Trek e Spazio 1999! :-))
 

 Oggi è così (e non è poco), tra qualche anno anche questo limite sarà superato.
 
Non c'e` nessun "limite". Se un texano detta al suo smartphone, lo smartphone trascrive tranquillamente il suo AmE. Se un oxonian detta al suo smartphone, lo smartphone trascrive tranquillamente il suo BrE. E, quindi, il sistema e` GIA` in grado di discriminare.

 ha scritto nel messaggio 
news:e9964991-6ba7-43aa...@googlegroups.com...

Un episodio di  2001 Odissea nello spazio  :
 
Gli astronauti si erano chiusi nelle loro tute spaziali,
credendo, in questo modo, di non  essere uditi da HAL 9000.
 
In effetti HAL non sentiva
  ma ha subito imparato a leggere sulle labbra ...  :-)))
 
Il film e' del 1968.
 
ciao
fm
 
 

 Il film e' del 1968.
 
Certo, lo ricordo bene. Bel film!
 

 'speech'. Io e te non parliamo allo stesso modo.
 
Tu stesso non parli nello stesso tuo modo. :)
 
La stessa frase/parola/sillaba la puoi pronunciare in 50 modi diversi.
 
Ciao,
 


gli studenti e professori di oxford provengono dai quattro angoli del globo.
 
gli accenti piu' comuni sono quelli indo-pakistani e estremo-orientali.