Your SlideShare is downloading. ×
Crea il computer di bordo per la tua astronave, by Cristian Maglie
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

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

1,795
views

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.

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,795
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Crea il computer di bordoper la tua astronaveCristian Magliec.maglie@bug.sthttp://bug.st/Arduinohttp://arduino.cc/
  • 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. Introduzione Cristian Maglie 3 c.maglie@bug.st – Arduino (http://arduino.cc)
  • 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. Schermi Piatti Cristian Maglie 5 c.maglie@bug.st – Arduino (http://arduino.cc)
  • 6. Touch Screen Cristian Maglie 6 c.maglie@bug.st – Arduino (http://arduino.cc)
  • 7. Cellulare Cristian Maglie 7 c.maglie@bug.st – Arduino (http://arduino.cc)
  • 8. Tablet This iPad Is wonderful! Cristian Maglie 8 c.maglie@bug.st – Arduino (http://arduino.cc)
  • 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. 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. Cristian Maglie 11c.maglie@bug.st – Arduino (http://arduino.cc)
  • 12. Riconoscimento Vocale Cristian Maglie 12 c.maglie@bug.st – Arduino (http://arduino.cc)
  • 13. Interfacce Tastiera MonitorINPUT OUTPUT Mouse CPU Pad LCD Screen Touch Cristian Maglie 13 c.maglie@bug.st – Arduino (http://arduino.cc)
  • 14. InterfacceINPUT Speech OUTPUT TTS Mic Recognition CPU Text To Speech Spk Cristian Maglie 14 c.maglie@bug.st – Arduino (http://arduino.cc)
  • 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. Riconoscimento vocale• Android / Google API• iPhone• Vbot• CMU Sphinx Cristian Maglie 16 c.maglie@bug.st – Arduino (http://arduino.cc)
  • 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. 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. Speech Input API (Android) CONTRO• Richiede connessione a internet Cristian Maglie 19 c.maglie@bug.st – Arduino (http://arduino.cc)
  • 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. Speech Input API (Android) CONTRO• Richiede connessione a internet Cristian Maglie 21 c.maglie@bug.st – Arduino (http://arduino.cc)
  • 22. Speech Input API (Android) CONTRO• Richiede connessione a internet• Problemi privacy Cristian Maglie 22 c.maglie@bug.st – Arduino (http://arduino.cc)
  • 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. 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. 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. 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. 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. 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. 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. 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. Siri (iPhone)Non può essere utilizzato per i nostri scopi Cristian Maglie 31 c.maglie@bug.st – Arduino (http://arduino.cc)
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. Cristian Maglie 41c.maglie@bug.st – Arduino (http://arduino.cc)
  • 42. Interconnessione Cristian Maglie 42 c.maglie@bug.st – Arduino (http://arduino.cc)
  • 43. Interconnessione• Oggetti fisici possono essere connessi• Internet-of-Things Cristian Maglie 43 c.maglie@bug.st – Arduino (http://arduino.cc)
  • 44. Interconnessione INPUT Voice OUTPUT DeviceDevice A Device B Cristian Maglie 44 c.maglie@bug.st – Arduino (http://arduino.cc)
  • 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. Cristian Maglie 46c.maglie@bug.st – Arduino (http://arduino.cc)
  • 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. Conclusione e domande Cristian Maglie 48 c.maglie@bug.st – Arduino (http://arduino.cc)