OpenTTS 0.1 released.

Luke Yelavich themuso at
Sun Jun 6 04:09:16 BST 2010

I am proud to announce the very first release of OpenTTS, version 0.1. Thanks
to everybody who made this release possible, you know who you are. The first
release series is focused on delivering a text to speech framework for the GNOME
 orca screen reader, that is the same, and hopefully better, than the deprecated
gnome-speech solution that has been in use ever since the GNOME accessibility
project's inception. The OpenTTS development team is also planning on making
further usability improvements, which will aid both system administrators, and
end users alike.

PLEASE NOTE: This release is NOT considered stable. It is recommended that only
those who are willing to test, and report bugs use this first release of
OpenTTS. Since we are aiming to provide a usable solution for orca, our aim is
to deliver a stable release at the time GNOME 3 officially ships. Between now
and September therefore, we hope to make regular monthly releases for the
community to track our work, test, and give feedback. These releases will not
necessarily be considered stable, but will give users a snapshot they can use,
which is free of major show stopper bugs.

Release notes:
 * OpenTTS can be used as a system wide service, however at the moment, this is
   slightly extra work. The OpenTTS development team hopes to make OpenTTS as a
   system service much easier to use in the near future.

Where can I get it?
OpenTTS 0.1 is available from the following locations:
git: git://

Getting involved:
We are always willing to accept any help, no matter where it comes from, or what
skills you bring to the table. If you would like to contact us and get involved,
please do so in the following ways:

 * OpenTTS project mailing lists, at Please sign up to
   the opentts-dev mailing list for development discussions. Moderate traffic,
   low signal to noise ratio. There is also opentts-users, for user questinos,
   and support. Extremely low traffic, currently low signal to noise ratio.
 * Reporting/triaging bugs on the OpenTTS issue tracker, available at Bugs can also be reported on the mailing lists, if
   you prefer.

We welcome any and all contributions.

For those interested, below you will find a shortlog of work that has been done
since the project was started just over 2 months ago:

Andrei Kholodnyi (46):
      moved spd_audio_endian to AudioID
      moved log_level from spd_audio.h to spd_audio.c and rename it
      moved pulse.c from spd_audio.c to
      moved alsa.c from spd_audio.c to
      moved oss.c from spd_audio.c to
      moved libao.c from spd_audio.c to
      moved nas.c from spd_audio.c to
      moved AudioID alloc into plugins
      move pulse specific data from AudioID to pulse.c
      move nas specific data from AudioID to nas.c
      move oss specific data from AudioID to oss.c
      move alsa specific data from AudioID to alsa.c
      remove AudioOutputType
      split spd library and spd plugin headers
      added plugin name to audio plugin structure
      move audio static plugins initialization into static_plugins.c
      moved module_main.c from the dummy.c to
      moved module_main.c from cicero.c to
      moved module_main.c from espeak.c to
      moved module_main.c from festival.c to
      moved module.main.c from flite.c to
      moved module_main.c from generic.c to
      moved module_main.c from ibmtts.c to
      moved module_main.c from ivona.c to
      moved fdsetconv.c from module_utils.c to
      added pkgconfig support
      moved debug defines to libspeechd.c
      update pkg-config support
      added dynamic load of audio plugins
      fix module_dbgfile memory leak
      fix rep_line memory leak
      replace EPunctMode with SPDPunctuation
      replace ECapLetRecogn with SPDCapitalLetters
      replace ESpellMode with SPDSpelling
      replace EVoiceType with SPDVoiceType
      replace VoiceDescription with SPDVoice
      replace ENotification with SPDNotification
      replace int ssml_mode with SPDDataMode
      moved EMessageType to SPDMessageType in opentts_types.h
      moved SPDMsgSettings from fdset.h to module_utils.h
      fix refs to fdset.h, general text review
      fix p_client_socket memory leak
      fix o_buf memory leak
      fix o_buf memory_leaks in parse.c
      fix make distcheck

Christopher Brannon (113):
      Prevent automake from failing when we have no ChangeLog.
      Added spd_audio_get_playcmd function.
      Removed SPDAudioSettings
      Add missing include directives.
      Use const * consistently for function tables.
      Fix memory leaks in module_audio_init_spd.
      Fix copyright oversight.
      Give Andrei credit in the AUTHORS file.
      Add prototypes for module_utils_addvoice.c.
      Add a prototype for festival_read_response.
      Fix calls to ivona_get_msgpart.
      Declare functions from ivona_client.c in a header file.
      Possibly include sndfile.h in ivona_client.c.
      Fix inclusion of config.h for two files.
      Add ivona_client.h to
      Remove use of strdup in do_list_voices.
      Change LIST VOICES in the internal module protocol.
      Use glib consistently in command handlers.
      Don't redefine PACKAGE and VERSION.
      Reorganized options.c and options.h for the "say" client.
      Cleanup options.c and options.h for the server.
      Stop using xfree in the audio subsystem.
      Fix link order in the modules.
      Use ltdl to handle static plugins.
      Use glib allocation in the server.
      Use glib allocation in the modules.
      Use glib allocation in the audio subsystem.
      Use glib allocation in the common library.
      Surround calls to OL_RET with braces, and add semicolons.
      Remove some complex macros.
      Simplify a macro in parse.c.
      Indent remaining files.
      Properly indent header files.
      Replace calls to free with g_free.
      Fix segfault when compiled against libao 1.0.0.
      Remove redundant library from modules/
      Add new code for generating timestamps.
      Rename the Python bindings, including the speechd_config suite.
      Fix a mistake in the python subdirectory.
      Use automake in the session subdirectory.
      Convert the python subdirectory to use the autotools.
      spd_audio_endian should be id->format.
      Use otts_getline instead of getline.
      Fix module_add_config_option in module_utils.c.
      Change the way that lines are read in the server.
      Do not include the common library in libopentts.
      Reopen the connection to pulseaudio when the audio format changes.
      Add an extra newline when writing to .profile.
      Add the Unix socket communication method, and use it by default.
      The communication method is now configurable.
      Support Unix sockets in the C client API.
      Autospawn is controlled by an argument to spd_open2.
      Make autospawn optional for clients.
      The daemon no longer checks SPEECHD_PORT.
      Don't require the ~/.speech-dispatcher directory to already exist.
      Autospawn mechanism fine-tuning
      Redirect stderr when autospawning in the Python library.
      Check for the existence of the pid file before handling autospawn.
      Update otts-conf to generate config for Unix sockets.
      Do not require ~/.speech-dispatcher to exist.
      Remove some unused options from the configure script.
      Put Unix sockets in the home directory, and respect SPEECHD_SOCK.
      Don't try to compile OSS support if OSS is not available.
      Fix compilation on Mac OS X.
      Correct the loop boundary in a convenience function.
      Properly handle the return value of spd_sayf in the otts-say client.
      Improved portability checks.
      Don't store pointers to strings that dotconf will free.
      Move spd_audio.c and spd_audio.h to the modules subdirectory.
      Fix prefixes of entry functions in the audio modules.
      Adjust init_settings_tables to account for renaming of constants.
      Add constants for reporting errors.
      Install opentts_types.h.
      More renaming.
      Remove the "Future Design" section.
      More replacement.
      Change pathnames in the documentation.
      Rename speech-dispatcher.texi to opentts.texi.
      Let the otts-say client speak messages that begin with dash.
      Additional renaming in the otts-say client.
      Change names of files.
      Fix a bug in libopentts.c.
      Replace many references to Speech Dispatcher.
      Fix two memory leaks in the parse_set function.
      Use proper comparisons while traversing the history list.
      Prevent another macro from storing pointers to dotconf's strings.
      Fix: two command-line options had no effect.
      Fix a nasty off-by-one bug in the Festival module.
      Bugfix: ALSA now resumes when suspended.
      Fix an error-handling clause in alsa_play.
      Change the test-runner program to use Unix sockets.
      Update the documentation to reflect the code.
      Replace the SPEECHD_* environment variables with OPENTTSD_*.
      Add an introduction to the C API section of the manual.
      Only change endianness for 16-bit audio.
      Set correct endianness during libao playback.
      The function flite_set_voice should be a no-op.
      Discuss our history in the documentation.
      Fix the help and version messages for the server.
      Change speechd to openttsd in log messages.
      Change speechd to openttsd in error messages and comments.
      Amend authorship and copyright info for the docs.
      otts-say.texi needs more authorship and copyright info.
      Cast return value of lt_dlsym to the proper type.
      Update the AUTHORS file.
      Document the process of building ibmtts for 64-bit.
      Unknown voice types should map to SPD_NO_VOICE.
      Refactor spd_open2 and fix spd_close.
      Properly handle autospawning in the Python library.
      Break out of a loop in pulse_play when an error occurs.
      Wait for the auto-spawned server process to terminate.
      Use the same parameter to listen() for both Unix and TCP sockets.
      Break out of a loop in libao_play when an error occurs.

Jason White (1):
      fix otts-conf default port

José Vilmar Estácio de Souza (1):
      memory leak

Luke Yelavich (15):
      Initial OpenTTSd git repository creation based on unofficial 0.6.68 release of speech-dispatcher
      session - Re-add accidentally lost
      Re-add lost python build file
      Remove reference to ChangeLog file in top directory
      Reset version to 0.0
      Re-add yet another lost file from the openttsd repo transition
      Set correct audio endianness for audio playback using pulseaudio
      server - change last references to speech-dispatcher config file directories to opentts
      Change all other ~/.speech-dispatcher references to ~/.opentts
      Change more speech-dispatcher references in the pulseaudio output code
      Rename speechd/spd-say/Speech Dispatcher to their OpenTTS equivalents in otts-conf
      Don't refer to non-existant fdset.h file in src/common
      Distribute fdset.h in the tarball
      Link against in the build dir, not the src dir
      Release 0.1

Rui Batista (1):
      Renamed Speech Dispatcher naming to Opentts in INSTALL and minor cleanups on that file

Steve Holmes (2):
      Updated documentation to reflect OpenTTS name.
      Updated opentts.desktop file.

Trevor Saunders (24):
      change calls to signal to sigaction
      clean up module_utils
      update docs
      rename variables and functions in the server
      rename spdsend to otts-send
      cleanup documentation for otts-send
      rename files in src/clients/send/
      change references to spdsend to otts-send
      update comment in libao.c
      rename spd_audio_log_level to audio_log_level
      renamed several audio types
      rename some audio functions
      rename SPEECHD_DEBUG to OPENTTSD_DEBUG and move it to openttsd.h
      rename SpeechdSocket to openttsd_sockets
      renamed multiple functions
      update several comments
      rename options.home_speechd_dir to options.opentts_dir
      rename SPEECHD_OPTION_xxx macros
      change the include guard in openttsd.h to use openttsd instead of speechd
      change TSpeechDQueue to queue_t
      rename TSpeechDSock to sock_t
      rename speechd_queue_alloc to queue_alloc

William Hubbs (83):
      rename to
      fixed typo
      updated extra_dist in main makefile
      update documentation Makefile
      rearranged the api and client directories
      fix issues with installation
      only build test binaries when make check is run
      clean up several makefiles
      distribute the API's for common lisp and guile
      started cleaning up
      detect sound systems before speech synthesizers
      define installed headers correctly
      don't declare libraries in LDFLAGS
      more makefile cleanup
      fixed an autotools conflict
      include config.h in all sources
      move the code in intl to a convenience library
      tests should use the convenience library
      remove PACKAGE and VERSION definitions from server's makefile
      clean up ignore patterns
      cleaned up EXTRA_DIST for modules
      added more ignore patterns
      convert libsdaudio to a convenience library
      configuration system update
      remove rule for html documentation
      fixed a comment
      remove old speech dispatcher announcement
      disable session integration support by default
      clean up the modules makefile
      removed extra_dist from src/audio/
      install spd_audio_plugin header file
      rename the C API library
      tests should link against libopentts
      fix include in the say client
      fixed an include in the guile bindings
      updated the header in libopentts.h
      updated an include in libopentts.c
      rename directories from speech-dispatcher to opentts
      audio subsystem updates
      move the modules sub directory
      rename ottslibdir to audiodir
      fixed variable in audio makefile
      include spd_audio_plugin.h from spd_audio.c instead of spd_audio.h.
      Revert "include spd_audio_plugin.h from spd_audio.c instead of spd_audio.h."
      ran code through Lindent
      python build updates
      session build fixes
      do not install Czech documentation
      fix declaration of festival_connection_crashed
      fix include in spd_audio.c
      fix declaration of current_index_mark
      convert global variable declarations to externs
      consolidate global variables in modules
      remove DBG macro from modules
      remove the prefix from the module names
      rename the daemon
      make better use of conditionals in modules makefile
      rename fixes
      move public header files to common include directory
      build system updates
      remove the session directory
      add configure option to disable the installation of the python bindings
      remove prefix from audio plugin names
      Revert "remove prefix from audio plugin names"
      removed several change logs
      remove prefix from names of audio plugins
      fix includes of libopentts.h and opentts_types.h in the say client and api
      change main config file to openttsd.conf
      fix config makefile
      remove duplicate include directive in openttsd.conf
      move desktop autostart file to config directory
      clean up config files
      fix permissions on the socket
      permission fixes
      fix typo
      remove dotconf from pkg-config file
      fix Makefile substitutions
      clarify the contact information in the SSIP document
      fix copyright assignment request
      make configure fail when necessary libraries are not on the system
      build fixes for the audio subsystem
      remove ability to disable autospawn from server
      fix implicit declaration of g_unlink

jose vilmar estacio de souza (1):
      possible memory leaks

tbsaunde (1):
      refactor module_main to use disatch_cmd instead of macros

Luke Yelavich
OpenTTS Project lead.

More information about the Ubuntu-accessibility mailing list