Approach To Building A Virtual Assistant Or Bot Almost From Scratch

Mohamed E. Ait Hassoune
2 min readAug 15, 2016

V.A.* (Virtual Assistants) are computer programs designed to simulate a conversation with a human via textual or voice interactions. We will focus on text-based interactions only in this paper. Voice-based V.A. consist in the combination of an Automatic Speech Recognition or Speech-To-Text and Text-To-Speech layers on top of a text-based interactions layer. By now you must have heard of Apple SIRI, Amazon Alexa, Microsoft Cortana, IBM Watson, Viv.ai, Amy@x.ai, Kasisto Kai etc. They are becoming ubiquitous with the rise of Mobiles, IoT (Internet of Things) and Messaging platforms.

V.A. can take multiple forms: simple command interface to interact with one specific service, e.g. in the IoT space to activate a device; basic chatbots to complex ones handling users’ requests, e.g. help-desk or customer service chatbots (e.g. Nuance Nina) or personal banking assistants (e.g. Kasisto Kai) providing information tied to transactions or specific assistants like Amy@x.ai helping you schedule meetings. For multiple services V.A., we generally speak about V.A. with “skills”. A skill is a basic resource or service that the V.A. can access to answer the user’s request.

*aka bots, chatbots, digital assistant

Keywords: NLP (Natural Language Processing), NLU (Natural Language Understanding), UX (User Experience), Virtual Assistant, Bot, SOA (Service Oriented Architecture), API (Application Programming Interface).

--

--