AliceTalker version 1.4  (released May 22nd 2003)

Description:

AliceTalker is a Swing-based Java client application which enables the user to interact via spoken words and synthesized speech with an AliceBot or AnnaBot (or any similar bot with a HTTP interface) server running on the same or a remote machine. It uses Cloudgarden's implementation of  Sun's Java Speech API.

AliceBot is an artificial intelligence project which interprets words of a language and responds with as intelligent a response as it can manage.

The screenshot below shows a typical (?) conversation, demonstrating that the words recognized are not always the same as what were spoken, but that Alice makes a valiant attempt to do something with them.

Version 1.4 - no change to AliceTalker, but Cloudgarden's JSAPI implementation version 1.6.2 is bundled with AliceTalker, instead of version 1.5.3

Version 1.3 - Can connect to Alice's HTTP port, allowing much easier setup and use with many more versions of Alice and Alice-based bots.

Version 1.2 - a few minor additions - buttons for turning mic and voice on and off, a status bar, and the recognizer is not started on initialization for a quicker startup time.

Download

All necessary files are included in the alicetalker14.jar or alicatalker14.zip files. Download and unpack one of these files to create a new "AliceTalker" folder. Note: included in the bundle is Cloudgarden's demo JSAPI implementation version 1.6.2 which expires in 30 days. To purchase and install the non-demo version, read this...


Requirements

  • SAPI5 or SAPI4 text-to-speech and speech recognition engines - some download links are listed here.
  • Sun's Java 1.3 or better
  • If using Alice's HTTP port, almost any version of Alice (or AnnaBot) should work - if using the non-http port (4456) then Alice version 4.1.4 is required - see the installation section.
  • Cloudgarden's 1.3.2 (or better) JSAPI implementation (the demo version 1.6.2 is included with this installation) - since this only runs on Windows platforms at present then an additional requirement is:
  • Windows OS 98, NT, XP, ME or 2000.

Usage:

1) Start the Alice server:
Make sure the Alice server has been set up correctly to work with AliceTalker, and is functioning properly, as described in the "Starting the Alice Server" section below.

2) Start up AliceTalker:
Execute the startAliceTalker.bat file in the AliceTalker folder

3) Connect to Alice:

Using the HTTP port (recommended): When the main AliceTalker frame appears, just hit the "Connect" button to connect to an AliceServer on the localhost on port 2001 (the default HTTP port). If you are running the server on a different machine or port, make changes accordingly. You can enter a user-name and password and this will let Alice distinguish you from other web or AliceTalker clients also using the http port.

Using the non-HTTP port: When the main AliceTalker frame appears, choose the "non-HTTP" radio button and hit the "Connect" button to connect to an AliceServer on the localhost on port 4556. If you are running the server on a different machine or port, make changes accordingly.

If the red label under the "Connect" button says "Failed to connect" check that the alice server is running correctly (see the notes in "Starting the Alice Server") and that you are using the correct host name and port.

4) Start talking and listening:
AliceTalker is started initially with speech output and input turned on.

You should hear "Hello from Alice" soon after connecting to the server, and what you dictate into the microphone (or something vaguely similar!) should appear in the "Your words" text box, and be automatically sent to Alice.

Turn speech input/output on/off by checking/unchecking the relevant boxes in the "Options" menu.

You can also change the speech engines used using this menu.

5) Save chat transcript:
You can save the transcript of a chat to a file by using the "File->Save Transcript" option.

Go to Top


Quick Installation

These notes refer to the modifications required to the Alice server - AliceTalker is ready to use right away.

Note: If you only want to connect to Alice using the server's HTTP port you only need to do step 1) below.

1) For connecting to the HTTP port of AliceServer:
This is the recommended mode, since this should work with most versions of Alice and Alice-like bots - eg, AnnaBot - and even any web-based chat-type application with suitable modification. Look at the com.cloudgarden.alice.AliceHtmlClient to see how it interacts with the Alice web server, if you want to use it with non-Alice web applications.

Edit the templates/html/chat.html file in the AliceBot (or AnnaBot) distribution to replace the line
<reply></reply><response/>
with
<!--RESPONSE_START--><reply></reply><response/><!--RESPONSE_END-->
- this enables AliceTalker to parse out the robot's response from the web page the robot sends to AliceTalker.

A suitable chat.html file is included with this distribution.

That's it! Start up the Alice server and connect to it using the HTTP-mode for AliceTalker.
 

2) For connecting to the non-HTTP port (4456) of AliceServer: (Requires AliceBot ProgramD, version 4.1.4).

  • Replace the lib/aliceserver.jar file which came with the AliceBot installation with the one provided in this installation. 
  • Note that the provided jar file contains the com.cloudgarden.alice.listener.JSAPIListener class, so that if you rebuild the aliceserver.jar file you should either include the JSAPIListener class with it (see this section) , or ensure that the JSAPIListener class is located somewhere in the CLASSPATH.
  • edit the server.properties file in the Alice ProgramD folder to include the following lines (a full example server.properties file is included in the AliceTalker folder)
programd.listeners.acl.enabled=true
programd.listeners.acl.classnames=com.cloudgarden.alice.listener.JSAPIListener

Go to Top


Starting up the Alice Server

  • Execute the server.bat or server.sh file in the ProgramD directory, as normal.
  • If you intend to use the HTTP mode for AliceTalker just check that you have modified the chat.html file as described above.
  • If you intend to use the non-HTTP mode for AliceTalker check that lines like ...
    • [8:56:44] Initializing AliceChatListeners from properties.
      [8:56:44] Starting JSAPIListener on port 4456
      [8:56:44] Starting JSAPIListener...
      ...appear in the console output of the Alice server. If they don't, double-check all steps in the "Quick Installation" section.
Go to Top

Alice technical notes:

My thanks to John Janacek for writing his AliceSpeak jython-based application, which inspired AliceTalker!

Changes made to Alice (for the non-HTTP mode):

Some changes were made to the org.alicebot.server.net.AliceServer class to allow any number of AliceChatListeners to attach themselves to the main server thread. The classnames of the AliceChatListeners must be listed (separated by ";"s) in the "programd.listeners.acl.classnames" property of the server.properties file, and the "programd.listeners.acl.enabled" property should be set to true. These changes should not affect any other operation of the Alice server.

Building the Alice server from source:
Replace the AliceServer file from the ProgramD/src/org/alicebot/server/net folder with the AliceServer file from the AliceTalker folder, and build as described in the AliceBot documentation.

Re-building the aliceserver.jar file
The aliceserver.jar file provided contains the com.cloudgarden.alice.listener.JSAPIListener classes, so one way to re-build the jar file is to 

  • copy the com/cloudgarden/alice/listener folder (and the JSAPIListener.java file it contains) over into the ProgramD/src folder (so that src contains two folders, com and org), and
  • use the modified build.xml file provided here to build aliceserver.jar (the build file contains an extra line to include the com.cloudgarden.alice.listener package).

  • AliceTalker files:

    AliceTalker was developed using the excellent Netbeans IDE, version 3.3.1, and the extra files are included along with the source code. The client code is in the com.cloudgarden.alice package and the JSAPIListener class (which implements the org.alicebot.server.net.listenet.AliceChatListener class and must be loaded by the Alice server) is in the com.cloudgarden.alice.listener package.

    Go to Top


    Problems:

    Please report any problems to jonathan@cloudgarden.com

    Please give as much information as you can on what led to the error - including a complete copy of console output, a list of speech engines installed and the JRE version used.

    Go to Top



    Licensing:

    The demo JSAPI implementation (included here in the files cgjsapi.jar and cgjsapi162.dll) are distributed under the terms layed out in the cloudgarden.com JSAPI webpages. They will expire 30 days after use, after which they may be replaced with the non-demo files - read this section.

    All the source code distributed with this application (the modified AliceServer code and the com.cloudgarden.alice package) is released under the GNU General Public License, the same license as the Alice project. It is free software - you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation - either version 2 of the License, or (at your option) any later version.

    Go to Top



    Purchasing and Validating the non-demo JSAPI version

    If you wish to continue to use the Java Speech API implementation (through which AliceTalker speaks and listens) after the trial period of 30 days, you will need to purchase a Personal (for $16 USD) or Professional license for the JSAPI from www.cloudgarden.com (click the "Pricing and Licensing" link, then the "license" link on the next page, agree to the license, then click the "Buy Now" link, which will let you pay with your credit card using PayPal). 

    After buying, you will receive an email with your registration code. You do not need to download or install any new software, just run the LicenseManager.exe file which comes with the AliceTalker bundle and enter in the email address you used to purchase the License, and your registration code. Your license will be validated for the machine you have installed the software on and you will be able to use the software without limitation.

    Go to Top