The Cainteoir Text-to-Speech core engine
C++ Python HTML C Makefile M4 Other
Failed to load latest commit information.
ucd-tools @ 4b1b5f8
COPYING.W3C android: initial configure helper for the Android NDK toolchain Apr 9, 2013

Cainteoir Text-to-Speech Engine

Flattr this git repo

The Cainteoir Text-to-Speech engine is a library that provides text-to-speech functionality for reading and recording different document formats.

Build Dependencies

In order to build cainteoir-engine, you need:

  1. a functional autotools system (make, autoconf, automake, libtool, autopoint and pkg-config);
  2. a functional c++ compiler;
  3. the Python YAML parser library;
  4. the zlib development libraries;
  5. the shared mime info package.

Optionally, you need:

  1. the pulseaudio development library to enable pulseaudio output;
  2. the alsa development libraries to enable alsa audio output;
  3. the vorbis encoder development libraries for ogg/vorbis support;
  4. the espeak development libraries for espeak support;
  5. the pico development libraries for svox pico support;
  6. the poppler development libraries for pdf support.

If you want ePub 3.0 Media Overlay support, you need FFmpeg or libav v9 or later, with the following libraries installed:

  1. libavutil;
  2. libavcodec;
  3. libavformat;
  4. libavresample — for converting differently sampled audio files to the one used by the TTS voice.

To build the documentation, you need:

  1. the kramdown program to build the general documentation;
  2. the doxygen program to build the api documentation;
  3. the documentation generator project (


Core Dependencies:

Dependency Install
autotools sudo apt-get install make autoconf automake libtool autopoint pkg-config
c++ compiler sudo apt-get install gcc g++
python yaml sudo apt-get install python-yaml
zlib sudo apt-get install zlib1g-dev
shared mime info sudo apt-get install shared-mime-info

Optional Libraries:

Dependency Install
pulseaudio sudo apt-get install libpulse-dev
alsa sudo apt-get install libasound2-dev
vorbis encoder sudo apt-get install libvorbis-dev
espeak sudo apt-get install libespeak-dev
pico sudo apt-get install libttspico-dev
poppler sudo apt-get install libpoppler-glib-dev
ffmpeg/libav sudo apt-get install libavformat-dev libavcodec-dev
libavresample sudo apt-get install libavresample-dev

Documentation Dependencies:

Dependency Install
kramdown sudo apt-get install ruby-kramdown
doxygen sudo apt-get install doxygen


The Cainteoir Engine supports the standard GNU autotools build system. The source code does not contain the generated configure files, so to build it you need to run:

./configure --prefix=/usr

The tests can be run by using:

make check

The program can be installed using:

sudo make install

Source tarballs can be generated by running:

make dist

To support building the documentation, you need to inform the build where the documentation-generator project is located. This can be done by:

cd ..
git clone git://
cd cainteoir-engine
./configure --with-docgen=../documentation-generator

The documentation can be built by running:

make doc

Alternatively, just the API documentation can be built by running:

make api

NOTE: You need a recent version of doxygen (such as 1.8.5) that supports C++11 constructs, specifically scoped enumerations.


The following file formats are supported by Cainteoir Text-to-Speech:

  • Voice Database (*.vdb) -- This is the compiled format used to define voices used by Cainteoir Text-to-Speech.

  • Language Database (*.ldb) -- This is the compiled format used to define languages used by Cainteoir Text-to-Speech.


Report bugs to the cainteoir-engine issues page on GitHub.

License Information

The Cainteoir Text-to-Speech Engine is released under the GPL version 3 or later license.

Cainteoir is a registered trademark of Reece Dunn.

W3C is a trademark (registered in numerous countries) of the World Wide Web Consortium; marks of W3C are registered and held by its host institutions MIT, ERCIM, and Keio.

All trademarks are property of their respective owners.