----------------------------------------------------------------------------
1. Overview:
----------------------------------------------------------------------------

The announce application is designed to allow you to create lists of
events that are of interest to you, and to set thresholds that determine whether
changes in those events should be relayed to you, primary via text to
speech synthesis.

Examples of events that the application would allow you to define and
monitor include:

  * News
  * Stock Market Data
  * Email accounts
  * Weather
  * Relational database events
  * Application events 
  * Various status checks associated with computer operating systems
  * Data from an external device, such as a weather station or a
    motion detection device

An important feature of the application is that it should provide developers
with an easy to use framework to extend support for new kinds of events to
be monitored, and by that means to speech-enable their own applications.


----------------------------------------------------------------------------
2. Development:
----------------------------------------------------------------------------

Announce is written primarily in perl, and makes heavy use of perl
modules for extracting dynamic data from the world wide web and from 3rd-party
applications. The application is rendered via your browser, so the html and 
javascript that are used will work in:

   Netscape 4.7.x and above: Unix, Windows, Macintosh
   Netscape 6.2 and above: Unix, Windows, Macintosh
   Internet Explorer 6.x and above: Windows
   Konqueror 2.X and above: Unix
   Opera 5.x and above: Linux, Windows 

The application uses the Festival text to speech synthesis engine.



----------------------------------------------------------------------------
3. AIMS:
----------------------------------------------------------------------------

Our 6 aims at present are:


1. To provide a web interface to the wonderful Festival speech engine. We 
   think this is useful because it gives us the ability to:

   * start and stop the Festival server

   * view any log-file information

   * modify the pronunciation of words for any given voice

   * test voices over the web 


2. To provide a framework for demonstrating text to speech applications,
   particularly applications that are designed to announce something of 
   interest to you.

   Amongst other things, the demonstrations cover:

   * Announcing the time

   * Announcing the arrival of certain emails

   * Announcing changes in the stock market

   * Announcing news headlines

   The demonstration framework is designed to be light-hearted, easy to use, 
   and to give the casual user a quick return on the investment of their
   time they've made in downloading and configuring the package ;-) 


3. To build a powerful, user (and programmer) friendly, web-enabled system 
   that can be configured to monitor practically anything of interest to you, 
   and to announce important changes in those things to you, either at a work 
   station, or over the phone.

   The design criteria we have in mind should mean that the system is:

   * Simple enough for casual use, by say, a single user at a workstation, 
     who just wants to hear when certain kinds of email have arrived, or when 
     one of their stocks is suddenly being sold down in large quantities!

   * Flexible enough so that one instance of the application running on a 
     server can satisfy the monitoring and announcement of large numbers
     of unrelated events, for multiple users, and deliver the announcements
     via whatever mechanism is the most appropriate

   * Configurable enough so that things are announced to you, on the whole,
     as little as possible. The principal is simple: whilst you might value a
     stock broker who rang you once every couple of weeks with some vital
     tip, you would quickly tire of that same stock broker if he or she
     called you every ten minutes. The value and timing of the information
     being announced is critical to the success of the application.

   * Natural enough that it is easy for you to establish and then modify the 
     thresholds of interest you have in any given kind of information. To put
     this another way, whilst you might be highly interested to hear about
     the completion of some step in a third-party application environment, 
     (such as the completion of a payroll cycle), when there is a problem that 
     you are actively monitoring, you are much less interested in that event 
     normally. It must easy and natural for you to "turn down" your interest 
     level in that event.

   * Extendible enough so that it can be used to speech-enable existing
     applications. We want to provide a framework for you that allows you to
     define events of interest to your application, and then allow you to
     monitor those events and then speech-enable the interaction between your
     application and your users, when those events occur.


4. To enable a user to interact with the application by talking to it.

   This should make fine-tuning the thresholds of interest used by the 
   application more intuitive. The application should be capable of 
   being interrupted, and resumed, by voice command.

   
5. Ultimately, to nurture a personality, crafted on the interaction between
   the speech-enabled application and the user. We would like to demonstrate
   that this approach can create a convincing computer personality, (convincing
   to the user that is), perhaps more easily than with more formal, 
   knowledge-based means. It is our contention that the 'personality' will
   spontaneously arise, once a certain level of interactive competence and
   novelty is achieved.


6. To exert some (hopefully positive) influence on the personalities that may
   arise from this, and other software projects.

   The software needs of corporations and other large organizations are 
   important in their own right, and maybe be useful in determining how 
   networking software and GUI's are designed, but are perhaps not the best 
   environment for nurturing a well-rounded, thoughtful and humane 
   personality.  

   We believe that it is critical that developers who share an open-source
   community mind-set turn their thoughts to how they would like to see this
   field developing in the near future.


