mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-11-01 05:46:19 +00:00
126 lines
4.7 KiB
Markdown
126 lines
4.7 KiB
Markdown
3. LANGUAGES {.western}
|
|
------------
|
|
|
|
**Languages**. The eSpeak speech synthesizer supports several languages,
|
|
however in many cases these are initial drafts and need more work to
|
|
improve them. Assistance from native speakers is welcome for these, or
|
|
other new languages. Please contact me if you want to help.
|
|
|
|
eSpeak does text to speech synthesis for the following languages, some
|
|
better than others. Afrikaans, Albanian, Armenian, Cantonese, Catalan,
|
|
Croatian, Czech, Danish, Dutch, English, Esperanto, Finnish, French,
|
|
German, Greek, Hindi, Hungarian, Icelandic, Indonesian, Italian,
|
|
Kurdish, Latvian, Lojban, Macedonian, Mandarin, Norwegian, Polish,
|
|
Portuguese, Romanian, Russian, Serbian, Slovak, Spanish, Swahili,
|
|
Swedish, Tamil, Turkish, Vietnamese, Welsh.
|
|
|
|
|
|
#### Help Needed {.western}
|
|
|
|
Many of these are just experimental attempts at these languages,
|
|
produced after a quick reading of the corresponding article on
|
|
wikipedia.org. They will need work or advice from native speakers to
|
|
improve them. Please contact me if you want to advise or assist with
|
|
these or other languages.
|
|
|
|
The sound of some phonemes may be poorly implemented, particularly [r]
|
|
since I'm English and therefore unable to make a "proper" [r] sound.
|
|
|
|
A major factor is the rhythm or cadance. An Italian speaker told me the
|
|
Italian voice improved from "difficult to understand" to "good" by
|
|
changing the relative length of stressed syllables. Identifying
|
|
unstressed function words in the xx\_list file is also important to make
|
|
the speech flow well. See [Adding or Improving a
|
|
Language](add_language.html)
|
|
|
|
#### Character sets {.western}
|
|
|
|
Languages recognise text either as UTF8 or alternatively in an 8-bit
|
|
character set which is appropriate for that language. For example, for
|
|
Polish this is Latin2, for Russian it is KOI8-R. This choice can be
|
|
overridden by a line in the voices file to specify an ISO 8859 character
|
|
set, eg. for Russian the line:
|
|
|
|
~~~~ {.western style="margin-bottom: 0.5cm"}
|
|
charset 5
|
|
~~~~
|
|
|
|
will mean that ISO 8859-5 is used as the 8-bit character set rather than
|
|
KOI8-R.
|
|
|
|
In the case of a language which uses a non-Latin character set (eg.
|
|
Greek or Russian) if the text contains a word with Latin characters then
|
|
that particular word will be pronounced using English pronunciation
|
|
rules and English phonemes. Speaking entirely English text using a Greek
|
|
or Russian voice will sound OK, but each word is spoken separately so it
|
|
won't flow properly.
|
|
|
|
Sample texts in various languages can be found at
|
|
[http://\<language\>.wikipedia.org](http://meta.wikimedia.org/wiki/List_of_Wikipedias)
|
|
and [www.gutenberg.org](http://www.gutenberg.org/)
|
|
|
|
### 3.1 Voice Files {.western}
|
|
|
|
A number of Voice files are provided in the
|
|
`espeak-data/voices`{.western} directory. You can select one of these
|
|
with the **-v \<voice filename\>** parameter to the speak command, eg:
|
|
|
|
~~~~ {.western style="margin-bottom: 0.5cm"}
|
|
espeak-ng -vaf
|
|
~~~~
|
|
|
|
to speak using the Afrikaans voice.
|
|
|
|
Language voices generally start with the 2 letter [ISO 639-1
|
|
code](http://en.wikipedia.org/wiki/ISO_639-1) for the language. If the
|
|
language does not have an ISO 639-1 code, then the 3 letter [ISO 639-3
|
|
code](http://www.sil.org/iso639-3/codes.asp) can be used.
|
|
|
|
For details of the voice files see [Voices](voices.html).
|
|
|
|
#### Default Voice {.western}
|
|
|
|
### 3.2 English Voices {.western}
|
|
|
|
### 3.3 Voice Variants {.western}
|
|
|
|
To make alternative voices for a language, you can make additional voice
|
|
files in espeak-data/voices which contains commands to change various
|
|
voice and pronunciation attributes. See [voices.html](voices.html).
|
|
|
|
Alternatively there are some preset voice variants which can be applied
|
|
to any of the language voices, by appending `+`{.western} and a variant
|
|
name. Their effects are defined by files in
|
|
`espeak-data/voices/!v`{.western}.
|
|
|
|
The variants are `+m1 +m2 +m3 +m4 +m5 +m6 +m7`{.western} for male
|
|
voices, `+f1 +f2 +f3 +f4 +f5 `{.western}for female voices, and
|
|
`+croak +whisper`{.western} for other effects. For example:
|
|
|
|
~~~~ {.western style="margin-bottom: 0.5cm"}
|
|
espeak-ng -ven+m3
|
|
~~~~
|
|
|
|
The available voice variants can be listed with:
|
|
|
|
~~~~ {.western style="margin-bottom: 0.5cm"}
|
|
espeak-ng --voices=variant
|
|
~~~~
|
|
|
|
### 3.4 Other Languages {.western}
|
|
|
|
The eSpeak speech synthesizer does text to speech for the following
|
|
additional langauges.
|
|
|
|
### 3.5 Provisional Languages {.western}
|
|
|
|
These languages are only initial naive implementations which have had
|
|
little or no feedback and improvement from native speakers.
|
|
|
|
### 3.6 Mbrola Voices {.western}
|
|
|
|
Some additional voices, whose name start with **mb-** (for example
|
|
**mb-en1**) use eSpeak as a front-end to Mbrola diphone voices. eSpeak
|
|
does the spelling-to-phoneme translation and intonation. See
|
|
[mbrola.html](mbrola.html).
|