Cepstral, LLC
Allison for Sparc-Solaris

Voice Version HistorySoftware Version History
5.0.0 - April 10, 2008
  • Additional tuning and correction of speech units. Original Release was version 4.2.1




5.1.0 - June 11, 2008

Bug Fixes (Swift Engine):
  • Fixed a bug where some audio files would cause a synthesis error.
  • Fixed a bug where Stereo audio did not play correctly on Windows. All included audio files are now played in Mono.



5.0.0 - March 19, 2008

Bug Fixes (Swift Engine):
  • Fixed a leak in socket handles when a synthesis request was denied a synthesis token because it (they) were all allocated.
  • Support modifying the socket used for licensing.
  • Fixed reading RIFF Audio files that were not word (4 byte) aligned.



4.2.0 - March 14, 2007

Enhancements (Swift Engine):
  • A new swift_event type, SWIFT_EVENT_CANCELLED has been created. This event is sent to the host application's swift_callback_t function for the swift_port when a swift_port_stop() call has been handled.
Bug Fixes (Configuration):
  • The swift.xml configuration file can now contain Latin-1 characters (iso-8859-1).
Enhancements (Swift Commandline Tool):
  • Now exits gracefully when the user sends a Ctrl+C signal. This means that there is no lag time before the concurrency token that was in use at the time of the Ctrl+C signal is recovered.
Bug Fixes (Installer):
  • FIXED: The installer generates a swift.xml file that may not be readable by the Swift TTS Engine on non-English systems.



4.1.4 - August 18, 2006

Bug Fixes (Swift Engine):
  • Fixed an issue under Unix platforms (Linux, Solaris, OS X) regarding slowness in rendering speech. The most common symptom was a several-second delay between sentences when speaking mutli-sentence blocks of text.



4.1.2 - July 25, 2006

Bug Fixes (Swift Engine):
  • Fixed a memory usage problem under Unix platforms (Linux, Solaris, OS X) where virtual memory was growing very rapidly when speaking large amounts of text.
Bug Fixes (Swift Command Line):
  • FIXED: If you install swift to anywhere other than /opt/swift and you register a concurrency license using 'swift --reg-ports,' it fails to write the concurrency license file



4.1.0 - June 30, 2006

Bug Fixes (Installer):
  • Install script (install.sh) now performs tilde-expansion under Linux only. When run under BSD, "~" is not expanded to your home directory. (NOTE: We don't officially support Swift on BSD.)
  • Install script (install.sh) now uses awk and gsub to perform tilde expansion. This allows it to run on a wider range of shells.
Bug Fixes (Swift Command Line):
  • FIXED: If an audio file is locked (for instance, if it is open and paused in a media player), and you attemp to overwrite the file, the operation fails as expected. However, when you close the media player, the file is deleted.
Enhancements (Swift Command Line):
  • 'swift --register' has been replaced with 'swift --reg-voice'. This brings consistency to the two registration options. "--reg-ports" is very specific while "--register" was vague, so it has been replaced with a more specific "--reg-voice."
  • An error message is now printed when an audio file specified to be played with "-f" option cannot be played.
  • 'swift -V' now displays concurrency license information, including the total number of concurrent ports registered and the number of ports currently in use on the system.
Bug Fixes (Swift Engine):
  • FIXED: The last entry in lexicon.txt is ignored if there is no newline at the end of the file.
  • FIXED: A Concurrency token is lost if an application using Swift TTS with a concurrency license does not exit cleanly.
  • FIXED: Swift can only play audio files requested via the SSML <audio> tag if they are PCM16 formatted.
  • FIXED: The <prosody> SSML element causes swift to crash when used with a contour of the following form:

    "<prosody contour='(0%,+20Hz) (10%,+30%) (40%,+10Hz)'>text</prosody>"

  • FIXED: Output is not resampled correctly if the voice loaded with an SSML <voice> element is of a different sampling-rate than the default voice.
  • FIXED: Swift crashes if a <cepstral:sfx> SSML tag is used but no "file" attribute is specified.
  • If an unlicensed voice is in use in a given application, it no longer needs to be reloaded for the nagging to stop if the voice is licensed while the voice is in use.
  • All available diagnostic flags now work without causing the TTS engine to crash. Also, for those that didn't crash before, now they print out sensible values instead of garbage.
  • swift_port_play_wave() can now play wave files asynchronously.
  • If the audio file specified in an <audio></audio> tag pair cannot be played, the contents of the tag pair is now synthesized. This conforms to the SSML specification, section 3.3.1.
  • Swift's handling of the "rate" attribute of the "prosody" element now conforms to SSML Specifications when a number is used to specify a relative change. From the spec: "..it acts as a multiplier of the default rate. For example, a value of 1 means no change in speaking rate, a value of 2 means a speaking rate twice the default rate, and a value of 0.5 means a speaking rate of half the default rate."
  • The swift.xml file no longer has heavy limitations on the formatting for the voice_path, library_path, binary_path, and etc_path elements. These limitations made sure that the 'swift' and 'cepstral-licsrv' scripts could properly parse for the values it needed. These scripts no longer look to swift.xml for these values.
Enhancements (Swift Engine):
  • Swift can now play .au audio files.
  • A new API call, swift_license_get_concurrency_info, has been added to retrieve information about the number of concurrency tokens available and in use on the system. For more information, see the API docs in the SDK.



4.0.3 - March 10, 2006

Bug Fixes (Swift Command Line):
  • FIXED: The swift manpage is out of date.
  • FIXED: 'swift -V' prints incorrect language version.
  • FIXED: 'swift -V' prints bogus lexicon name and version.
  • "config/default-voice" engine parameter now works. You can set this parameter through use of the -p option to command-line swift. The default voice is determined in this order: (1) config/default-voice parameter, (2) SWIFT_DEFAULT_VOICE engine config feature, (3) SWIFT_DEFAULT_VOICE environment variable (except Windows CE), (4) SwiftDefaultVoice registry setting (Windows and Windows CE only).
Enhancements (Swift Command Line):
  • 'swift --register' and 'swift --reg-ports' are now more forgiving. Leading and trailing whitespace is cropped from all input fields, and the license key is now case-insensitive. Note, though, that the Name and Company fields are still case-sensitive.
Bug Fixes (Swift Engine):
  • FIXED: If two words that have custom pronunciations defined in a voice's lexicon.txt file are used consecutively in text to speech, the custom pronunciation for the second word is ignored.
  • "config/default-voice" engine parameter now works. You can set this parameter in a swift_params structure that is passed to a call to swift_engine_open() to set the default voice for that engine. The default voice is determined in this order: (1) config/default-voice parameter, (2) SWIFT_DEFAULT_VOICE engine config feature, (3) SWIFT_DEFAULT_VOICE environment variable (except Windows CE), (4) SwiftDefaultVoice registry setting (Windows and Windows CE only).

    Unix Only:

  • Install script (install.sh) no longer uses the 'fmt' command to output formatted data to the screen. This command wasn't available on some lightweight distros, such as AstLinux.
  • Install script (install.sh) now does proper tilde-expansion for the install-to directory. That is, if you respond with "~/swift" when asked, "Install to what directory?" it will install to $HOME/swift
Enhancements (Swift Engine):
  • SFX can now be set via SSML! You can specify an SFX file to load by using either the <cepstral:sfx> vendor tag to load an SFX file for a block of text, or by using the new sfx_file attribute to the <voice> tag to load an SFX file for use by that voice. Examples:

    $ swift "Hello. <cepstral:sfx file='/path/to/my_sfx.sfx'>Howdy, sir. How are you?</cepstral:sfx> I am fine."

    $ swift "Sit! <voice name='Dog' sfx_file='/path/to/my_sfx.sfx'>Woof, Woof!</voice> Good boy."

  • "audio/output-format" parameter can now be set to "none" to tell swift to bypass the writing of audio to the audio device, thus speeding up the process of running text through the front-end text processor only when you don't want the resulting audio.



4.0.1 - January 31, 2006

New Features (Swift Command Line):
  • 'swift -t' shows each sentence at the time it is played. This is very handy for listening to text and seeing what it is saying as it says it.
  • New additional parameters to 'swift --register' and 'swift --reg-ports' to allow you to enter your voice or concurrency license information with a single command using arguments. Run 'swift --help' for more information and examples.
  • 'swift --say-pgm-version' speaks version information.
  • 'swift --say-voice-version' speaks name, language, and version of currently loaded voice. This can be used in conjunction with -n switch to set voice.
  • 'swift --say-all-voices' lists and speaks names, languages, and versions of all voices found on the system
  • Multiple text arguments are concatenated and spoken as one utterance. This causes the following two commands to be treated identically:
      swift -n David "Hello, how are you?"
      swift -n David Hello, how are you?
    Whereas before, the latter command would make four seperate calls to synthesize each word seperately.
Enhancements (Swift Command Line):
  • 'swift --help' now shows a much more readable help message, and inclues several usage examples.
  • When synthesizing text from standard input by using 'swift -f -', you can now signal a chunk of text to be synthesized by passing two consecutive newline characters.
  • Improved output messages for errors, warnings, and other engine output
Bug Fixes (Swift Command Line):
  • FIXED: Input text starting with a hyphen is treated as a parameter switch. For instance, something like "$swift '--The Raven--...'" will print out the Usage string, as if you've entered an invalid switch. NOTE: To signify the end of options, use "--" by itself. For instance:
      ./swift -n William --events -- "--The Raven" -o hello.wav
    Will speak, "The Raven, Oh Hello dot wav" in Williams voice and will *not* create a wave file (the -o argument being treated as input text).
Enhancements (Swift Engine):
  • New method for incorporating synthesis information at run-time, with better overall sound quality across all voices.
  • Performance and robustness improvements, particularly in high density installations
  • XML-based configuration mechanism (swift.xml, replacing swift.conf) which allows specifications of defaults and options for the voice, languages, and engine.
  • Expanded the lexicon format to allow for phrases and whitespace in user-defined entries.
  • Expanded handling for high-bit ascii and other special characters, including accent marks.
  • Expanded lexicons, improved grapheme-to-phoneme support for unknown words, and improved text processing overall.
  • Voice settings file is now "settings.txt" (was voxdefs.h).
  • Voice lexicon name changed to "lexicon.txt" (was userlex.txt).
  • Native 64 bit Linux builds (versions) available.
  • Added Solaris x86 support.
Bug Fixes (Swift Engine):
  • FIXED: The SSML <sub> tag is being ignored.
  • FIXED: The SSML <mark> tag causes a crash in Canadian French, Americas Spanish, and Italian voices.



3.5.0 - November 30, 2005

New Features (Swift Binary):
  • 'swift --voices' now shows information about the software in addition to the table of information about the installed voices.
Bug Fixes (Swift Engine):
  • FIXED: If the src file of an SSML audio tag cannot be opened, the application using the Swift TTS Engine will crash.



3.4.2 - September 19, 2005

Bug Fixes (Swift):
  • FIXED: When used in heavy-concurrency environments, the system may hang.
  • FIXED: Entries in the userlex.txt file are not being honored.
Enhancements: (Swift)
  • Better complies with the SSML Break tag - now uses the "strength" attribute and expects values of "x-weak", "weak", "medium", "strong", and "x-strong", as the spec says it should.



3.4.1 - September 2, 2005

Bug Fixes: (Swift)
  • FIXED: SSML break tag is ignored if it's the first/only thing to speak.



3.4.0 - August 18, 2005

New Features: (Swift)
  • New speech/pitch/shift parameter for relative adjustment of pitch.
Bug Fixes: (Swift)
  • The async_example sample code now handles keypresses properly on Windows.
  • The call to swift_port_play_wave now returns a valid swift_result_t value. The call used to return the number of bytes written to the audio device not a swift_result_t value. This would lead to failures being reported on successful playing of audio (and vice versa).



3.3.2 - July 28, 2005

Bug Fixes (Swift Engine):
  • SSML mark tag now supported.



3.3.1 - July 12, 2005

Bug Fixes (Swift):
  • Setting the audio/output-format parameter to "raw" works again.
  • Fixed a crash that could occur when requesting events and not using a background job for synthesis.
  • FIXED: The audio device is opened unnecessarily when capturing audio using swift_port_get_wave().
Bug Fixes (Swift Binary):
  • FIXED: Setting swift.exe into phone mode and asking for event information causes a crash.
  • FIXED: 'swift -V' shows no lexicon information



3.3.0 - June 15, 2005

Bug Fixes (Swift):
  • FIXED: Applications using Swift TTS crash when they pass text containing the <phoneme> SSML tag and request text events.
  • FIXED: Event text information is incorrect when the text contains quotations marks.
  • FIXED: Sometimes when you stop playback then start again, you may hear bits of what it was previously speaking mixed in with what it is currently speaking. This also occurs if change voices; You may hear the prior voice speak a bit after the new voice begins speaking.
  • FIXED: audio/pan and audio/channels parameters are only honored if set when opening the port. If you set them on an open port, they are ignored.
  • FIXED: Nagging goes to the audio device even if audio/output-file parameter is set.
  • FIXED: Synthesizing both phones and text in the same engine instance fails (<phoneme> tags in SSML are not affected).
New Features (Swift):
  • All events are fired at playback time. In prior releases, all events were fired at synthesis time. This required application developers to capture the events and run their own timer to handle them in sync with audio playback. Now they are in sync with audio playback as they arrive in the callback, unless the events/immediate param is set.
  • Event times are now reported relative to the start of synthesis, not the start the last sentence.
  • Unknown or malformed synthesis parameters, passed with the -p switch or the swift_params API, are now rejected by the engine.
Bug Fixes (swift binary):
  • FIXED: swift -m wave fails with an invalid NULL param error.
  • FIXED: Command-line swift will fail to play sound (wav, aiff) files from disk if no voices are loaded.
New Features (swift binary):
  • If -m switch or text/content-type param isn't set, command-line swift is now able to do the right thing with the file based on its extension. For instance:
      'swift -f myWave1.wav myTextFile.txt myWave2.wav'
    Will play the two wave files and synthesize the text in the text file.



3.2.1 - April 1, 2005

Bug Fixes (Swift):
  • FIXED: Voices continue to nag after entering a valid license key.
  • You can now save AIFF files in any sampling rate.



3.2.0 - March 14, 2005

Enhancements (Swift):
  • Reduced size of lexicon and core (non-voice components)
  • Support for AIFF output (use the audio/output-format parameter).
  • Spell-out mode, using the tts/spell-out parameter.
Bug Fixes (Swift):
  • Audio callbacks now work with unregistered voices.
  • The voice/cache-policy and voice/cache-size parameters work now.
  • FIXED: swift_port_speak() crashes when passed SWIFT_UNICODE encoding.
  • FIXED: default.sfx file is not honored under Windows or Windows CE (Pocket PC). You can still load sfx files manually, but if you place a default.sfx file in [Install Path]\voices\Frank, for example, it will not be loaded.
  • FIXED: If you have a concurrency license installed and remove the license file, all calls to TTS will hang forever. To fix this, either put the concurrency license file back into place or stop the License Server service (NT) or daemon (Linux) to allow the Swift engine to operate in single-user mode.
  • FIXED: If you have purchased and activated a concurrency license for N ports, then purchase and activate a concurrency license for M > N ports, you will only be able to access N ports until you restart the License Server service (NT) or daemon (Linux).



3.1.1 - January 20, 2005

Bug Fixes (Swift):
  • Improved output quality of 8KHz audio when using 16KHz voice
  • Audio device no longer opened if a swift_callback has been set that requests events of type SWIFT_EVENT_AUDIO.
  • If setting a callback to capture SWIFT_EVENT_AUDIO type events, and you're also changing the sampling rate of the output, you no longer have to jump through hoops to make it work. I.e. the order of operations is not as critical as it was in v3.1.0.



3.1.0 - December 13, 2004

New Features (swift binary):
  • Defaults to SSML mode for text parsing.
  • Save-as-wave can now be done via '-o filename' switch (No longer need to set 'audio/output-file' param).
  • '-f' switch can be used to specify multiple input files, by making a call like this:
      swift -f file1.txt file2.txt file3.txt
  • Ability to enter port license information.
  • Ability to have a phoneme list as input by specifying '-m phones'.
  • '-x' switch for loading a sound effects file (.sfx).
  • Can use '--register' switch with '-n voice' or with '-d directory'.
Bug Fixes (swift binary):
  • SSML support now working. No longer crashes when making this call:
      swift "<voice name='Frank'>Hello</voice>"
  • '-f filename' switch now works correctly when given with other switches
  • Now provides feedback if the file given in '-f filename' switch cannot be opened.
  • 'swift --voices' now prints a much nicer table of all installed voices and their attributes.
  • 'swift -V' now shows engine version number.
  • If 'swift -o filename' fails to write the wave file for any reason, it no longer leaves the bad output file laying around on the file system.
  • An error is displayed if license file can't be written during 'swift --register' or 'swift --reg-ports'.
  • Results of 'swift --params' have been checked and all options listed actually work.
  • 'swift -p audio/encoding=[ulaw,alaw,pcm8]' work now.
New Features (Swift):
  • Default content-type is SSML now.
  • Left-to-Right panning of output audio: set the params audio/channels=2 and audio/pan=[-1,0,1]
Bug Fixes (Swift):
  • SSML <voice> tag now works.
  • SSML <audio> tag now works.
  • audio/volume parameter now works.
  • The audio/encoding parameter is now honored for generating u-law, a-law and 8-bit PCM files.
  • Nagging honors voice config settins for rate, pitch, volume, sfx, etc.
  • saving a wave (via audio/output-file) now correctly inserts the nags for unlicensed voices. (For v3.0.0, it only saved the nag text, ignoring the input text.)
  • Can now run as a module inside the Asterisk PBX.



3.0.3 - September 30, 2004

Bug Fixes (Swift):
  • No longer crash on systems with no /dev/dsp. (Only open /dev/dsp when we're actually about to write to it.)
  • saving a wave (via audio/output-file) now correctly inserts the nags for unlicensed voices. (For v3.0.0, it only saved the nag text, ignoring the input text.)



3.0.2 - September 13, 2004
  • New Swift engine replaces Theta
  • Downloadable trial version now available


< Back to Downloads