Steering a driving Android Phone over the Web via Speech Recognition in IBM Bluemix

My colleagues Bryan Boyd and Mark VanderWiele have created a nice demo where you can drive smartphones using Sphero balls. I’ve modified the sample slightly so that it also works for Android phones. Watch the video to see how to steer a driving smartphone via IBM Bluemix, the Internet of Things and cognitive services from IBM Watson.

Here are the details:

The phone is carried by a Sphero ball and a chariot.

The phone communicates with the ball via bluetooth protocol. The native Android app uses the Sphero Android SDK.

The phone communicates with the Internet of Things service in Bluemix via a Java MQTT library.

A Node-RED flow is used to send commands to the native app either when certain URLs are invoked or certain Twitter tweets are sent.

For the speech recognition the sample of the Speech to Text service has been slightly modified to send the text to the Internet of Things service via MQTT from the client side JavaScript.

The Node-RED flow receives the spoken text via an Internet of Things input node. The first word of a text is used to interpret the command and then the same flow as previously is triggered.

This is a screenshot of the flow for incoming URL commands and the devices.