You probably already know about the amazing IBM Watson. In case you don't, it is a cognitive technology that can think like a human, using a combination of AI (artificial intelligence) and sophisticated analytical software. With Watson, you can analyze and interpret all of your data, including text, images, audio and video.
Recently at the Watson Developer Conference in San Francisco, IBM announced the experimental program Project Intu, which enables developers to extend cognitive capabilities to new form factors, such as robots, drones, Macs, Raspberry Pi, etc.
We at Nexmo have been working with the team at IBM on an integration of Intu and the PSTN network using the Nexmo Voice API. With this integration, Watson’s capabilities can be extended to reach billions of people who have access only to a telephone!
First, watch this video that shows Watson in action as a concierge! Watson Making a Phone Call to Reserve a Table at a Restaurant from Nexmo on Vimeo.
In this tutorial, I am going to show you how to set up the Nexmo Voice Connector for Project Intu and enable Watson to have a conversation with you over a mobile phone!
Before You Start
You must have:
A Mac or Windows laptop (Detailed specs)
A microphone (either built-in or external)
This tutorial is also available as a video screencast.Getting Started with IBM Watson Project Intu & Integrating It with Voice API from Nexmo on Vimeo.
Vonage API Account
To complete this tutorial, you will need a Vonage API account. If you don’t have one already, you can sign up today and start building with free credit. Once you have an account, you can find your API Key and API Secret at the top of the Vonage API Dashboard.
This tutorial also uses a virtual phone number. To purchase one, go to Numbers > Buy Numbers and search for one that meets your needs.
Hello World with IBM Intu
First, go to the Intu Gateway and create an account or log in with your IBM Bluemix account if you already have one.
When you've logged in, you will be asked to create an Organization Name. For this demo, use "Nexmo".
Downloading Intu
After you've created an organization, you should automatically be taken to the Download page. If not, manually navigate to DOWNLOADS and then click "Download Intu Tooling" to download the application to your desktop.
Next, extract the Intu-Tooling-OSX64 or Intu-Tooling-Win64 directory, and copy the entire directory into your home directory:
For Windows users: C:\Users\username
("username" should read your name)
For Mac users: /Users/username
("username" should read your name)
Now, if you're on Windows, double-click to launch Intu Manager. For security reasons, Macs won’t allow you to open it by double-clicking. So you Mac users need to right-click to open.
You should see a dialog box.
Select Windowed checkbox and click Play!
Installing Intu
Now, you should see the Into Manager screen.
Click Install Intu. Intu Tooling will start to install, and a new page will open in your browser for you to log in.
After you log in, wait until you see the prompt to return to the Intu Manager application. At that point, return back to the Intu Tooling application.
When you are asked where you want to install Intu, choose on Local Machine for this exercise and then click Next. Installing Intu takes a few minutes.
The Intu Manager window will display and prompt you to select your Group. Select your organization and then click Next. Turn the device on if it is not automatically turned on (shown in green).
When finished installing, you can start talking to Intu. Try "Hi, “How are you doing?” You will hear the Intu greeting.
If you click the button above the device, a wireframe of a brain appears. You will also see a Menu on the bottom left of the window.
Intu is now installed successfully and you’ve connected the Intu Manager to your running instance!
To log out, you can click the Logout button from the menu. This will shut down the app. You also need to log off from the terminal to kill the process.
Customizing Intu to Call Your Phone
Now you are going to need a Nexmo account. Sign up if you haven’t got one.
After you sign up and log in, go to Dashboard then Settings > API Settings and get the API Key and API Secret. You’ll need them later.
To add credit to your account and remove Nexmo account restrictions so the Telephony service can automatically provision a U.S. phone number for your device, you need to activate your account with a special coupon code.
Email devrel@nexmo.com to ask for a Nexmo coupon for Intu. Be sure to include your Nexmo API Key in the email so that Nexmo can verify your signup.
After you get a coupon from us, activate the coupon code on your Dashboard by clicking the dropdown menu from the top right and selecting Coupons. Enter your coupon there and submit.
Go back to Intu Gateway at rg-gateway.mybluemix.net and navigate to Manage > Services, then select your organization and a group:
Click + Add Service. You will see the modal dialog box. Fill out each field with these values:
Service Name: specify TelephonyV1
User ID: enter your API key
Password: enter your API Secret
Service Endpoint: specify: ws://nexmo-watson.mybluemix.net/ws-embodiment
Then Save.
Make sure TelephonyV1 has been added as a service and then restart the Intu Manager application to enable it.
Enabling the Telephony Service
Locate the plans directory where you will be modifying your plan. The path should be:
For Mac users: /Applications/IBM/Self/latest/etc/shared/plans
For Windows users: C:\Users\username\AppData\LocalLow\IBM\Self\latest\etc\shared\latest\plans
Open the default.json and browse the JSON to familiarize yourself with it. You will notice there are sets of preconditions (the key is m_PreConditions
) that must be answered for that plan to execute.
Now, let’s edit the JSON to manually enter your mobile phone number so Watson can call you. Find where it says outgoing_call
to change the value of the m_ToNumber
:
"m_Object": {
"Type_": "TelephonyIntent",
"m_TelephonyAction": "PROCESSING",
"m_ToNumber": "151055591234" // your number
},
Make sure the number starts with a country code. If you are in the U.S., it should be 1.
Now, restart Intu and then connect to NexmoParent (or your custom group name). This status icon should turn green and a new terminal window will open in the background as Intu starts running.
Ask "Can you call my number?"
Your phone should ring (if you have set everything correctly). Answer the phone and have a conversation. For instance, say "Tell me a joke." Watson will tell you a joke! You can continue the conversation with Watson over your phone!
Exploring More
There are operational instances you can create and configure in Bluemix to use Intu, such as Conversation, Natural Language Classifier, Speech to Text, and Text to Speech.
To learn more about customizing Intu, as well as trying on other devices such as Raspberry Pi, visit the additional documentation on Watson Intu documentations on GitHub!