Building a Siri Like Application on iOS


Published on

A siri like application to find near by hotel, restaurants using Nuance Mobile SDK.

Published in: Technology
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Building a Siri Like Application on iOS

  1. iOS Dev Scout - May Meetup Building A Siri-like Application Subhransu Behera (Subh) - iOS Application Architect in SAP Twitter : @subhransu Blog : Email : subhransu.behera@sap.comWednesday, May 30, 12
  2. About Me • iOS and Ruby Developer • Have passion for Mobile, Web and Smart TV Apps. • Started as a Linux Developer, fell in love with Ruby, happily married to iOS • M.S. in Software Systems from BITS, Bachelors in Information Technology from BPUT, Graduated from Founder Institute • Worked both in early stage startup and fortune 500 companies including one from MIT, Media-Labs. Currently working SAP APJ Mobility CoE making enterprises run their mobile Apps.Wednesday, May 30, 12
  3. When “Siri” Came !Wednesday, May 30, 12
  4. No Official Siri APIs Yet • Needed to use it for an Electric Vehicle Application • There are few Open Source SDK: • OpenEars: • iSpeech: • Dragon Speech Kit (Nuance) : http:// task=homeWednesday, May 30, 12
  5. Why Nuance? • Multiple language support (Supports speech recognition in 23 international languages) • They Make “Voice” really work. • Suggestion and Recommendation engine is pretty strong. • Have both Speech-to-Text and Text-to-Speech capabilities • Supports Multiple Platforms (iOS, Android, Windows Phone) • They are the guys behind Siri?Wednesday, May 30, 12
  6. Tiers & PricingWednesday, May 30, 12
  7. Free for 90 DaysWednesday, May 30, 12
  8. 1. Signup and Download Dragon Mobile SDK from Nuance Developer Portal http://dragonmobile.nuancemobiledeveloper.comWednesday, May 30, 12
  9. Get Application Key from EmailWednesday, May 30, 12
  10. Class Class References SKRecognizer - Manages entire recognition process including recording and server communication SKRecognition - Contains recognition results returned from SKRecognizer SKVocalizer - Defines server based text to speech implementation SpeechKit - Core class providing setup and utility methods. Meant for Core Networking, Recognition, Audio System componentsWednesday, May 30, 12
  11. Protocols Protocol References SKRecognizerDelegate - Defines the messages sent to a delegate of the SKRecognizer class SKVocalizerDelegate - Defines the methods sent by SKVocalizer class during speech synthesis process SpeechKitDelegate - Defines the messages sent to a delegate object registered as part of the call to setupWithID.Wednesday, May 30, 12
  12. How it WorksWednesday, May 30, 12
  13. Recognizing SpeechWednesday, May 30, 12
  14. Sample Speech Recognition AppWednesday, May 30, 12
  15. Step-by-step Guide • Open the file Classes/DMRecognizerViewController. Replace the SpeechKitApplicationKey[] value with your key. • In the setupWithID:host:port:useSSL:delegate:`` method, replace the ID parameter with your ID. • You should also verify that the host and port provided to that method match the host and port provided in the portal. • You can now run the application: connect your device and select Build and Run. Main Recognition ViewWednesday, May 30, 12
  16. Main Recognizer View This view has 4 sections • Voice Interface contains a multi-purpose button for controlling the recognition process and has a result field. • Recognition Type allows for the selection between the two default recognition models: search and dictation. • Audio Level provides a basic VU meter display. • Alternatives displays the complete list of recognition results.Wednesday, May 30, 12
  17. Recognition Logic 1. On viewDidLoad of main view, Speech Kit 4. On a successful completion, the method framework is configured by calling recognizer:didFinishWithResults: returns with setupWithID:host:port:useSSL:delegate an SKRecognition object that contains the list of method. recognition results. 2. On tap of "Record" button, a new SKRecognizer is 5. The top result, retrieved with the firstResult created with the method, is listed in text box. The complete list of initWithType:detection:language:delegate: results, accessed through the results property, is method. displayed in the large text field. 3. When the recording finishes, the delegate method 6. If an error occurs, the method recognizerDidFinishRecording: is called, and the recognizer:didFinishWithError:suggestion: is button is updated. called, and both the error and suggestion methods are presented to the user.Wednesday, May 30, 12
  18. Recognition with SuggestionsWednesday, May 30, 12
  19. Let’s build our Own AppWednesday, May 30, 12
  20. Download Source-code from: Nearby Restaurants Nearby Stations Speak “Restaurant” or “Station” to find nearby resultsWednesday, May 30, 12
  21. Twitter Search App Using Nuance, May 30, 12
  22. Thank You Twitter : @subhransu Blog : Email : subhransu.behera@sap.comWednesday, May 30, 12