martedì 4 ottobre 2016

Come funziona il riconoscimento vocale di Google

  
 
Long short-term memory units, da Wikipedia in lingua inglese
Le attività di Google nel settore delle interfacce vocali e delle tecnologie del linguaggio si stanno intensificando. Oggi pomeriggio è previsto che Google presenti un nuovo prodotto hardware, Google Home, direttamente rivolto a contrastare Alexa di Amazon. Dal mio punto di vista (al di là delle ovvie questioni di privacy), mi chiedo soprattutto se Google Home supporterà l’italiano: Alexa funziona solo in inglese.
 
Su un altro piano, 2016 Google ha iniziato a introdurre un nuovo sistema di traduzione automatica. Il nuovo sistema, GNMT, si basa su reti neurali e per la traduzione tra inglese e cinese mandarino ha già sostituito il precedente sistema, basato – come tutti quelli per altre coppie di lingue – sulla statistica; il miglioramento di prestazioni dichiarato arriva quasi al 60% (annuncio; articolo completo). Anche qui, sono curioso di vedere se è vero… ammesso che il sistema arrivi a coprire presto l’italiano.
 
Le reti neurali sono state però usate da tempo, sembra, in un tassello chiave di questo blocco di tecnologie, il riconoscimento vocale. Google incorpora i servizi di riconoscimento vocale nei propri prodotti e contemporaneamente li commercializza attraverso Google Cloud Speech API (in concorrenza con Nuance). Dal punto di vista tecnico, sembra che il riconoscimento vocale di Google impieghi reti neurali già dal 2012. Qualche dettaglio sul funzionamento del sistema è stato fornito l’anno scorso in un post del Google Research Blog; sintetizzo qui di seguito i contenuti fondamentali, ma tutto il post va letto con attenzione.
 
Google ha iniziato a supportare i servizi vocali nel 2009, usando come modello acustico il Gaussian Mixture Model (GMM), rafforzato con altre tecniche. Dal 2012 ha iniziato a usare le Recurrent Neural Networks (RNNs), e in particolare un’architettura proposta nel 1997 e chiamata LSTM RNNs (“Long Short-term Memory Recurrent Neural Networks”). Quest’ultima è, credo, lo strumento usato ancora oggi – per tutte le lingue, incluso l’italiano? Probabilmente sì, ma non ho trovato informazioni più specifiche.
 
Le reti neurali richiedono allenamento, e i corpora usati per altre attività di elaborazione del linguaggio non aiutano molto, perché sono composti soprattutto di testi scritti, molto lontani dall’uso parlato normale. Google ha quindi chiesto la donazione volontaria di grandi raccolte di posta vocale (“voicemail”) e su queste ha poi condotto l’elaborazione in un modo che non mi torna del tutto chiaro (usando una “delicate iterative pipeline”, si dice… ma come sono stati valutati, esattamente, i risultati?). Il processo, si dichiara, ha prodotto grandi miglioramenti e ha permesso addirittura di arrivare all’inserimento della punteggiatura nei testi – cosa che per l’italiano non ho ancora visto.
 
Google dichiara che l’architettura LSTM RNNs funziona attraverso “discriminative training,” differenziando le unità fonetiche invece di modellarle in modo indipendente (“differentiating phonetic units instead of modeling each one independently”). Non ho approfondito il discorso e non sono in grado di valutare l’osservazione, ma parto dal presupposto che le cose stiano così. Dopodiché, arriva il momento di valutare quanto nella pratica il sistema funzioni per l’italiano.
 

Nessun commento:

Posta un commento