- Interactive greeting card
- Interactive recipe
- Choose your own adventure story
- Verbal flash cards
- Call answering system
- Travel guide
- Audio commentaries
Wednesday, December 11, 2013
New book presents Android voice application development using AIML
Have you ever wanted to create your own voice controlled app for Android devices? Do you have an ambition to develop natural language technologies for mobile phones? Are you interested in how virtual assistant technology works? If you answered yes, Co-authors Michael McTear (University of Ulster) and Zoraida Callejas (University of Granada) have written an excellent new book, Voice Application Development for Android that is just for you. The book covers a range of technologies involved in the development of Android voice apps, including voice recognition, text-to-speech synthesis, grammars, multimodal input and dialogs. Voice Applications for Android even features a chapter on creating virtual assistants using Pandorabots AIML technology.
As the book is concerned with Android development, many of the technologies discussed in detail are Google products. For example, the book covers the Google TTS API and the Google Speech API. The book contains detailed code examples that teach the reader how to develop his own Android voice apps. In fact, even more code is bundled with the book and available as a free download. Following the steps in the book, a reader with a little Android programming experience can easily create his own sample voice apps.
The book proceeds step-by-step through a series of simple demo apps of increasing complexity. First, the reader learns how to write an app that can convert speech to text and read it back again. Then, the authors introduce a simple app that performs a search based on the recognized words. As a next step, they introduce an app that can launch another app based on a voice command. At this point, the book presents the technique of using similarity measures to match the recognized speech with a range of output selections (the names of installed apps).
Simple dialogs are presented using an example app that can fill out forms. The dialogs are specified in XML, and the app asks the user a series of questions to obtain the values for various form fields. Next, the authors present an application of grammars to evaluate the spoken words. They discuss both hand-crafted and statistical grammars to check whether a user’s input conforms to the requirements of an app.
Perhaps the weakest area of the book is its coverage of multimodal dialogs, i.e. those that combine speech and visual input. Woven together in a chapter that also touches on non-English language recognition, the coverage of multimodal dialogs is a bit thin, however multimodal dialogs are not necessarily a central topic to learning the art of writing Android voice applications.
What really caught our attention in this book is Chapter 8: Dialogs with Virtual Personal Assistants. The authors present AIML as a tool for creating virtual personal assistant apps (like Siri). They borrowed our ideas for using out-of-band (OOB) tags for the CallMom personal assistant app. The chapter provides a detailed description of how to build a voice-controlled assistant using AIML and OOB tags. They suggest creating an AIML on Pandorabots and connecting to it over the network, as a way of adding a sophisticated personality to the virtual assistant. Code examples are provided to make it easy for the reader to construct his own AIML assistant.
Finally, the "Afterword" has interesting some ideas of applications for mobile assistants. The reader may be inspired to create one of these apps using knowledge acquired from the book
We highly recommend Voice Application Development for Android to anyone interested in developing voice activated or virtual assistant apps for Android devices. This highly accessible book contains enough detail and code to teach you all the basics of Android voice development.