Riconoscimento vocale v1.4

Post on 17-Jan-2017

125 views 3 download

Transcript of Riconoscimento vocale v1.4

RICONOSCIMENTO VOCALEStoria – Analisi – Metodologie

SpeechRecognition 2.2.0

Lombardi Felice (fxlombardi@gmail.com)

CENNI STORICI

I primi tentativi di riconoscimento vocale vengono effettuati negli anni 50 negli Stati Uniti, con lo scopo di realizzare sistemi controllabili con la voce.

I maggiori finanziatori della ricerca in questo campo furono la NSA (National Security Agency) e il dipartimento della difesa.

I PRIMI TENTATVI

1952 – AUDREY • Il primo riconoscitore vocale conosciuto e documentato

• Costruito nel 1952 da Davis, Biddulph, e Balashek nei Bell Laboratories

• Completamente analogico

• Riconosceva stringhe di numeri dettate con pause di 350 millisecondi tra un numero e l’altro.

• Arrivava anche al 97-99% di precisione

Alla luce di questi primi successi, perché se non fu sfruttato?Non erano economicamente interessante. AUDREY occupava un rack alto 1,8 metri, era costoso, consumava troppa energia ed era esposto a una miriade problemi associati ai circuiti a valvole.Inoltre, il suo funzionamento era affidabile solo se a pronunciare le cifre erano alcuni oratori designati.

COSA ACCADE DOPO AUDREY?

Inizi 1960 - Esplorazione, sistemi ibridi, la segmentazione fonetica

Fine 1960 - Approccio bruta forza, i modelli: FUNZIONA! Difficile da scalare

Inizi 1970 - Primo grande progetto ARPA, Speech Understanding Research (SUR)

Fine 1970 - Prima apparizione del Hidden Markov Models (HMM): IBM (Jelinek), Baker (Dragon)

Inizi 1980 - Nascono ulteriori modelli, l’HMM è ancora conosciuto da pochi

Fine 1980 - Nuovi progetti DARP, l’HMM diventa popolare

Inizi 1990 - Altri progetti DARPA, HMM migliora.

Metà 1990 - Migliora HMM. Nascono le industrie (Nuance, SpeechWorks)

Fine 1990 - Migliora HMM. IVR

Inizi 2000 - Migliora HMM. IVR

Inizi 2010 - Migliora HMM. Voice MobileMIGLIORAMENTI

Soprattutto a causa diLegge di Moore

OGGI

2011– SIRI • Vocabolario praticamente infinito

• Comprensione del linguaggio contestuale

• Accesso vocale per il calendario, ai contatti, contribuisce a prendere prenotazioni.

Dà risposta su un sacco di cose, tra cui al «senso della vita»!

OGGI

2011– SIRI • Vocabolario praticamente infinito

• Comprensione del linguaggio contestuale

• Accesso vocale per il calendario, ai contatti, contribuisce a prendere prenotazioni.

Dà risposta su un sacco di cose, tra cui al «senso della vita»!

Perché Siri ha successo?Si percepisce un’intelligenza. Risulta divertente da utilizzare, spiritoso, e con una personalità accattivante. Funziona relativamente bene per un certo numero di compiti.

MIGLIORA CON IL TEMPO

OGGI

SiriApple 2011

Google NowGoogle 2012

CortanaMicrosoft 2014

OGGI

SiriApple 2011

Basato su un tipo di interfaccia uomo-macchina chiamata

Natural Language User Interface

Google NowGoogle 2012

OGGI

Google Now si appoggia a una Rete Neurale Artificiale, una sorta di software-cervello progettato affinché possa imparare a riconoscere oggetti, immagini, volti, e naturalmente, linguaggi parlati.

Una rete neurale artificiale è sostanzialmente un modello matematico costituito da diversi costrutti interconnessi che mimano l’architettura di connessioni di una rete neurale biologica.

DIPENDENTE O INDIPENDETE?

Speack Dependent

• Il modello vocale viene adattato alla voce dell’utente

• Prevede una fase di addestramento in cui viene chiesto all’utente di leggere un testo con voce e velocità naturali

• Permettono migliori risultati in termini di precisione

• Permettono di correggere errori di interpretazione usando solo funzioni vocali

• Gli algoritmi su cui sono basati, provvedono che venga tenuta traccia delle correzioni, per consentire di imparare dagli errori

I sistemi di riconoscimento vocale si dividono in due categorie:

DIPENDENTE O INDIPENDETE?

Speack Dependent

• Il modello vocale viene adattato alla voce dell’utente

• Prevede una fase di addestramento in cui viene chiesto all’utente di leggere un testo con voce e velocità naturali

• Permettono migliori risultati in termini di precisione

• Permettono di correggere errori di interpretazione usando solo funzioni vocali

• Gli algoritmi su cui sono basati, provvedono che venga tenuta traccia delle correzioni, per consentire di imparare dagli errori

Speack Indipendent

• Permettono il riconoscimento di un parlato generico, senza essere legati ad un determinato timbro di voce

• Oggi è il mezzo di riconoscimento vocale più utilizzato

• Utile anche nelle realtà di servizi di informazione automatica dove tramite telefono ci viene chiesto di rispondere ad alcune domande

• Offrono buoni risultati in situazioni in cui all’utente viene dato un numero più ristretto di termini da poter utilizzare

• Hanno bisogno di una grande potenza di calcolo per essere performanti

I sistemi di riconoscimento vocale si dividono in due categorie:

IL DATABASE

Speack Dependent

• Possono riconoscere correttamente oltre cento parole al minuto confrontando quello che viene detto con un vocabolario di almeno 200.000 lemmi.

• Un PC riesce a compiere questa operazione in tempo reale, in background

Speack Indipendent

• È necessario “insegnare” al sistema tutti i modi diversi in cui ogni singola parola può essere pronunciata.

• Non potendo effettuare il training sul parlatore, la complessità si sposta verso il database che diventa molto grande e oneroso da costruire.

Il funzionamento di un sistema di riconoscimento vocale si basa sulla comparazione dell’audio iningresso, opportunamente elaborato, con un database creato in fase di addestramento delsistema. • Si cerca di individuare la parola pronunciata dal parlatore, cercando nel database un suono simile

e verificando a che parola corrisponde.

Operazione risulta essere molto complessa, perché non viene fatta sulle parole intere, ma sui fonemi che la compongono.

COME FUNZIONA IL RICONOSCIMENTO VOCALE

1. Trasformazione dei dati audio dal dominio del tempo al dominio della frequenza tramite FFT (Fast Fourier Transform)

2. Organizzazione dei dati ottenuti (tramite l’applicazione delle regole e del dizionario fonetico di una lingua)

3. Riconoscimento dei singoli fonemi

4. Composizione dei fonemi in parole e applicazione di un modello linguistico caratteristico della lingua in uso

FAST FOURIER TRANSFORM

Nel dominio del tempo il segnale audio si presenta come una forma d’onda periodica di frequenza in un formato in cui le informazioni non permettono di individuare un pattern.

La conversione:La conversione avviene realizzando una analisi di spettro del segnale identificando le frequenze che compongono i suoni.La FFT è applicata in un segmento di audio ricavando un grafico con l’ampiezza di ogni singola frequenza che compone il suono. Il Database è costituito da migliaia di grafici.

FAST FOURIER TRANSFORM

I PROBLEMI DEL RICONOSCIMENTO VOCALE

Il sistema ricava dalla FFT dei valori dai quali viene calcolato un feature number.

Il FEATURE NUMBER è un numero che rappresenta il suono nel centesimo di secondo in esame.

In una ipotesi ideale, ci sarebbe una corrispondenza diretta tra un feature number e un fonema. Quindi se il segmento di audio analizzato mostrasse come risultato il feature number n° 52 significherebbe che il parlatore ha pronunciato una “h”

N.B.: Un fonema dura più di un centesimo di secondo perciò ogni fonema produce più feature number.

I problemi legati al riconoscimento vocale sono:• Persone differenti, pronunce differenti (mai stesso suono per lo stesso fonema);• I rumori di fondo, la musica e gli altri suoni sono elementi di disturbo;• Il suono di ogni fonema cambia a seconda del fonema precedente.

I PROBLEMI DEL RICONOSCIMENTO VOCALE

Esempio di un piccolo DB contenente Feature Audio alle quali sono assegnati dei Feature Number.

REALIZZAZIONE RICONOSCITORE

Passi per realizzare un riconoscitore:• Istituire il software su come suona un fonema nelle varie pronunce;

• Il sistema memorizza migliaia di feature number per ogni fonema.

• Il software apprende una serie di dati statistici (quante probabilità ci sono che un determinato fonema generi una certa sequenza di feature number); questa analisi è usata nella fase di riconoscimento. I computer si affidano all’ «Hidden Markov Model»

HIDDEN MARKOV MODEL (HMM)

Che cos’è?

• Modelli statistici che si possono applicare a sistemi che presentino la proprietà di Markov.

• Un sistema presenta tale proprietà quando gli stati che può assumere in futuro dipendono solo dallo stato presente e non dagli stati passati.

Quando viene usato?

• Per modellizzare una grossa matrice di fonemi, collegati tra di loro da ponti in base alle probabilità che un fonema sia legato all’altro.

• Per sapere quando un fonema finisce e inizia il successivo

HIDDEN MARKOV MODEL (HMM)

Questo modello prevede la pronuncia della parola in tre modi diversi:

t-ow-m-aa-t-ow → Inglese Britannicot-ah-m-ey-t-ow → Inglese Americanot-ah-m-ey-t-a → Possibile pronuncia quando si parla rapidamente.

Si noti, dalle probabilità attribuite alle connessioni tra i fonemi, come il modello risulta essere leggermente sbilanciato verso il l’inglese britannico.

Esempio di HMM applicato alla pronuncia della parola inglese «Tomato»

IL SILENZIO

Un software di riconoscimento vocale sfrutta anche le pause del parlato per identificare l’inizio di un nuovo fonema, inoltre si occupa di analizzare in fonema “silenzio”.

Le pause del parlato vengono anche sfruttate per prendere dei “campioni” del rumore di fondo e del fruscio che generano pattern di feature number, esattamente come il resto dell’audio.

Queste sequenze di dati vengono usate dal software per “depurare” l’informazione sonora dal pattern di rumore così ricavato.

IL SILENZIO

Un software di riconoscimento vocale sfrutta anche le pause del parlato per identificare l’inizio di un nuovo fonema, inoltre si occupa di analizzare in fonema “silenzio”.

Le pause del parlato vengono anche sfruttate per prendere dei “campioni” del rumore di fondo e del fruscio che generano pattern di feature number, esattamente come il resto dell’audio.

Queste sequenze di dati vengono usate dal software per “depurare” l’informazione sonora dal pattern di rumore così ricavato.

IL SILENZIO

Un software di riconoscimento vocale sfrutta anche le pause del parlato per identificare l’inizio di un nuovo fonema, inoltre si occupa di analizzare in fonema “silenzio”.

Le pause del parlato vengono anche sfruttate per prendere dei “campioni” del rumore di fondo e del fruscio che generano pattern di feature number, esattamente come il resto dell’audio.

Queste sequenze di dati vengono usate dal software per “depurare” l’informazione sonora dal pattern di rumore così ricavato.

SpeechRecognition 2.2.0Libreria per eseguire il riconoscimento vocale con le API di Google riconoscimento vocale.

API GOOGLE

A proposito di Riconoscimento Vocale, ad oggi Google mette a disposizione degli sviluppatori una serie di API che consentono di accedere al suo servizio di riconoscimento vocale in maniera facile e intuitiva.

Accedere al servizio di Riconoscimento Vocale di Google significa avere un’accuratezza di risultato pari al 96% e inoltre usufruire di un servizio Speack Indipendent basato su Reti Neurali Artificiali.

Queste API sono sfruttate dalla libreria SpeechRecognition 2.2.0. Questa libreria mette a disposizione dello sviluppatore una serie di metodi che permettono rispettivamente:• Cattura di frasi avendo come input un microfono• Cattura di frasi avendo come input un file audio• Analisi e riduzione del pattern rumore• Ascolto in backgroud

INTENZIONE…

Mi chiamoFelice

INTENZIONE…

Mi chiamoFelice

PRODOTTO

Utilizzando la libreria descritta si è messo in piedi un software privo di una GUI vera e propria, che permette all’utente di eseguire le

4 operazioni matematica (addizione, sottrazione, moltiplicazione, divisione)semplicemente utilizzando la propria voce.

PRODOTTO - Requisiti

Necessita di:• Pyton 3.0 o maggiori• Libreria SpeechRecognition 2.1.3 o maggiori (https://pypi.python.org/pypi/SpeechRecognition/2.1.3)• Libreria PyAudio 0.2.8 o maggiori (https://pypi.python.org/pypi/PyAudio)

Fa uso di:• Un dispositivo di input vocale• Una connessione a Internet per raggiungere il Server

VocalCalculator v1.2

VocalCalculator v1.2

VocalCalculator v1.2

VocalCalculator v1.2

VocalCalculator v1.2

VocalCalculator v1.2

VocalCalculator v1.2

VocalCalculator v1.2

VocalCalculator v1.2

VocalCalculator v1.2

VocalCalculator v1.2

I MEDOTI DELLE LIBRERIE UTILIZZATI IN VocalCalculator v1.2

adjust_for_ambient_noise(source)listen(source)recognize(audio)

PARAMETRI DA SETTERE ALL’INTERNO DELLA LIBRERIAlanguage = "it-IT" #linguaggio da riconoscereself.format = 16 #codifica a 16 bitself.RATE = 16000 #frequenza di campionamento in Hertzself.CHANNELS = 1 #mono audio

BITRATE = 256 000 bytes (bps) = 256 kilobytes per secondo (kbps)

LINK

Apri SorgenteVocalCalcolator v1.2

Speack Indipendent: I METODI

Speack Indipendent: I METODI

VocalCalculator v1.2 – BUSINESS CORE

VocalCalculator v1.2 – BUSINESS CORE