FreeTTS 1.2 - A speech synthesizer written entirely in the JavaTM programming language


Listen to FreeTTS!

Talking clock (16k voice):
AU format
WAV format

Talking machine (8k):
AU format
WAV format

Talking machine (16k):
AU format
WAV format

Susie (16k):
AU format
WAV format

Cookie Cooks (16k):
AU format
WAV format

Tricky Tokenizing (16k):
"For 3/4 or 75% of his time, Dr. Walker practices for $90 a visit on Dr. Dr., next to King Philip X of St. Lameer St. in Nashua NH."
AU format
WAV format

Thanks! (16k MBROLA):
AU format
WAV format


WebStartClock
A clock that uses FreeTTS to announce the time.



FreeTTS Links

Project Page
Forums
Download
CVS Repository



SourceForge Logo
Hosted by SourceForge.net



Welcome! Thank you for your interest in FreeTTS.

General Information

Installation

Demos

Tools

Documentation

Frequently Asked Questions



General Information about FreeTTS


Installation

FreeTTS has been tested on the Solaris TM Operating Environment, Mac OS X, Linux and Win32 operating systems.

Running, building, and testing FreeTTS requires the JavaTM 2 SDK, Standard Edition, 1.4. You can download the developer kit from http://java.sun.com/j2se/1.4/. Make sure you set your JAVA_HOME environment variable to point your installation (e.g., JAVA_HOME=/usr/java/j2sdk1.4.0).

Downloading and Installing

FreeTTS has three packages available for download:

If you plan on just creating applications with FreeTTS, the bin package will be sufficient. If you plan on making modifications to FreeTTS itself, however, you should use the src package. The tst package will be useful if you wish to make sure any changes you made to FreeTTS did not introduce any bugs or regressions.

Download and unpack the package(s) appropriate for what you want to do. Depending upon what you download, you will end up with all or part of the following directory structure:

    bin                 Binaries for the demos
    build.xml           Ant file for building the sources
    com                 FreeTTS sources
    de                  Sources for MBROLA support
    demo                Sources for the demos
    demo.xml            Ant file for building the demos
    docs                System documentation
    javadoc             Javadoc for FreeTTS
    lib                 Jars for FreeTTS
    mbrola              Support for MBROLA
    tests               Sources and scripts for JUnit and regression tests
    tools               Tools for importing CMU ARCTIC and FestVox voice data

FreeTTS makes liberal use of the "Class-Path" attribute of a jar Manifest. As such, you need to place very little in your classpath when you run applications. The only things you need to do are the following:

Note that the demonstration applications also use a jar Manifest that uses the "Class-Path" attribute. The build places the jar files for FreeTTS in the lib directory, and the jar files for the demos in the bin directory. The jar manifests for the demos depend on the lib and bin directories being in the same top level directory. If you change this, the demos may not work properly.

Quick Start

If you are not interested in building FreeTTS, then you only need to download the FreeTTS binary distribution from the FreeTTS Download Page. Once you've downloaded and unpacked the FreeTTS binary distribution, perform the following steps:

  1. Set up support for the Java Speech API (JSAPI).
  2. Run any of the demos.

Building Applications with FreeTTS

We have provided a number of demonstration applications that use FreeTTS. We highly suggest that you use these as examples for how to create your own applications. As noted above, FreeTTS makes liberal use of the "Class-Path" attribute of a jar Manifest. As such, you need to place very little in your classpath when you run applications. The only things you need to do are the following:

Building FreeTTS

The prerequisites for building FreeTTS are as follows:

To build FreeTTS, merely type the following in a command prompt situated at the top level FreeTTS directory:

This executes the Apache Ant command to build the FreeTTS classes, voices, demos, and jar files. The output will be placed under the bld directory.

We have also provided a number of ant targets for convenience:

Testing FreeTTS

FreeTTS includes a number of unit and regression tests. The unit tests verify that critical routines are working properly. The regression tests verify that the output of FreeTTS matches what is expected.

Although we test FreeTTS regularly as part of our development process, testing FreeTTS is optional for you. The prerequisites for testing FreeTTS are as follows:

To run the units tests for FreeTTS, merely type the following in a command prompt situated at the top level FreeTTS directory:

The test output should be self explanatory.

To run the regression tests, merely type the following in a command prompt situated at the FreeTTS tests directory:

The test output should be self explanatory.


Demos

FreeTTS includes a number of demos. Each demo directory has Java source file(s) containing the demo source and a 'README.html' file with brief instructions as to how to run the demo.

NOTE: The binaries for the demos exist as jar files in the bin directory of the binary distribution. If you only wish to run the demos, follow only the "Running" instructions for each demo. If you want to compile the demos, you must get the sources from the FreeTTS source distribution available on the FreeTTS Download Page.

Note also that the demonstration applications also use a jar Manifest that uses the "Class-Path" attribute. The build places the jar files for FreeTTS in the lib directory, and the jar files for the demos in the bin directory. The jar manifests for the demos depend on the lib and bin directories being in the same top level directory. If you change this, the demos may not work properly.


FreeTTS Test Program

The FreeTTS distribution includes a program that will allow you to test many of the features of FreeTTS. This program is started by running the following command:

java -jar lib/freetts.jar.

NAME
    freetts - exercise the FreeTTS synthesis sytem

DESCRIPTION The lib/freetts.jar contains a main entry point that allows a user to interactively control the FreeTTS synthesizer. When invoked with no arguments, freetts will read text from the command line and convert the text to speech. freetts can also be used to convert text from a file to speech. It includes options that allow you to redirect the audio to file, as well as a number of metrics and debugging options. OPTIONS There are a number of options that can be used to affect the operation of freetts as described here: -detailedMetrics: turn on detailed metrics -dumpAudio file : dump audio to file -dumpAudioTypes : dump the possible output types -dumpMultiAudio file : dump audio to file -dumpRelations : dump the relations -dumpUtterance : dump the final utterance -dumpASCII file : dump the final wave to file in ASCII form (for testing) -file file : speak text from given file -lines file : render lines from a file -help : shows usage information -metrics : turn on metrics -run name : sets the name of the run -silent : don't say anything -streaming : use streaming audio player -text say me : speak given text (should be last argument) -url path : speak text from given URL -verbose : verbose output -version : shows version number -voice VOICE : kevin, kevin16, mbrola_us1, mbrola_us2, or mbrola_us3 -voiceInfo : print detailed voice info EXAMPLES

Interactive mode: % java -jar lib/freetts.jar Enter text: Hello World. <text is spoken> Enter text: ^D %

Speaking text from a command line: % java -jar lib/freetts.jar -text hello world <text is spoken>

Speaking text from a file: % java -jar lib/freetts.jar -file my_email.txt <text is spoken>

Selecting an alternate voice: % java -jar lib/freetts.jar -voice kevin16 -text Hello World <text is spoken>

Redirecting audio to a file: % java -jar lib/freetts.jar -dumpAudio hello.wav -text Hello World


Tools

Importing Voice Data from FestVox

FreeTTS now has the ability to import voice data from FestVox (US English only). With this, you can record your own voice using the FestVox tools, and then turn the resulting data into a FreeTTS voice.

Visit our FestVoxToFreeTTS page to learn how to create your own voices for FreeTTS. It's not trivial, and it requires using Festival and FestVox.

Importing CMU ARCTIC Voice Data

FreeTTS now has the ability to import CMU ARCTIC voice data from FestVox (US English only). The CMU ARCTIC voices are quite large and require a little extra work, so we created tools just for these voices.

Visit our ArcticToFreeTTS page to learn how to import the CMU ARCTIC voices into FreeTTS.


Documentation


Frequently Asked Questions


See the license terms and acknowledgments.
Copyright 2001, 2002, 2003, 2005 Sun Microsystems, Inc. All Rights Reserved. Use is subject to license terms.