_ Although one can configure Canadian English voice in Festival, there is no way to choose
  Canadian English in the Talker Chooser.
_ Provide a way for those apps with KTTSD plugins to disable KNotifies, otherwise, users
  can't have both KNotify turned on and the app's plugin.  For example, Konversation or
  Kopete.
_ .desktop files must have a Type keyword, but what to use for kcmkttsd_testmessage.desktop?
_ Add ability to quickly pick default Talker to systray menu.
_ More problems with KCMultiDialog.  In addition to not being able to size horizontally less than
  640, you cannot size vertically, once it has been minimized to systray, to less than the
  vertical size when it was minimized to the systray.
_ Add option to kill plugin process when no longer needed so that memory can be recovered.
  Or maybe some sort of "nice" setting so that process will be swapped out when no longer needed.
_ Command plugin encodes text on command line using %t in user's chosen encoding, but
  if this differs from user's desktop default encoding, doesn't work.  KProcess always
  encodes command line stuff using user's default encoding.  There is no point, therefore,
  in attempting to encode it differently, just mangles the text even more.  Short of modifying
  KProcess, I see no way around this.  But perhaps a warning to user advising to use %f instead?
_ Filters:
    _ XHTMLtoSSML stylesheet needs work to provide better mappings for most web pages.
_ Audio Plugins:
    _ The Audio plugins are loaded by calling KTrader with Name=<name in .desktop file>.
      Since the desktop files are translated, is this a problem??  Works when I do
      KDE_LANG=es kttsmgr, but I am still not sure.
    _ Why must Player constructor take a 3rd "args" argument, while PluginProc constructor
      does not.  They are essentially the same. ??
_ There are several issues with i18n:
    _ Since kcmkttsmgr can be invoked from kttsmgr, kcmshell kcmkttsd, or KControl, do I
      need to call KLocale::setMainCatalogue?  Also, what about kttsjobmgr, which is kpart
      used in kcmkttsmr?
    _ The plugin Makefile.am's lack message targets, or should they just use kttsmgr catalog?
    _ The Makefile.am HOWTO seems to imply that messages target should only appear in
      top-level directory. ??  Furthermore it seems to say .pot filename must match
      application/part/module. ??
    _ I'm confused about this i18n stuff and could REALLY use some expert help..grc.
_ Festival Interactive plugin:
    _ Need someone who can read czech to try integrating this into KTTS: 
      http://www.freebsoft.org/festival-czech
_ KTTSMgr:
    _ A user had $HOME/festival directory and FestivalInt plugin used this path.  Need to
      check that auto found path is an actual executable file somehow.
    _ KCMultiDialog has a bug that won't allow sizing the screen narrower than 640.
    _ When speaking SSML, the window expands to maximum height to accomodate displaying the
      "Current Sentence", which is all of the SSML.  Annoying.  Better to not expand and display
      vertical scrollbar.
    _ Overall Audio Speed should be a realtime setting, i.e., not necessary to click Apply.
    _ Disable Audio Speed control if sox not installed (configure.in.in but runtime check would be better).
    _ Add drag N drop for the Talkers so it is easier to change the ordering.
    _ It is possible to configure multiple instances of Talkers with the exact same configuration.
    _ Add WhatsThis help.  The Jobs tab needs them.
    _ In kttsmgr jobs tab, if user has made changes but not applied them, and then clicks
      Speak Clipboard, Speak File, or Change Talker buttons, warn user to apply the changes first.
      Or maybe disable Jobs tab if changes are pending?
    _ In kcmkttsmgr, use setHelp() to set help anchor based on current tab.
    _ Add playback controls to kttsmgr.  Volume, pause.  Maybe rewind?
    _ In the job manager tab, one can drag the toolbars elsewhere, but the buttons
      disappear.  Why?
_ KTTSD:
    _ Strange msg being produced by KIO::move, but it works fine. ??
        kio (KIOJob): stat file:///home/kde-devel/.kde/share/apps/kttsd/audio/kttsd-5-1.wav
        kio (KIOJob): error 11 /home/kde-devel/.kde/share/apps/kttsd/audio/kttsd-5-1.wav
        kio (KIOJob): This seems to be a suitable case for trying to rename before stat+[list+]copy+del
    _ KTTSD should autoconfigure a Talker if there is no configured Talker that supports a requested
      language.  If no Talkers are configured at all, autoconfigure a Talker using the user's
      desktop language.  Must somehow let kttsmgr know about the newly configured Talker.
    _ Continue revision of KDE Speech API (kspeech.h).
    _ Add support for speech markers.
    _ Implement error signal handling in KTTSD.
    _ Add support for SSML, JSML, Sable and other Speech Markup languages.
    _ Add method for apps to play a sound file, including in the middle of a job.
      Could be done with SSML or with special Talker Code = "sound".
_ Convert to KConfig XT.
_ Add option to automatically turn down music player volume while speaking (via dcop).
_ Add a plugin for TuxTalk, http://tuxtalk.sourceforge.net/.  Since it only supports
  English (at the moment) and is alpha, don't think it is worth it now.
_ Add a plugin for dhvani, an Indian and Hindi TTS engine, http://dhvani.sourceforge.net/
  Currently written in c, but it looks like future versions will require Java VM.
  Main problem at the moment is that dhvani sends audio directly to /dev/dsp with no option
  to send to a wav file.
_ Festival plugin (static library) crashes on first call to library.
_ Investigate what is involved in getting Gnopernicus screen reader to use KTTSD.
_ Command plugin crashes when using command 'flite -t "%t"' and flite can't get write access to /dev/dsp*.
_ IBM ViaVoice plugin?
_ When stopText() is called, and Hadifix process is killed, the temporary wav file is not deleted,
  despite QFile::remove call.  Possibly still locked by exiting mbrola process?  This only seems
  to happen in the configuration dialog when canceling Tests.
