An attempt to build SIRI from scratch in an afternoon at the National Technological University of Athens
We recently came across this question on Quora:How hard would it be to build Siri from scratch?
In an attempt to answer that question on Friday, January 20 NiobiumLabs team partnered up with the students of the National Technological University of Athens in a creative and challenging workshop. Our aim was to build Siri from scratch in an afternoon.
During the workshop, the students had the opportunity to see and participate in the application development.
In order to create the application we used http://www.politepix.com/openears
OpenEars an open-source iOS library for implementing round-trip English language speech recognition and text-to-speech on the iPhone. Unlike Siri, which handles the requests server side, OpenEars is capable of local recognition on the iPhone of vocabularies with hundreds of words depending on the environment and other factors, and performs very well with command-and-control language models.
Combining that with the Wolfram Alpha API we have managed to emulate Siri user experience, emphasizing on the artificial intelligence part of information retrieval process. On the educational side, we showcased the basic steps needed to build an iOS project and some common practices in structuring your app, such as:
- Including third party libraries to your project
- using retina & non retina sliced images to create custom UI elements
- using custom fonts
- retrieving data from disc
- building your views both programmatically and by using Xcode's Interface Builder
- memory management
- making asynchronous HTTP calls
- XML parsing
- using UITableViews with varying cell size and dynamic content retrieved asynchronously from the web.
Although Open Ears is fast and reliable, it unfortunately suffers the problems all client side NLP software packages have, which is limited vocabulary references.
get the results and tell us what you think, keep in mind that this project was primarily created for educational purposes.
The learning experience
as Antonis Kalipetis on of the participating students pointed out:
"The workshop was quite a nice idea, in universities you learn a lot, but you don't get to know how the industry works and possible problems you might face there.
In the workshop, someone could see the whole process for making an application, in a few and easy steps. Catching the idea, starting development and choosing the best external libraries to use, integrating your designer's icons and deploying it. Mobile is a really nice field for development and workshops like that open the doors for doing something on your own, which is really awesome!
Let's hope for more workshops like this one, or other mobile platforms!"