(Music) Watson Assistant provides an intuitive interface to data. It captures why Artificial Intelligence is in a class by itself. We’re no longer just limited to explicit interfaces, with Watson, you can now explore natural, implicit interfaces to data. While chatbots are wonderful pieces of technology, there are many ways to interact with them, and which one works best depends on your application. For example, some use cases call for text-based interfaces, and some for voice-based interfaces. However, most often, voice-based interfaces are more intuitive and easy to use, compared to their text-based counterparts. This is because voice based interfaces require less effort to leverage on the user’s part. Speech is a communication ability that humans have had for over 1.3 million years, whereas written language has only been around for about 6,000 years. When going about implementing a voice-based interface for your Watson Assistant chatbots, there are three main paths you can take: Making the chatbot available through phone calls, implementing the solution yourself. Implementing an application that leverages Watson Speech to Text and Text to Speech APIs. And finally, making the chatbot available through the phone, relying on the easy integration offered by the Voice Agent with Watson service. There are of course other options, including integration with devices such as Amazon Echo. We’re not going to cover them in this course, but the skills you’ll learn will equip you to quickly figure out how to integrate Watson services with any third party channels on your own. But let’s go over the advantages and disadvantages of these three approaches. First, let’s discuss using phone calls as an interface for Watson Assistant. In this case, let’s assume you’re using an API like Twilio, which provides built in speech to text and text to speech abilities. Phone calls are great for accessibility. No matter what kind of phone someone’s using, whether or not they have an internet connection, or in some cases, whether or not they have power, they can access the services provided by the chatbot. This also enables quick access instead of having to download an application to interface with the chatbot, they just need to call a phone number. However, from a development and implementation perspective, this kind of interface does introduce a few problems. For example, service orchestration needs to be done by you. This means you need to manually connect, integrate, and test Watson Assistant with the voice API you’re using. If you’re using any other APIs along with the Assistant, you’ll need to plug those in manually as well. This approach isn’t very flexible either, as you’re limited to the keypad and voice on the phone, and can’t take any other form of input, like touch, acceleration, or visual input. Secondly, there’s the Watson Speech APIs app option. leveraging Watson Speech to Text and Text to Speech. Essentially, this approach entails that you develop your own application that the user will download or access online. This will typically be a mobile application that will handle the interaction between the user and the bot by leveraging Watson Speech to Text and Text to Speech. This approach is usually a good idea if there’s some special functionality that your application or chatbot offers that no other, more common interface or messaging application can provide. This approach is quite flexible as well, but it’s worth noting that it often comes at the extra inconvenience of the user having to download an application to their device. You may also need to develop this application for more than one operating system, if you want it to be accessible to a wider user base. For example, you’ll want to support both iOS and Android if developing a mobile app. This second approach also requires you to handle and implement the orchestration between Watson services by yourself. Finally, let’s talk about the Voice Agent with Watson approach. Essentially, this is a simple, yet powerful way to expose Watson Assistant over the phone. It can be integrated with an SIP Trunk, which stands for Session Initiation Protocol. In simpler words, you get a phone number assigned to you and Voice Agent allows people to talk with your chatbot when dial that number. Behind the scenes, the user voice is converted to text via Watson Speech to Text. The resulting text is sent to Watson Assistant. Its response is then sent through Watson Text to Speech to produce the final audio response for the user on the other end of the phone. The main advantage of this approach is that the orchestration between Watson Speech to Text, Watson Assistant, and Watson Text to Speech, is all done for you. Nevertheless, you can customize it through your own SOE or Service Orchestration Engine. Voice Agent does all the heavy lifting, taking care of integrating these Watson services with the SIP Trunk you provided. It also offers lots of powerful features, one of which is “barge-in”, which enables users to stop Watson by talking over it, as well as a way to easily connect directly to a human agent. If you are looking to deploy your chatbot over a phone interface, Voice Agent with Watson is definitely the right approach. One disadvantage is that some advanced features are only available when Voice Agent is deployed on premises through the IBM Voice Gateway, which would require a hybrid IBM Cloud approach that includes both public and private cloud components. To summarize, there are many ways to give a voice to your chatbot. In the labs for this module, we’ll pick the second approach, as it is the most flexible and educational one. Using Python, you’ll in fact integrate Watson Assistant and Watson Speech APIs. (Music)