Once the language's phonemes have been defined, then pronunciation dictionary data can be produced in order to translate the language's source text into phonemes. This consists of two source files: <B>fr_rules</B> (the spelling to phoneme rules) and <B>fr_list</B> (an exceptions list, and attributes of certain words). The corresponding compiled data file is <B>espeak-data/fr_dict</B> which is produced from <B>fr_rules</B> and <B>fr_list</B> sources by the command: | Once the language's phonemes have been defined, then pronunciation dictionary data can be produced in order to translate the language's source text into phonemes. This consists of two source files: <B>fr_rules</B> (the spelling to phoneme rules) and <B>fr_list</B> (an exceptions list, and attributes of certain words). The corresponding compiled data file is <B>espeak-data/fr_dict</B> which is produced from <B>fr_rules</B> and <B>fr_list</B> sources by the command: | ||||
</P> | </P> | ||||
<BLOCKQUOTE> | <BLOCKQUOTE> | ||||
<CODE>espeak --compile=fr</CODE>. | |||||
<CODE>espeak-ng --compile=fr</CODE>. | |||||
</BLOCKQUOTE> | </BLOCKQUOTE> | ||||
<P></P> | <P></P> | ||||
<P> | <P> |
<h3>2.1.1 Linux and other Posix systems</h3> | <h3>2.1.1 Linux and other Posix systems</h3> | ||||
There are two versions of the command line program. They both have the same command parameters (see below). | There are two versions of the command line program. They both have the same command parameters (see below). | ||||
<ol> | <ol> | ||||
<li><strong>espeak</strong> uses speech engine in the <strong>libespeak</strong> shared library. The libespeak library must first be installed. | |||||
<li><strong>espeak-ng</strong> uses speech engine in the <strong>libespeak-ng</strong> shared library. The libespeak-ng library must first be installed. | |||||
<p> | <p> | ||||
<li><strong>speak</strong> is a stand-alone version which includes its own copy of the speech engine. | |||||
<li><strong>speak-ng</strong> is a stand-alone version which includes its own copy of the speech engine. | |||||
</ol> | </ol> | ||||
Place the <strong>espeak</strong> or <strong>speak</strong> executable file in the command path, eg in <strong>/usr/local/bin</strong> | |||||
Place the <strong>espeak-ng</strong> or <strong>speak-ng</strong> executable file in the command path, eg in <strong>/usr/local/bin</strong> | |||||
<p> | <p> | ||||
Place the "<strong>espeak-data</strong>" directory in /usr/share as <strong>/usr/share/espeak-data</strong>.<br> | Place the "<strong>espeak-data</strong>" directory in /usr/share as <strong>/usr/share/espeak-data</strong>.<br> | ||||
Alternatively if it is placed in the user's home directory (i.e. <strong>/home/<user>/espeak-data</strong>) | Alternatively if it is placed in the user's home directory (i.e. <strong>/home/<user>/espeak-data</strong>) | ||||
then that will be used instead. | then that will be used instead. | ||||
<p> | <p> | ||||
<h4>Dependencies</h4> | <h4>Dependencies</h4> | ||||
<strong>espeak</strong> uses the PortAudio sound library (version 18), so you will need to have the <strong>libportaudio0</strong> library package installed. It may be already, since it's used by other software, such as OpenOffice.org and the Audacity sound editor.<p> | |||||
<strong>espeak-ng</strong> uses the PortAudio sound library (version 18), so you will need to have the <strong>libportaudio0</strong> library package installed. It may be already, since it's used by other software, such as OpenOffice.org and the Audacity sound editor.<p> | |||||
Some Linux distrubitions (eg. SuSe 10) have version 19 of PortAudio which has a slightly different API. The speak program can be compiled to use version 19 of PortAudio by copying the file portaudio19.h to portaudio.h before compiling.<p> | Some Linux distrubitions (eg. SuSe 10) have version 19 of PortAudio which has a slightly different API. The speak program can be compiled to use version 19 of PortAudio by copying the file portaudio19.h to portaudio.h before compiling.<p> | ||||
The speak program may be compiled without using PortAudio, by removing the line<pre> #define USE_PORTAUDIO | The speak program may be compiled without using PortAudio, by removing the line<pre> #define USE_PORTAUDIO | ||||
</pre>in the file speech.h. | </pre>in the file speech.h. | ||||
The installer: <strong>setup_espeak.exe</strong> installs the SAPI5 version of eSpeak. | The installer: <strong>setup_espeak.exe</strong> installs the SAPI5 version of eSpeak. | ||||
During installation you need to specify which voices you want to appear in SAPI5 voice menus. | During installation you need to specify which voices you want to appear in SAPI5 voice menus. | ||||
<p> | <p> | ||||
It also installs a command line program <strong>espeak</strong> in the espeak program directory. | |||||
It also installs a command line program <strong>espeak-ng</strong> in the espeak-ng program directory. | |||||
<p> <hr> | <p> <hr> | ||||
<h2>2.2 COMMAND OPTIONS</h2> | <h2>2.2 COMMAND OPTIONS</h2> | ||||
<hr> | <hr> | ||||
<h3>2.2.1 Examples</h3> | <h3>2.2.1 Examples</h3> | ||||
To use at the command line, type:<br> | To use at the command line, type:<br> | ||||
<strong>espeak "This is a test"</strong><br> | |||||
<strong>espeak-ng "This is a test"</strong><br> | |||||
or<br> | or<br> | ||||
<strong>espeak -f <text file></strong> | |||||
<strong>espeak-ng -f <text file></strong> | |||||
<p> | <p> | ||||
Or just type<br> | Or just type<br> | ||||
<strong>espeak</strong><br> | |||||
<strong>espeak-ng</strong><br> | |||||
followed by text on subsequent lines. Each line is spoken when | followed by text on subsequent lines. Each line is spoken when | ||||
RETURN is pressed. | RETURN is pressed. | ||||
<p> | <p> | ||||
Use <strong>espeak -x</strong> to see the corresponding phoneme codes. | |||||
Use <strong>espeak-ng -x</strong> to see the corresponding phoneme codes. | |||||
<p> <hr> | <p> <hr> | ||||
<h3>2.2.2 The Command Line Options</h3> | <h3>2.2.2 The Command Line Options</h3> | ||||
<dl> | <dl> | ||||
<dt> | <dt> | ||||
<strong>espeak [options] ["text words"]</strong><br> | |||||
<strong>espeak-ng [options] ["text words"]</strong><br> | |||||
<dd>Text input can be taken either from a file, from a string in the command, or from stdin. | <dd>Text input can be taken either from a file, from a string in the command, or from stdin. | ||||
<p> | <p> | ||||
<dt> | <dt> | ||||
<dt> | <dt> | ||||
<strong>-v <voice filename>[+<variant>]</strong><br> | <strong>-v <voice filename>[+<variant>]</strong><br> | ||||
<dd>Sets a Voice for the speech, usually to select a language. eg: | <dd>Sets a Voice for the speech, usually to select a language. eg: | ||||
<pre> espeak -vaf</pre> | |||||
<pre> espeak-ng -vaf</pre> | |||||
To use the Afrikaans voice. A modifier after the voice name can be used to vary the tone of the voice, eg: | To use the Afrikaans voice. A modifier after the voice name can be used to vary the tone of the voice, eg: | ||||
<pre> espeak -vaf+3</pre> | |||||
<pre> espeak-ng -vaf+3</pre> | |||||
The variants are <code> +m1 +m2 +m3 +m4 +m5 +m6 +m7</code> for male voices and <code> +f1 +f2 +f3 +f4 </code> which simulate female voices by using higher pitches. Other variants include <code>+croak</code> and <code>+whisper</code>. | The variants are <code> +m1 +m2 +m3 +m4 +m5 +m6 +m7</code> for male voices and <code> +f1 +f2 +f3 +f4 </code> which simulate female voices by using higher pitches. Other variants include <code>+croak</code> and <code>+whisper</code>. | ||||
<p> | <p> | ||||
<voice filename> is a file within the <code>espeak-data/voices</code> directory.<br> | <voice filename> is a file within the <code>espeak-data/voices</code> directory.<br> | ||||
<p> | <p> | ||||
<dt><b>Phoneme Input</b> | <dt><b>Phoneme Input</b> | ||||
<dd> | <dd> | ||||
As well as plain text, phoneme mnemonics can be used in the text input to <strong>espeak</strong>. They are enclosed within double square brackets. Spaces are used to separate words and all stressed syllables must be marked explicitly.<p> | |||||
eg: <code> espeak -v en "[[D,Is Iz sVm f@n'EtIk t'Ekst 'InpUt]]" </code><p> | |||||
As well as plain text, phoneme mnemonics can be used in the text input to <strong>espeak-ng</strong>. They are enclosed within double square brackets. Spaces are used to separate words and all stressed syllables must be marked explicitly.<p> | |||||
eg: <code> espeak-ng -v en "[[D,Is Iz sVm f@n'EtIk t'Ekst 'InpUt]]" </code><p> | |||||
This command will speak: "This is some phonetic text input". | This command will speak: "This is some phonetic text input". | ||||
</dl> | </dl> | ||||
A number of Voice files are provided in the <code>espeak-data/voices</code> directory. | A number of Voice files are provided in the <code>espeak-data/voices</code> directory. | ||||
You can select one of these with the <strong>-v <voice filename></strong> parameter to the | You can select one of these with the <strong>-v <voice filename></strong> parameter to the | ||||
speak command, eg: | speak command, eg: | ||||
<pre> espeak -vaf</pre> | |||||
<pre> espeak-ng -vaf</pre> | |||||
to speak using the Afrikaans voice.<p>Language voices generally start with the 2 letter <a href="http://en.wikipedia.org/wiki/ISO_639-1">ISO 639-1 code</a> for the language. If the language does not have an ISO 639-1 code, then the 3 letter <a href="http://www.sil.org/iso639-3/codes.asp">ISO 639-3 code</a> can be used. | to speak using the Afrikaans voice.<p>Language voices generally start with the 2 letter <a href="http://en.wikipedia.org/wiki/ISO_639-1">ISO 639-1 code</a> for the language. If the language does not have an ISO 639-1 code, then the 3 letter <a href="http://www.sil.org/iso639-3/codes.asp">ISO 639-3 code</a> can be used. | ||||
<p> | <p> | ||||
For details of the voice files see <a href="voices.html">Voices</a>. | For details of the voice files see <a href="voices.html">Voices</a>. | ||||
Alternatively there are some preset voice variants which can be applied to any of the language voices, by appending <code>+</code> and a variant name. Their effects are defined by files in <code>espeak-data/voices/!v</code>. | Alternatively there are some preset voice variants which can be applied to any of the language voices, by appending <code>+</code> and a variant name. Their effects are defined by files in <code>espeak-data/voices/!v</code>. | ||||
<p> | <p> | ||||
The variants are <code> +m1 +m2 +m3 +m4 +m5 +m6 +m7</code> for male voices, <code> +f1 +f2 +f3 +f4 +f5 </code> for female voices, and <code> +croak +whisper</code> for other effects. For example: | The variants are <code> +m1 +m2 +m3 +m4 +m5 +m6 +m7</code> for male voices, <code> +f1 +f2 +f3 +f4 +f5 </code> for female voices, and <code> +croak +whisper</code> for other effects. For example: | ||||
<pre> espeak -ven+m3</pre> | |||||
<pre> espeak-ng -ven+m3</pre> | |||||
The available voice variants can be listed with:<br> | The available voice variants can be listed with:<br> | ||||
<pre> espeak --voices=variant</pre> | |||||
<pre> espeak-ng --voices=variant</pre> | |||||
<h3>3.4 Other Languages</h3> | <h3>3.4 Other Languages</h3> | ||||
The eSpeak speech synthesizer does text to speech for the following additional langauges. | The eSpeak speech synthesizer does text to speech for the following additional langauges. | ||||
<ul> | <ul> |
directory) to <code>/usr/share/mbrola/en1</code>.<p>eSpeak will look for mbrola voices firstly in <code>espeak-data/mbrola</code> and then in <code>/usr/share/mbrola</code> | directory) to <code>/usr/share/mbrola/en1</code>.<p>eSpeak will look for mbrola voices firstly in <code>espeak-data/mbrola</code> and then in <code>/usr/share/mbrola</code> | ||||
<p> | <p> | ||||
<li>If you use the eSpeak voice such as "<b>mb-en1</b>" then eSpeak will use the mbrola "en1" voice, eg:<br> | <li>If you use the eSpeak voice such as "<b>mb-en1</b>" then eSpeak will use the mbrola "en1" voice, eg:<br> | ||||
<code>espeak -v mb-en1 "Hello world" | |||||
<code>espeak-ng -v mb-en1 "Hello world" | |||||
</code> | </code> | ||||
<p><p> | <p><p> | ||||
To generate mbrola phoneme data (.pho file) you can use:<br> | To generate mbrola phoneme data (.pho file) you can use:<br> | ||||
<code>espeak -v mb-en1 -q --pho "Hello world"</code> | |||||
<code>espeak-ng -v mb-en1 -q --pho "Hello world"</code> | |||||
<br>or<br> | <br>or<br> | ||||
<code>espeak -v mb-en1 -q --pho --phonout=out.pho "Hello world"</code> | |||||
<code>espeak-ng -v mb-en1 -q --pho --phonout=out.pho "Hello world"</code> | |||||
</ol> | </ol> | ||||
<h3>Mbrola Voice Files</h3> | <h3>Mbrola Voice Files</h3> |
<p> | <p> | ||||
The phoneme mnemonics are based on the scheme by Kirshenbaum which represents International Phonetic Alphabet symbols using ascii characters. See: <a href="http://www.kirshenbaum.net/IPA/ascii-ipa.pdf">www.kirshenbaum.net/IPA/ascii-ipa.pdf</a>. | The phoneme mnemonics are based on the scheme by Kirshenbaum which represents International Phonetic Alphabet symbols using ascii characters. See: <a href="http://www.kirshenbaum.net/IPA/ascii-ipa.pdf">www.kirshenbaum.net/IPA/ascii-ipa.pdf</a>. | ||||
<p> | <p> | ||||
Phoneme mnemonics can be used directly in the text input to <strong>espeak</strong>. They are enclosed within double square brackets. Spaces are used to separate words, and all stressed syllables must be marked explicitly. eg:<br> | |||||
Phoneme mnemonics can be used directly in the text input to <strong>espeak-ng</strong>. They are enclosed within double square brackets. Spaces are used to separate words, and all stressed syllables must be marked explicitly. eg:<br> | |||||
<code>[[D,Is Iz sVm f@n'EtIk t'Ekst 'InpUt]]</code> | <code>[[D,Is Iz sVm f@n'EtIk t'Ekst 'InpUt]]</code> | ||||
<h3>English Consonants</h3> | <h3>English Consonants</h3> | ||||
<table> | <table> |
A Voice file specifies a language (and possibly a language variant or dialect) together with various attributes that affect the characteristics of the voice quality and how the language is spoken.<p> | A Voice file specifies a language (and possibly a language variant or dialect) together with various attributes that affect the characteristics of the voice quality and how the language is spoken.<p> | ||||
Voice files are placed in the <code>espeak-data/voices</code> directory, or within subdirectories in there.<p> | Voice files are placed in the <code>espeak-data/voices</code> directory, or within subdirectories in there.<p> | ||||
The available voice files can be listed by:<pre> | The available voice files can be listed by:<pre> | ||||
espeak --voices | |||||
espeak-ng --voices | |||||
or | or | ||||
espeak --voices=<language></pre> | |||||
espeak-ng --voices=<language></pre> | |||||
also | also | ||||
<pre> espeak --voices=<variant></pre> | |||||
<pre> espeak-ng --voices=<variant></pre> | |||||
Lists voice variants which can be applied to eSpeak voices. | Lists voice variants which can be applied to eSpeak voices. | ||||
<pre> espeak --voices=<mbrola></pre> | |||||
<pre> espeak-ng --voices=<mbrola></pre> | |||||
Lists the Mbrola voices. | Lists the Mbrola voices. | ||||
<hr> | <hr> | ||||
<h3>5.2 Contents of Voice Files</h3> | <h3>5.2 Contents of Voice Files</h3> |