Browse Source

docs (style): Use 'MBROLA' instead of 'Mbrola', as it is an acronym (Multi-Band Resynthesis OverLap Add).

master
Reece H. Dunn 7 years ago
parent
commit
871772a9bd
1 changed files with 45 additions and 45 deletions
  1. 45
    45
      docs/mbrola.md

+ 45
- 45
docs/mbrola.md View File

# Mbrola Voices
# MBROLA Voices


- [Voice Names](#voice-names) - [Voice Names](#voice-names)
- [Windows Installation](#windows-installation) - [Windows Installation](#windows-installation)
- [Linux Installation](#linux-installation) - [Linux Installation](#linux-installation)
- [Installation of standard packages](#installation-of-standard-packages) - [Installation of standard packages](#installation-of-standard-packages)
- [Installation of latest Mbrola packages](#installation-of-latest-mbrola-packages)
- [Installation of latest MBROLA packages](#installation-of-latest-mbrola-packages)
- [Usage](#usage) - [Usage](#usage)
- [Adding new Mbrola voice entry to eSpeak NG](#adding-new-mbrola-voice-entry-to-espeak-ng)
- [1. Add Mbrola voice definition file](#1-add-mbrola-voice-definition-file)
- [2. Add Mbrola phoneme translation file](#2-add-mbrola-phoneme-translation-file)
- [Adding new MBROLA voice entry to eSpeak NG](#adding-new-mbrola-voice-entry-to-espeak-ng)
- [1. Add MBROLA voice definition file](#1-add-mbrola-voice-definition-file)
- [2. Add MBROLA phoneme translation file](#2-add-mbrola-phoneme-translation-file)
- [3. Compile voice and update Makefile.am file](#3-compile-voice-and-update-makefileam-file) - [3. Compile voice and update Makefile.am file](#3-compile-voice-and-update-makefileam-file)


---------- ----------


The Mbrola project is a collection of diphone voices for speech
The MBROLA project is a collection of diphone voices for speech
synthesis. They do not include any text-to-phoneme translation, so this 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
must be done by another program. The MBROLA voices are cost-free but are
not open source. Voice files are available at not open source. Voice files are available at
[http://www.tcts.fpms.ac.be/synthesis/mbrola/mbrcopybin.html](http://www.tcts.fpms.ac.be/synthesis/mbrola/mbrcopybin.html). [http://www.tcts.fpms.ac.be/synthesis/mbrola/mbrcopybin.html](http://www.tcts.fpms.ac.be/synthesis/mbrola/mbrcopybin.html).


eSpeak NG can be used as a front-end to Mbrola. It provides the
spelling-to-phoneme translation and intonation, which Mbrola then uses
eSpeak NG 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. to generate speech sound.


## Voice Names ## Voice Names


To use a Mbrola voice, eSpeak NG needs information to translate from its
own phonemes to the equivalent Mbrola phonemes.
To use a MBROLA voice, eSpeak NG needs information to translate from its
own phonemes to the equivalent MBROLA phonemes.


The eSpeak NG voices which use Mbrola are named as:
The eSpeak NG voices which use MBROLA are named as:


mb-xxN mb-xxN


where `xxN` is the name of a Mbrola voice (e.g. `mb-en1` for the Mbrola
where `xxN` is the name of a MBROLA voice (e.g. `mb-en1` for the MBROLA
`en1` English voice). These voice files are in eSpeak NG's folder `en1` English voice). These voice files are in eSpeak NG's folder
`.../espeak-ng-data/voices/mb` (where `...` is usually `/usr/share`, `.../espeak-ng-data/voices/mb` (where `...` is usually `/usr/share`,
but could be somewhere else). but could be somewhere else).


The installation instructions below use the Mbrola voice `en1` as an
The installation instructions below use the MBROLA voice `en1` as an
example. You can use other mbrola voices for which there is an example. You can use other mbrola voices for which there is an
equivalent eSpeak NG voice in `espeak-ng-data/voices/mb`. equivalent eSpeak NG voice in `espeak-ng-data/voices/mb`.


There are some additional eSpeak NG 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
There are some additional eSpeak NG 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 `mb-de4-en` will speak English text with a German accent by using the
Mbrola `de4` voice.
MBROLA `de4` voice.


## Windows Installation ## Windows Installation


1. Install eSpeak NG. Include the voice `mb-en1` in the list of voices during 1. Install eSpeak NG. Include the voice `mb-en1` in the list of voices during
the eSpeak NG installation. the eSpeak NG installation.


2. Install the PC/Windows version of Mbrola (MbrolaTools35.exe) from:
2. Install the PC/Windows version of MBROLA (`MbrolaTools35.exe`) from:
[http://www.tcts.fpms.ac.be/synthesis/mbrola/bin/pcwin/MbrolaTools35.exe](http://www.tcts.fpms.ac.be/synthesis/mbrola/bin/pcwin/MbrolaTools35.exe). [http://www.tcts.fpms.ac.be/synthesis/mbrola/bin/pcwin/MbrolaTools35.exe](http://www.tcts.fpms.ac.be/synthesis/mbrola/bin/pcwin/MbrolaTools35.exe).


3. Get the `en1` voice from: 3. Get the `en1` voice from:


### Installation of standard packages ### Installation of standard packages


There are standard packages prepared for Mbrola binary and voices on different Linux distributions.
There are standard packages prepared for MBROLA binary and voices on different Linux distributions.
On Debian/Ubuntu-like Linux, you can install mbrola using `apt-get` package manager: On Debian/Ubuntu-like Linux, you can install mbrola using `apt-get` package manager:


sudo apt-get install mbrola mbrola-en1 sudo apt-get install mbrola mbrola-en1


where: where:


* `mbrola` is package containing Mbrola executable,
* `mbrola-en1` is mbrola data files for **en1** Mbrola voice.
* `mbrola` is package containing MBROLA executable,
* `mbrola-en1` is mbrola data files for **en1** MBROLA voice.


You can check other available voices searching with command: You can check other available voices searching with command:


apt-cache search mbrola apt-cache search mbrola


### Installation of latest Mbrola packages
### Installation of latest MBROLA packages


1. To install the latest Mbrola binary for Linux, download:
1. To install the latest MBROLA binary for Linux, download:
[http://www.tcts.fpms.ac.be/synthesis/mbrola/bin/pclinux/mbr301h.zip](http://www.tcts.fpms.ac.be/synthesis/mbrola/bin/pclinux/mbr301h.zip). [http://www.tcts.fpms.ac.be/synthesis/mbrola/bin/pclinux/mbr301h.zip](http://www.tcts.fpms.ac.be/synthesis/mbrola/bin/pclinux/mbr301h.zip).


2. Unpack the archive, and copy and rename the file from: `mbrola-linux-i386` to `mbrola` somewhere in your executable path (eg. `/usr/bin/mbrola`). 2. Unpack the archive, and copy and rename the file from: `mbrola-linux-i386` to `mbrola` somewhere in your executable path (eg. `/usr/bin/mbrola`).


espeak-ng -v mb-en1 -q --pho --phonout=out.pho "Hello world" espeak-ng -v mb-en1 -q --pho --phonout=out.pho "Hello world"


If you have issues with sound system integration, you can pass Mbrola's output to standard output,
If you have issues with sound system integration, you can pass MBROLA's output to standard output,
which then can be played by ALSA (`aplay`) or PulseAudio (`paplay`) player throug the pipe: which then can be played by ALSA (`aplay`) or PulseAudio (`paplay`) player throug the pipe:


espeak-ng -vmb-en1 --stdout "Hello world"|aplay espeak-ng -vmb-en1 --stdout "Hello world"|aplay


## Adding new Mbrola voice entry to eSpeak NG
## Adding new MBROLA voice entry to eSpeak NG


To add new Mbrola voice entry for eSpeak NG you have to:
To add new MBROLA voice entry for eSpeak NG you have to:


1. add Mbrola voice definition file,
2. add Mbrola phoneme translation file,
1. add MBROLA voice definition file,
2. add MBROLA phoneme translation file,
3. update Makefile.am file and compile voice. 3. update Makefile.am file and compile voice.


These steps are described in details in following sections. These steps are described in details in following sections.


### 1. Add Mbrola voice definition file
### 1. Add MBROLA voice definition file


eSpeak NG's voice files for Mbrola voices are in `espeak-ng-data/voices/mb` folder.
eSpeak NG's voice files for MBROLA voices are in `espeak-ng-data/voices/mb` folder.
Voice definition file is in form `mb-xxN` and have to contain at least this line: Voice definition file is in form `mb-xxN` and have to contain at least this line:
`mbrola <voice> <translation>`, e.g. `mbrola <voice> <translation>`, e.g.


mbrola en1 en1_phtrans mbrola en1 en1_phtrans


Where: Where:
* `en1` is the name of the Mbrola voice.
* `en1` is the name of the MBROLA voice.
* `en1_phtrans` is a translation file to convert between eSpeak NG phonemes and * `en1_phtrans` is a translation file to convert between eSpeak NG phonemes and
the equivalent Mbrola phonemes.
the equivalent MBROLA phonemes.


Binary `xxN_phtrans` files are kept in `espeak-ng-data/mbrola_ph` folder Binary `xxN_phtrans` files are kept in `espeak-ng-data/mbrola_ph` folder
and are generated from `phsource/mb/xxN` text files, during Mbrola
and are generated from `phsource/mb/xxN` text files, during MBROLA
voice compilation. voice compilation.


Additionaly Mbrola voice definition file can have other optional parameters,
Additionaly MBROLA voice definition file can have other optional parameters,
similar to eSpeak NG voices, which are described [Voices](voices.md) file. similar to eSpeak NG voices, which are described [Voices](voices.md) file.


### 2. Add Mbrola phoneme translation file
### 2. Add MBROLA phoneme translation file


Mbrola phoneme translation files specify translations from eSpeak NG
MBROLA phoneme translation files specify translations from eSpeak NG
phoneme names to mbrola phoneme names. phoneme names to mbrola phoneme names.


The source phoneme translation files are in `.../phsource/mbrola` folder and The source phoneme translation files are in `.../phsource/mbrola` folder and
their name is in form `xxN` of referenced Mbrola voice.
their name is in form `xxN` of referenced MBROLA voice.


_Note:_ _Note:_


* eSpeak NG phonemes are referenced from voice files in `phsource` folder of particular language e.g. * eSpeak NG phonemes are referenced from voice files in `phsource` folder of particular language e.g.
`ph_english` and/or general `phonemes` file. `ph_english` and/or general `phonemes` file.


* Mbrola phonemes are usualy listed in `xxN.txt` file of Mbrola voice.
* MBROLA phonemes are usualy listed in `xxN.txt` file of MBROLA voice.


Each line in the mbrola phoneme translation file contains: Each line in the mbrola phoneme translation file contains:


If the language's `*_list` or `*_rules` files includes rules to speak If the language's `*_list` or `*_rules` files includes rules to speak
words "as English" the mbrola phoneme translation file should include words "as English" the mbrola phoneme translation file should include
rules which translate English phonemes into near equivalents, so that rules which translate English phonemes into near equivalents, so that
they can spoken by the Mbrola voice.
they can spoken by the MBROLA voice.


For latest Linux verson of `mbrola` you can get list of diphones for particular For latest Linux verson of `mbrola` you can get list of diphones for particular
language by entering command: language by entering command:


### 3. Compile voice and update Makefile.am file ### 3. Compile voice and update Makefile.am file


Separate Mbrola voice can be compiled using comand:
Separate MBROLA voice can be compiled using comand:


espeak-ng --compile-mbrola=<xxN> espeak-ng --compile-mbrola=<xxN>


where `xxN` is Mbrola voice name.
where `xxN` is MBROLA voice name.


`Makefile.am` is build configuration file which should be extended, to include automatic compilation `Makefile.am` is build configuration file which should be extended, to include automatic compilation
of newly added Mbrola voice for eSpeak NG.
of newly added MBROLA voice for eSpeak NG.


Search for `mbrola: \` line in `Makefile.am` and add additional line for newly created Mbrola voice, e.g.:
Search for `mbrola: \` line in `Makefile.am` and add additional line for newly created MBROLA voice, e.g.:


mbrola: \ mbrola: \
... ...
is named just `xx`. is named just `xx`.


When `Makefile.am` is update, when espek-ng will be compiled, e.g. by When `Makefile.am` is update, when espek-ng will be compiled, e.g. by
entering command `automake; make -B` newly added Mbrola voice will be compiled automatically.
entering command `automake; make -B` newly added MBROLA voice will be compiled automatically.



Loading…
Cancel
Save