La Tecnologia di Riconoscimento Vocale

Nel corso degli ultimi anni, abbiamo assistito al decollo definitivo delle tecnologie basate sulla sintesi e sul riconoscimento vocale. Originariamente proposte per le applicazioni desktop, oggi in forte espansione nei servizi di telefonia e di rete in generale. La tecnologia vocale consta sostanzialmente di due tecnologie distinte: il riconoscimento vocale ASR ( Automatic Speech Recognition ) e la sintesi vocale TTS ( Text To Speech ).
La prima tecnologia permette il riconoscimento del parlato dell’utente tramite un microfono, mentre la seconda il parlato della macchina all’utente. Molti fattori in questi ultimi anni hanno contribuito alla definitiva maturazione di questa tecnologia e gli elementi più importanti di questo cammino di crescita sono:

  • Riconoscimento Vocale Continuo invece di Discreto – Fino a pochi anni fa era necessario scandire bene le parole dettate, già però nel 1993 un importante centro di ricerca Italiano, l’IRST, aveva prodotto il primo motore di riconoscimento vocale continuo in lingua Italiana.
  • Sintesi Vocale Avanzata – I sistemi di sintesi vocale non hanno più quella metallicità che li caratterizzava fino a pochi anni fa. I nuovi motori sono definiti come “segni sopra segmentali” e la prosodia, cioè le intonazioni, sono ora molto umane.
  • Disponibilità Risorse Hardware – La tecnologia vocale è fortemente “resource consuming”. Ha bisogno di rilevanti risorse di memoria e soprattutto velocità della CPU. Oggi questo muro è stato superato notevolmente e quindi con i computer attuali è possibile far funzionare benissimo queste tecnologie vocali.
  • Superamento della dipendenza dell’utente dal training dei motori – Fino a poco tempo fa si doveva addestrare il software di riconoscimento vocale per molto tempo, oggi quei tempi si sono notevolmente ridotti fino a circa 10 minuti di addestramento.
  • Superamento dei microfoni close talk – Tempo addietro era necessario fornirsi di costosi microfoni adatti alla dettatura di tipo headset, oggi basta acquistare una videocamera con microfono per avere un ottimo strumento anche con pochi euro di spesa.

Il motore ASR, quindi quello per il riconoscimento vocale, è il più complesso. Riconoscere le parole pronunciate, infatti, è un’operazione estremamente articolata e consiste nell’analisi statistica del segnale in uscita dal microfono. Esistono sostanzialmente due tipi di riconoscimento vocale: per comando e per dettatura.
Il riconoscimento vocale per comando è il più semplice dei due e comporta una minore utilizzazione di risorse. In questo caso l’utente può pronunciare soltanto un insieme limitato di parole e viene utilizzato per l’interazione dell’utente con gli applicativi. Oggi questo tipo di riconoscimento vocale è indipendente dall’utilizzatore e quindi non si ha bisogno affatto di apprendimento da parte del motore. Il riconoscimento vocale per dettatura libera invece ha bisogno di maggiori risorse di sistema ed ha anche un maggior tasso di errore, che diminuisce in base al tempo utilizzato per addestrare il motore di riconoscimento.
La sintesi vocale è un processo certamente più semplice e del tutto indipendente dall’utente. Il parametro più importante da tenere in considerazione in questo caso, è la somiglianza della voce rispetto a quella umana e quindi alla sua comprensione e naturalezza. I motori di sintesi più recenti si sono ormai allontanati da quella metallicità che li caratterizzava fino a pochi anni fa. Questi risultano oggi molto comprensibili, non affaticanti e molto simili alla voce umana, grazie all’implementazione della prosodia, la musicalità e le variazioni di tono e di cadenza della voce.
Il campo di applicazione di queste tecnologie è molto ampio, si va dai semplici servizi di rete ai programmi di automazione di ufficio fino alla demotica. Noi di RGPSoft siamo da tempo molto attenti all’evoluzione di queste applicazioni ed in futuro vorremmo implementare tali servizi di riconoscimento vocale anche all’interno dei nostri software gestionali, ma il problema più grande fino ad ora si è manifestato con il dover far acquistare la licenza del motore di riconoscimento vocale, quindi vorremmo creare dei moduli acquistabili a parte per coloro i quali necessitano di tali strumenti. In passato ho creato personalmente un applicativo molto semplice che utilizzando il motore di Microsoft SAPI ( Speech Application Programming Interface ) con gli Agents di Microsoft, permetteva di far colloquiare un bambino con l’applicativo per lo studio dell’alfabeto. Se volete potete scaricare i sorgenti in formato C++ del programma “Paroliamo” in questa pagina, occorre però installare un ASR in Italiano come ViaVoice e un TTS come quello di Microsoft Agents.

Informazioni su Giampaolo Rossi

Sviluppatore di software gestionale da oltre 28 anni.
Questa voce è stata pubblicata in Programmazione. Contrassegna il permalink.