💬Sample Node.js Application for the IBM Dialog Service
Clone or download
Pull request Compare This branch is 10 commits ahead, 11 commits behind watson-developer-cloud:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Speech & Dialog Demo App

This is an extension of the IBM Watson Dialog service Dialog starter application that also incorporates the Speech JS SDK to allow for voice interactions.

**This application requires a dialog file to be preloaded. You can use the** [dialog-tool](https://github.com/watson-developer-cloud/dialog-tool) **to create a dialog.**

Give it a try! Click the button below to fork into IBM DevOps Services and deploy your own copy of this application on Bluemix.

Deploy to Bluemix

Getting started

  1. Create a Bluemix account. Sign up in Bluemix or use an existing account. Watson services in beta are free to use.

  2. Download and install the Cloud-foundry CLI tool.

  3. Edit the manifest.yml file and replace <application-name> with a unique name for your copy of the application. The name that you specify determines the application's URL, such as <application-name>.mybluemix.net.

- services:
  - dialog-service
  - stt-service
  - tts-service
  name: <application-name>
  command: node app.js
  path: .
  memory: 256M
  1. Connect to Bluemix by running the following commands in the command-line tool:
$ cf api https://api.ng.bluemix.net
$ cf login -u <your-Bluemix-ID>
  1. Create the Dialog & Speech services in Bluemix by running the following commands:
$ cf create-service dialog standard dialog-service
$ cf create-service speech_to_text standard stt-service
$ cf create-service text_to_speech standard tts-service
  1. Push it live by running the following command:
$ cf push
  1. Add your DIALOG_ID and restage the app:
$ cf se <application-name> DIALOG_ID <dialog-id>
$ cf restage <application-name>

If you don't have a dialog_id you can create one using the dialog-tool

Running the application locally

The application uses Node.js and npm, so you must download and install them as part of the following steps.

You must also have a bluemix account and service instances created and bound to an application in order to obtain credentials. See steps 1-6 above, or click the "Deploy to Bluemix" button which automates that process.

  1. Copy the username, password, and url credentials from your Dialog and Speech services in Bluemix. To see the credentials, run the following command, where <application-name> is the unique name you specified:
$ cf env <application-name>

The following example shows credentials for the Dialog service:

  "dialog": [{
      "credentials": {
        "url": "<url>",
        "password": "<password>",
        "username": "<username>"
    "label": "dialog",
    "name": "dialog-service",
    "plan": "standard"

Copy these credentials into your code:

* The Dialog credentials go into `app.js`.
* The Speech to Text credentials go into `stt-token.js`.
* The Text to Speech credentials go into `tts-token.js`.
  1. Go to the project folder in a terminal and run the npm install command.
  2. Start the application by running node app.js.
  3. Open http://localhost:3000 to see the running application.


To troubleshoot your Bluemix app the main useful source of information are the logs, to see them, run:

$ cf logs <application-name> --recent


This sample code is licensed under Apache 2.0. Full license text is available in LICENSE. This sample uses jquery which is licensed under MIT.



Open Source @ IBM

Find more open source projects on the IBM Github Page