The artificial intelligence and voice recognition space has been growing rapidly. The idea of having a personal assistant you can beckon with the words “Siri”, “Alexa”, “Cortana” or “Ok Google” which connects us to the web and the ever growing Internet of Things (IoT) is becoming ever more commonplace. Even Facebook started getting into the action, releasing its own AI assistant named “M” to a select few within Facebook Messenger. Soon enough, we shall all have artificial intelligence assistants at our disposal!
Luckily for developers who don’t want to wait any longer, there are also a range of services available that make it simple to get started with the basics of building your own artificial intelligence system for whatever purpose you can dream up. Connect up your smart home, control a self made media center, deliver all sorts of information via a personal AI assistant… there are so many options available thanks to APIs and services. This lead up throughout 2015 has made 2016 the year where developers can really get into artificial intelligence and start building solutions of their own.
In this overview, we’ll look at the services that exist which can enable developers to begin connecting their own apps and IoT devices to voice recognition and artificial intelligence throughout 2016.
Wit.ai is a service which provides a nice combination of both voice recognition and machine learning for developers. It provides the service to convert verbal commands into text and can also be trained up in how to understand those commands. Early in 2015, they joined Facebook and opened up the entire platform to be free for both public and private instances. Its development has continued since then with new features appearing throughout the year and no sign of things slowing down!
Wit.ai has two main elements to it that you set up within your app – intents and entities. An intent is what action an instruction should take (e.g. turn on a light). An entity is a specific object or piece of information that our AI needs to know about to enact that intent (e.g. which light? Is it a smart light? Should it understand particular colors the light can switch to?). Rather than needing to create intents from scratch, Wit.ai also provides access to existing intents from the developer community which is quite neat!
Wit.ai also has the concept of “roles”, where it can learn to differentiate between entities in different contexts (e.g. numbers in different parts of an instruction can refer to different things – like an age, an order, a count). It also has some entity types built in that it can understand, such as temperature, URLs, emails, duration… etc.
Api.ai is another service which provides similar capabilities to Wit.ai, with intents and entities. Just like Wit.ai, Api.ai is free to use. It also has a paid enterprise option which allows for this to be run on a private cloud internally and more from their services team. This is potentially valuable if your usage needs to be totally private.
One key focus of Api.ai that differs from Wit.ai is its “Domains”. Domains are a whole collection of knowledge and data structures from Api.ai that are ready for use in every Api.ai agent (apps are called “agents” in Api.ai). Domains can include knowledge of common verbs and content types. As an example, it understands the different types of data that a request of “Book restaurant” needs, compared to “Book hotel”. It has a range of real information about encyclopedia-like topics such as history, word definitions, people of significance (e.g. celebrities, writers, characters), movies, stock prices and a lot more.
If you’d rather do more of the programming side of the AI yourself and you are a fan of Raspberry Pi, you could look into Jasper. Jasper is an open source personal assistant written in Python that runs on the Raspberry Pi Model B.
Jasper provides always-on voice control and some default modules for things like asking for the time, weather, news, Gmail inbox status, Facebook notifications, Spotify controls and more. For the Python developer who wants total control – Jasper might just be for you!
One service from a completely different perspective is Clarifai, an artificial intelligence service that can recognize image and video content. It has its own deep learning engine that continuously improves with every use. If you are keen to take your AI prototype to a whole new level, why not give it the ability to see and recognize objects?
To integrate this into your own applications, Clarifai has both a REST API that could be integrated with your preferred language along with a Python, Java and Node.js API. Their service is free for up to 5000 uses a month.
M, Facebook Messenger’s AI assistant, works via a mix of both artificial intelligence and a team of human helpers that train the system. These human helpers provide more intelligence to make up for where AI’s current capabilities fall short. You can get access to your own human army of helpers via Fancy Hands. Fancy Hands is a US service which allows customers around the country to request information and services, then as soon as they can, someone at Fancy Hands completes the action.
This can be an exciting option for developers who are focused on the personal assistant angle but need more than current AI alone can provide. Fancy Hands have an API for developers to connect their own app to request Fancy Hand’s services. Maybe your needs are beyond AI’s capabilities or maybe your AI can request Fancy Hand’s help when it needs it?
The Fancy Hands SDK is available for Python, Ruby, Java, PHP, Node.js and Go.
More from this author
There are a range of services and APIs out there which can provide artificial intelligence and voice recognition. You don’t need to be a computer science expert to implement some of the core basics in your own apps! Try out a few of the above and see what you can create. If you’d prefer more guidance on what is possible, I’ll be putting together some articles here at SitePoint on integrating the above services with the Internet of Things in 2016, keep an eye out for them!
If you do put together your own AI prototype using any of the above services, or you’ve had some experience with the above or a service I did not mention – please share it in the comments or get in touch with me on Twitter (@thatpatrickguy). I’d love to hear about it!