FreeTTS 1.2.3 - A speech synthesizer written entirely in the Java TM programming language

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).

FreeTTS has three packages available for download:

bin : provides the jar files, documentation, and demos

: provides the jar files, documentation, and demos src : provides the sources, documentation, and demos

: provides the sources, documentation, and demos tst: provides the JUnit and regression tests; requires the src package

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:

Place the lib directory anywhere you want.

directory anywhere you want. Make sure lib/freetts.jar is in your classpath.

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.

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:

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:

Place the lib directory anywhere you want.

directory anywhere you want. Make sure lib/freetts.jar is in your classpath.

repositories { ... // Add the sonatype snapshot repository maven { url "https://oss.sonatype.org/content/repositories/snapshots" } } dependencies { ... // Support for voices will also obtain the dependent jars runtime group: 'org.jvoicexml', name: 'cmu_us_kal', version: '1.2.3-SNAPSHOT' runtime group: 'org.jvoicexml', name: 'cmu_time_awb', version: '1.2.3-SNAPSHOT' }

The prerequisites for building FreeTTS are as follows:

FreeTTS Source Distribution . Download from the FreeTTS download page.

. Download from the FreeTTS download page.

JSAPI 1.0 specification implementation . The JSAPI 1.0 specification implemention comes with the FreeTTS Source Distribution. All you need to do is set up JSAPI support.

. The JSAPI 1.0 specification implemention comes with the FreeTTS Source Distribution. All you need to do is set up JSAPI support.

Java TM 2 SDK, Standard Edition, v1.4 available at http://java.sun.com/j2se/1.4/ (all platforms). After you have downloaded and installed the SDK, remember to set your JAVA_HOME environment variable to point to where you installed it.

available at http://java.sun.com/j2se/1.4/ (all platforms). After you have downloaded and installed the SDK, remember to set your environment variable to point to where you installed it.

Apache Ant 1.5.3 or better. After you install ant, sure the "ant" command is in your path. Visit the Apache Ant site to get ant. NOTE: As you can see, we are no longer using GNUMake.

or better. After you install ant, sure the "ant" command is in your path. Visit the Apache Ant site to get ant. As you can see, we are no longer using GNUMake.

JUnit Version 3.7. available at http://www.junit.org (all platforms). IMPORTANT: copy the junit.jar to the lib directory of your Apache Ant installation.



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

ant

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:

ant clean : deletes all the output from the build to give you a fresh start

ant javadoc : builds the javadoc documentation and places the results in the javadoc directory

ant junit : for testing only; runs the JUnit tests (see 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:

Follow Instructions for Building FreeTTS .

.

FreeTTS Test Distribution . In addition to the sources, you must also download the test distribution from the FreeTTS download page.

. In addition to the sources, you must also download the test distribution from the FreeTTS download page.

UNIX Scripting tools. The regression tests use a number of UNIX tools including: sed, awk, diff, and wc . For Windows users, these tools are available with the Cygwin (http://www.cygwin.com) package. As part of the Cygwin install, make sure you select the "make" package from the "Devel" category, the "findutils" package from the "Base" category, and the "zip" package from the "Archive" category. In addition, make sure you modify your PATH environment variable to include the cygwin/bin directory before any Windows directories.

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

ant junit

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:

./regression.sh

The test output should be self explanatory.

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.

JSAPI/HelloWorld : uses the JSAPI 1.0 Synthesis interface to speak "Hello, World".

: uses the JSAPI 1.0 Synthesis interface to speak "Hello, World".

JSAPI/MixedVoices : demonstrates using multiple voices and speech synthesizers in a coordinated fashion using JSAPI 1.0.

: demonstrates using multiple voices and speech synthesizers in a coordinated fashion using JSAPI 1.0.

JSAPI/Player : Swing-based GUI that allows the user to monitor and manipulate a JSAPI 1.0 Speech Synthesizer.

: Swing-based GUI that allows the user to monitor and manipulate a JSAPI 1.0 Speech Synthesizer.

JSAPI/JTime : JSAPI program that uses a limited-domain, high quality voice to tell the time.

: JSAPI program that uses a limited-domain, high quality voice to tell the time.

JSAPI/Emacspeak : uses JSAPI 1.0 to provide a text-to-speech server for Emacspeak.

: uses JSAPI 1.0 to provide a text-to-speech server for Emacspeak.

JSAPI/WebStartClock : JSAPI talking clock that can be downloaded from the web using Java Web Start.

: JSAPI talking clock that can be downloaded from the web using Java Web Start.

freetts/HelloWorld : low-level (non-JSAPI) program that speaks a greeting to the world.

: low-level (non-JSAPI) program that speaks a greeting to the world.

freetts/ClientServer: low-level (non-JSAPI) socket-based TTS server with sample clients written in the C programming language and the Java programming language.

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

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.

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