Playing poker with robots: A solution overview
This is the second article in the series of blog posts where we show the ease and usefulness of Watson services by making two robots play poker in a multi-person setting.
In the previous article, we introduced our project, our robots, and Bluemix. Today, we will talk about the various Watson services out there on Bluemix that can help our idea turn into a reality and how to use those services with Watson Developer Cloud.
Watson Developer Cloud and Bluemix
The IBM Watson Developer Cloud (WDC) is a library of smart services that you can use to develop cognitive applications. WDC provides REST APIs that can be accessed through SDKs written in Node.js, Python and Java.
The Watson Services Catalog lists all services offered by Watson Developer Cloud. These services provide a RESTful interface for interaction between the applications and the service.
IBM Bluemix is a cloud platform which is used to deploy and host your applications and Watson services.
Making Robots Cognitive
To play a game of poker with humans, our robots need to have some cognitive capabilities.
The robots should be able to look at their cards and recognize them. They should listen to what the players around the table are talking and understand it. They should be able to participate in conversations.
In the past it has been difficult to do these tasks using conventional methods but Watson will help us accomplish these normally difficult tasks.
We have shortlisted the following services to serve our purpose :
1. Speech to Text : The Speech to Text service from Watson converts human voice into the written word. This easy-to-use service uses machine intelligence to combine information about grammar and language structure to generate an accurate transcription. This service also supports multiple languages.
2. Text to Speech : Watson’s Text to Speech service synthesizes written text into speech audio. This service provides both male and female voices in multiple languages.
3. Natural Language Classifier : The Natural Language Classifier service from Watson enables developers without a background in machine learning to interpret and classify natural language. The developer just has to provide a training set containing of sentences against their intents.
4. Dialog : The Dialog service provided by Watson Developer Cloud allows developers to build applications with an ability to have conversations with the users. Imagine having your application to automatically respond to user questions, walk users through processes or applications or just add a social element of chatting. This service can learn and track the user profile information over time to improve the quality of conversations over time.
5. Visual Recognition : Watson’s Visual Recognition service answers the question : “What is in this image?”. It is as easy as passing the image to the service and having the service respond with confidence scores of objects and events contained in the image. This service also detects faces and performs Text Recognition on the image. If you are planning to use this service for a very specific set of images (like the deck of cards in our case), you can train a custom classifier for yourself by passing a sample set of images to the service.
Now that we have shortlisted the services we will be using, this is how our solution will look like. The robots will be our user interface and the Watson services deployed on the Bluemix cloud will be the “brain” of our system.
Installing Watson Developer Cloud for Python
We spoke about the Watson Developer Cloud SDK for accessing Watson services from your application. You can install the watson-developer-cloud python library to access the services provided by WDC as follows :
~$ pip install –upgrade watson-developer-cloud
~$ easy_install –upgrade watson-developer-cloud
And you are ready to go!
In the next chapter, we will dig deeper into the Speech to Text service and learn how to implement it into a new application.