Crea il computer di bordoper la tua astronaveCristian Magliec.maglie@bug.sthttp://bug.st/Arduinohttp://arduino.cc/
Notizie sullautore• Programmatore freelance• Entusiasta utilizzatore di tutte le tecnologie open-  source• Appassionato di...
Introduzione                                        Cristian Maglie    3           c.maglie@bug.st – Arduino (http://ardui...
Interfacce utente• Dispositivo fisico o virtuale che permette la  comunicazione tra due o più entità di tipo  diverso• Sch...
Schermi Piatti                                              Cristian Maglie    5                 c.maglie@bug.st – Arduino...
Touch Screen                                            Cristian Maglie    6               c.maglie@bug.st – Arduino (http...
Cellulare                                         Cristian Maglie    7            c.maglie@bug.st – Arduino (http://arduin...
Tablet                                      This iPad                                    Is wonderful!                    ...
Interfacce        (come siamo abituati a vederle)            Tastiera            MonitorINPUT                             ...
Evoluzione delle interfacce• Tende ad aumentare lintimità tra utente e  macchina• Linterfaccia del futuro sarà eterea: lut...
Cristian Maglie    11c.maglie@bug.st – Arduino (http://arduino.cc)
Riconoscimento Vocale                                            Cristian Maglie    12               c.maglie@bug.st – Ard...
Interfacce        Tastiera              MonitorINPUT                                                          OUTPUT      ...
InterfacceINPUT           Speech                                                                       OUTPUT             ...
Comando vocale•   Problemi di sicurezza e identificazione•   Comandi errati o falsi riconoscimenti•   Rumore o voci sovrap...
Riconoscimento vocale•   Android / Google API•   iPhone•   Vbot•   CMU Sphinx                                             ...
Speech Input API (Android)É la libreria sviluppata da google perfornire i dispositivi Android delriconoscimento vocale.   ...
Speech Input API (Android)  PRO• Riconoscimento vocale: ottimo• Sintesi vocale: buona, migliorabile in alcuni casi• Locali...
Speech Input API (Android)  CONTRO• Richiede connessione a internet                                                       ...
Online Speech Recognition                                                                            Google               ...
Speech Input API (Android)  CONTRO• Richiede connessione a internet                                                       ...
Speech Input API (Android)  CONTRO• Richiede connessione a internet• Problemi privacy                                     ...
Online Speech Recognition                                                                            Google               ...
Online Speech Recognition                                                           Google                                ...
Speech Input API (Android)http://android-developers.blogspot.it/2010/03/speech-input-api-for-android.html          Intent ...
Speech Input API (Android)@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent intent) {      ...
Speech Input API (Android)boolean TTSReady = false;TextToSpeech mTTS = new TextToSpeech(this, new OnInitListener() {      ...
Siri (iPhone)• É il software sviluppato  da Apple per aggiungere  il supporto allinput  vocale ai suoi nuovi  dispositivi ...
Siri (iPhone)  PRO• Riconoscimento vocale: ottimo• Sintesi vocale: ottima• Ottima integrazione con le funzioni del telefon...
Siri (iPhone)  CONTRO• Richiede connessione internet• Problemi privacy• Localizzazione ancora mancante per parecchie lingu...
Siri (iPhone)Non può essere utilizzato   per i nostri scopi                                              Cristian Maglie  ...
EasyVR Vbot           http://www.veear.eu/Products/EasyVR.aspxÉ un co-processore in grado dieffettuare la speech recogniti...
Vbot                              UART       ARDUINO                                            VbotCMD_LANGUAGE     l   /...
Vbot  PRO• Riconoscimento vocale: ottimo• Funziona offline: il riconoscimento avviene sul  dispositivo• Riconoscimento voc...
VRobot  CONTRO• Sintesi vocale assente• Riconoscimento basato su vocabolario, non permette il  riconoscimento di testo lib...
CMU Sphinx          http://cmusphinx.sourceforge.net/• Engine di speech recognition sviluppato  dalla Carnage Mellon Unive...
CMU Sphinx• Esiste una versione light dellengine  (pocketsphinx) che può essere utilizzata  su dispositivi embedded• Sì pu...
Recognize Speech Intents multipli su        piattaforma Android Recognize Speech                      Google API      Inte...
CMU Sphinx  PRO• Riconoscimento vocale: buono• Sintesi vocale: ottima• Funzionamento offline• Riconoscimento vocale contin...
CMU Sphinx  CONTRO• Localizzazione ancora limitata• Documentazione poco aggiornata• API molto potenti, ma di utilizzo non ...
Cristian Maglie    41c.maglie@bug.st – Arduino (http://arduino.cc)
Interconnessione                                          Cristian Maglie    42             c.maglie@bug.st – Arduino (htt...
Interconnessione• Oggetti fisici possono essere connessi• Internet-of-Things                                              ...
Interconnessione      INPUT     Voice    OUTPUT                DeviceDevice A                        Device B             ...
Interconnesione• Varie modalità di interconnessione (BT,  RS232, WiFi, Ethernet, Zigbee e chi più  ne ha più ne metta)• Di...
Cristian Maglie    46c.maglie@bug.st – Arduino (http://arduino.cc)
Arduino Ethernet• Semplice da utilizzare• Costo contenuto• Comunicazione tra smartphone e device  tramite Webservices• Il ...
Conclusione e domande                                            Cristian Maglie    48               c.maglie@bug.st – Ard...
Upcoming SlideShare
Loading in...5
×

Crea il computer di bordo per la tua astronave, by Cristian Maglie

1,928

Published on

Vedremo come interfacciare dei dispositivi di controllo vocale per controllare il vostro PC. Ma non solo. Scopriremo anche come interfacciarci ai propulsori per i nostri velivoli.

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,928
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
14
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Crea il computer di bordo per la tua astronave, by Cristian Maglie

  1. 1. Crea il computer di bordoper la tua astronaveCristian Magliec.maglie@bug.sthttp://bug.st/Arduinohttp://arduino.cc/
  2. 2. Notizie sullautore• Programmatore freelance• Entusiasta utilizzatore di tutte le tecnologie open- source• Appassionato di elettronica, collabora con il progetto Arduino da più di 3 anni• Attore consumato degli spot del codemotion• NON è un fan accanito di Star-Trek (anche se dopo il seminario la penserete diversamente) Cristian Maglie 2 c.maglie@bug.st – Arduino (http://arduino.cc)
  3. 3. Introduzione Cristian Maglie 3 c.maglie@bug.st – Arduino (http://arduino.cc)
  4. 4. Interfacce utente• Dispositivo fisico o virtuale che permette la comunicazione tra due o più entità di tipo diverso• Schermo, tastiera sono interfacce ma anche telefono, fotocopiatrice, televisione• Sono tutti supporti materiali che permettono linterazione tra informazione “digitalizzata” e il mondo ordinario Cristian Maglie 4 c.maglie@bug.st – Arduino (http://arduino.cc)
  5. 5. Schermi Piatti Cristian Maglie 5 c.maglie@bug.st – Arduino (http://arduino.cc)
  6. 6. Touch Screen Cristian Maglie 6 c.maglie@bug.st – Arduino (http://arduino.cc)
  7. 7. Cellulare Cristian Maglie 7 c.maglie@bug.st – Arduino (http://arduino.cc)
  8. 8. Tablet This iPad Is wonderful! Cristian Maglie 8 c.maglie@bug.st – Arduino (http://arduino.cc)
  9. 9. Interfacce (come siamo abituati a vederle) Tastiera MonitorINPUT OUTPUT Mouse CPU Pad LCD Screen Touch Cristian Maglie 9 c.maglie@bug.st – Arduino (http://arduino.cc)
  10. 10. Evoluzione delle interfacce• Tende ad aumentare lintimità tra utente e macchina• Linterfaccia del futuro sarà eterea: lutente non si accorgerà della sua esistenza Cristian Maglie 10 c.maglie@bug.st – Arduino (http://arduino.cc)
  11. 11. Cristian Maglie 11c.maglie@bug.st – Arduino (http://arduino.cc)
  12. 12. Riconoscimento Vocale Cristian Maglie 12 c.maglie@bug.st – Arduino (http://arduino.cc)
  13. 13. Interfacce Tastiera MonitorINPUT OUTPUT Mouse CPU Pad LCD Screen Touch Cristian Maglie 13 c.maglie@bug.st – Arduino (http://arduino.cc)
  14. 14. InterfacceINPUT Speech OUTPUT TTS Mic Recognition CPU Text To Speech Spk Cristian Maglie 14 c.maglie@bug.st – Arduino (http://arduino.cc)
  15. 15. Comando vocale• Problemi di sicurezza e identificazione• Comandi errati o falsi riconoscimenti• Rumore o voci sovrapposte• Indecisione nellesporre il comando Cristian Maglie 15 c.maglie@bug.st – Arduino (http://arduino.cc)
  16. 16. Riconoscimento vocale• Android / Google API• iPhone• Vbot• CMU Sphinx Cristian Maglie 16 c.maglie@bug.st – Arduino (http://arduino.cc)
  17. 17. Speech Input API (Android)É la libreria sviluppata da google perfornire i dispositivi Android delriconoscimento vocale. Cristian Maglie 17 c.maglie@bug.st – Arduino (http://arduino.cc)
  18. 18. Speech Input API (Android) PRO• Riconoscimento vocale: ottimo• Sintesi vocale: buona, migliorabile in alcuni casi• Localizzazione in parecchie lingue• Open API: molto semplice da utilizzare Cristian Maglie 18 c.maglie@bug.st – Arduino (http://arduino.cc)
  19. 19. Speech Input API (Android) CONTRO• Richiede connessione a internet Cristian Maglie 19 c.maglie@bug.st – Arduino (http://arduino.cc)
  20. 20. Online Speech Recognition Google Internet services voiceRecognize Speech Android OS Intent “Hello” Cristian Maglie 20 c.maglie@bug.st – Arduino (http://arduino.cc)
  21. 21. Speech Input API (Android) CONTRO• Richiede connessione a internet Cristian Maglie 21 c.maglie@bug.st – Arduino (http://arduino.cc)
  22. 22. Speech Input API (Android) CONTRO• Richiede connessione a internet• Problemi privacy Cristian Maglie 22 c.maglie@bug.st – Arduino (http://arduino.cc)
  23. 23. Online Speech Recognition Google Internet services voiceRecognize Speech Android OS Intent “Hello” Cristian Maglie 23 c.maglie@bug.st – Arduino (http://arduino.cc)
  24. 24. Online Speech Recognition Google servicesLogs 24/03/2012 15.34 Cristian said: “Hello” Cristian Maglie 24 c.maglie@bug.st – Arduino (http://arduino.cc)
  25. 25. Speech Input API (Android)http://android-developers.blogspot.it/2010/03/speech-input-api-for-android.html Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); intent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE, getClass() .getPackage().getName()); intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Speech recognition demo"); intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM ); intent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS, 5); if (!mSupportedLanguageView.getSelectedItem().toString().equals( "Default")) { intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, mSupportedLanguageView.getSelectedItem().toString()); } startActivityForResult(intent, VOICE_RECOGNITION_REQUEST_CODE); Cristian Maglie 25 c.maglie@bug.st – Arduino (http://arduino.cc)
  26. 26. Speech Input API (Android)@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent intent) { if (requestCode == VOICE_RECOGNITION_REQUEST_CODE && resultCode == RESULT_OK) { List<String> matches = intent.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS); doSomethingWithVoiceCommands( matches ); }} Cristian Maglie 26 c.maglie@bug.st – Arduino (http://arduino.cc)
  27. 27. Speech Input API (Android)boolean TTSReady = false;TextToSpeech mTTS = new TextToSpeech(this, new OnInitListener() { @Override public void onInit(int status) { TTSReady = true; }});[…......]mTTs.speak(“Ciao”, TextToSpeech.QUEUE_FLUSH, null); Cristian Maglie 27 c.maglie@bug.st – Arduino (http://arduino.cc)
  28. 28. Siri (iPhone)• É il software sviluppato da Apple per aggiungere il supporto allinput vocale ai suoi nuovi dispositivi Cristian Maglie 28 c.maglie@bug.st – Arduino (http://arduino.cc)
  29. 29. Siri (iPhone) PRO• Riconoscimento vocale: ottimo• Sintesi vocale: ottima• Ottima integrazione con le funzioni del telefono (calendar, sms, weather, clock, etc.) Cristian Maglie 29 c.maglie@bug.st – Arduino (http://arduino.cc)
  30. 30. Siri (iPhone) CONTRO• Richiede connessione internet• Problemi privacy• Localizzazione ancora mancante per parecchie lingue• Closed source• Closed API, non esiste documentazione per lo sviluppatore, per poterlo programmare bisogna hackerare il dispositivo Cristian Maglie 30 c.maglie@bug.st – Arduino (http://arduino.cc)
  31. 31. Siri (iPhone)Non può essere utilizzato per i nostri scopi Cristian Maglie 31 c.maglie@bug.st – Arduino (http://arduino.cc)
  32. 32. EasyVR Vbot http://www.veear.eu/Products/EasyVR.aspxÉ un co-processore in grado dieffettuare la speech recognition.Permette di dotare di controllovocale piccoli sistemi embedded. Cristian Maglie 32 c.maglie@bug.st – Arduino (http://arduino.cc)
  33. 33. Vbot UART ARDUINO VbotCMD_LANGUAGE l // set language <1>CMD_TIMEOUT o // set timeout <1>CMD_RECOG_SI i // recog trigger word <1>CMD_TRAIN_SD t // train sd command at groupCMD_GROUP_SD g // insert new command at groupCMD_UNGROUP_SD u // remove command at group Cristian Maglie 33 c.maglie@bug.st – Arduino (http://arduino.cc)
  34. 34. Vbot PRO• Riconoscimento vocale: ottimo• Funziona offline: il riconoscimento avviene sul dispositivo• Riconoscimento vocale continuo• Segnale audio di “parola riconosciuta” Cristian Maglie 34 c.maglie@bug.st – Arduino (http://arduino.cc)
  35. 35. VRobot CONTRO• Sintesi vocale assente• Riconoscimento basato su vocabolario, non permette il riconoscimento di testo libero• Closed source Cristian Maglie 35 c.maglie@bug.st – Arduino (http://arduino.cc)
  36. 36. CMU Sphinx http://cmusphinx.sourceforge.net/• Engine di speech recognition sviluppato dalla Carnage Mellon University Cristian Maglie 36 c.maglie@bug.st – Arduino (http://arduino.cc)
  37. 37. CMU Sphinx• Esiste una versione light dellengine (pocketsphinx) che può essere utilizzata su dispositivi embedded• Sì può sfruttare JNI per realizzare un wrapper Java che fornisce la speech recognition utilizzando pocketsphinx dentro Android Cristian Maglie 37 c.maglie@bug.st – Arduino (http://arduino.cc)
  38. 38. Recognize Speech Intents multipli su piattaforma Android Recognize Speech Google API Intent CMU Sphinx Cristian Maglie 38 c.maglie@bug.st – Arduino (http://arduino.cc)
  39. 39. CMU Sphinx PRO• Riconoscimento vocale: buono• Sintesi vocale: ottima• Funzionamento offline• Riconoscimento vocale continuo• Open API in C e Java• Open Source Cristian Maglie 39 c.maglie@bug.st – Arduino (http://arduino.cc)
  40. 40. CMU Sphinx CONTRO• Localizzazione ancora limitata• Documentazione poco aggiornata• API molto potenti, ma di utilizzo non immediato• Installazione complessa Cristian Maglie 40 c.maglie@bug.st – Arduino (http://arduino.cc)
  41. 41. Cristian Maglie 41c.maglie@bug.st – Arduino (http://arduino.cc)
  42. 42. Interconnessione Cristian Maglie 42 c.maglie@bug.st – Arduino (http://arduino.cc)
  43. 43. Interconnessione• Oggetti fisici possono essere connessi• Internet-of-Things Cristian Maglie 43 c.maglie@bug.st – Arduino (http://arduino.cc)
  44. 44. Interconnessione INPUT Voice OUTPUT DeviceDevice A Device B Cristian Maglie 44 c.maglie@bug.st – Arduino (http://arduino.cc)
  45. 45. Interconnesione• Varie modalità di interconnessione (BT, RS232, WiFi, Ethernet, Zigbee e chi più ne ha più ne metta)• Dispositivi Ethernet / Wifi sempre più diffusi e meno costosti Cristian Maglie 45 c.maglie@bug.st – Arduino (http://arduino.cc)
  46. 46. Cristian Maglie 46c.maglie@bug.st – Arduino (http://arduino.cc)
  47. 47. Arduino Ethernet• Semplice da utilizzare• Costo contenuto• Comunicazione tra smartphone e device tramite Webservices• Il firmware sullArduino Ethernet ha un piccolo webserver “stupido” che esegue i comandi Cristian Maglie 47 c.maglie@bug.st – Arduino (http://arduino.cc)
  48. 48. Conclusione e domande Cristian Maglie 48 c.maglie@bug.st – Arduino (http://arduino.cc)
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×