Domanda

Sono davvero interessato agli algoritmi di sintesi vocale, ma non sono sicuro da dove iniziare a studiarli.Un sacco di ricerche in giro mi hanno portato a Questo, ma è del 1996 e sono abbastanza certo che da allora ci siano stati dei miglioramenti.

Qualcuno che ha esperienza con questo genere di cose ha qualche consiglio per la lettura/codice sorgente da esaminare?O semplicemente un consiglio generale su cosa dovrei cercare di imparare se voglio entrare nel mondo della scrittura di programmi di riconoscimento vocale (a volte è difficile sapere cosa cercare se non hai molta conoscenza del dominio).

Modificare:Mi piacerebbe fare qualcosa multipiattaforma, ma per il momento mi concentrerei su Linux.

Modifica 2:Grazie csmba per la risposta ben ponderata.In questo momento mi interessa principalmente riuscire a creare applicazioni che consentano l'automazione o l'esecuzione di diversi comandi tramite la voce.Quindi, è possibile mettere insieme un numero limitato di comandi riconoscibili.Un esempio potrebbe essere un lettore musicale che accetta comandi come "Riproduci l'album Hello Everything di Squarepusher" o un lanciatore di applicazioni che consenta all'utente di creare scorciatoie vocali per avviare app specifiche.

Mi rendo conto che si tratta di un problema piuttosto gigantesco e che non ho neanche lontanamente il livello di conoscenza richiesto in questo momento per affrontare l'implementazione di un intero motore di riconoscimento, anche se le tecniche coinvolte in questo mi affascinano ed è qualcosa su cui mi piacerebbe lavorare me stesso pronto a fare.Con ogni probabilità, probabilmente finirò per prendere uno o due libri sull'argomento e studiare / giocare con implementazioni "semplici" nel mio tempo libero.

È stato utile?

Soluzione

Questa è una domanda ENORME, non saprei come iniziare...Quindi lasciami provare a darti i "termini" giusti in modo che tu possa perfezionare la tua ricerca:

Innanzitutto, comprendi che il riconoscimento vocale è un argomento diverso e complicato e ha molte applicazioni diverse.Le persone tendono a mappare questo dominio sulla prima cosa che gli viene in mente (di solito, sarebbero i computer che capiscono quello che stai dicendo come nei sistemi IVR).Quindi per prima cosa distinguiamo il concetto nelle categorie principali:

Uomo-macchina: Applicazioni che riguardano la comprensione di ciò che un essere umano sta dicendo, ma l'umano sa che sta parlando con una macchina e il grammatica è molto limitato.Gli esempi sono

  • Automazione informatica
  • Specializzato:I piloti automatizzano alcuni controlli, ad esempio (il rumore è un grosso problema)
  • Sistemi IVR (Interactive Voice Response) come Google-411 o quando chiami la banca e il computer dall'altra parte dice "dì 'servizio' per ottenere il servizio clienti"

da uomo a uomo (Discorso spontaneo):Questo è un problema più grande e più complesso.Qui possiamo anche scomporlo in diverse applicazioni:

  • Call center:conversazione Agente-Cliente, qualità telefonica, compressa
  • Intelligenza:conversazioni radio/telefoniche/dal vivo tra 2 o più individui

Ora, Speech-To-Text non è ciò che dovresti dire che ti interessa.Ciò che ti interessa è risolvere un problema.Tecnologie diverse vengono utilizzate per risolvere problemi diversi.Visualizza una panoramica Qui di alcuni di essi.per riassumere, altri approcci sono la trascrizione fonetica, LVCSR e la base diretta.

Inoltre, sei interessato a diventare il dottorato di ricerca dietro la tecnologia?avresti bisogno di un equivalente di Master che coinvolga Elaborazione del segnale e probabilmente un dottorato di ricerca per essere all'avanguardia.In tal caso, lavorerai per un'azienda che sviluppa l'attuale motore del parlato.Aziende come Nuance e IBM sono le più grandi, ma esistono anche Phillips e altre startup.

D'altra parte, se vuoi essere tu a implementare le applicazioni, non lavorerai sul motore, ma lavorerai sulla creazione di applicazioni che UTILIZZANO il motore.Una buona analogia penso sia quella con l'industria dei giochi:Stai sviluppando il motore grafico (come il motore Cry) o stai lavorando su diverse centinaia di giochi che utilizzano tutti lo stesso motore grafico?

Non fraintendetemi, c'è molto da lavorare sulla qualità della ricerca anche al di fuori del mondo IBM/Nuance.Il motore è solitamente molto aperto e ci sono molte modifiche algoritmiche da apportare che possono influire notevolmente sulle prestazioni.Ciascuna applicazione aziendale presenta vincoli e funzioni di costo/benefici diversi, pertanto è possibile effettuare esperimenti per molti anni costruendo applicazioni migliori basate sul riconoscimento vocale.

un'altra cosa:in generale, vorrai anche avere un buon background statistico quanto più basso nello stack vuoi essere.

In questo momento mi interessa principalmente poter creare applicazioni che consentano l'automazione

Bene, stiamo convergendo qui...Allora non sei interessato a "Speech-to-Text".Queste parole d'ordine ti portano nel mondo della trascrizione completa, un posto in cui non è necessario andare.Dovresti concentrarti su alcune delle tecnologie Human-to-Machine come Voice XML e quelle utilizzate nei sistemi IVR (Nuance è il più grande attore lì)

Altri suggerimenti

Consiglio vivamente di ritirare un libro o due se sei nuovo nel campo.Non ho esperienza nel settore quindi non posso dare consigli.Se sei ancora al college (o hai ancora legami stretti), dovresti scoprire se qualcuno dei tuoi professori può darti una raccomandazione.

Anche il sondaggio che hai collegato è probabilmente un'ottima risorsa.Sono sicuro che ci siano stati progressi dal 1996, ma è improbabile che le basi siano cambiate radicalmente.Se il sondaggio è ben scritto, varrebbe la pena dedicare del tempo a leggerlo.

Per OS X dai un'occhiata a questo: Tecnologie vocali OS X

Per Windows dai un'occhiata a questo: API vocale Microsoft

Ho lavorato con Prodotto ViaVoice di IBM.Ha un buon motore ASR (riconoscimento vocale automatizzato) e un buon motore di sintesi vocale.

I siti Web non sono molto buoni, ma questo è un collegamento per la versione incorporata http://www-01.ibm.com/software/voice/support/

Tuttavia è indipendente dalla piattaforma e tutto funziona tramite un'architettura MVC utilizzando vxml, una variante di xml per scopi vocali.

A quale piattaforma ti rivolgi?C'è API vocali Microsoft che puoi usare se è per Windows.

C'è anche il Servizio di riconoscimento vocale per Android.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top