2005-02-17  Gary Cramblitt (PhantomsDad)
        * Remove festival/ and festivalcs/ plugins from source tree.  AFAIK, these plugins don't work
          and nobody is using them.  And these are confusing packagers who think we have a build
          dependency on Festival and Speech Tools libraries. Use festivalint/.

2005-02-15  Gary Cramblitt (PhantomsDad)
        * Translations now working.
        * Include a copy of kdelibs/interfaces/kspeech in compat/ dir.  This permits distribution
          and compilation of KTTS for KDE less than 3.4.
        * Support for Italian voices.  Download from
          http://www.csrf.pd.cnr.it/TTS/It-FESTIVAL-download.htm.
          or http://mirko.lilik.it/Italian-FESTIVAL.zip

2005-02-05  Gary Cramblitt (PhantomsDad)
        * Version bumped to 0.3.0.
        * Russian Festival voice added to voices file.  Download voice from
          http://nshmyrev.narod.ru/festival/festival.html.  Must have Festival 1.95 beta or later.
          Untar to festival/lib/voices/russian/ directory.  Encoding must be one of the
          single-byte cryllics, such as KOI8-R.
        * Ability to load/save Talker Chooser and XML Transformer configurations.
        * Some bug fixes related to Filters.

2005-01-24  Gary Cramblitt (PhantomsDad)
        * Add Talker Chooser Filter.
        * Add option on Audio tab to preserve generated audio files by copying to user-specified
          directory.

2005-01-22  Gary Cramblitt (PhantomsDad)
        * Allow filtering of notifications.  (only setText and appendText are currently filtered.)
        * Fix bug.  Synchronous filters not being run.

2005-01-21  Gary Cramblitt (PhantomsDad)
        * Sentence Boundary Detector plugin now active.  This means that SSML is parsed into
          sentences and therefore can be rewound/advanced by sentence.  It also means that
          KTTS no longer crashes (taking KDE and X11 with it) on large HTML/SSML files.
        * Filters can be applied based on the DCOP Application ID of app that queued the text
          job.
        * Filters can be applied based on language of Talker.
        * StringReplacer filter can now load and save word lists to/from external file.
        * Several other bug fixes.

2005-01-13  Gary Cramblitt (PhantomsDad)
        * FilterMgr class now implemented in kttsd, which means that filters now work.  Well
          almost.  See TODO file for some nasty problems.  (Hint: avoid large HTML/SSML pages!)
        * Moved the TalkerCode matching and Talker plugins to TalkerMgr class so both
          Speaker and SpeechData classes can access them.

2005-01-09  Gary Cramblitt (PhantomsDad)
        * Epos plugin defaults to ISO 8859-2 encoding.  Pass encoded text to Epos client
          via Stdin rather than command line to avoid encoding problem.
        * Added encoding parameter to kspeech::setFile method.  This allows for speaking a
          file that is encoded different from global desktop default.

2005-01-07  Gary Cramblitt (PhantomsDad)
        * Start to Filters capability.  StringReplacer Filter implemented in KTTSMgr GUI,
          but not yet implemented in kttsd.

2004-12-31  Gary Cramblitt (PhantomsDad)
        * In KTTSD, if user has not yet configured any Talkers, prompt user and if they click
          Yes, run KTTSMgr.  User has option to turn off prompt.
        * Activate kspeech::showDialog() method.
        * The khmtlktts plugin automatically senses if KTTSD is installed and if not,
          hides menu item.

2004-12-30  Gary Cramblitt (PhantomsDad)
        * Set LANG and LC_CTYPE environment variables before starting subprocess in Epos and
          and Command plugins.  Fix encoding bug in Epos plugin.  Move common encoding routines
          to PluginProc.

2004-12-27  Gary Cramblitt (PhantomsDad)
        * Add encoding option to Festival Interactive Plugin.  When choosing a voice, default the
          encoding option based on voices file.
        * Add support for Polish Festival.

2004-12-21  Gary Cramblitt (PhantomsDad)
        * Require GStreamer 0.8.5 or above in configure.in.in.  SuSE 9.2 users have
          GStreamer 0.8.0, which causes KTTSMgr to immediately crash on startup.

2004-12-20  Gary Cramblitt (PhantomsDad)
        * kdenonbeta/kttsd moved to kdeaccessibility/kttsd.
        * kdenonbeta/kttsd/libktts moved to kdelibs/interfaces/kspeech.  libktts dropped.
        * kdenonbeta/app-plugins/khtml-plugin moved to kdebase/konqueror/kttsplugin.
        * kdenonbeta/app-plugins/kate-plugin moved to kdebase/kate/plugins/ktts.
        * kdenonbeta/app-plugins/katepart-plugin moved to kdebase/kate/plugin/katepartktts.

2004-12-19  Gary Cramblitt (PhantomsDad)
        * Change Festival voices from ini to xml format.  Permit translators to translate voice names.
        * Add "--enable-kttsd-gstreamer" option to configure, defaulting to no.
          Warn packagers not to distribute gstreamer in binary packages of kdeaccessibility as it
          creates unwanted dependencies.

2004-12-18  Gary Cramblitt (PhantomsDad)
        * Remove kcmkttsmgr.  Use kcmkttsd instead.

2004-12-14  Gary Cramblitt (PhantomsDad)
        * Under KDE 3.2, FestivalInt plugin automatically finding /usr/share/festival, rather
          than /usr/bin/festival.

2004-12-12  Release 0.2.0.  First public release.

2004-12-09  Gary Cramblitt (PhantomsDad)
        * Require GStreamer >= 0.8.7.
        * Bug.  Always using default GStreamer sink in KTTSD.  Honor user's choice now.

2004-12-07  Gary Cramblitt (PhantomsDad)
        * Add Festival Czech voice.
        * Apply some Juk patches to GStreamerPlayer.

2004-12-06  Gary Cramblitt (PhantomsDad)
        * Initial, but primitive support for SSML with Hadifix.

2004-12-03  Gary Cramblitt (PhantomsDad)
        * Audio players are now plugins.  This permits distribution of binary packages
          without GStreamer being a mandatory dependency.

2004-12-02  Gary Cramblitt (PhantomsDad)
        * Bypass stretching (overall Speed setting) when utterance contains SSML.  sox
          mangles SSML pitch settings.

2004-12-01  Gary Cramblitt (PhantomsDad)
        * Some code reorganization.  New TalkerCode object in libkttsd.
        * Better Talker selection dialog when changing Talker in Jobs tab.

2004-11-29  Gary Cramblitt (PhantomsDad)
        * When clicking Test button, now honors users output method (arts or gstreamer) and
          overall Audio Speed setting.
        * Add option for GStreamer output sink.

2004-11-27  Gary Cramblitt (PhantomsDad)
        * Extremely rudimentary support for SSML/Sable using FestivalInt plugin.  If it works for
          you, it will be minor miracle.
        * In FestivalInt configuration dialog, do not enable OK button if EXE Path is invalid.
        * When Editing existing FestivalInt configuration, do not inadvertently change the selected
          voice when rescanning.
        * In FestivalInt configuration dialog, disable voice combo box until scan has been clicked.

2004-11-26  Gary Cramblitt (PhantomsDad)
        * Slight throughput improvement by eliminating pause at start of each Festival utterance.
        * Bug fix.  Can find synthesizers when HOME env variable is in the path.

2004-11-25  Gary Cramblitt (PhantomsDad)
        * Add Finnish Male voice (http://www.ling.helsinki.fi/suopuhe/download/)
        * Improve throughput slightly by emitting Text Started signal after playback has begun.

2004-11-24  Gary Cramblitt (PhantomsDad)
        * Add overall Speed control to KTTSMgr Audio tab.  This permits to speed up speech
          even if the synth does not support it.  Must have sox installed for this to work.
        * Add Speed and Pitch controls to Epos plugin.  Also set language.
        * Better Speed adjustment for HTS voices.

2004-11-23  Gary Cramblitt (PhantomsDad)
        * Add support for OGI English and Spanish voices.
        * Update Handbook.
        * Better Spanish translations for voice names.

2004-11-22  Gary Cramblitt (PhantomsDad)
        * Add support for IMS German Festival.
        * Update Handbook.

2004-11-21  Gary Cramblitt (PhantomsDad)
        * Add volume control to Festival Interactive.
        * Accelerators for Festival Interactive configuration dialog.
        * HTS voices only support Volume (not Speed or Pitch)
        * Talker Codes reflect volume setting.

2004-11-20  Gary Cramblitt (PhantomsDad)
        * Add pitch control to Festival Interactive.
        * GStreamer plugin.

2004-11-17  Gary Cramblitt (PhantomsDad)
        * Bug fix.  Hosed Talker in KTTSMgr after removing a Talker and clicking Cancel.
        * In KTTSMgr no longer record LastTalkerID in config file; compute at load time instead.
        * Change Talker tab in KTTSMgr to "standard" layout.
        * Bug fix.  Talker matching.  Tended to pick last talker no matter what.

2004-11-13  Gary Cramblitt (PhantomsDad)
        * Fix.  Nothing happens when clicking Configure button for Festival Interactive
          plugin if your desktop language is not English.  Display translated name for
          Synthesizer in Talkers tab.
        * Display translated words for "male", "female", "neutral", "fast", "slow", "medium",
          "loud", "soft" in KTTSMgr Talkers list and from Jobs "Change Talker" button.
        * getTalkers() not returning country code as part of Talker Code.
        * The Command plugin configuration dialog should enable OK button if %t or %f
          appear in command, or "Send data via stdin" is checked.  Also uncheck this option
          by default in order for plugin to sense proper configuration.
        * Add Jorge Luis Arzola to credits as tester.

2004-11-11  Gary Cramblitt (PhantomsDad)
        * Support for Festival 2.0. and Festival MultiSyn voices in FestivalInt plugin.
        * Query Festival for available voices, rather than scanning for directories.
        * Support for multiple versions of Festival executable.  Now asks for EXE path rather
          than voices path.
        * Allow preload of Festival voices that take a long time to load.
          If set, Festival is started when KTTSD starts and the voice is loaded.
        * When stopText() is called and FestivalInt plugin is synthing (not saying) using
          a pre-loaded voice, instead of killing Festival, which would cost hugely in
          re-startup time, Festival is allowed to finish synthing and result is discarded.
          This improves performance when rewinding/fastforwarding.
        * Corrected FestivalInt voices file as to voice descriptions and languages.
          Added MultiSyn voices.
        * Added accelerators and WhatsThis help to FestivalInt, Command, Epos, Flite, and Hadifix
          configuration dialogs.
        * Added modal, cancelable, progress dialog while Testing in FestivalInt, Command, Epos,
          Flite, FreeTTS, and Hadifix configuration dialogs.
          This prevents a crash when user clicks OK or Cancel before test has completed.
        * Command plugin always displays configuration dialog when added, i.e., never
          autoconfigs.
        * Speed adjustment disabled when using MultiSyn Festival voices.
        * Allow KTTSMgr screen to be resized to minimum size.  Allow splitter to resize jobs
          ListView to minimum vertical size.
        * No longer attempt to build Festival plugin (static linking to Festival/Speech Tools
          libaries).  User must explicitly request via ./configure --enable-kttsd-festival.
          Code is woefully behind, I cannot get it to work, and probably wouldn't work
          anymore even if I could get it to link and get past crash on first call to library.
          FestivalInt seems to work just fine..grc.

2004-11-10  Paul Giannaros (Cerulean)
        * getTalkerCodes() returning corrupted talker codes.

2004-11-04  Gary Cramblitt (PhantomsDad)
        * Add English languages to FreeTTS desktop file so they show up in Add Talker dialog.
        * When starting kttsmgr, if no Talkers are configured, default to Talker page.
        * In kttsmgr, uncheck and disable Enable TTS checkbox until at least one Talker
          has been configured.  Once at least one Talker is added, enable the checkbox.
          If all Talkers are removed, uncheck and disable the box and stop KTTSD.
        * Give kttsmgr window an icon.
        * Add option to embed KTTSMgr in the system tray.

2004-11-03  Gary Cramblitt (PhantomsDad)
        * Add ability to configure more than one plugin for a language, but with different
          voices. Call them "talkers".
        * Improve language selection and management in the KTTSD's configuration. Languages
          added shouldn't be shown in the list of languages to add. Default languages should
          show only the current languages. Languages should be shown as names and not codes.
          Languages should be erased from the default language combo box.  If a plugin does
          not support a language, it should not be choosable.
        * Add support for moving a text job to a different talker (language/plugin).
        * Standarize the .desktop files

2004-10-20  Gary Cramblitt (PhantomsDad)
        * kcm_kttsmgr and kcm_kttsd are now identical libraries/KCModules.
          Applications should use kcm_kttsd.  When all apps have stopped
          using kcm_kttsmgr, remove it.

2004-10-19  Gary Cramblitt (PhantomsDad)
        * The following installed files were renamed
          on or about 19 Oct 2004:
            In $KDEDIR/share/services/:
              festival.desktop         -> kttsd_festivalplugin.desktop
              festivalint.desktop      -> kttsd_festivalintplugin.desktop
              command.desktop          -> kttsd_commandplugin.desktop
              hadifix.desktop          -> kttsd_hadifixplugin.desktop
              flite.desktop            -> kttsd_fliteplugin.desktop
              epos-kttsdplugin.desktop -> kttsd_eposplugin.desktop
              freetts.desktop          -> kttsd_freettsplugin.desktop
            In $KDEDIR/lib/kde3/:
              libfestivalplugin        -> libkttsd_festivalplugin
              libfestivalintplugin     -> libkttsd_festivalintplugin
              libcommandplugin         -> libkttsd_commandplugin
              libhadifixplugin         -> libkttsd_hadifixplugin
              libfliteplugin           -> libkttsd_fliteplugin
              libeposkttsdplugin       -> libkttsd_eposplugin
              libfreettsplugin         -> libkttsd_freettsplugin
              
          Rename libkttsjobmgr to libkttsjobmgrpart per kdelibs/NAMING convention.
              
          There is a new shell script, clean_obsolete.sh that will remove these
          obsolete files from your system.
        
2004-10-14  Gary Cramblitt (PhantomsDad)
        * Fix crash when clicking Cancel to prompt for Other language code, or user
          enters an invalid language code.
        
2004-10-13  Gary Cramblitt (PhantomsDad)
        * libktts is now a versioned shared library.  You may need to remove the
          unversioned library, ie.
             rm $KDEDIR/lib/libktts.*
             
2004-10-13  Gary Cramblitt (PhantomsDad)
        * Revert previous change.  Sorry.

2004-10-13  Gary Cramblitt (PhantomsDad)
        * Remove versioning from libkttsd.
          NOTE: After rebuilding and installing, you will want to delete
                the following file:
                  $KDEDIR/lib/libkttsd.so.1.0.0

2004-10-12  Gary Cramblitt (PhantomsDad)
        * Added Handbook.
        * Help button and system tray content menu display Handbook.
        
2004-09-07  Gary Cramblitt (PhantomsDad)
        * Added 6 new HTS voices for Festival and FestivalInt plugins.
          Courtesy of "N.Cat" Triskelios.
          Download the voices from http://hts.ics.nitech.ac.jp/
          
2004-09-04  Gary Cramblitt (PhantomsDad)
        * Rename Hadifax to Hadifix.
          NOTE: After rebuilding and installing, you will want to delete the
                following files:
                  $KDEDIR/lib/kde3/libhadifaxplugin.la
                  $KDEDIR/lib/kde3/libhadifaxplugin.so
                  $KDEDIR/share/services/hadifax.desktop

2004-09-02  Paul Giannaros
        * FreeTTS plugin.
        
2004-08-28  Gary Cramblitt (PhantomsDad)
        * GStreamer player added.  Doesn't work right now because gstreamer 0.6
          has issues with wav files.  Try again when KDE bindings (gst) have been
          updated to gstreamer 0.8.
        * If jobNum parameter in dcop calls is 0, default to last job queued by the
          application, or if no such job, the current job (instead of last job).
        * After call to stopText, if there more speakable jobs in the queue, they begin
          speaking.
        * Emit textPaused and textStopped signals as documented.
        * Fix bug in festivalint plugin.  Hangs sometimes with short utterances caused
          by writing to Stdin before Stdin buffer is empty.
        * Better sentence parsing.
        * Minor fixes to kttsjobmgrpart.
        
2004-08-09  Gary Cramblitt (PhantomsDad)
        * Remove requirement to copy pluginconf.h to $KDEDIR/include when running designer
          against plugin configuration widgets.
        * Epos plugin not listing codecs.
        * Some plugins listing codecs multiple times.
        * Select and ensure default language visible when first displaying kttsmgr.
        * Auto select and prepare Properties tab when adding a new language in kttsmgr.
        
2004-08-08  Gary Cramblitt (PhantomsDad)
        * Add plugin for Epos TTS Synthesis System (czech and slovak).
        
2004-08-07  Gary Cramblitt (PhantomsDad)
        * Existing release marked with tag ktts-0-1.
        * New version of KTTS is 0.2.
        * Many changes to KTTSD and the KTTSD plugins.
        * QThreads have been mostly eliminated, which were causing anomalies.
        * See libkttsd/pluginproc.h for the new plugin API.  The new API is backwards
          compatible to the old API.
        * Plugins now perform synthesis separate from audibilizing, but they may do
          both if needed.  If a plugin supports separate synthesis, it returns True
          in supportsSynth() method.
        * If a plugin supports separate synthesis, KTTSD sends the synthesized audio file
          to aRts for playback.  The playback code has been designed with future
          alternate playback plugins in mind, example gstreamer.  (The code was adapted
          from Juk with minor changes.)
        * Plugins may work asynchronously, provide status via state() method and emit
          signals when an operation has completed.  If a plugin supports asynchronous
          operation, it returns True in supportsAsync() method.
        * If a plugin does not support asynchronous operation, it is wrapped in a QThread,
          which is the same as before.  See threadedplugin.h/cpp.
        * Because playback is separate from synthesis and plugins work asynchronously,
          pauseText or stopText _immediately_ pause or stop playback in mid-sentence.
        * New plugin, flite, added for direct support of Festival Lite.
        * The festivalint, command, and hadifax plugins were rewritten to support
          these new capabilities.  
        * Need someone to rework the freetts plugin.  I don't have JVM.
        * Each plugin (except festival and freetts) now has a "Test" button on the
          configuration dialog.
        * The option to play a sound on text interruption now works.
          
2004-07-10  Gary Cramblitt (PhantomsDad)
        * Warn user if festival not installed.
        * Install voices data file for festival interactive plugin even if
          festival plugin not installed.

2004-06-05  Gary Cramblitt (PhantomsDad)
        * Draft KDE Text-to-Speech API Draft 3.
        * Removed concept of paragraphs.
        * Added concept of text job parts.
        * Added sayScreenReaderOutput method.
        * Replaced nextSenText, prevSenText, nextParText, prevParText with moveRelTextSentence.
        * Added jumpToTextPart.
        * Removed paragraph settings from configuration dialog.
        
2004-05-31  Gary Cramblitt (PhantomsDad)
        * Move speaking of notifications to KTTSD and persist notify settings.
        * Clean up kcmkttsmgr.desktop and install to correct place.
        
2004-05-23  Gary Cramblitt (PhantomsDad)
        * Add option to speak KNotify notifications.
        
2004-05-22  Gary Cramblitt (PhantomsDad)
        * Change menu item to "Speak Text" on the Tools menu in app-plugins.  Also start KTTSD if it is
          not running.

2004-05-21  Gary Cramblitt (PhantomsDad)
        * Bug fix.  Upon startup of kttsmgr, Remove button and Properties tab not enabled despite
          default language selected.
          
2004-05-19  Gary Cramblitt (PhantomsDad)
        * Allow kttsmgr screen to be resized as narrow as possible.
        * Correct some mispellings.
        * When calling reinit() pauseText only if isSpeakingText().
        
2004-05-18  Gary Cramblitt (PhantomsDad)
        * Reinit() without losing existing queued text jobs, messages, or warnings.
        * When kttsd restarts because of reinit(), job manager part refreshes list.

2004-05-17  Gary Cramblitt (PhantomsDad)
        * Fix hang when calling reinit() while speaking.
                        
2004-05-15  Gary Cramblitt (PhantomsDad)
        * Lots of changes:
        *   Defined the KDE Text-to-speech API.  See /libktts/kspeech.h.
        *   Moved all the GUI stuff out of KTTSD into kttsmgr.  KTTSD is a pure non-GUI deamon now.
        *   Added text job manager as a KPart (kttsjobmgr) for GUI interface.
        *   Replaced existing configuration manager (kcmkttsd) with kcmkttsmgr, which includes kttsjobmgr.
        *   Fixed several typos and minor bugs.
        *   Fixed Kate and KHTML Plugins.
        *   Updated README, TODO and this file.
        *
        * IMPORTANT note to developers using KTTSD:  The startText, stopText, resumeText DCOP
        *   methods now take a jobNum argument, which you can code as 0 to operate against the last text
        *   job your app queued.  See /plugins/kate-plugin/katekttsd.cpp for example, or /libktts/kspeech.h.
        
2002-11-21  Pupeno  <pupeno@pupeno.com>

	* Full port to the new architecture finished. Some fine tunning still needed.

2002-09-25  Pupeno  <pupeno@pupeno.com>

	* Festival Cliente/Server plug in added. Festival plug in was added initially in the project. FreeTTS never was meant to work yet.

2002-07-28  Pupeno  <pupeno@pupeno.com>

	* ChangeLog created.
