Back
MBROLA VOICES
The Mbrola project is a collection of diphone voices for speech synthesis. They do not include any text-to-phoneme translation, so this must be done by another program. The Mbrola voices are cost-free but are not open source. They are available from the Mbrola website at:
http://www.tcts.fpms.ac.be/synthesis/mbrola/mbrcopybin.html
eSpeak can be used as a front-end to Mbrola. It provides the spelling-to-phoneme translation and intonation, which Mbrola then uses to generate speech sound.
Voice Names
To use a Mbrola voice, eSpeak needs information to translate from its own phonemes to the equivalent Mbrola phonemes. This has been set up for only some voices so far.
The eSpeak voices which use Mbrola are named as:
mb-xxx
where xxx is the name of a Mbrola voice (eg. mb-en1 for the Mbrola "en1" English voice). These voice files are in eSpeak's directory espeak-data/voices/mbrola
.
The installation instructions below use the Mbrola voice "en1" as an example. You can use other mbrola voices for which there is an equivalent eSpeak voice in espeak-data/voices/mbrola
.
There are some additional eSpeak Mbrola voices which speak English text using a Mbrola voice for a different language. These contain the name of the Mbrola voice with a suffix -en. For example, the voice mb-de4-en will speak English text with a German accent by using the Mbrola de4 voice.
Windows Installation
The SAPI5 version of eSpeak uses the mbrola.dll.
- Install eSpeak. Include the voice mb-en1 in the
list of voices during the eSpeak installation.
- Install the PC/Windows version of Mbrola (MbrolaTools35.exe) from:
http://www.tcts.fpms.ac.be/synthesis/mbrola/bin/pcwin/MbrolaTools35.exe.
- Get the en1 voice from:
http://www.tcts.fpms.ac.be/synthesis/mbrola/mbrcopybin.html
unpack the archive, and copy the "en1" data file (not the whole "en1"
directory) into
C:/Program Files/eSpeak/espeak-data/mbrola
.
- Use the voice espeak-MB-EN1 from the list of SAPI5 voices.
Linux Installation
I don't think there's a Linux shared library version of Mbrola (equivalent to mbrola.dll), so eSpeak has to pipe phoneme data to the command-line Mbrola.
- To install the Linux Mbrola binary, download:
http://www.tcts.fpms.ac.be/synthesis/mbrola/bin/pclinux/mbr301h.zip.
Unpack the archive, and copy and rename the file:
mbrola-linux-i386
to
mbrola
somewhere in your executable path (eg. /usr/bin/mbrola
).
- Get the en1 voice from:
http://www.tcts.fpms.ac.be/synthesis/mbrola/mbrcopybin.html.
Unpack the archive, and copy the "en1" data file (not the whole "en1"
directory) somewhere convenient (eg.
/usr/share/mbrola/en1
).
- If you use the eSpeak voice "mb-en1" then eSpeak will generate
Mbrola phoneme data on its stdout. You can pipe this into Mbrola.
espeak -v mb-en1 -f textfile | mbrola -e /usr/share/mbrola/en1 -
test.wav
will put the Mbrola speech output into a WAV file. Or you can pipe the output from Mbrola through aplay:
espeak -v mb-en1 -f textfile | mbrola -e /usr/share/mbrola/en1 - - | aplay -r16000 -fS16
The -e option prevents Mbrola from stopping if it finds a combination
of phonemes which it doesn't recognise.
Mbrola Voice Files
eSpeak's voice files for Mbrola voices are in directory espeak-data/voices/mbrola
. They contain a line:
mbrola <voice> <translation>
eg.
mbrola en1 en1_phtrans
- <voice> is the name of the Mbrola voice.
- <translation> is a translation file to convert between eSpeak phonemes and the equivalent Mbrola phonemes. These are kept in:
espeak-data/mbrola_ph
They are binary files which are compiled, using espeakedit, from source files in phsource/mbrola
. Details to be defined.