Sonic wrote:Ciao a tutti, Sono veramente incuriosito dal modo in cui il robot aries riconosce i comandi che le persone pronunciano e da come parla.
In giro sulla rete ho visto qualcosa a proposito di riconoscimento e sintesi vocale ma mai avevo visto qualcosa di così
sorprendente e soprattutto in italiano.
Avrei alcune domande da porre:
1) Che tipo di software o hardware è stato usato ?
2) La voce del robot è registrata o cosa ?
3) Quante parole conosce il robot ?
4) Quante frasi può dire il robot ?
5) E' possibile implementare il software su robot più piccoli
tipo quelli che si costruiscono per la Robocup ?
Mi piacerebbe sapere qualcosa a proposito e grazie in anticipo.
Caro Sonic, intanto ti do il benvenuto al forum, e sono lieto di darti qualche delucidazione a proposito del sistema di sintesi e riconoscimento adottato sul robot ARIES.
Per un buon sistema di sintesi e di riconoscimento vocale è necessario innanzitutto un pc abbastanza potente con molte risorse in termini di memoria ram e velocità di della CPU specie se devono girare contemporaneamente applicazioni varie tipo : sintesi e riconoscimento vocale + visione artificiale + analisi di mappe e pianificazione del moto del robot, come nel caso di ARIES.
Il software implementato sul robot ARIES è stato sviluppato in C++ , sono state generate e compilate librerie DLL per poter essere utilizzate anche in altre applicazioni e con linguaggi vari, tipo VisualBasic, C#, C, C++.
La voce del robot, anche se di ottima qualità e con un alto grado di intellegibilità, non è campionata o registrata ma è sintetizzata in tempo reale per mezzo di un software appositamente sviluppato a cui abbiamo dato un nome: "
Advanced
Algorithm for
Text
To
Speech
Synthesis" = A2T2S2 = ATS quadro.
Il robot può pronunciare qualsiasi parola della lingua italiana e non solo poichè il software esegue una conversione in tempo reale del testo in sintesi-audio.
Chiaramente per farlo parlare in altre lingue è necessario precaricare le librerie specifiche per la lingua selezionata.
Per quanto riguarda il riconoscimento vocale, esso è basato essenzialmente su due diversi tipi di Features: LPC (Linear Predictor Coding) e Cepstra Coefficients legati a due
sistemi di classificazione : Dynamic Programming e Hidden Markov Models (HMM).
Ti dico comunque, anche se molto difficile, è possibile utilizzare questa tecnica su robot più piccoli dotati di sistemi embedded basati su microcontrollori ARM7 su cui deve girare un kernel di sistema operativo.
Due introduzioni di base sulla Sintesi e sul Riconoscimento vocale sono consultabili al seguente indirizzo:
NB. Per la consultazione è consigliabile l'uso di Internet Explorer.
http://www.delucagiovanni.com/files/Sintesi%20Vocale_file/frame.htmhttp://www.delucagiovanni.com/files/Speech%20Recognition_file/frame.htm