* hak (Hakka Chinese) -- Chen Chien-ting | * hak (Hakka Chinese) -- Chen Chien-ting | ||||
* ht (Haitian Creole) -- Valdis Vitolins | * ht (Haitian Creole) -- Valdis Vitolins | ||||
* kk (Kazakh) -- boracasli14, Valdis Vitolins | * kk (Kazakh) -- boracasli14, Valdis Vitolins | ||||
* py (Pyash) -- Logan Streondj | |||||
* quc (K'iche') -- Valdis Vitolins | * quc (K'iche') -- Valdis Vitolins | ||||
* ru-lv (Russian Latvia) -- Valdis Vitolins | * ru-lv (Russian Latvia) -- Valdis Vitolins | ||||
* shn (Shan Tay Yai) -- ronaldaug | * shn (Shan Tay Yai) -- ronaldaug |
phsource/ph_portugal \ | phsource/ph_portugal \ | ||||
phsource/ph_pt_brazil \ | phsource/ph_pt_brazil \ | ||||
phsource/ph_punjabi \ | phsource/ph_punjabi \ | ||||
phsource/ph_pyash \ | |||||
phsource/ph_romanian \ | phsource/ph_romanian \ | ||||
phsource/ph_russian \ | phsource/ph_russian \ | ||||
phsource/ph_russian_lv \ | phsource/ph_russian_lv \ | ||||
espeak-ng-data/pap_dict \ | espeak-ng-data/pap_dict \ | ||||
espeak-ng-data/pl_dict \ | espeak-ng-data/pl_dict \ | ||||
espeak-ng-data/pt_dict \ | espeak-ng-data/pt_dict \ | ||||
espeak-ng-data/py_dict \ | |||||
espeak-ng-data/quc_dict \ | espeak-ng-data/quc_dict \ | ||||
espeak-ng-data/ro_dict \ | espeak-ng-data/ro_dict \ | ||||
espeak-ng-data/ru_dict \ | espeak-ng-data/ru_dict \ | ||||
pt: espeak-ng-data/pt_dict | pt: espeak-ng-data/pt_dict | ||||
espeak-ng-data/pt_dict: dictsource/pt_list dictsource/pt_rules dictsource/pt_extra dictsource/pt_emoji | espeak-ng-data/pt_dict: dictsource/pt_list dictsource/pt_rules dictsource/pt_extra dictsource/pt_emoji | ||||
py: espeak-ng-data/py_dict | |||||
espeak-ng-data/py_dict: dictsource/py_list dictsource/py_rules dictsource/py_extra | |||||
quc: espeak-ng-data/quc_dict | quc: espeak-ng-data/quc_dict | ||||
espeak-ng-data/quc_dict: dictsource/quc_list dictsource/quc_rules dictsource/quc_extra dictsource/quc_emoji | espeak-ng-data/quc_dict: dictsource/quc_list dictsource/quc_rules dictsource/quc_extra dictsource/quc_emoji | ||||
---------- | ---------- | ||||
The eSpeak NG (Next Generation) Text-to-Speech program is an open source speech | The eSpeak NG (Next Generation) Text-to-Speech program is an open source speech | ||||
synthesizer that supports [102 languages and accents](docs/languages.md), | |||||
synthesizer that supports [107 languages and accents](docs/languages.md), | |||||
based on the eSpeak engine created by Jonathan Duddington. It supports spectral | based on the eSpeak engine created by Jonathan Duddington. It supports spectral | ||||
and Klatt formant synthesis, and the ability to use MBROLA voices. | and Klatt formant synthesis, and the ability to use MBROLA voices. | ||||
| ronn | `sudo apt-get install ruby-ronn` | | | ronn | `sudo apt-get install ruby-ronn` | | ||||
| kramdown | `sudo apt-get install ruby-kramdown` | | | kramdown | `sudo apt-get install ruby-kramdown` | | ||||
For recent Debian or Ubuntu >= 18.04 you should also install: | |||||
| Dependency | Install | | |||||
|---------------|------------------------------------------------------------------| | |||||
| pcaudiolib | `sudo apt-get install libpcaudio-dev` | | |||||
### Building | ### Building | ||||
The first time you build eSpeak NG, or when you want to change how to build | The first time you build eSpeak NG, or when you want to change how to build | ||||
2. the [Android NDK](http://developer.android.com/tools/sdk/ndk/index.html); | 2. the [Android NDK](http://developer.android.com/tools/sdk/ndk/index.html); | ||||
3. Gradle 3.2.1 or later. | 3. Gradle 3.2.1 or later. | ||||
In order to use Android Studio, you will also need: | |||||
1. [Android Studio](http://developer.android.com/sdk/installing/studio.html). | |||||
### Building with Gradle | ### Building with Gradle | ||||
1. Set the location of the Android SDK: | 1. Set the location of the Android SDK: | ||||
$ export ANDROID_HOME=<path-to-the-android-sdk> | $ export ANDROID_HOME=<path-to-the-android-sdk> | ||||
(where `<path-to-the-android-sdk>` is your actual path of SDK folder e.g. `/home/user/Android/Sdk`) | (where `<path-to-the-android-sdk>` is your actual path of SDK folder e.g. `/home/user/Android/Sdk`) | ||||
2. Add location of NDK to the PATH variable: | 2. Add location of NDK to the PATH variable: | ||||
$ export PATH=$PATH:<path-to-the-android-ndk> | $ export PATH=$PATH:<path-to-the-android-ndk> | ||||
(where `<path-to-the-android-ndk>` is your actual path of NDK folder, e.g. `/home/user/Android/Ndk`) | (where `<path-to-the-android-ndk>` is your actual path of NDK folder, e.g. `/home/user/Android/Ndk`) | ||||
3. Configure the project: | 3. Configure the project: | ||||
$ ./autogen.sh | $ ./autogen.sh | ||||
ndk-build (Android): yes | ndk-build (Android): yes | ||||
... | ... | ||||
`<path-to-gradle>` may be just `gradle` if it is found in your path by simple name. | `<path-to-gradle>` may be just `gradle` if it is found in your path by simple name. | ||||
4. Build the project: | 4. Build the project: | ||||
$ make apk-release | $ make apk-release | ||||
## Documentation | ## Documentation | ||||
The [documentation](docs/README.md) for eSpeak NG provides: | |||||
1. a user guide; | |||||
2. a guide for language and voice authors; and | |||||
3. details for developers. | |||||
The [espeak-ng](src/espeak-ng.1.ronn) and [speak-ng](src/speak-ng.1.ronn) | |||||
command-line documentation provide a reference of the different command-line | |||||
options available to these commands with example usage. | |||||
1. [User guide](src/espeak-ng.1.ronn) provides reference and examples for command-line options. | |||||
2. [Language guide](docs/add_language.md) provides step-by-step instructions, how to add/improve support for language. | |||||
3. [Readme](docs/README.md) provides entries to more detailed information for contributors and developers. | |||||
## eSpeak Compatibility | ## eSpeak Compatibility | ||||
_: d'Op@lp,UNkt | _: d'Op@lp,UNkt | ||||
_; Str'ICpUNkt | _; Str'ICpUNkt | ||||
__ ,Unt3Str'IC | __ ,Unt3Str'IC | ||||
_- b'Ind@str,IC | |||||
_- b'Ind@str,IC | |||||
− mi:nUs | |||||
_! 'aUs_|r,u:f@ts,aIC@n | _! 'aUs_|r,u:f@ts,aIC@n | ||||
_? fr'Ag@ts,aIC@n | _? fr'Ag@ts,aIC@n | ||||
_' ,apo:str'Of | _' ,apo:str'Of | ||||
unserem Unz@r@m $u | unserem Unz@r@m $u | ||||
unseren Unz@r@n $u | unseren Unz@r@n $u | ||||
unserer $u | unserer $u | ||||
unseres $u | |||||
ihre i:r@ $u | ihre i:r@ $u | ||||
ihrem i:r@m $u | ihrem i:r@m $u | ||||
ihrer i:r3 $u | ihrer i:r3 $u | ||||
jetzt j,Etst $strend2 | jetzt j,Etst $strend2 | ||||
schon S,o:n $strend2 | schon S,o:n $strend2 | ||||
einst 'aInst // not 'ein' + st | einst 'aInst // not 'ein' + st | ||||
zwar tsv,a:r | |||||
zwar $u | |||||
wo v,o: | wo v,o: | ||||
während $u | während $u | ||||
// de_rules includes the words ending in "-ing" | // de_rules includes the words ending in "-ing" | ||||
access _^_EN | access _^_EN | ||||
account _^_EN | account _^_EN | ||||
aid _^_EN // aids | |||||
aid _^_EN | |||||
aids _^_EN | |||||
america _^_EN | |||||
appeal _^_EN | appeal _^_EN | ||||
apple _^_EN | apple _^_EN | ||||
association _^_EN | association _^_EN | ||||
baseball _^_EN | baseball _^_EN | ||||
bbc _^_EN | bbc _^_EN | ||||
beat _^_EN | beat _^_EN | ||||
britain _^_EN | |||||
british _^_EN | |||||
browser _^_EN | browser _^_EN | ||||
byte _^_EN | byte _^_EN | ||||
bytes _^_EN | bytes _^_EN | ||||
cool _^_EN | cool _^_EN | ||||
copy _^_EN | copy _^_EN | ||||
couch _^_EN | couch _^_EN | ||||
cover _^_EN | |||||
cursor _^_EN | cursor _^_EN | ||||
daisy _^_EN | daisy _^_EN | ||||
date _^_EN | date _^_EN | ||||
debugger _^_EN | debugger _^_EN | ||||
desktop d'EsktOp | |||||
dj d'i:dZEI | dj d'i:dZEI | ||||
download _^_EN | |||||
downloads _^_EN | |||||
email _^_EN | email _^_EN | ||||
empire _^_EN | |||||
enterprise _^_EN | enterprise _^_EN | ||||
escape _^_EN | escape _^_EN | ||||
espeak _^_EN | espeak _^_EN | ||||
firefox _^_EN | firefox _^_EN | ||||
firewall _^_EN | firewall _^_EN | ||||
foul _^_EN | foul _^_EN | ||||
foyer _^_EN | |||||
frame _^_EN | frame _^_EN | ||||
freak _^_EN | freak _^_EN | ||||
german _^_EN | german _^_EN | ||||
germany _^_EN | |||||
gin _^_EN | gin _^_EN | ||||
google _^_EN | google _^_EN | ||||
great _^_EN | |||||
groupie _^_EN | groupie _^_EN | ||||
hip _^_EN | hip _^_EN | ||||
homepage _^_EN | homepage _^_EN | ||||
joke _^_EN | joke _^_EN | ||||
joystick _^_EN | joystick _^_EN | ||||
junkie _^_EN | junkie _^_EN | ||||
kingdom _^_EN | |||||
laptop _^_EN | laptop _^_EN | ||||
laser _^_EN | laser _^_EN | ||||
level _^_EN | level _^_EN | ||||
mail _^_EN | mail _^_EN | ||||
mailbox _^_EN | mailbox _^_EN | ||||
message _^_EN | message _^_EN | ||||
moodle _^_EN | |||||
move _^_EN | move _^_EN | ||||
my _^_EN | my _^_EN | ||||
mysql _^_EN | mysql _^_EN | ||||
notepad _^_EN | notepad _^_EN | ||||
nugget _^_EN | nugget _^_EN | ||||
nvda _^_EN | nvda _^_EN | ||||
nvaccess _^_EN | |||||
of _^_EN | |||||
office _^_EN | |||||
offices _^_EN | |||||
offline _^_EN | offline _^_EN | ||||
online _^_EN | online _^_EN | ||||
out _^_EN | out _^_EN | ||||
player _^_EN | player _^_EN | ||||
plot _^_EN | plot _^_EN | ||||
poster _^_EN | poster _^_EN | ||||
quiz _^_EN | |||||
reader _^_EN | |||||
receiver _^_EN | receiver _^_EN | ||||
recovery _^_EN | |||||
registry _^_EN | registry _^_EN | ||||
release _^_EN | release _^_EN | ||||
remake _^_EN | remake _^_EN | ||||
research _^_EN | research _^_EN | ||||
return _^_EN | |||||
roadie _^_EN | roadie _^_EN | ||||
roastbeef _^_EN | roastbeef _^_EN | ||||
quiz _^_EN | |||||
reader _^_EN | |||||
run _^_EN | run _^_EN | ||||
running _^_EN | running _^_EN | ||||
save _^_EN | save _^_EN | ||||
small _^_EN | small _^_EN | ||||
smiley _^_EN | smiley _^_EN | ||||
snob _^_EN | snob _^_EN | ||||
solution _^_EN | |||||
song _^_EN | song _^_EN | ||||
sorry _^_EN | sorry _^_EN | ||||
source _^_EN | source _^_EN | ||||
space _^_EN | |||||
spaces _^_EN | |||||
spam _^_EN | spam _^_EN | ||||
speak _^_EN | speak _^_EN | ||||
spirit _^_EN | spirit _^_EN | ||||
squaw _^_EN | squaw _^_EN | ||||
state _^_EN | |||||
states _^_EN | |||||
stream _^_EN | stream _^_EN | ||||
suite _^_EN | suite _^_EN | ||||
sweatshirt _^_EN | sweatshirt _^_EN | ||||
teaser _^_EN | teaser _^_EN | ||||
tech _^_EN | tech _^_EN | ||||
terminal _^_EN | terminal _^_EN | ||||
the _^_EN | |||||
their _^_EN | |||||
they _^_EN | |||||
this _^_EN | |||||
thunderbird _^_EN | thunderbird _^_EN | ||||
time _^_EN | time _^_EN | ||||
timer _^_EN | timer _^_EN | ||||
tool _^_EN | tool _^_EN | ||||
trip _^_EN | trip _^_EN | ||||
tuner _^_EN | tuner _^_EN | ||||
turn _^_EN | |||||
united _^_EN | |||||
unix _^_EN | unix _^_EN | ||||
update _^_EN | update _^_EN | ||||
updates _^_EN | updates _^_EN | ||||
venture _^_EN | venture _^_EN | ||||
verify _^_EN | verify _^_EN | ||||
very _^_EN | |||||
voice _^_EN | voice _^_EN | ||||
voices _^_EN | voices _^_EN | ||||
weather _^_EN | weather _^_EN | ||||
website _^_EN | website _^_EN | ||||
window _^_EN | window _^_EN | ||||
wipe _^_EN | wipe _^_EN | ||||
with _^_EN | |||||
word _^_EN | word _^_EN | ||||
alarm $2 | alarm $2 | ||||
allein $2 | allein $2 | ||||
allgemein 'alg@maIn | allgemein 'alg@maIn | ||||
amerika $2 | |||||
andre andr@ // andere | andre andr@ // andere | ||||
aneinander an1aIn'and3 | aneinander an1aIn'and3 | ||||
anomalie $2 | anomalie $2 | ||||
aventurin avEntu:r'i:n | aventurin avEntu:r'i:n | ||||
ave A:vE | ave A:vE | ||||
bebung b'e:bUN | |||||
baguette bag'Et | baguette bag'Et | ||||
balkan $1 | balkan $1 | ||||
balkon $2 | balkon $2 | ||||
balance bal'A~s | |||||
bandagier bandaZ'i:r | bandagier bandaZ'i:r | ||||
beben be:b@n | beben be:b@n | ||||
bebung b'e:bUN | |||||
beere be:r@ | beere be:r@ | ||||
bestie bEstI@ | bestie bEstI@ | ||||
best bEst | best bEst | ||||
bestem b'Est@m | bestem b'Est@m | ||||
beta b'e:tA: | beta b'e:tA: | ||||
beten be:t@n | beten be:t@n | ||||
bibliothek bi:bli:o:t'e:k | |||||
bisschen b'IsC@n | bisschen b'IsC@n | ||||
bizarr $2 | bizarr $2 | ||||
blamage $alt | blamage $alt | ||||
bourgeoisie bUrZwAz'i: | |||||
braille braIj | braille braIj | ||||
bronchie $alt | bronchie $alt | ||||
buch b'u:x | buch b'u:x | ||||
changier SaNZ'i:r | changier SaNZ'i:r | ||||
cembalo tS'Embalo: | cembalo tS'Embalo: | ||||
centre center $text | |||||
champagner Samp'anj3 | champagner Samp'anj3 | ||||
champignon S'ampInjON | champignon S'ampInjON | ||||
ciao tSaU | ciao tSaU | ||||
dritte drIt@ | dritte drIt@ | ||||
dschungel dZ'UN@l | dschungel dZ'UN@l | ||||
duett du:'Et | duett du:'Et | ||||
düst dy:st | |||||
ebendaher e:b@ndah'e:r | ebendaher e:b@ndah'e:r | ||||
ebendahin e:b@ndah'In | ebendahin e:b@ndah'In | ||||
extrem Ekstr'e:m | extrem Ekstr'e:m | ||||
foyer fOj'e: | foyer fOj'e: | ||||
friedvoll fr'i:tf,Ol | |||||
friedvoll fr'i:tfOl | |||||
furchen fUrC@n | furchen fUrC@n | ||||
furie $alt | furie $alt | ||||
gegenüber ge:g@n_|'y:b3 | gegenüber ge:g@n_|'y:b3 | ||||
geglichen g@glIC@n | geglichen g@glIC@n | ||||
gemein g@maIn | gemein g@maIn | ||||
gen ge:n | |||||
gene ge:n@ | |||||
genial ge:nj'A:l | genial ge:nj'A:l | ||||
geranie ge:r'A:nI@ | geranie ge:r'A:nI@ | ||||
gessen gEs@n | gessen gEs@n | ||||
gestern gEst3n | gestern gEst3n | ||||
gitarre $2 | gitarre $2 | ||||
glorie $alt | glorie $alt | ||||
grafem grA:f'e:m | |||||
graphem grA:f'e:m | |||||
grazie $alt | grazie $alt | ||||
handy hEndi: | handy hEndi: | ||||
jahrhundert $2 | jahrhundert $2 | ||||
januar janu:A:r | januar janu:A:r | ||||
kalender kal'End3 | |||||
Kamel kam'e:l | Kamel kam'e:l | ||||
kamelie $alt | kamelie $alt | ||||
kanäl $2 | kanäl $2 | ||||
kastanie $alt | kastanie $alt | ||||
kid kId | kid kId | ||||
klops kl'Ops | klops kl'Ops | ||||
kognak kOnjak | |||||
kombinationsfeld $4 | kombinationsfeld $4 | ||||
komödie $alt | komödie $alt | ||||
kompass $1 | kompass $1 | ||||
numero $1 | numero $1 | ||||
oboe o:b'o:@ | oboe o:b'o:@ | ||||
orchester $2 | |||||
orgie $alt | orgie $alt | ||||
ok o:k'e: | ok o:k'e: | ||||
oktober $2 | oktober $2 | ||||
planet plan'e:t | planet plan'e:t | ||||
pochier pOS'i:r | pochier pOS'i:r | ||||
pochs pOxs | pochs pOxs | ||||
portemonnaie pOrtmOn'e: | |||||
präsident $3 | präsident $3 | ||||
prämie $alt | prämie $alt | ||||
prinzip $2 | prinzip $2 | ||||
prinzipien prInts'i:pI@n | prinzipien prInts'i:pI@n | ||||
privatisier pri:vA:ti:z'i:r | |||||
problematisier $5 | |||||
protein pro:te:_|'i:n | |||||
protokoll $3 | protokoll $3 | ||||
referendum $3 | |||||
refrain rEfr'W~ | refrain rEfr'W~ | ||||
relevanz $3 | |||||
reliquie $alt | reliquie $alt | ||||
rendezvous rA~de:v'u: | rendezvous rA~de:v'u: | ||||
restaurant rEsto:r'A~ | restaurant rEsto:r'A~ | ||||
risik $1 | risik $1 | ||||
ruhezustand ru:@ts,u:Stand | |||||
rupie $alt | rupie $alt | ||||
sabbat zabat | sabbat zabat | ||||
sagt zA:gt | sagt zA:gt | ||||
salopp $2 | salopp $2 | ||||
sarkasmus $2 | |||||
schieberegler S'i:b@re:gl3 | schieberegler S'i:b@re:gl3 | ||||
schokolad $3 | schokolad $3 | ||||
schreibung Sr'aIbUN | schreibung Sr'aIbUN | ||||
subjekt $1 | subjekt $1 | ||||
tag tA:g | tag tA:g | ||||
teint t'W~ | |||||
telegen te:le:g'e:n | telegen te:le:g'e:n | ||||
terrain tEr'W~ | terrain tEr'W~ | ||||
the D@ // English | |||||
theater te:'A:t3 | theater te:'A:t3 | ||||
tja tjA: | tja tjA: | ||||
tonnage $alt | tonnage $alt | ||||
tsunami tsu:n'A:mi: | tsunami tsu:n'A:mi: | ||||
turin tu:r'i:n | turin tu:r'i:n | ||||
überschrift $1 | |||||
umgehen $2 | umgehen $2 | ||||
umrahmen $2 | umrahmen $2 | ||||
unten Unt@n | unten Unt@n | ||||
untermenü 'Unt3me:n,y: | untermenü 'Unt3me:n,y: | ||||
unterschrift $1 | |||||
urin u:r'i:n | urin u:r'i:n | ||||
übrig 'y:brIg# | übrig 'y:brIg# | ||||
// Names | // Names | ||||
Albanien $2 | |||||
adrian A:dri:A:n | |||||
Alditalk aldi:tO:k | |||||
Alea $2 | |||||
amerika $2 | |||||
Andorra and'OrA: | |||||
Andrea andr'e:A: | |||||
Andreas andr'e:A:s | |||||
Anika ani:kA: | |||||
Armin $1 | Armin $1 | ||||
chopin SOp'W~ | |||||
aserbaidschan A:z3baIdZ'A:n | |||||
Asien A:zI@n | |||||
Bremerhaven bre:m3h'Af@n | |||||
Cathleen katle:n | |||||
Cedric sEdrIk | |||||
Chiara kjA:rA: | |||||
Chris krIs | |||||
Christian $1 | |||||
Christina $2 | |||||
Daniel dA:nI@l | |||||
Daniela danj'e:lA: | |||||
Djakarta dZak'artA: | Djakarta dZak'artA: | ||||
Djibouti dZi:b'u:ti: | Djibouti dZi:b'u:ti: | ||||
duisburg dy:sbUrg | |||||
Eric e:rIk | |||||
Erik e:rIk | |||||
florian $1 | |||||
Fruecht fr'yCt | Fruecht fr'yCt | ||||
Georg ge:Ork $only | Georg ge:Ork $only | ||||
George dZO:rdZ | George dZO:rdZ | ||||
ines 'i:n@s | |||||
john dZ'On | |||||
gibraltar $2 | |||||
Gina dZi:nA: | |||||
hannover han'o:f3 | |||||
Herzegowina hErtse:g'Ovi:nA | |||||
Ines i:n@s | |||||
Italien i:t'A:lI@n | |||||
Johann jo:han | |||||
Johanna jo:h'anA: | |||||
Johannes jo:h'an@s | |||||
John dZOn | |||||
Jon dZOn | |||||
jonatan $1 | |||||
jonathan jonatan $text | |||||
jonny dZOni: | |||||
Josef j'o:zEf | Josef j'o:zEf | ||||
Katharina katar'i:nA: | |||||
Kasachstan $1 | |||||
Kirgisien $2 | |||||
Klango kl'aNgo: | Klango kl'aNgo: | ||||
Khmer kme:r | Khmer kme:r | ||||
liam _^_EN | |||||
kosovo kOso:vo: | |||||
kristina $2 | |||||
kroatien kro:'A:tsI@n | |||||
Leon le:On | |||||
Leonie $1 | |||||
Liam _^_EN | |||||
Lüneburg ly:n@bUrg | |||||
Maria $2 | |||||
Marian $1 | |||||
Marlene marl'e:n@ | |||||
mathias mat'i:A:s | |||||
Matthias mathias $text | |||||
Matias mathias $text | |||||
Mattias mathias $text | |||||
Mc %mEk | Mc %mEk | ||||
michael mICae:l | |||||
michaela mICa'e:lA: | |||||
Montenegro mOnt@n'e:gro: | |||||
Moradi $2 | Moradi $2 | ||||
münchen mynC@n | |||||
naomi $2 | |||||
Neumexiko $2 | Neumexiko $2 | ||||
Neuseeland $2 | Neuseeland $2 | ||||
nordrhein nOrd||raIn | |||||
portugal pOrtu:gal | |||||
Rumänien $2 | |||||
Rwanda rU'andA: | Rwanda rU'andA: | ||||
san %zan | |||||
saarbrücken $2 | |||||
schlesien Sle:zI@n | |||||
schleswig Sle:svIg# | |||||
Sebastian $2 | |||||
slowenien $2 | |||||
Sri %sri: | Sri %sri: | ||||
steve _^_EN | steve _^_EN | ||||
soest zo:st | |||||
sultan $1 | |||||
Tom tOm $only | Tom tOm $only | ||||
Tim tIm $only | Tim tIm $only | ||||
Turkmenistan $2 | |||||
ukraine UkrA'i:n@ | |||||
vatikanstadt vA:ti:k'A:nStat | |||||
vera v'e:rA: | vera v'e:rA: | ||||
verena ve:r'e:nA: | verena ve:r'e:nA: | ||||
westfalen $2 |
au aU | au aU | ||||
auh (_ aU | auh (_ aU | ||||
auer aU3 | auer aU3 | ||||
mold) auisch aUIS | |||||
ab (t_ A:p | ab (t_ A:p | ||||
ag (t_ A:k | ag (t_ A:k | ||||
_) abzu (@P4 'aptsu: | _) abzu (@P4 'aptsu: | ||||
_) ac (et ats | _) ac (et ats | ||||
_) ad (ju at | _) ad (ju at | ||||
afgh afg | |||||
_) an (@P2 'an | _) an (@P2 'an | ||||
_) an (a %an | _) an (a %an | ||||
_) a (natioP1 'A: | _) a (natioP1 'A: | ||||
_) an (nL03hP2 'an | _) an (nL03hP2 'an | ||||
_) anti (@P4 ,antI | _) anti (@P4 ,antI | ||||
_) an (tw an | _) an (tw an | ||||
apo (thek apo: | |||||
emp) athisch A:tIS | |||||
_) auf (@P3 _!'aUf | _) auf (@P3 _!'aUf | ||||
_) aus (@P3 _!'aUs | _) aus (@P3 _!'aUs | ||||
_) aus (ku aUs | _) aus (ku aUs | ||||
a (rch_ 'A: | a (rch_ 'A: | ||||
@) at (_ 'A:t | @) at (_ 'A:t | ||||
@) atisch (_S6 'A:tIS | @) atisch (_S6 'A:tIS | ||||
@) atisieren (_S9 A:tIs'i:r@n | |||||
@) atisieren (_S9 A:ti:z'i:r@n | |||||
a (tion a | a (tion a | ||||
_) ato (m %ato: | _) ato (m %ato: | ||||
_) au (Ceinand aU | _) au (Ceinand aU | ||||
_) beige (_ be:S | _) beige (_ be:S | ||||
_) beige (@ baIg@ | _) beige (@ baIg@ | ||||
_) be (inhP2 b@ | _) be (inhP2 b@ | ||||
bet (_ b'e:t | |||||
_) ba (lA b%a | _) ba (lA b%a | ||||
_) ba (ll@ b%a | _) ba (ll@ b%a | ||||
_o) b (C p | _o) b (C p | ||||
baby _^_EN | baby _^_EN | ||||
bela (rus %bEl%a | |||||
bergisch bErgIS | |||||
beten be:t@n | beten be:t@n | ||||
bestimm %b@StIm | bestimm %b@StIm | ||||
_) bike _^_EN | _) bike _^_EN | ||||
fa) c (et ts | fa) c (et ts | ||||
_) cey tsaI | _) cey tsaI | ||||
chef (_ SEf | chef (_ SEf | ||||
_) c (ent ts | |||||
_) c (ent s | |||||
c (ie s | c (ie s | ||||
pla) c (ie ts | pla) c (ie ts | ||||
coat (_ _^_EN | coat (_ _^_EN | ||||
.group e | .group e | ||||
_) e (_ e: | _) e (_ e: | ||||
e e: | e e: | ||||
&) eau (_ 'o: | |||||
ee e: | ee e: | ||||
eh (+ e: | eh (+ e: | ||||
eb (t_ e:p | eb (t_ e:p | ||||
eg (t_ e:k | eg (t_ e:k | ||||
enz (_ 'Ents | |||||
eth e:t | eth e:t | ||||
een (_ 'e:@n | een (_ 'e:@n | ||||
&) eres (_S4 @r@s | &) eres (_S4 @r@s | ||||
er (d_ e:r | er (d_ e:r | ||||
&) er (r_ E | &) er (r_ E | ||||
w) er (k_ Er | |||||
er (g Er | |||||
erg (_ Erg | |||||
erk (_ Erk | |||||
&) erin (_ @rIn | &) erin (_ @rIn | ||||
&) erisch (_ @rIS | &) erisch (_ @rIS | ||||
exp) er (t Er | exp) er (t Er | ||||
_) elen e:lEn | _) elen e:lEn | ||||
mod) e (l@ E | mod) e (l@ E | ||||
s) e (lig e: | s) e (lig e: | ||||
_) emp (@P3 _|%Emp | |||||
_) emp (@ %Emp | |||||
_) emph (@ %Emf | _) emph (@ %Emf | ||||
_) emp (ir %Emp | _) emp (ir %Emp | ||||
br) ems Ems // brems-t, not brem-st | br) ems Ems // brems-t, not brem-st | ||||
@) ig (+ Ig# // [ig] or [iC] | @) ig (+ Ig# // [ig] or [iC] | ||||
igh (K _^_EN | igh (K _^_EN | ||||
ine (_ 'i:n@ | ine (_ 'i:n@ | ||||
inen (_ 'i:n@n | |||||
inen (_ i:n@n | |||||
i (i i:_! | i (i i:_! | ||||
@) is (_ Is | @) is (_ Is | ||||
&) isch (_ =IS | &) isch (_ =IS | ||||
is (mus_ 'Is | is (mus_ 'Is | ||||
istan =IstA:n | |||||
istisch (_ 'IstIS | |||||
@) ist (_ 'Ist | @) ist (_ 'Ist | ||||
@) it (_N 'It | @) it (_N 'It | ||||
@) ite (_ 'i:t@ | @) ite (_ 'i:t@ | ||||
lady _^_EN | lady _^_EN | ||||
_) land (C@P4 l'ant | _) land (C@P4 l'ant | ||||
_) landes (@P6 l'and@s | _) landes (@P6 l'and@s | ||||
&) ländisch l,EndIS | |||||
_) lang (C@P4 l'aN | _) lang (C@P4 l'aN | ||||
_) lang (t@ l'aN | _) lang (t@ l'aN | ||||
langsam l'aNzA:m | langsam l'aNzA:m | ||||
&) lichstes (_S8 l2ICst@s | &) lichstes (_S8 l2ICst@s | ||||
&) lichkeit (_S8 l2ICkaIt | &) lichkeit (_S8 l2ICkaIt | ||||
&) lichung (_S7 l2IC%UN | &) lichung (_S7 l2IC%UN | ||||
load _^_EN | |||||
@) lo (gisch l'o: | @) lo (gisch l'o: | ||||
dia) log lo:g | dia) log lo:g | ||||
_) luft (CP4 l'Uft | _) luft (CP4 l'Uft | ||||
papier pap'i:r | papier pap'i:r | ||||
_) para (@ p,ara | _) para (@ p,ara | ||||
passagie pasaZ'i: | passagie pasaZ'i: | ||||
path (_ p'At | |||||
pathin (_ p'AtIn | |||||
pathisch (_ p'A:tIS | |||||
_) peri p,e:ri: | _) peri p,e:ri: | ||||
_) perio p,e:rIo: | _) perio p,e:rIo: | ||||
_) periphe p,e:ri:fe: | _) periphe p,e:ri:fe: | ||||
rangier rA:NZ'i:r | rangier rA:NZ'i:r | ||||
_) re (d re: | _) re (d re: | ||||
register re:g'Ist@r | register re:g'Ist@r | ||||
reichisch raICIS | |||||
ressourc rEs'Urs | ressourc rEs'Urs | ||||
revers r%e:vErs | revers r%e:vErs | ||||
_) sch (mA S | _) sch (mA S | ||||
_) sch (nA S | _) sch (nA S | ||||
_) sch (w S | _) sch (w S | ||||
schenk SENk | |||||
_) sh (A S | _) sh (A S | ||||
_) sh (rA S | _) sh (rA S | ||||
_) s (kA s // allow _sk | _) s (kA s // allow _sk | ||||
_) s (plA S | _) s (plA S | ||||
_) s (plend s | _) s (plend s | ||||
_) s (prA S | _) s (prA S | ||||
spräch SprE:C | |||||
_) s (quA s | _) s (quA s | ||||
_) s (tA S | _) s (tA S | ||||
_) s (trA S | _) s (trA S | ||||
_) s (zA s | _) s (zA s | ||||
sch S | sch S | ||||
schenk SENk | |||||
sh (K S | sh (K S | ||||
sou (nd saU | sou (nd saU | ||||
p) s (a s | p) s (a s | ||||
st (art St | st (art St | ||||
st (ä St | st (ä St | ||||
st (eh St | st (eh St | ||||
st (off St | |||||
stein (_ StaIn | |||||
st (ö St | st (ö St | ||||
st (rich St | st (rich St | ||||
st (ü St | st (ü St | ||||
st (uh St | st (uh St | ||||
st (ung st | st (ung st | ||||
sachse zaks@ | |||||
&) sächsisch zEksIS | |||||
_) safe _^_EN | _) safe _^_EN | ||||
&) schaft (_S6 Saft | &) schaft (_S6 Saft | ||||
seku (nden ze:k'U | seku (nden ze:k'U | ||||
_) selbst (@@P6 z'Elpst | _) selbst (@@P6 z'Elpst | ||||
service (_S7 z%Ervi:s | service (_S7 z%Ervi:s | ||||
share (ware SE:r | |||||
shop _^_EN | shop _^_EN | ||||
_) sky _^_EN | _) sky _^_EN | ||||
soft (ware sOft | |||||
soldat z%OldA:t | soldat z%OldA:t | ||||
&) so (rt_ s_|O | &) so (rt_ s_|O | ||||
summe zUm@ | summe zUm@ | ||||
synaps zy:n'aps | |||||
speed _^_EN | speed _^_EN | ||||
stau) ss s | stau) ss s | ||||
_) t (_ te: | _) t (_ te: | ||||
t t | t t | ||||
t) t | t) t | ||||
th t | |||||
_) th (A t // allow _th | _) th (A t // allow _th | ||||
_) th (rA t // allow _thr | _) th (rA t // allow _thr | ||||
th (K t | th (K t | ||||
_) teen _^_EN | _) teen _^_EN | ||||
_) tele (@ t,e:le: | _) tele (@ t,e:le: | ||||
_) thermo tErmo: | _) thermo tErmo: | ||||
&) thek t'e:k | |||||
&) thekar te:k'A:r | |||||
&) thekarin te:k'ArIn | |||||
&) thekerin t'e:k@rIn | |||||
top tOp | |||||
toph tOf | |||||
touch _^_EN | touch _^_EN | ||||
tuerei (_ tu:@r'aI | tuerei (_ tu:@r'aI | ||||
thrill _^_EN | thrill _^_EN | ||||
@) tion (_ tsj'o:n | @) tion (_ tsj'o:n | ||||
_) trail _^_EN | _) trail _^_EN | ||||
_) tranqu _^_EN | _) tranqu _^_EN | ||||
translat _^_EN | |||||
traver tr%avEr | traver tr%avEr | ||||
_) tw _^_EN | _) tw _^_EN | ||||
väter fE:t3 | väter fE:t3 | ||||
_) v (ati_ f | _) v (ati_ f | ||||
_) v (ät f | _) v (ät f | ||||
vers (_ v'Erz | |||||
_) v (ie f | _) v (ie f | ||||
_) v (iet v | _) v (iet v | ||||
_) v (iz f | _) v (iz f | ||||
@) wert (_ ve:rt | @) wert (_ ve:rt | ||||
_) wh _^_EN | _) wh _^_EN | ||||
&) ware (_ _^_EN | |||||
&) ware (_ wE:r | |||||
_) wasch (@P5 v'aS | _) wasch (@P5 v'aS | ||||
_) wasser (@P6 v'as@r | _) wasser (@P6 v'as@r | ||||
_) weit (C@P4 v'aIt | _) weit (C@P4 v'aIt | ||||
_) wovor vo:f'o:r | _) wovor vo:f'o:r | ||||
_) wohl (@P4 v'o:l | _) wohl (@P4 v'o:l | ||||
work _^_EN | work _^_EN | ||||
württem (berg vyrt@m | |||||
.group x | .group x | ||||
_) zer (@P3 tsEr | _) zer (@P3 tsEr | ||||
_) zere (b tse:re: | _) zere (b tse:re: | ||||
_) zere (m tse:re: | _) zere (m tse:re: | ||||
kon) zert ts'Ert | |||||
ziell tsj'El | ziell tsj'El | ||||
_) zie (ge@P3 ts'i: | _) zie (ge@P3 ts'i: | ||||
zitat tsi:t'A:t | zitat tsi:t'A:t | ||||
ö (C% W | ö (C% W | ||||
ö (CC W | ö (CC W | ||||
ö (sch W | ö (sch W | ||||
öster Y:st3r | |||||
.group ü | .group ü |
// This file is UTF8 encoded | |||||
// Spelling to phoneme words for Pyash (an artificial constructed language). | |||||
// Note: initial/final "." has already been removed | |||||
// How Number ASCII is pronounced | |||||
_0 zRon | |||||
_1 hjik | |||||
_2 tjut | |||||
_3 tjin | |||||
_4 ksas | |||||
_5 hfak | |||||
_6 hlis | |||||
_7 hsip | |||||
_8 hwap | |||||
_9 twun | |||||
_A htip | |||||
_B slen | |||||
_C tfat | |||||
_D tses | |||||
_E hses | |||||
_F hpet | |||||
_dpt fjih | |||||
// how letters are pronounced individually | |||||
_a a | |||||
b b@ | |||||
c S@ | |||||
d d@ | |||||
_e e | |||||
f f@ | |||||
g g@ | |||||
h h@ | |||||
_i i | |||||
j Z@ | |||||
k k@ | |||||
l l@ | |||||
m m@ | |||||
n n@ | |||||
_o o | |||||
p p@ | |||||
q N@ | |||||
r R@ | |||||
s s@ | |||||
t t@ | |||||
_u u | |||||
v v@ | |||||
w w@ | |||||
x x@ | |||||
y j@ | |||||
z z@ | |||||
// stressed cmavo | |||||
//cai S'aI_! | |||||
//cu'i S'uhi_! | |||||
//pei p'eI_! | |||||
//ru'e R'uhe_! | |||||
//sai s'aI_! | |||||
//nai n'aI_! | |||||
//na n'a_! | |||||
//ja'a Z'aha_! | |||||
// unstressed words. Note single-syllable cmavo are all unstressed in jbo_rules | |||||
//e'o $u+ // request | |||||
//po'e $u+ // of | |||||
//zo'e $u+ // pronoun | |||||
// | |||||
// | |||||
//i i_: $u // sentence break (recognised by eSpeak program). Try a short pause after ".i" | |||||
// end-of-clause [_;_] before these | |||||
//noi _;_noI $u | |||||
//poi _;_poI $u | |||||
//no'u _;_nohu $u | |||||
//po'u _;_pohu $u | |||||
//goi _;_goI $u | |||||
// | |||||
//ija _;_iZa // should this series be unstressed? | |||||
//ijanai _;_iZan'aI | |||||
//ije _;_iZe | |||||
//ije'i _;_iZehi | |||||
//ijenai _;_iZenaI | |||||
//ijo _;_iZo | |||||
//ijonai _;_iZon'aI | |||||
//inaja _;_inaZa | |||||
// | |||||
//to _::to $u // start parenthesis, pause but don't raise intonation | |||||
// independent clause terminators (include a long pause after) | |||||
li li_:: $u | |||||
tu tu_:: $u | |||||
cu cu_:: $u | |||||
si si_:: $u | |||||
ri ri_:: $u | |||||
di di_:: $u | |||||
tcih tcih_:: $u | |||||
lo lo_:: $u | |||||
cyih cjih_:: $u | |||||
dwih dwih_:: $u | |||||
pcih pcih_:: $u | |||||
psih psih_:: $u | |||||
tseh tseh_:: $u | |||||
twuh twuh_:: $u | |||||
rwih rwih_:: $u | |||||
jwih jwih_:: $u | |||||
mwih mwih_:: $u | |||||
mu mu_:: $u | |||||
nwoh nwoh_:: $u | |||||
lu lu_:: $u | |||||
byih bjih_:: $u | |||||
kcuh kcuh_:: $u | |||||
dyah djah_:: $u | |||||
pceh pceh_:: $u | |||||
pruh pruh_:: $u | |||||
swuh swuh_:: $u | |||||
ru ru_:: $u | |||||
ksuh ksuh_:: $u | |||||
t6 t@_:: $u | |||||
zlih zlih_:: $u | |||||
n6 n@_:: $u | |||||
gyih gjih_:: $u | |||||
//pi7 pi55_:: $u | |||||
//si2 si22_:: $u | |||||
// case terminators (short pause after) | |||||
na na_: $u | |||||
ka ka_: $u | |||||
ta ta_: $u | |||||
wu wu_: $u | |||||
ti ti_: $u | |||||
ma ma_: $u | |||||
yi ji_: $u | |||||
yu ju_: $u | |||||
mwah mwah_: $u | |||||
pwah pwah_: $u | |||||
swih swih_: $u | |||||
da da_: $u | |||||
te te_: $u | |||||
ga ga_: $u | |||||
so so_: $u | |||||
pwih pwih_: $u | |||||
twah twah_: $u | |||||
twih twih_: $u | |||||
myah mjah_: $u | |||||
lwah lwah_: $u | |||||
lwih lwih_: $u | |||||
ksih ksih_: $u | |||||
tweh tweh_: $u | |||||
nweh nweh_: $u | |||||
lweh lweh_: $u | |||||
we we_: $u | |||||
twoh twoh_: $u | |||||
de de_: $u | |||||
nwah nwah_: $u | |||||
tloh tloh_: $u | |||||
nyeh njeh_: $u | |||||
sweh sweh_: $u | |||||
txih txih_: $u | |||||
gvih gvih_: $u | |||||
ryoh rjoh_: $u | |||||
psuh psuh_: $u | |||||
pxeh pxeh_: $u | |||||
pxoh pxoh_: $u | |||||
dxoh dxoh_: $u | |||||
greh greh_: $u | |||||
rweh rweh_: $u | |||||
xwih xwih_: $u | |||||
kxeh kxeh_: $u | |||||
lwoh lwoh_: $u | |||||
bvah bvah_: $u | |||||
dvah dvah_: $u | |||||
je je_: $u | |||||
gveh gveh_: $u | |||||
vwih vwih_: $u | |||||
bveh bveh_: $u | |||||
dzih dzih_: $u | |||||
//tsi7h tsi55h_: $u | |||||
vyah vjah_: $u | |||||
gvah gvah_: $u | |||||
zreh zreh_: $u | |||||
bu bu_: $u | |||||
//sa7 sa55_: $u | |||||
//si7 si55_: $u | |||||
//tsi2h tsi22h_: $u | |||||
//ta7 ta55_: $u | |||||
// This file is UTF8 encoded | |||||
// Spelling to phoneme rules for Pyash (an artificial constructed language). | |||||
// Note: initial/final "." has already been removed | |||||
.group a | |||||
a a | |||||
.group b | |||||
b b | |||||
.group c | |||||
c S | |||||
.group d | |||||
d d | |||||
.group e | |||||
e e | |||||
.group f | |||||
f f | |||||
.group g | |||||
g g | |||||
.group h | |||||
h h | |||||
.group i | |||||
i i | |||||
.group j | |||||
j Z | |||||
.group k | |||||
k k | |||||
.group l | |||||
l l | |||||
.group m | |||||
m m | |||||
.group n | |||||
n n | |||||
.group o | |||||
o o | |||||
.group p | |||||
p p | |||||
.group q | |||||
q N | |||||
.group r | |||||
r R | |||||
.group s | |||||
s s | |||||
.group t | |||||
t t | |||||
.group u | |||||
u u | |||||
.group v | |||||
v v | |||||
.group w | |||||
w w | |||||
.group x | |||||
x x | |||||
.group y | |||||
y j | |||||
.group 6 | |||||
6 @ | |||||
.group h | |||||
h h | |||||
.group z | |||||
z z | |||||
// low tone | |||||
.group 2 22 | |||||
// high tone | |||||
.group 7 55 | |||||
.group | |||||
. _! // dot | |||||
_) . (@P1 _! // remove . prefix | |||||
. (_S1 _! // remove . suffix | |||||
ˈ ' // U+2c8 stress marker (from syllable capitalisation) | |||||
// tones not working | |||||
//.group | |||||
// 1 55 | |||||
// 2 22 |
.L03 ch nh | .L03 ch nh | ||||
.L04 a u ă â o ô á à ả ã ạ ù ú ủ ũ ụ ắ ằ ẳ ẵ ặ ấ ầ ẩ ẫ ậ ó ò ỏ õ ọ ố ồ ổ ỗ ộ ư ứ ừ ử ữ ự ơ ớ ờ ở ỡ ợ | .L04 a u ă â o ô á à ả ã ạ ù ú ủ ũ ụ ắ ằ ẳ ẵ ặ ấ ầ ẩ ẫ ậ ó ò ỏ õ ọ ố ồ ổ ỗ ộ ư ứ ừ ử ữ ự ơ ớ ờ ở ỡ ợ | ||||
.L05 o ó ò ỏ õ ọ ô ố ồ ộ ỗ ổ | .L05 o ó ò ỏ õ ọ ô ố ồ ộ ỗ ổ | ||||
.group b | .group b | ||||
b b | b b | ||||
_) b _b | _) b _b | ||||
.group q | .group q | ||||
q k | q k | ||||
q (_ k | q (_ k | ||||
qu kw //kw | |||||
qu kw //kw | |||||
quô ku@ | |||||
quồ ku@2 | |||||
quố ku@3 | |||||
quổ ku@4 | |||||
quỗ ku@5 | |||||
quộ ku@6 | |||||
.group a | .group a | ||||
a a: | a a: | ||||
ai a:I | |||||
aì a:I2 | |||||
aí a:I3 | |||||
aỉ a:I4 | |||||
aĩ a:I5 | |||||
aị a:I6 | |||||
ay aI | |||||
ai a:j | |||||
aì a:j2 | |||||
aí a:j3 | |||||
aỉ a:j4 | |||||
aĩ a:j5 | |||||
aị a:j6 | |||||
ay aj | |||||
?2 ay a:I | ?2 ay a:I | ||||
aý aI3 | |||||
aỷ aI4 | |||||
aỹ aI5 | |||||
aỵ aI6 | |||||
ao a:U | |||||
aò a:U2 | |||||
aó a:U3 | |||||
aỏ a:U4 | |||||
aõ a:U5 | |||||
aọ a:U6 | |||||
au aU | |||||
aý aj3 | |||||
aỷ aj4 | |||||
aỹ aj5 | |||||
aỵ aj6 | |||||
ao a:w | |||||
aò a:w2 | |||||
aó a:w3 | |||||
aỏ a:w4 | |||||
aõ a:w5 | |||||
aọ a:w6 | |||||
au aw | |||||
?2 au a:U | ?2 au a:U | ||||
aù aU2 | |||||
aú aU3 | |||||
aủ aU4 | |||||
aũ aU5 | |||||
aụ aU6 | |||||
aù aw2 | |||||
aú aw3 | |||||
aủ aw4 | |||||
aũ aw5 | |||||
aụ aw6 | |||||
a (L01 _^_EN | a (L01 _^_EN | ||||
ai (L02 _^_EN | ai (L02 _^_EN | ||||
a (@ _^_EN | a (@ _^_EN | ||||
a (L03 a | |||||
a (L03 e- | |||||
.group à | .group à | ||||
à a:2 | à a:2 | ||||
ài a:I2 | |||||
ày aI2 | |||||
ài a:j2 | |||||
ày aj2 | |||||
?2 ày a:I2 | ?2 ày a:I2 | ||||
à (L03 e-2 | |||||
ào a:U2 | |||||
àu aU2 | |||||
ào a:w2 | |||||
àu aw2 | |||||
?2 àu a:U2 | ?2 àu a:U2 | ||||
.group á | .group á | ||||
á a:3 | á a:3 | ||||
ái a:I3 | |||||
áy aI3 | |||||
áo a:U3 | |||||
áu aU3 | |||||
ái a:j3 | |||||
áy aj3 | |||||
áo a:w3 | |||||
áu aw3 | |||||
?2 áu a:U3 | ?2 áu a:U3 | ||||
?2 áy a:I3 | ?2 áy a:I3 | ||||
á (L03 e-3 | |||||
.group ả | .group ả | ||||
ả a:4 | ả a:4 | ||||
ải a:I4 | |||||
ảy aI4 | |||||
ảo a:U4 | |||||
ảu aU4 | |||||
ải a:j4 | |||||
ảy aj4 | |||||
ảo a:w4 | |||||
ảu aw4 | |||||
?2 ảu a:U4 | ?2 ảu a:U4 | ||||
?2 ảy a:I4 | ?2 ảy a:I4 | ||||
ả (L03 e-4 | |||||
.group ã | .group ã | ||||
ã a:5 | ã a:5 | ||||
ãi a:I5 | |||||
ãy aI5 | |||||
ão a:U5 | |||||
ãu aU5 | |||||
ãi a:j5 | |||||
ãy aj5 | |||||
ão a:w5 | |||||
ãu aw5 | |||||
?2 ãu a:U5 | ?2 ãu a:U5 | ||||
?2 ãy a:I5 | ?2 ãy a:I5 | ||||
ã (L03 e-5 | |||||
.group ạ | .group ạ | ||||
ạ a:6 | ạ a:6 | ||||
ại a:I6 | |||||
ạy aI6 | |||||
ạo a:U6 | |||||
ạu aU6 | |||||
ại a:j6 | |||||
ạy aj6 | |||||
ạo a:w6 | |||||
ạu aw6 | |||||
?2 ạu a:U6 | ?2 ạu a:U6 | ||||
?2 ạy a:I6 | ?2 ạy a:I6 | ||||
ạ (L03 e-6 | |||||
//================================ | //================================ | ||||
.group â | .group â | ||||
â @ | â @ | ||||
ây @I | ây @I | ||||
âu @U1 | |||||
âu @w1 | |||||
?2 â (L03 a | ?2 â (L03 a | ||||
?1 â (L03 a | ?1 â (L03 a | ||||
.group ầ | .group ầ | ||||
ầ @2 | ầ @2 | ||||
ầy @I2 | ầy @I2 | ||||
ầu @U2 | |||||
ầu @w2 | |||||
?2 ầ (L03 a2 | ?2 ầ (L03 a2 | ||||
?1 ầ (L03 a2 | ?1 ầ (L03 a2 | ||||
.group ấ | .group ấ | ||||
ấ @3 | ấ @3 | ||||
ấy @I3 | ấy @I3 | ||||
ấu @U3 | |||||
ấu @w3 | |||||
?2 ấ (L03 a3 | ?2 ấ (L03 a3 | ||||
?1 ấ (L03 a3 | ?1 ấ (L03 a3 | ||||
.group ẩ | .group ẩ | ||||
ẩ @4 | ẩ @4 | ||||
ẩy @I4 | ẩy @I4 | ||||
ẩu @U4 | |||||
ẩu @w4 | |||||
.group ẫ | .group ẫ | ||||
ẫ @5 | ẫ @5 | ||||
ẫy @I5 | ẫy @I5 | ||||
ẫu @U5 | |||||
ẫu @w5 | |||||
.group ậ | .group ậ | ||||
ậ @6 | ậ @6 | ||||
ậy @I6 | ậy @I6 | ||||
ậu @U6 | |||||
ậu @w6 | |||||
?2 ậ (L03 a6 | ?2 ậ (L03 a6 | ||||
?1 ậ (L03 a6 | ?1 ậ (L03 a6 | ||||
//=========================== | //=========================== | ||||
.group e | .group e | ||||
e E | e E | ||||
eo EU | |||||
eò EU2 | |||||
eó EU3 | |||||
eỏ EU4 | |||||
eỗ EU5 | |||||
eọ EU6 | |||||
eo Ew | |||||
eò Ew2 | |||||
eó Ew3 | |||||
eỏ Ew4 | |||||
eỗ Ew5 | |||||
eọ Ew6 | |||||
e (L01 _^_EN | e (L01 _^_EN | ||||
ey (_ _^_EN | ey (_ _^_EN | ||||
e (@ _^_EN | e (@ _^_EN | ||||
.group è | .group è | ||||
è E2 | è E2 | ||||
èo EU2 | |||||
èo Ew2 | |||||
.group é | .group é | ||||
é E3 | é E3 | ||||
éo EU3 | |||||
éo Ew3 | |||||
.group ẻ | .group ẻ | ||||
ẻ E4 | ẻ E4 | ||||
ẻo EU4 | |||||
ẻo Ew4 | |||||
.group ẽ | .group ẽ | ||||
ẽ E5 | ẽ E5 | ||||
ẽo EU5 | |||||
ẽo Ew5 | |||||
.group ẹ | .group ẹ | ||||
ẹ E6 | ẹ E6 | ||||
ẹo EU6 | |||||
ẹo Ew6 | |||||
.group ê | .group ê | ||||
ê e | ê e | ||||
êu eU1 | |||||
êu ew1 | |||||
?2 ê (L03 @: | ?2 ê (L03 @: | ||||
?2 ê (L02 @: | ?2 ê (L02 @: | ||||
.group ề | .group ề | ||||
ề e2 | ề e2 | ||||
ều eU2 | |||||
ều ew2 | |||||
?2 ề (L03 @:2 | ?2 ề (L03 @:2 | ||||
?2 ề (L02 @:2 | ?2 ề (L02 @:2 | ||||
.group ế | .group ế | ||||
ế e3 | ế e3 | ||||
ếu eU3 | |||||
ếu ew3 | |||||
?2 ế (L03 @:3 | ?2 ế (L03 @:3 | ||||
.group ể | .group ể | ||||
ể e4 | ể e4 | ||||
ểu eU4 | |||||
ểu ew4 | |||||
?2 ể (L03 @:4 | ?2 ể (L03 @:4 | ||||
?2 ể (L02 @:4 | ?2 ể (L02 @:4 | ||||
.group ễ | .group ễ | ||||
ễ e5 | ễ e5 | ||||
ễu eU5 | |||||
ễu ew5 | |||||
?2 ễ (L03 @:5 | ?2 ễ (L03 @:5 | ||||
?2 ễ (L02 @:5 | ?2 ễ (L02 @:5 | ||||
.group ệ | .group ệ | ||||
ệ e6 | ệ e6 | ||||
ệu eU6 | |||||
ệu ew6 | |||||
?2 ệ (L03 @:6 | ?2 ệ (L03 @:6 | ||||
?2 ệ (L02 @:6 | ?2 ệ (L02 @:6 | ||||
.group i | .group i | ||||
i i | i i | ||||
//i (A j | |||||
A) i j | |||||
ia i@ | ia i@ | ||||
ià i@2 | ià i@2 | ||||
iá i@3 | iá i@3 | ||||
iể iE4 | iể iE4 | ||||
iễ iE5 | iễ iE5 | ||||
iệ iE6 | iệ iE6 | ||||
iu iU | |||||
iù iU2 | |||||
iú iU3 | |||||
iủ iU4 | |||||
iũ iU5 | |||||
iụ iU6 | |||||
iêu iU | |||||
iều iU2 | |||||
iếu iU3 | |||||
iểu iU4 | |||||
iễu iU5 | |||||
iệu iU6 | |||||
iu iw | |||||
iù iw2 | |||||
iú iw3 | |||||
iủ iw4 | |||||
iũ iw5 | |||||
iụ iw6 | |||||
iêu iEw | |||||
iều iEw2 | |||||
iếu iEw3 | |||||
iểu iEw4 | |||||
iễu iEw5 | |||||
iệu iEw6 | |||||
i (L01 _^_EN | i (L01 _^_EN | ||||
i (@ _^_EN | i (@ _^_EN | ||||
?2 i (L03 @ | ?2 i (L03 @ | ||||
ì i2 | ì i2 | ||||
ì (A j2 | ì (A j2 | ||||
ìa i@2 | ìa i@2 | ||||
ìu iU2 | |||||
ìu iw2 | |||||
?2 ì (L03 @2 | ?2 ì (L03 @2 | ||||
?1 ì (L03 @2 | ?1 ì (L03 @2 | ||||
?2 ì (L02 @2 | ?2 ì (L02 @2 | ||||
í i3 | í i3 | ||||
í (A j3 | í (A j3 | ||||
ía i@3 | ía i@3 | ||||
íu iU3 | |||||
íu iw3 | |||||
?2 í (L03 @3 | ?2 í (L03 @3 | ||||
?1 í (L03 @3 | ?1 í (L03 @3 | ||||
?2 í (L02 @3 | ?2 í (L02 @3 | ||||
ỉ i4 | ỉ i4 | ||||
ỉ (A j4 | ỉ (A j4 | ||||
ỉa i@4 | ỉa i@4 | ||||
ỉu iU4 | |||||
ỉu iw4 | |||||
?2 ỉ (L03 @4 | ?2 ỉ (L03 @4 | ||||
?1 ỉ (L03 @4 | ?1 ỉ (L03 @4 | ||||
?2 ỉ (L02 @4 | ?2 ỉ (L02 @4 | ||||
ĩ i5 | ĩ i5 | ||||
ĩ (A j5 | ĩ (A j5 | ||||
ĩa i@5 | ĩa i@5 | ||||
ĩu iU5 | |||||
ĩu iw5 | |||||
?2 ĩ (L03 @5 | ?2 ĩ (L03 @5 | ||||
?1 ĩ (L03 @5 | ?1 ĩ (L03 @5 | ||||
?2 ĩ (L02 @5 | ?2 ĩ (L02 @5 | ||||
ị i6 | ị i6 | ||||
ị (A j6 | ị (A j6 | ||||
ịa i@6 | ịa i@6 | ||||
ịu iU6 | |||||
ịu iw6 | |||||
?2 ị (L03 @6 | ?2 ị (L03 @6 | ||||
?1 ị (L03 @6 | ?1 ị (L03 @6 | ||||
?2 ị (L02 @6 | ?2 ị (L02 @6 | ||||
.group o | .group o | ||||
o O | o O | ||||
oa o@ // modify oa sound example: hoa,khoa // o (A w | |||||
oà o@2 | |||||
oá o@3 | |||||
oả o@4 | |||||
oã o@5 | |||||
oạ o@6 | |||||
o (A w | |||||
oi Oj | |||||
oo O | oo O | ||||
oi OI | |||||
oì OI2 | |||||
oí OI3 | |||||
oỉ OI4 | |||||
oĩ OI5 | |||||
oị OI6 | |||||
ong O# | |||||
oe o& // Adding oe sound example: lóe sáng,toét mắt | |||||
oai Oi // oai sound | |||||
o (@ _^_EN | |||||
oại Oi6 | |||||
oài Oi2 | |||||
oái Oi3 | |||||
oải Oi4 | |||||
oãi Oi5 | |||||
oă o@1 | |||||
oằ o@2 | |||||
oắ o@3 | |||||
oẳ o@4 | |||||
oẵ o@5 | |||||
oặ o@6 | |||||
oc O#k | |||||
ong O#N | |||||
oc O#k | |||||
.group ò | .group ò | ||||
ò O2 | ò O2 | ||||
òi OI2 | |||||
òa o@2 //ò (A w2 | |||||
òng O#2 | |||||
òe o&2 | |||||
òa wa:2 //ò (A w2 | |||||
òng O#N2 | |||||
òe wE2 | |||||
.group ó | .group ó | ||||
ó O3 | ó O3 | ||||
ói OI3 | |||||
óa o@3 //ó (A w3 | |||||
óng O#3 | |||||
óe o&3 | |||||
óa wa:3 //ó (A w3 | |||||
óng O#N3 | |||||
óe wE3 | |||||
óc O#3k | óc O#3k | ||||
.group ỏ | .group ỏ | ||||
ỏ O4 | ỏ O4 | ||||
ỏi OI4 | |||||
ỏa o@4 //ỏ (A w4 | |||||
ỏng O#4 | |||||
ỏe o&4 | |||||
ỏa wa:4 //ỏ (A w4 | |||||
ỏng O#N4 | |||||
ỏe wE4 | |||||
.group õ | .group õ | ||||
õ O5 | õ O5 | ||||
õi OI5 | |||||
õa o@5 //õ (A w5 | |||||
õng O#5 | |||||
õe o&5 | |||||
õa wa:5 //õ (A w5 | |||||
õng O#N5 | |||||
õe wE5 | |||||
.group ọ | .group ọ | ||||
ọ O6 | ọ O6 | ||||
ọi OI6 | |||||
ọa o@6 //ọ (A w6 | |||||
ọng O#6 | |||||
ọe o&6 | |||||
ọa oa:6 //ọ (A w6 | |||||
ọng O#N6 | |||||
ọe wE6 | |||||
ọc O#6k | ọc O#6k | ||||
.group ô | .group ô | ||||
ô o | ô o | ||||
ôi oI | |||||
ông o# // ông sound | |||||
ôi oj | |||||
ông o#N // ông sound | |||||
?2 ôi O- //south dialect | ?2 ôi O- //south dialect | ||||
ôc o#k | |||||
.group ồ | .group ồ | ||||
ồ o2 | ồ o2 | ||||
ồi oI2 | |||||
ồng o#2 | |||||
ồi oj2 | |||||
ồng o#N2 | |||||
?2 ồi O-2 | ?2 ồi O-2 | ||||
.group ố | .group ố | ||||
ố o3 | ố o3 | ||||
ối oI3 | |||||
ống o#3 | |||||
ối oj3 | |||||
ống o#N3 | |||||
?2 ối O-3 | ?2 ối O-3 | ||||
ốc o#3k | |||||
.group ổ | .group ổ | ||||
ổ o4 | ổ o4 | ||||
ổi oI4 | |||||
ổng o#4 | |||||
ổi oj4 | |||||
ổng o#N4 | |||||
?2 ổi O-4 | ?2 ổi O-4 | ||||
.group ỗ | .group ỗ | ||||
ỗ o5 | ỗ o5 | ||||
ỗi oI5 | |||||
ỗng o#5 | |||||
ỗi oj5 | |||||
ỗng o#N5 | |||||
?2 ỗi O-5 | ?2 ỗi O-5 | ||||
.group ộ | .group ộ | ||||
ộ o6 | ộ o6 | ||||
ội oI6 | |||||
// ộng o#6 | |||||
ội oj6 | |||||
ộng o#N6 | |||||
?2 ội O-6 | ?2 ội O-6 | ||||
ộc o#6k | |||||
.group ơ | .group ơ | ||||
ơ @: | ơ @: | ||||
ơi @:I | |||||
ơi @:j | |||||
ơu @:U | ơu @:U | ||||
?2 ơi @- //south dialect | ?2 ơi @- //south dialect | ||||
.group ờ | .group ờ | ||||
ờ @:2 | ờ @:2 | ||||
ời @:I2 | |||||
ời @:j2 | |||||
ờu @:U2 | ờu @:U2 | ||||
?2 ời @-2 | ?2 ời @-2 | ||||
.group ớ | .group ớ | ||||
ớ @:3 | ớ @:3 | ||||
ới @:I3 | |||||
ới @:j3 | |||||
ớu @:U3 | ớu @:U3 | ||||
?2 ới @-3 | ?2 ới @-3 | ||||
.group ở | .group ở | ||||
ở @:4 | ở @:4 | ||||
ởi @:I4 | |||||
ởi @:j4 | |||||
ởu @:U4 | ởu @:U4 | ||||
?2 ởi @-4 | ?2 ởi @-4 | ||||
.group ỡ | .group ỡ | ||||
ỡ @:5 | ỡ @:5 | ||||
ỡi @:I5 | |||||
ỡi @:j5 | |||||
ỡu @:U5 | ỡu @:U5 | ||||
?2 ỡi @-5 | ?2 ỡi @-5 | ||||
.group ợ | .group ợ | ||||
ợ @:6 | ợ @:6 | ||||
ợi @:I6 | |||||
ợi @:j6 | |||||
ợu @:U6 | ợu @:U6 | ||||
?2 ợi @-6 | ?2 ợi @-6 | ||||
.group u | .group u | ||||
u u | u u | ||||
u (A u | |||||
u (A w | |||||
A) u w | A) u w | ||||
ui uI | |||||
uì uI2 | |||||
uí uI3 | |||||
uỉ uI4 | |||||
uĩ uI5 | |||||
uị uI6 | |||||
gi) u u | |||||
ui uj | |||||
uì uj2 | |||||
uí uj3 | |||||
uỉ uj4 | |||||
uĩ uj5 | |||||
uị uj6 | |||||
ua u@ | ua u@ | ||||
uà u@2 | uà u@2 | ||||
uá u@3 | uá u@3 | ||||
u (L01 _^_EN | u (L01 _^_EN | ||||
u (@ _^_EN | u (@ _^_EN | ||||
// ua (L01 _^_EN | // ua (L01 _^_EN | ||||
?2 u u- | |||||
?2 u u- | |||||
uyu wiw | |||||
uỳu wiw2 | |||||
uýu wiw3 | |||||
uỷu wiw4 | |||||
uỹu wiw5 | |||||
uỵu wiw6 | |||||
.group ù | .group ù | ||||
ù u2 | ù u2 | ||||
ù (A u2 | |||||
ùy ui2 | |||||
ùi uI2 | |||||
ù (A w2 | |||||
ùy wi2 | |||||
ùi uj2 | |||||
ùa u@2 | ùa u@2 | ||||
//ùng u#2 | //ùng u#2 | ||||
.group ú | .group ú | ||||
ú u3 | ú u3 | ||||
ú (A u3 | |||||
úy ui3 | |||||
úi uI3 | |||||
ú (A w3 | |||||
úy wi3 | |||||
úi uj3 | |||||
úa u@3 | úa u@3 | ||||
//úng u#3 | //úng u#3 | ||||
?2 ú u-3 | ?2 ú u-3 | ||||
.group ủ | .group ủ | ||||
ủ u4 | ủ u4 | ||||
ủ (A u4 | |||||
ủy ui4 | |||||
ủi uI4 | |||||
ủ (A w4 | |||||
ủy wi4 | |||||
ủi uj4 | |||||
ủa u@4 | ủa u@4 | ||||
//ủng u#4 | //ủng u#4 | ||||
.group ũ | .group ũ | ||||
ũ u5 | ũ u5 | ||||
ũ (A u5 | |||||
ũy ui5 | |||||
ũi uI5 | |||||
ũ (A w5 | |||||
ũy wi5 | |||||
ũi uj5 | |||||
ũa u@5 | ũa u@5 | ||||
//ũng u#5 | //ũng u#5 | ||||
?2 ũ u-5 | ?2 ũ u-5 | ||||
.group ụ | .group ụ | ||||
ụ u6 | ụ u6 | ||||
ụ (A u6 | |||||
ụy ui6 | |||||
ụi uI6 | |||||
ụ (A w6 | |||||
ụy wi6 | |||||
ụi uj6 | |||||
ụa u@6 | ụa u@6 | ||||
//ụng u#6 | //ụng u#6 | ||||
?2 ụ u-6 | ?2 ụ u-6 | ||||
.group ư | .group ư | ||||
ư y | ư y | ||||
ưi yI | |||||
ưa y@ | ưa y@ | ||||
ươ y@ | ươ y@ | ||||
ườ y@2 | ườ y@2 | ||||
ưở y@4 | ưở y@4 | ||||
ưỡ y@5 | ưỡ y@5 | ||||
ượ y@6 | ượ y@6 | ||||
ưu yw | |||||
ưu iw | |||||
ươi y@j | ươi y@j | ||||
ười y@j2 | ười y@j2 | ||||
ưới y@j3 | ưới y@j3 | ||||
.group ừ | .group ừ | ||||
ừ y2 | ừ y2 | ||||
ừi yI2 | |||||
ừa y@2 | ừa y@2 | ||||
ừu y2w2 | |||||
ừu iw2 | |||||
.group ứ | .group ứ | ||||
ứ y3 | ứ y3 | ||||
ứi yI3 | |||||
ứa y@3 | ứa y@3 | ||||
ứu y3w3 | |||||
ứu iw3 | |||||
.group ử | .group ử | ||||
ử y4 | ử y4 | ||||
ửi yI4 | |||||
ửa y@4 | ửa y@4 | ||||
ửu y4w4 | |||||
ửu iw4 | |||||
.group ữ | .group ữ | ||||
ữ y5 | ữ y5 | ||||
ữi yI5 | |||||
ữa y@5 | ữa y@5 | ||||
ữu y5w5 | |||||
ữu iw5 | |||||
.group ự | .group ự | ||||
ự y6 | ự y6 | ||||
ựi yI6 | |||||
ựa y@6 | ựa y@6 | ||||
ựu y6w6 | |||||
ựu iw6 | |||||
yả i@4 | yả i@4 | ||||
yã i@5 | yã i@5 | ||||
yạ i@6 | yạ i@6 | ||||
yê i@ | |||||
yề i@2 | |||||
yế i@3 | |||||
yể i@4 | |||||
yễ i@5 | |||||
yệ i@6 | |||||
yê iE | |||||
yề iE2 | |||||
yế iE3 | |||||
yể iE4 | |||||
yễ iE5 | |||||
yệ iE6 | |||||
// yêu i@U | // yêu i@U | ||||
y (L01 _^_EN | y (L01 _^_EN | ||||
bu) y _^_EN | bu) y _^_EN |
[private-use extensions](https://raw.githubusercontent.com/espeak-ng/bcp47-data/master/bcp47-extensions) | [private-use extensions](https://raw.githubusercontent.com/espeak-ng/bcp47-data/master/bcp47-extensions) | ||||
have been used. | have been used. | ||||
The 102 supported languages and accents are: | |||||
The 107 supported languages and accents are: | |||||
| Family Code | Identifier | Language Family | Language | Accent/Dialect | | | Family Code | Identifier | Language Family | Language | Accent/Dialect | | ||||
|-------------|-------------------|-----------------------|-----------------------------|------------------------| | |-------------|-------------------|-----------------------|-----------------------------|------------------------| | ||||
| `zlw` | `cs` | West Slavic | Czech | | | | `zlw` | `cs` | West Slavic | Czech | | | ||||
| `gmq` | `da` | North Germanic | Danish | | | | `gmq` | `da` | North Germanic | Danish | | | ||||
| `gmw` | `nl` | West Germanic | Dutch | | | | `gmw` | `nl` | West Germanic | Dutch | | | ||||
| `gmw` | `en-US` | West Germanic | English | American | | |||||
| `gmw` | `en-us` | West Germanic | English | American | | |||||
| `gmw` | `en` | West Germanic | English | British | | | `gmw` | `en` | West Germanic | English | British | | ||||
| `gmw` | `en-029` | West Germanic | English | Caribbean | | | `gmw` | `en-029` | West Germanic | English | Caribbean | | ||||
| `gmw` | `en-GB-x-gbclan` | West Germanic | English | Lancastrian | | |||||
| `gmw` | `en-GB-x-rp` | West Germanic | English | Received Pronunciation | | |||||
| `gmw` | `en-GB-scotland` | West Germanic | English | Scottish | | |||||
| `gmw` | `en-GB-x-gbcwmd` | West Germanic | English | West Midlands | | |||||
| `gmw` | `en-gb-x-gbclan` | West Germanic | English | Lancastrian | | |||||
| `gmw` | `en-gb-x-rp` | West Germanic | English | Received Pronunciation | | |||||
| `gmw` | `en-gb-scotland` | West Germanic | English | Scottish | | |||||
| `gmw` | `en-gb-x-gbcwmd` | West Germanic | English | West Midlands | | |||||
| `art` | `eo` | Constructed | Esperanto | | | | `art` | `eo` | Constructed | Esperanto | | | ||||
| `urj` | `et` | Uralic | Estonian | | | | `urj` | `et` | Uralic | Estonian | | | ||||
| `ira` | `fa` | Iranian | Persian | | | | `ira` | `fa` | Iranian | Persian | | | ||||
| `ira` | `fa-Latn` | Iranian | Persian<sup>\[2\]</sup> | | | |||||
| `ira` | `fa-latn` | Iranian | Persian<sup>\[2\]</sup> | | | |||||
| `urj` | `fi` | Uralic | Finnish | | | | `urj` | `fi` | Uralic | Finnish | | | ||||
| `roa` | `fr-BE` | Romance | French | Belgium | | |||||
| `roa` | `fr-be` | Romance | French | Belgium | | |||||
| `roa` | `fr` | Romance | French | France | | | `roa` | `fr` | Romance | French | France | | ||||
| `roa` | `fr-CH` | Romance | French | Switzerland | | |||||
| `roa` | `fr-ch` | Romance | French | Switzerland | | |||||
| `cel` | `ga` | Celtic | Gaelic | Irish | | | `cel` | `ga` | Celtic | Gaelic | Irish | | ||||
| `cel` | `gd` | Celtic | Gaelic | Scottish | | | `cel` | `gd` | Celtic | Gaelic | Scottish | | ||||
| `ccs` | `ka` | South Caucasian | Georgian | | | | `ccs` | `ka` | South Caucasian | Georgian | | | ||||
| `inc` | `kok` | Indic | Konkani | | | | `inc` | `kok` | Indic | Konkani | | | ||||
| | `ko` | | Korean | | | | | `ko` | | Korean | | | ||||
| `ira` | `ku` | Iranian | Kurdish | | | | `ira` | `ku` | Iranian | Kurdish | | | ||||
| `trk` | `kk` | Turkic | Kazakh | | | |||||
| `trk` | `ky` | Turkic | Kyrgyz | | | | `trk` | `ky` | Turkic | Kyrgyz | | | ||||
| `itc` | `la` | Italic | Latin | | | | `itc` | `la` | Italic | Latin | | | ||||
| `bat` | `lv` | Baltic | Latvian | | | | `bat` | `lv` | Baltic | Latvian | | | ||||
| `inc` | `or` | Indic | Oriya | | | | `inc` | `or` | Indic | Oriya | | | ||||
| `cus` | `om` | Cushitic | Oromo | | | | `cus` | `om` | Cushitic | Oromo | | | ||||
| `roa` | `pap` | Romance | Papiamento | | | | `roa` | `pap` | Romance | Papiamento | | | ||||
| `art` | `py` | Constructed | Pyash | | | |||||
| `zlw` | `pl` | West Slavic | Polish | | | | `zlw` | `pl` | West Slavic | Polish | | | ||||
| `roa` | `pt-BR` | Romance | Portuguese | Brazillian | | |||||
| `roa` | `pt-br` | Romance | Portuguese | Brazillian | | |||||
| `myn` | `quc` | Mayan | K'iche' | | | |||||
| `roa` | `pt` | Romance | Portuguese | Portugal | | | `roa` | `pt` | Romance | Portuguese | Portugal | | ||||
| `inc` | `pa` | Indic | Punjabi | | | | `inc` | `pa` | Indic | Punjabi | | | ||||
| `roa` | `ro` | Romance | Romanian | | | | `roa` | `ro` | Romance | Romanian | | | ||||
| `zle` | `ru` | East Slavic | Russian | | | | `zle` | `ru` | East Slavic | Russian | | | ||||
| `zle` | `ru-lv` | East Slavic | Russian | Latvia | | |||||
| `zls` | `sr` | South Slavic | Serbian | | | | `zls` | `sr` | South Slavic | Serbian | | | ||||
| `bnt` | `tn` | Bantu | Setswana | | | | `bnt` | `tn` | Bantu | Setswana | | | ||||
| `inc` | `sd` | Indic | Sindhi | | | | `inc` | `sd` | Indic | Sindhi | | | ||||
| `tai` | `shn` | Tai | Shan (Tai Yai) | | | |||||
| `inc` | `si` | Indic | Sinhala | | | | `inc` | `si` | Indic | Sinhala | | | ||||
| `zlw` | `sk` | West Slavic | Slovak | | | | `zlw` | `sk` | West Slavic | Slovak | | | ||||
| `zls` | `sl` | South Slavic | Slovenian | | | | `zls` | `sl` | South Slavic | Slovenian | | | ||||
| `dra` | `te` | Dravidian | Telugu | | | | `dra` | `te` | Dravidian | Telugu | | | ||||
| `trk` | `tr` | Turkic | Turkish | | | | `trk` | `tr` | Turkic | Turkish | | | ||||
| `inc` | `ur` | Indic | Urdu | | | | `inc` | `ur` | Indic | Urdu | | | ||||
| `aav` | `vi-VN-x-central` | Austroasiatic | Vietnamese | Central Vietnam | | |||||
| `aav` | `vi-vn-x-central` | Austroasiatic | Vietnamese | Central Vietnam | | |||||
| `aav` | `vi` | Austroasiatic | Vietnamese | Northern Vietnam | | | `aav` | `vi` | Austroasiatic | Vietnamese | Northern Vietnam | | ||||
| `aav` | `vi-VN-x-south` | Austroasiatic | Vietnamese | Southern Vietnam | | |||||
| `aav` | `vi-vn-x-south` | Austroasiatic | Vietnamese | Southern Vietnam | | |||||
| `cel` | `cy` | Celtic | Welsh | | | | `cel` | `cy` | Celtic | Welsh | | | ||||
\[1\] Currently, only fully diacritized Arabic is supported. | \[1\] Currently, only fully diacritized Arabic is supported. |
- [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 MBROLA package from source](#installation-of-mbrola-package-from-source) | |||||
- [Usage](#usage) | - [Usage](#usage) | ||||
- [Adding new MBROLA voice entry to eSpeak NG](#adding-new-mbrola-voice-entry-to-espeak-ng) | - [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) | - [1. Add MBROLA voice definition file](#1-add-mbrola-voice-definition-file) | ||||
---------- | ---------- | ||||
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. 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). | |||||
The [MBROLA](https://github.com/numediart/MBROLA) is an open source speech engine | |||||
with collection of diphone voices for speech synthesis. Voices are cost-free for | |||||
non-commerical purposes, but are not open source. | |||||
eSpeak NG can be used as a front-end to MBROLA. It provides the | |||||
spelling-to-phoneme translation and intonation, which MBROLA then uses | |||||
MBROLA does not include any text-to-phoneme translation, so this | |||||
must be done by another program. eSpeak NG can be used as a front-end to MBROLA, | |||||
to provide spelling-to-phoneme translation and intonation, which MBROLA then uses | |||||
to generate speech sound. | to generate speech sound. | ||||
## Voice Names | ## Voice Names | ||||
`.../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 | |||||
example. You can use other mbrola voices for which there is an | |||||
equivalent eSpeak NG voice in `espeak-ng-data/voices/mb`. | |||||
There are some additional eSpeak NG MBROLA voices, which speak English text | 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 | using a MBROLA voice for a different language. These contain the name of | ||||
the MBROLA voice with a suffix `-en`. For example, the voice | 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. | ||||
The following MBROLA voices are available. Not all are supported by eSpeak NG. | |||||
The following MBROLA voices are available in eSpeak NG. | |||||
| MBROLA Voice | Language | Gender | eSpeak | Debian Package | | | MBROLA Voice | Language | Gender | eSpeak | Debian Package | | ||||
|--------------|----------------------|--------|----------|----------------| | |--------------|----------------------|--------|----------|----------------| | ||||
| `us3` | American English | male | `mb-us3` | `mbrola-us3` | | | `us3` | American English | male | `mb-us3` | `mbrola-us3` | | ||||
| `vz1` | Venezuelan Spanish | male | `mb-vz1` | `mbrola-vz1` | | | `vz1` | Venezuelan Spanish | male | `mb-vz1` | `mbrola-vz1` | | ||||
* If some MBROLA voice is not available as Debian package, you can download data files | |||||
from [here](https://github.com/mbrola/mbrola-voices). | |||||
eSpeak NG will look for mbrola voices firstly in `espeak-ng-data/mbrola` and then in `/usr/share/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 NG voice in `espeak-ng-data/voices/mb`. | |||||
## Windows Installation | ## Windows 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` or other voice from: | |||||
[http://www.tcts.fpms.ac.be/synthesis/mbrola/mbrcopybin.html](http://www.tcts.fpms.ac.be/synthesis/mbrola/mbrcopybin.html). | |||||
3. Download the `en1` or other voice from: | |||||
[https://github.com/numediart/MBROLA-voices](https://github.com/numediart/MBROLA-voices) | |||||
4. Unpack the archive, and copy the `en1` data file (not the whole "en1" folder) into | |||||
`C:/Program Files/eSpeak/espeak-ng-data/mbrola`. | |||||
4. Save downloaded `en1` data file into `C:/Program Files/eSpeak/espeak-ng-data/mbrola`. | |||||
4. Use the voice `espeak-MB-EN1` from the list of SAPI5 voices. | 4. Use the voice `espeak-MB-EN1` from the list of SAPI5 voices. | ||||
apt-cache search mbrola | apt-cache search mbrola | ||||
### Installation of latest MBROLA packages | |||||
If some MBROLA voice is not available as Debian package, you can download data files | |||||
from [https://github.com/numediart/MBROLA-voices](https://github.com/numediart/MBROLA-voices) | |||||
and save them in `/usr/share/mbrola/xxN/xxN` file, where `xxN` is code and number of language file. | |||||
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). | |||||
### Installation of MBROLA package from source | |||||
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`). | |||||
1. Install necessary packages: | |||||
``` | |||||
sudo apt-get install git make gcc | |||||
``` | |||||
3. Get the `en1` or other voice from: | |||||
[http://www.tcts.fpms.ac.be/synthesis/mbrola/mbrcopybin.html](http://www.tcts.fpms.ac.be/synthesis/mbrola/mbrcopybin.html). | |||||
2. Clone MBROLA git repository: | |||||
``` | |||||
git clone https://github.com/numediart/MBROLA.git | |||||
cd MBROLA | |||||
``` | |||||
4. Unpack the archive, and copy the `en1` data file (not the whole "en1" folder) to `/usr/share/mbrola/en1` folder. | |||||
3. Compile MBROLA: | |||||
``` | |||||
make | |||||
``` | |||||
5. Remember to make `mbrola` file executable. | |||||
4. Install MBROLA: | |||||
``` | |||||
sudo cp Bin/mbrola /usr/bin/mbrola | |||||
``` | |||||
__Notes:__ | |||||
5. Download the `en1` or other voice from | |||||
[https://github.com/numediart/MBROLA-voices](https://github.com/numediart/MBROLA-voices) | |||||
* eSpeak NG will look for mbrola voices firstly in `espeak-ng-data/mbrola` and then in `/usr/share/mbrola`. | |||||
* You can download latest development versions of MBROLA binaries from [https://github.com/mbrola/mbrola-bin/](https://github.com/mbrola/mbrola-bin/) | |||||
6. Copy the `en1` data file to `/usr/share/mbrola/en1` folder. | |||||
## Usage | ## Usage | ||||
name Vietnamese (Northern) | name Vietnamese (Northern) | ||||
language vi | language vi | ||||
words 1 | |||||
pitch 100 180 | |||||
words 1 2 | |||||
pitch 95 175 | |||||
tone 100 225 800 100 2000 50 5400 75 8000 200 |
name Pyash | |||||
language py | |||||
maintainer Logan Streondj <[email protected]> | |||||
status testing | |||||
speed 80 // speed adjustment, percentage | |||||
stressRule 0 |
name German | name German | ||||
language de | language de | ||||
tunes s4 c1 q4 e1 |
name Persian (Pinglish) | name Persian (Pinglish) | ||||
// Sometimes, Farsi speakers write Farsi words using English characters, particularly in Chat and SMS (texte messages).), called Pinglish | // Sometimes, Farsi speakers write Farsi words using English characters, particularly in Chat and SMS (texte messages).), called Pinglish | ||||
language fa-Latn | |||||
language fa-latn | |||||
maintainer Shadyar Khodayari <[email protected]> | maintainer Shadyar Khodayari <[email protected]> | ||||
status mature | status mature | ||||
dictrules 1 | dictrules 1 |
name Russian (Latvia) | name Russian (Latvia) | ||||
language ru-LV 2 | |||||
language ru-lv 2 | |||||
maintainer Valdis Vitolins <[email protected]> | maintainer Valdis Vitolins <[email protected]> | ||||
status testing | status testing |
language variant | |||||
name Nguyen | |||||
pitch 95 175 | |||||
formant 0 100 125 100 | |||||
formant 1 96 90 80 | |||||
formant 2 97 70 90 | |||||
formant 3 97 60 90 | |||||
formant 4 97 60 90 | |||||
formant 5 75 50 90 | |||||
formant 6 90 50 100 | |||||
formant 7 100 50 100 | |||||
formant 8 100 50 100 | |||||
tone 100 200 600 150 800 100 2400 80 3600 95 5400 100 |
formant 2 97 70 90 | formant 2 97 70 90 | ||||
formant 3 97 60 90 | formant 3 97 60 90 | ||||
formant 4 97 60 90 | formant 4 97 60 90 | ||||
formant 5 75 50 90 | |||||
formant 5 100 50 90 | |||||
formant 6 90 50 100 | formant 6 90 50 100 | ||||
formant 7 100 50 100 | formant 7 100 50 100 | ||||
formant 8 100 50 100 | formant 8 100 50 100 |
| |||||
//========================================================= | //========================================================= | ||||
// German | // German | ||||
phoneme @ // Schwa | phoneme @ // Schwa | ||||
vwl starttype #@ endtype #@ | vwl starttype #@ endtype #@ | ||||
unstressed | unstressed | ||||
length 120 | |||||
length 40 | |||||
IF nextPh(r) THEN | IF nextPh(r) THEN | ||||
IF next2Ph(isVowel) THEN | IF next2Ph(isVowel) THEN | ||||
ELSE | ELSE | ||||
phoneme OY | phoneme OY | ||||
vwl starttype #o endtype #i | vwl starttype #o endtype #i | ||||
length 220 | length 220 | ||||
FMT(vdiph/oi) | |||||
FMT(vwl_de/eu) | |||||
endphoneme | endphoneme | ||||
phoneme y | phoneme y | ||||
vwl starttype #u endtype #u | vwl starttype #u endtype #u | ||||
ipa ʏ | |||||
length 110 | |||||
ipa ? | |||||
length 100 | |||||
IF nextPh(*) THEN | IF nextPh(*) THEN | ||||
length 115 | |||||
length 110 | |||||
ENDIF | ENDIF | ||||
FMT(vowel/yy_4) | |||||
FMT(vowel/u#_3) | |||||
endphoneme | endphoneme | ||||
phoneme Y: | phoneme Y: | ||||
vwl starttype #@ endtype #@ | vwl starttype #@ endtype #@ | ||||
length 180 | |||||
FMT(vowel/y#) | |||||
length 220 | |||||
FMT(vwl_de/y#) | |||||
endphoneme | endphoneme | ||||
ELSEIF prevPhW(d) OR prevPhW(b) OR prevPhW(g) OR prevPhW(k) OR prevPhW(p) THEN | ELSEIF prevPhW(d) OR prevPhW(b) OR prevPhW(g) OR prevPhW(k) OR prevPhW(p) THEN | ||||
PauseBefore 15 | PauseBefore 15 | ||||
ELSE | ELSE | ||||
InsertPhoneme(@-) | |||||
FMT(r3/r_, 40) addWav(r3/rx, 150) | |||||
ENDIF | ENDIF | ||||
ENDIF | ENDIF | ||||
ENDIF | ENDIF | ||||
phoneme iR // TEST "vier" = [f'iR] not successful | phoneme iR // TEST "vier" = [f'iR] not successful | ||||
vwl starttype #i endtype #@ | vwl starttype #i endtype #@ | ||||
ipa iɐ | |||||
ipa i? | |||||
flag1 | flag1 | ||||
length 240 | length 240 | ||||
FMT(vdiph2/i@_3) | FMT(vdiph2/i@_3) | ||||
phoneme UR | phoneme UR | ||||
vwl starttype #u endtype #@ | vwl starttype #u endtype #@ | ||||
ipa ʊɐ | |||||
ipa ?? | |||||
flag1 | flag1 | ||||
length 180 | length 180 | ||||
FMT(vwl_de/uu_@) | FMT(vwl_de/uu_@) | ||||
WAV(ustop/k, 70) | WAV(ustop/k, 70) | ||||
ELIF nextPh(R) OR nextPh(R2) THEN | ELIF nextPh(R) OR nextPh(R2) THEN | ||||
WAV(ustop/k_) | WAV(ustop/k_) | ||||
ELIF nextPh(i:) OR nextPh(;) THEN | |||||
ELIF nextPh(i:) OR nextPh(j) OR nextPh(;) THEN | |||||
WAV(ustop/ki) | WAV(ustop/ki) | ||||
ELIF nextPh(l) THEN | ELIF nextPh(l) THEN | ||||
WAV(ustop/kl) | WAV(ustop/kl) | ||||
ELIF nextPh(@-) THEN | ELIF nextPh(@-) THEN | ||||
WAV(ustop/k_unasp) | |||||
WAV(ustop/k, 70) | |||||
ENDIF | ENDIF | ||||
WAV(ustop/k) | WAV(ustop/k) | ||||
endphoneme | endphoneme |
// Phonemes for Pyash (an artificial constructed language) | |||||
// Inherits phonemes from Esperanto | |||||
phoneme e | |||||
vwl starttype #e endtype #e | |||||
length 170 | |||||
FMT(vowel/e_mid2) | |||||
endphoneme | |||||
phoneme 1 // ngang tone: level | phoneme 1 // ngang tone: level | ||||
stress | stress | ||||
Tone(30, 28, envelope/p_level, NULL) // 28 29 | |||||
Tone(27, 25, envelope/p_level, NULL) // 28 29 | |||||
endphoneme | endphoneme | ||||
phoneme 3 // sắc Tone(rising | phoneme 3 // sắc Tone(rising | ||||
stress | stress | ||||
Tone(30, 55, envelope/p_rise, NULL) // 30 60 | |||||
Tone(20, 50, envelope/p_rise, NULL) // 30 60 | |||||
endphoneme | endphoneme | ||||
phoneme a | phoneme a | ||||
vwl starttype #@ endtype #@ | vwl starttype #@ endtype #@ | ||||
IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN | |||||
length 240 | |||||
ELSE | |||||
length 180 | |||||
ENDIF | |||||
IF nextPh(N) OR nextPh(c) THEN | |||||
FMT(vnasal/a_n) | |||||
ELSE | |||||
//FMT(vietnam/a) //a_4) | |||||
FMT(vietnam/a_x) | |||||
ENDIF | |||||
IF nextPhW(p) THEN | |||||
length 78 | |||||
ELIF nextPhW(t[) THEN | |||||
length 84 | |||||
ELIF nextPhW(c) THEN | |||||
length 82 | |||||
ELIF nextPhW(m) THEN | |||||
length 90 | |||||
ELIF nextPhW(n) THEN | |||||
length 100 | |||||
ELIF nextPhW(N) THEN | |||||
length 90 | |||||
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN | |||||
length 240 | |||||
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN | |||||
length 140 | |||||
ELSE | |||||
length 100 | |||||
ENDIF | |||||
FMT(vietnam/a_2) //a_4) | |||||
endphoneme | endphoneme | ||||
phoneme a: | phoneme a: | ||||
vwl starttype #a endtype #a | vwl starttype #a endtype #a | ||||
IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd)THEN | |||||
IF nextPhW(p) THEN | |||||
length 142 | |||||
ELIF nextPhW(t[) THEN | |||||
length 126 | |||||
ELIF nextPhW(c) THEN | |||||
length 136 | |||||
ELIF nextPhW(m) THEN | |||||
length 155 | |||||
ELIF nextPhW(n) THEN | |||||
length 185 | |||||
ELIF nextPhW(N) THEN | |||||
length 200 | |||||
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN | |||||
length 300 | |||||
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN | |||||
length 240 | length 240 | ||||
ELIF nextPh(n^) OR nextPh(c) THEN | |||||
length 100 | |||||
ELIF nextPh(N) THEN | |||||
length 200 | |||||
ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN | |||||
length 333 | |||||
ELSE | ELSE | ||||
length 180 //200 | |||||
length 180 | |||||
ENDIF | ENDIF | ||||
// FMT(vowel/a_8) | |||||
FMT(vietnam/a_2) | |||||
//FMT(vowel/a_8) | |||||
FMT(vietnam/aa) | |||||
endphoneme | endphoneme | ||||
phoneme E | phoneme E | ||||
vwl starttype #e endtype #e | vwl starttype #e endtype #e | ||||
IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN | |||||
length 240 | |||||
ELSE | |||||
IF nextPhW(p) THEN | |||||
length 143 | |||||
ELIF nextPhW(t[) THEN | |||||
length 107 | |||||
ELIF nextPhW(c) THEN | |||||
length 141 | |||||
ELIF nextPhW(m) THEN | |||||
length 128 | |||||
ELIF nextPhW(n) THEN | |||||
length 160 | |||||
ELIF nextPhW(N) THEN | |||||
length 187 | |||||
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN | |||||
length 300 | |||||
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN | |||||
length 240 | |||||
ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN | |||||
length 352 | |||||
ELSE | |||||
length 180 | length 180 | ||||
ENDIF | |||||
FMT(vowel/e_e) //ee_3) | |||||
ENDIF | |||||
//FMT(vowel/e_e) //ee_3) | |||||
FMT(vietnam/e_e_2) | |||||
endphoneme | endphoneme | ||||
phoneme e | phoneme e | ||||
vwl starttype #e endtype #e | vwl starttype #e endtype #e | ||||
IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN | |||||
length 240 | |||||
ELSE | |||||
IF nextPhW(p) THEN | |||||
length 114 | |||||
ELIF nextPhW(t[) THEN | |||||
length 126 | |||||
ELIF nextPhW(c) THEN | |||||
length 140 | |||||
ELIF nextPhW(n^) THEN | |||||
length 120 | |||||
ELIF nextPhW(m) THEN | |||||
length 148 | |||||
ELIF nextPhW(n) THEN | |||||
length 163 | |||||
ELIF nextPhW(N) THEN | |||||
length 115 | |||||
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN | |||||
length 300 | |||||
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN | |||||
length 240 | |||||
ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN | |||||
length 324 | |||||
ELSE | |||||
length 180 | length 180 | ||||
ENDIF | |||||
// FMT(vowel/e) | |||||
FMT(vietnam/e) | |||||
ENDIF | |||||
IF nextPh(n^) THEN | |||||
FMT(vowel/e) | |||||
ELSE | |||||
FMT(vietnam/e, 150) | |||||
ENDIF | |||||
endphoneme | endphoneme | ||||
phoneme e- | |||||
vwl starttype #e endtype #a | |||||
length 140 | |||||
FMT(vietnam/e_short_1) | |||||
//FMT(vdiph/aai_3) | |||||
endphoneme | |||||
phoneme i | phoneme i | ||||
vwl starttype #i endtype #i | vwl starttype #i endtype #i | ||||
IfNextVowelAppend(;) | IfNextVowelAppend(;) | ||||
IF prevPhW(w) THEN | IF prevPhW(w) THEN | ||||
VowelStart(w/wi) | VowelStart(w/wi) | ||||
ENDIF | ENDIF | ||||
IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN | |||||
length 240 | |||||
IF nextPhW(p) THEN | |||||
length 131 | |||||
ELIF nextPhW(t[) THEN | |||||
length 113 | |||||
ELIF nextPhW(c) OR nextPhW(n^) THEN | |||||
length 72 | |||||
ELIF nextPhW(m) THEN | |||||
length 120 | |||||
ELIF nextPhW(n) THEN | |||||
length 128 | |||||
ELIF nextPhW(N) THEN | |||||
length 97 | |||||
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN | |||||
length 310 | |||||
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN | |||||
length 240 | |||||
ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN | |||||
length 363 | |||||
ELSE | |||||
length 180 | |||||
ENDIF | ENDIF | ||||
IF nextPh(n^) OR nextPh(c) THEN | IF nextPh(n^) OR nextPh(c) THEN | ||||
length 100 | |||||
FMT(vnasal/ii_n) | |||||
//FMT(vnasal/ii_n) | |||||
FMT(vietnam/i) | |||||
ELSE | ELSE | ||||
length 180 | |||||
FMT(vowel/i_4) | |||||
//FMT(vowel/i_4) | |||||
FMT(vietnam/i_2, 100) | |||||
ENDIF | ENDIF | ||||
endphoneme | endphoneme | ||||
phoneme O | phoneme O | ||||
vwl starttype #o endtype #o | vwl starttype #o endtype #o | ||||
IF nextPh(kh) OR nextPh(N) THEN | |||||
IF nextPhW(p) THEN | |||||
length 129 | |||||
ELIF nextPhW(t[) THEN | |||||
length 125 | |||||
ELIF nextPhW(c) THEN | |||||
length 80 | length 80 | ||||
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN | |||||
length 240 | |||||
ELSE | |||||
ELIF nextPhW(m) THEN | |||||
length 133 | |||||
ELIF nextPhW(n) THEN | |||||
length 158 | |||||
ELIF nextPhW(N) THEN | |||||
length 102 | |||||
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN | |||||
length 300 | |||||
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN | |||||
length 240 | |||||
ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN | |||||
length 331 | |||||
ELSE | |||||
length 180 | length 180 | ||||
ENDIF | |||||
FMT(vdiph2/o_oo) //vowel/oo) | |||||
ENDIF | |||||
//FMT(vdiph2/o_oo) //vowel/oo) | |||||
FMT(vietnam/oo) | |||||
endphoneme | endphoneme | ||||
phoneme O+ | phoneme O+ | ||||
phoneme o | phoneme o | ||||
vwl starttype #o endtype #o | vwl starttype #o endtype #o | ||||
IF nextPh(kh) OR nextPh(N) THEN | |||||
length 110 | |||||
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN | |||||
length 240 | |||||
ELSE | |||||
IF nextPhW(p) THEN | |||||
length 140 | |||||
ELIF nextPhW(t[) THEN | |||||
length 113 | |||||
ELIF nextPhW(c) THEN | |||||
length 88 | |||||
ELIF nextPhW(m) THEN | |||||
length 134 | |||||
ELIF nextPhW(n) THEN | |||||
length 168 | |||||
ELIF nextPhW(N) THEN | |||||
length 99 | |||||
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN | |||||
length 310 | |||||
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN | |||||
length 240 | |||||
ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN | |||||
length 363 | |||||
ELSE | |||||
length 180 | length 180 | ||||
ENDIF | |||||
FMT(vowel/o) // o_2) | |||||
ENDIF | |||||
//FMT(vowel/o) // o_2) | |||||
FMT(vietnam/o_2) | |||||
endphoneme | endphoneme | ||||
phoneme u | phoneme u | ||||
vwl starttype #u endtype #u | vwl starttype #u endtype #u | ||||
IF nextPh(kh) OR nextPh(N) THEN // hear as ung sound | |||||
length 120 | |||||
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN | |||||
IF nextPhW(p) THEN | |||||
length 110 | |||||
ELIF nextPhW(t[) THEN | |||||
length 94 | |||||
ELIF nextPhW(c) THEN | |||||
length 83 | |||||
ELIF nextPhW(m) THEN | |||||
length 141 | |||||
ELIF nextPhW(n) THEN | |||||
length 177 | |||||
ELIF nextPhW(N) THEN | |||||
length 80 | |||||
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN | |||||
length 300 | |||||
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN | |||||
length 240 | length 240 | ||||
ELSE | |||||
ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN | |||||
length 333 | |||||
ELSE | |||||
length 180 | length 180 | ||||
ENDIF | |||||
FMT(vnasal/u_n,60) //vowel/u_5) | |||||
ENDIF | |||||
//FMT(vnasal/u_n) //vowel/u_5) | |||||
FMT(vietnam/u) | |||||
endphoneme | endphoneme | ||||
phoneme y | phoneme y | ||||
vwl starttype #u endtype #u | vwl starttype #u endtype #u | ||||
IF nextPh(kh) OR nextPh(N) THEN | |||||
length 120 | |||||
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN | |||||
length 240 | |||||
ELSE | |||||
IF nextPhW(p) THEN | |||||
length 102 | |||||
ELIF nextPhW(t[) THEN | |||||
length 76 | |||||
ELIF nextPhW(c) THEN | |||||
length 90 | |||||
ELIF nextPhW(m) THEN | |||||
length 143 | |||||
ELIF nextPhW(n) THEN | |||||
length 136 | |||||
ELIF nextPhW(N) THEN | |||||
length 101 | |||||
ELIF nextPhW(w) OR nextPhW(j) THEN | |||||
length 110 | |||||
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN | |||||
length 300 | |||||
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN | |||||
length 240 | |||||
ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN | |||||
length 328 | |||||
ELSE | |||||
length 180 | length 180 | ||||
ENDIF | |||||
FMT(vowel/u#_5) | |||||
ENDIF | |||||
//FMT(vowel/u#_5) | |||||
FMT(vietnam/y_2, 60) | |||||
endphoneme | endphoneme | ||||
phoneme @ | phoneme @ | ||||
vwl starttype #@ endtype #a | vwl starttype #@ endtype #a | ||||
IF nextPh(kh) OR nextPh(N) OR nextPh(n^) OR nextPh(c) THEN | |||||
length 120 | |||||
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN | |||||
IF nextPhW(p) THEN | |||||
length 123 | |||||
ELIF nextPhW(t[) THEN | |||||
length 123 | |||||
ELIF nextPhW(c) THEN | |||||
length 139 | |||||
ELIF nextPhW(m) THEN | |||||
length 127 | |||||
ELIF nextPhW(n) THEN | |||||
length 160 | |||||
ELIF nextPhW(N) THEN | |||||
length 156 | |||||
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN | |||||
length 240 | length 240 | ||||
ELSE | |||||
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN | |||||
length 240 | |||||
ELSE | |||||
length 180 | length 180 | ||||
ENDIF | |||||
ENDIF | |||||
// FMT(vowel/V) //vowel/@_2) | // FMT(vowel/V) //vowel/@_2) | ||||
FMT(vietnam/V) | |||||
FMT(vietnam/V_2) | |||||
endphoneme | endphoneme | ||||
phoneme @: | phoneme @: | ||||
vwl starttype #@ endtype #@ | vwl starttype #@ endtype #@ | ||||
IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN | |||||
length 240 | |||||
ELSE | |||||
IF nextPhW(p) THEN | |||||
length 123 | |||||
ELIF nextPhW(t[) THEN | |||||
length 123 | |||||
ELIF nextPhW(c) THEN | |||||
length 139 | |||||
ELIF nextPhW(m) THEN | |||||
length 127 | |||||
ELIF nextPhW(n) THEN | |||||
length 160 | |||||
ELIF nextPhW(N) THEN | |||||
length 156 | |||||
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN | |||||
length 300 | |||||
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN | |||||
length 240 | |||||
ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN | |||||
length 333 | |||||
ELSE | |||||
length 180 | length 180 | ||||
ENDIF | |||||
FMT(vowel/@_2) | |||||
ENDIF | |||||
//FMT(vowel/@_2) | |||||
FMT(vietnam/@_2) | |||||
endphoneme | endphoneme | ||||
phoneme y@ | phoneme y@ | ||||
vwl starttype #i endtype #@ | vwl starttype #i endtype #@ | ||||
IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN | |||||
IF nextPhW(p) THEN | |||||
length 123 | |||||
ELIF nextPhW(t[) THEN | |||||
length 123 | |||||
ELIF nextPhW(c) THEN | |||||
length 139 | |||||
ELIF nextPhW(m) THEN | |||||
length 127 | |||||
ELIF nextPhW(n) THEN | |||||
length 180 | |||||
ELIF nextPhW(N) THEN | |||||
length 156 | |||||
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN | |||||
length 240 | length 240 | ||||
ELSE | |||||
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN | |||||
length 240 | |||||
ELSE | |||||
length 200 | length 200 | ||||
ENDIF | |||||
FMT(vdiph2/y-y#) | |||||
ENDIF | |||||
//FMT(vdiph2/y-y#) | |||||
FMT(vietnam/y@) | |||||
endphoneme | endphoneme | ||||
phoneme u@ | phoneme u@ | ||||
vwl starttype #u endtype #@ | vwl starttype #u endtype #@ | ||||
IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN | |||||
IF nextPhW(p) THEN | |||||
length 123 | |||||
ELIF nextPhW(t[) THEN | |||||
length 123 | |||||
ELIF nextPhW(c) THEN | |||||
length 139 | |||||
ELIF nextPhW(m) THEN | |||||
length 127 | |||||
ELIF nextPhW(n) THEN | |||||
length 160 | |||||
ELIF nextPhW(N) THEN | |||||
length 156 | |||||
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN | |||||
length 300 | |||||
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN | |||||
length 240 | |||||
ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN | |||||
length 333 | |||||
ELSE | |||||
length 240 | length 240 | ||||
ELSE | |||||
length 200 | |||||
ENDIF | |||||
FMT(vdiph2/uu@) | |||||
ENDIF | |||||
//FMT(vdiph2/uu@)- | |||||
FMT(vietnam/u@) | |||||
endphoneme | endphoneme | ||||
// Addition Dipthongs | // Addition Dipthongs | ||||
phoneme o# // ông | phoneme o# // ông | ||||
vwl starttype #o endtype #o | vwl starttype #o endtype #o | ||||
IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN | |||||
length 240 | |||||
IF nextPhW(k) THEN | |||||
length 120 | |||||
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN | |||||
length 360 | |||||
ELIF nextPhW(N) THEN | |||||
length 99 | |||||
ELIF nextPhW(k) THEN | |||||
length 88 | |||||
ELSE | ELSE | ||||
length 200 | length 200 | ||||
ENDIF | ENDIF | ||||
FMT(vnasal/a#u_n) | |||||
//FMT(vnasal/a#u_n) | |||||
FMT(vietnam/o#) | |||||
endphoneme | endphoneme | ||||
phoneme O# // ong | phoneme O# // ong | ||||
length 240 | length 240 | ||||
ELIF nextPh(k) THEN | ELIF nextPh(k) THEN | ||||
length 140 | length 140 | ||||
ELIF nextPh(N) THEN | |||||
length 102 | |||||
ELSE | ELSE | ||||
length 200 | length 200 | ||||
ENDIF | ENDIF | ||||
FMT(vnasal/&u_n) | |||||
//FMT(vnasal/&u_n) | |||||
FMT(vietnam/O_short_2) | |||||
endphoneme | endphoneme | ||||
phoneme iE // iê : viết, giệc | phoneme iE // iê : viết, giệc | ||||
vwl starttype #i endtype #e | vwl starttype #i endtype #e | ||||
IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN | |||||
length 240 | |||||
ELSE | |||||
length 200 | |||||
ENDIF | |||||
FMT(vietnam/ie_2) | |||||
IF nextPhW(p) THEN | |||||
length 114 | |||||
ELIF nextPhW(t[) THEN | |||||
length 126 | |||||
ELIF nextPhW(c) THEN | |||||
length 140 | |||||
ELIF nextPhW(n^) THEN | |||||
length 120 | |||||
ELIF nextPhW(m) THEN | |||||
length 148 | |||||
ELIF nextPhW(n) THEN | |||||
length 163 | |||||
ELIF nextPhW(N) THEN | |||||
length 115 | |||||
ELIF nextPhW(w) THEN | |||||
length 100 | |||||
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN | |||||
length 300 | |||||
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN | |||||
length 240 | |||||
ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN | |||||
length 324 | |||||
ELSE | |||||
length 180 | |||||
ENDIF | |||||
FMT(vietnam/ie) | |||||
endphoneme | endphoneme | ||||
phoneme Oi // oai sound | phoneme Oi // oai sound | ||||
endphoneme | endphoneme | ||||
phoneme k | phoneme k | ||||
vls vel frc | |||||
vls vel stp | |||||
lengthmod 3 | lengthmod 3 | ||||
IF nextPhW(#u) THEN | |||||
Vowelin f1=1 f2=600 -200 -400 f3=-200 80 amp=200 len=30 rms=200 | |||||
WAV(vietnam/c_2, 255) | |||||
ELSE | |||||
Vowelin f1=0 f2=2300 200 400 f3=200 80 len=30 | Vowelin f1=0 f2=2300 200 400 f3=200 80 len=30 | ||||
WAV(vietnam/c) | |||||
ENDIF | |||||
Vowelout f1=0 f2=2300 300 400 f3=200 80 rms=20 | Vowelout f1=0 f2=2300 300 400 f3=200 80 rms=20 | ||||
WAV(ustop/c) | |||||
//WAV(ustop/c) | |||||
endphoneme | endphoneme | ||||
phoneme N // si**ng** | phoneme N // si**ng** | ||||
vcd lbv nas | vcd lbv nas | ||||
IF prevPhW(u@) THEN | |||||
// do nothing | |||||
ELSE | |||||
Vowelout f1=3 f2=2300 300 400 f3=-200 80 len=40 rms=20 brk | Vowelout f1=3 f2=2300 300 400 f3=-200 80 len=40 rms=20 brk | ||||
ENDIF | |||||
lengthmod 12 // longer than 'n' | lengthmod 12 // longer than 'n' | ||||
IF prevPhW(isVowel) AND prev2PhW(isVowel) THEN | |||||
length 160 | |||||
IF thisPh(isWordEnd) THEN | |||||
length 163 | |||||
ENDIF | |||||
IF thisPh(isWordEnd) THEN | |||||
FMT(n/nm, 50) | |||||
ELSE | |||||
FMT(nn/_nn) | |||||
ENDIF | ENDIF | ||||
FMT(n/nm) | |||||
endphoneme | endphoneme | ||||
phoneme l | phoneme l | ||||
vcd alv stp | vcd alv stp | ||||
// lengthmod 5 | // lengthmod 5 | ||||
ipa ɗ | ipa ɗ | ||||
length 50 | |||||
Vowelin f1=1 f2=1700 -300 300 f3=-100 80 len=15 | |||||
Vowelout f1=2 f2=1700 -300 300 f3=-100 80 brk len=30 | |||||
WAV(vietnam/dd) | |||||
length 70 | |||||
Vowelin f1=1 f2=1500 -300 300 f3=-100 80 len=15 | |||||
Vowelout f1=2 f2=1700 -300 300 f3=-100 80 brk len=30 | |||||
WAV(vietnam/dda_2, 200) | |||||
endphoneme | endphoneme | ||||
phoneme c | phoneme c | ||||
vls pal stp pzd | vls pal stp pzd | ||||
//voicingswitch J | //voicingswitch J | ||||
lengthmod 2 | lengthmod 2 | ||||
length 2 | |||||
length 50 | |||||
Vowelin f1=0 f2=2700 400 600 f3=300 80 len=15 brk | Vowelin f1=0 f2=2700 400 600 f3=300 80 len=15 brk | ||||
Vowelout f1=1 f2=2700 400 600 f3=200 70 len=15 colr=1 | Vowelout f1=1 f2=2700 400 600 f3=200 70 len=15 colr=1 | ||||
phoneme p | phoneme p | ||||
vls blb stp | vls blb stp | ||||
lengthmod 2 | lengthmod 2 | ||||
length 15 | |||||
Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 amp=11 | Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 amp=11 | ||||
Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=22 | Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=22 | ||||
WAV(ustop/p_unasp_,10) | |||||
IF thisPh(isWordEnd) THEN | |||||
WAV(ustop/p_unasp_, 10) | |||||
ELSE | |||||
WAV(ustop/p) | |||||
ENDIF | |||||
endphoneme | endphoneme | ||||
phoneme t[ // dental variant of /t/ | phoneme t[ // dental variant of /t/ | ||||
vls dnt stp | |||||
voicingswitch d[ | |||||
lengthmod 2 | |||||
length 5 | |||||
Vowelin f1=1 f2=1500 -250 250 f3=-100 80 amp=16 len=15 | |||||
Vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20 len=15 | |||||
IF thisPh(isWordEnd) THEN | |||||
vls alv stp | |||||
voicingswitch d | |||||
lengthmod 2 | |||||
length 15 | |||||
IF prevPhW(#@) THEN | |||||
Vowelout f1=0 f2=1200 -50 50 f3=50 80 rms=20 len=15 | |||||
ELIF prevPhW(y@) THEN | |||||
Vowelout f1=2 f2=1200 -100 150 f3=150 80 rms=20 len=15 | |||||
ELIF prevPhW(#i) THEN | |||||
Vowelout f1=0 f2=2000 -300 250 f3=-50 80 rms=20 len=15 | |||||
ELIF prevPhW(E) THEN | |||||
Vowelout f1=0 f2=1900 -200 200 f3=-100 80 rms=20 len=15 | |||||
ELIF prevPhW(e) OR prevPhW(iE) THEN | |||||
Vowelout f1=2 f2=1800 -400 250 f3=-200 80 rms=20 len=15 | |||||
ELIF prevPhW(u) THEN | |||||
Vowelout f1=2 f2=1000 -1000 250 f3=-400 80 rms=20 len=15 | |||||
ELIF prevPhW(y) THEN | |||||
Vowelout f1=1 f2=1500 -300 250 f3=-400 80 rms=20 len=15 | |||||
ELIF prevPhW(#a) THEN | |||||
Vowelout f1=2 f2=1500 -300 250 f3=-500 80 rms=20 len=15 | |||||
ELIF prevPhW(o) THEN | |||||
Vowelout f1=2 f2=1000 -100 250 f3=-200 80 rms=20 len=15 | |||||
ELIF prevPhW(O) THEN | |||||
Vowelout f1=1 f2=1000 -300 200 f3=-100 80 rms=20 len=15 | |||||
ELSE | |||||
Vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20 len=15 | |||||
ENDIF | |||||
WAV(ustop/t_, 25) | |||||
ELSE | |||||
vls dnt stp | |||||
voicingswitch d[ | |||||
lengthmod 2 | |||||
IF nextPhW(#u) THEN | |||||
length 30 | |||||
ELSE | |||||
length 15 | |||||
ENDIF | |||||
Vowelin f1=1 f2=1500 -250 250 f3=-100 80 amp=16 len=35 | |||||
Vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20 len=15 | |||||
IF nextPh(isPause2) THEN | |||||
WAV(ustop/t_unasp2, 5) | |||||
IF nextPh(isPause2) THEN | |||||
WAV(ustop/t_unasp2, 5) | |||||
ENDIF | |||||
WAV(ustop/t_hi, 70) | |||||
ENDIF | ENDIF | ||||
WAV(ustop/t_hi, 70) | |||||
endphoneme | endphoneme | ||||
phoneme w | |||||
liquid | |||||
starttype #u | |||||
IF nextPh(isVowel) THEN | |||||
length 20 | |||||
NextVowelStarts | |||||
VowelStart(w/w@) | |||||
VowelStart(w/wa) | |||||
VowelStart(w/we) | |||||
VowelStart(w/wi) | |||||
VowelStart(w/wo) | |||||
VowelStart(w/wu) | |||||
EndSwitch | |||||
VowelEnding(w/xw, -30) | |||||
IF nextPh(isVowel) AND prevPhW(t[) THEN | |||||
FMT(vnasal/u_n, 60) addWav(vietnam/w, 50) | |||||
ELIF prevPhW(isNasal) THEN | |||||
FMT(w/w) | |||||
ELSEIF prevPhW(h) THEN | |||||
// none, [hw] | |||||
ELSE | |||||
//FMT(w/_w) addWav(vietnam/w) | |||||
FMT(vietnam/_w) | |||||
ENDIF | |||||
ELSE | |||||
// no vowel follows | |||||
length 80 | |||||
Vowelout len=20 rms=20 | |||||
//FMT(w/w_) | |||||
FMT(vietnam/w_, 150) | |||||
ENDIF | |||||
endphoneme | |||||
phoneme n^ // (a)nh | |||||
vcd pal nas pzd | |||||
ipa ɲ | |||||
Vowelout f1=3 f2=2500 300 500 f3=100 80 len=45 brk rate | |||||
lengthmod 4 | |||||
IF KlattSynth THEN | |||||
VowelStart(klatt/n^@) | |||||
FMT(klatt/n^) | |||||
ENDIF | |||||
NextVowelStarts | |||||
VowelStart(n^/n^@) | |||||
VowelStart(n^/n^a) | |||||
VowelStart(n^/n^e) | |||||
VowelStart(n^/n^i) | |||||
VowelStart(n^/n^o) | |||||
VowelStart(n^/n^u) | |||||
EndSwitch | |||||
IF thisPh(isWordEnd) THEN | |||||
IF nextPhW(n^) THEN | |||||
length 75 | |||||
ELIF prevPhW(n^) THEN | |||||
length 100 | |||||
ENDIF | |||||
FMT(vietnam/n^_) | |||||
ELSE | |||||
FMT(n^/_n^) | |||||
ENDIF | |||||
endphoneme | |||||
phoneme h | |||||
vls glt frc | |||||
lengthmod 3 | |||||
ipa h | |||||
IF nextPh(#@) THEN | |||||
WAV(h/h@) | |||||
ELIF nextPh(#a) THEN | |||||
WAV(h/ha) | |||||
ELIF nextPh(#e) THEN | |||||
WAV(h/he) | |||||
ELIF nextPh(#i) THEN | |||||
WAV(vietnam/hi) | |||||
ELIF nextPh(#o) THEN | |||||
WAV(h/ho) | |||||
ELIF nextPh(#u) THEN | |||||
WAV(vietnam/hu, 25) | |||||
ENDIF | |||||
WAV(h/h_, 70) // no vowel following | |||||
endphoneme |
phonemetable jbo eo | phonemetable jbo eo | ||||
include ph_lojban | include ph_lojban | ||||
phonemetable py eo | |||||
include ph_pyash | |||||
phonemetable nci base2 | phonemetable nci base2 | ||||
include ph_nahuatl | include ph_nahuatl | ||||
#include <stdlib.h> | #include <stdlib.h> | ||||
#include <string.h> | #include <string.h> | ||||
#include <sys/stat.h> | #include <sys/stat.h> | ||||
#include <fcntl.h> | |||||
#include <time.h> | #include <time.h> | ||||
#include <espeak-ng/espeak_ng.h> | #include <espeak-ng/espeak_ng.h> | ||||
"--voices=<language>\n" | "--voices=<language>\n" | ||||
"\t List the available voices for the specified language.\n" | "\t List the available voices for the specified language.\n" | ||||
"\t If <language> is omitted, then list all voices.\n" | "\t If <language> is omitted, then list all voices.\n" | ||||
"--load Load voice from a file in current directory by name.\n" | |||||
"-h, --help Show this help.\n"; | "-h, --help Show this help.\n"; | ||||
int samplerate; | int samplerate; | ||||
{ "compile-mbrola", optional_argument, 0, 0x10e }, | { "compile-mbrola", optional_argument, 0, 0x10e }, | ||||
{ "compile-intonations", no_argument, 0, 0x10f }, | { "compile-intonations", no_argument, 0, 0x10f }, | ||||
{ "compile-phonemes", optional_argument, 0, 0x110 }, | { "compile-phonemes", optional_argument, 0, 0x110 }, | ||||
{ "load", no_argument, 0, 0x111 }, | |||||
{ 0, 0, 0, 0 } | { 0, 0, 0, 0 } | ||||
}; | }; | ||||
int value; | int value; | ||||
int flag_stdin = 0; | int flag_stdin = 0; | ||||
int flag_compile = 0; | int flag_compile = 0; | ||||
int flag_load = 0; | |||||
int filesize = 0; | int filesize = 0; | ||||
int synth_flags = espeakCHARS_AUTO | espeakPHONEMES | espeakENDPAUSE; | int synth_flags = espeakCHARS_AUTO | espeakPHONEMES | espeakENDPAUSE; | ||||
int phoneme_options = 0; | int phoneme_options = 0; | ||||
int option_linelength = 0; | int option_linelength = 0; | ||||
int option_waveout = 0; | int option_waveout = 0; | ||||
espeak_VOICE voice_select; | espeak_VOICE voice_select; | ||||
char filename[200]; | char filename[200]; | ||||
char voicename[40]; | char voicename[40]; | ||||
} | } | ||||
return EXIT_SUCCESS; | return EXIT_SUCCESS; | ||||
} | } | ||||
case 0x111: // --load | |||||
flag_load = 1; | |||||
break; | |||||
default: | default: | ||||
exit(0); | exit(0); | ||||
} | } | ||||
if (voicename[0] == 0) | if (voicename[0] == 0) | ||||
strcpy(voicename, ESPEAKNG_DEFAULT_VOICE); | strcpy(voicename, ESPEAKNG_DEFAULT_VOICE); | ||||
result = espeak_ng_SetVoiceByName(voicename); | |||||
if(flag_load) | |||||
result = espeak_ng_SetVoiceByFile(voicename); | |||||
else | |||||
result = espeak_ng_SetVoiceByName(voicename); | |||||
if (result != ENS_OK) { | if (result != ENS_OK) { | ||||
memset(&voice_select, 0, sizeof(voice_select)); | memset(&voice_select, 0, sizeof(voice_select)); | ||||
voice_select.languages = voicename; | voice_select.languages = voicename; |
ESPEAK_NG_API espeak_ng_STATUS | ESPEAK_NG_API espeak_ng_STATUS | ||||
espeak_ng_SetVoiceByName(const char *name); | espeak_ng_SetVoiceByName(const char *name); | ||||
ESPEAK_NG_API espeak_ng_STATUS | |||||
espeak_ng_SetVoiceByFile(const char *filename); | |||||
ESPEAK_NG_API espeak_ng_STATUS | ESPEAK_NG_API espeak_ng_STATUS | ||||
espeak_ng_SetVoiceByProperties(espeak_VOICE *voice_selector); | espeak_ng_SetVoiceByProperties(espeak_VOICE *voice_selector); | ||||
are listed, and they are listed in preference order. | are listed, and they are listed in preference order. | ||||
*/ | */ | ||||
#ifdef __cplusplus | |||||
extern "C" | |||||
#endif | |||||
ESPEAK_API espeak_ERROR espeak_SetVoiceByFile(const char *filename); | |||||
/* Loads a voice given the file path. Language is not considered. | |||||
"filename" is a UTF8 string. | |||||
Return: EE_OK: operation achieved | |||||
EE_BUFFER_FULL: the command can not be buffered; | |||||
you may try after a while to call the function again. | |||||
EE_INTERNAL_ERROR. | |||||
*/ | |||||
#ifdef __cplusplus | #ifdef __cplusplus | ||||
extern "C" | extern "C" | ||||
#endif | #endif |
return status_to_espeak_error(espeak_ng_SetVoiceByName(name)); | return status_to_espeak_error(espeak_ng_SetVoiceByName(name)); | ||||
} | } | ||||
ESPEAK_API espeak_ERROR espeak_SetVoiceByFile(const char *filename) | |||||
{ | |||||
return status_to_espeak_error(espeak_ng_SetVoiceByFile(filename)); | |||||
} | |||||
ESPEAK_API espeak_ERROR espeak_SetVoiceByProperties(espeak_VOICE *voice_selector) | ESPEAK_API espeak_ERROR espeak_SetVoiceByProperties(espeak_VOICE *voice_selector) | ||||
{ | { | ||||
return status_to_espeak_error(espeak_ng_SetVoiceByProperties(voice_selector)); | return status_to_espeak_error(espeak_ng_SetVoiceByProperties(voice_selector)); |
#pragma GCC visibility push(default) | #pragma GCC visibility push(default) | ||||
ESPEAK_NG_API espeak_ng_STATUS espeak_ng_SetVoiceByFile(const char *filename) | |||||
{ | |||||
espeak_VOICE *v; | |||||
int ix; | |||||
espeak_VOICE voice_selector; | |||||
char *variant_name; | |||||
static char buf[60]; | |||||
strncpy0(buf, filename, sizeof(buf)); | |||||
variant_name = ExtractVoiceVariantName(buf, 0, 1); | |||||
for (ix = 0;; ix++) { | |||||
// convert voice name to lower case (ascii) | |||||
if ((buf[ix] = tolower(buf[ix])) == 0) | |||||
break; | |||||
} | |||||
memset(&voice_selector, 0, sizeof(voice_selector)); | |||||
voice_selector.name = (char *)filename; // include variant name in voice stack ?? | |||||
// first check for a voice with this filename | |||||
// This may avoid the need to call espeak_ListVoices(). | |||||
if (LoadVoice(buf, 0x10) != NULL) { | |||||
if (variant_name[0] != 0) | |||||
LoadVoice(variant_name, 2); | |||||
DoVoiceChange(voice); | |||||
voice_selector.languages = voice->language_name; | |||||
SetVoiceStack(&voice_selector, variant_name); | |||||
return ENS_OK; | |||||
} | |||||
return ENS_VOICE_NOT_FOUND; | |||||
} | |||||
ESPEAK_NG_API espeak_ng_STATUS espeak_ng_SetVoiceByName(const char *name) | ESPEAK_NG_API espeak_ng_STATUS espeak_ng_SetVoiceByName(const char *name) | ||||
{ | { | ||||
espeak_VOICE *v; | espeak_VOICE *v; |
test_lang cs 73d5bdeebdab81c629d34f76c87930bb6a188c50 "ma na n^a pa ta ca ka ba da Ja ga tsa tSa dza dZa fa sa Sa xa va za Za ha r-a Ra R^a R^/a la ja _:_ mi mi: me me: ma ma: mo mo: mu mu: maU meU moU" | test_lang cs 73d5bdeebdab81c629d34f76c87930bb6a188c50 "ma na n^a pa ta ca ka ba da Ja ga tsa tSa dza dZa fa sa Sa xa va za Za ha r-a Ra R^a R^/a la ja _:_ mi mi: me me: ma ma: mo mo: mu mu: maU meU moU" | ||||
test_lang cy 5c5c7ab1c1b531dcacbbe072d5ee9cef3467d945 "ma na Na pa ta ka ba da ga tSa dZa fa Ta sa Sa xa ha ca Da za ra Ca la l/2a ja wa _:_ ma mE mI mY mO mU mV mi: my: mu: me: mo: mA: mAY maI maY maU m@I m@Y meU mIu mYu mOI mOY muI muY" | test_lang cy 5c5c7ab1c1b531dcacbbe072d5ee9cef3467d945 "ma na Na pa ta ka ba da ga tSa dZa fa Ta sa Sa xa ha ca Da za ra Ca la l/2a ja wa _:_ ma mE mI mY mO mU mV mi: my: mu: me: mo: mA: mAY maI maY maU m@I m@Y meU mIu mYu mOI mOY muI muY" | ||||
test_lang da c55842af4f63fd67e6e48b97903b77223b6a4d77 "ma na Na pa ta ka ba da ga fa sa ha S;a tS;a va Da ja ra Ra _:_ m@ m@- m3 m3- mi m?i mI me m?e mE m?E m& m?& m&# m?&# mA m?A mu m?u mo m?o mO m?O mV m?V m0 m?0 my m?y mY mW m?W mW# m?W# maI" | test_lang da c55842af4f63fd67e6e48b97903b77223b6a4d77 "ma na Na pa ta ka ba da ga fa sa ha S;a tS;a va Da ja ra Ra _:_ m@ m@- m3 m3- mi m?i mI me m?e mE m?E m& m?& m&# m?&# mA m?A mu m?u mo m?o mO m?O mV m?V m0 m?0 my m?y mY mW m?W mW# m?W# maI" | ||||
test_lang de ec91c396bf20b12b96bb18b4d631188dcf2a480e "ma na Na pa ta ka ?a ba da ga pFa tsa tSa dZa sa Sa za Za fa Ta Ca xa ha ca Da ja la ra g#a l/a l2a _:_ m@ m3 ma mE mE2 mI mO mU mA mi2 my mW mI: mA: mi: mu: mE: me: mo: my: mY: maU maI mEI mOY moU mA~ miR mUR" | |||||
test_lang de f250cd80d6ddb782efcd3df9541b8b588e58e3d8 "ma na Na pa ta ka ?a ba da ga pFa tsa tSa dZa sa Sa za Za fa Ta Ca xa ha ca Da ja la ra g#a l/a l2a _:_ m@ m3 ma mE mE2 mI mO mU mA mi2 my mW mI: mA: mi: mu: mE: me: mo: my: mY: maU maI mEI mOY moU mA~ miR mUR" | |||||
test_lang el b01fb02420612ea59c43bf6aff4175063bd93bcb "ma na pa ta ka ba da ga fa Ta sa xa va Da za Qa ra la _:_ ma me mi mo mu" | test_lang el b01fb02420612ea59c43bf6aff4175063bd93bcb "ma na pa ta ka ba da ga fa Ta sa xa va Da za Qa ra la _:_ ma me mi mo mu" | ||||
test_lang en c4ed41c6ef4a43bae30f3469fe886c7b456dd02d "ma na Na pa ta ka ba da ga fa Ta sa Sa xa ha va Da za Za tSa dZa la ra ja wa t2a t#a d#a z#a r-a z/2a w#a m- n- N- _:_ mI mE ma m0 mV mU mi: mA: mO: mu: m3: mA@ mO@ mo@ mU@ mi@3 mIR mVR mi@ me@ mi m@ m3 me# mI# mI2 meI maI mOI moU maU maa mO2 maI@ maI3 maU@" | test_lang en c4ed41c6ef4a43bae30f3469fe886c7b456dd02d "ma na Na pa ta ka ba da ga fa Ta sa Sa xa ha va Da za Za tSa dZa la ra ja wa t2a t#a d#a z#a r-a z/2a w#a m- n- N- _:_ mI mE ma m0 mV mU mi: mA: mO: mu: m3: mA@ mO@ mo@ mU@ mi@3 mIR mVR mi@ me@ mi m@ m3 me# mI# mI2 meI maI mOI moU maU maa mO2 maI@ maI3 maU@" | ||||
test_lang en-029 cfd13bc57be7f495935c662472eae3d2c7200ebd "ma na Na pa ta ka ba da ga fa Ta sa Sa xa ha va Da za Za tSa dZa la ra ja wa t2a t#a d#a z#a r-a z/2a w#a m- n- N- _:_ mI mE ma m0 mV mU mi: mA: mO: mu: m3: mA@ mO@ mo@ mU@ mi@3 mIR mVR mi@ me@ mi m@ m3 me# mI# mI2 meI maI mOI moU maU maa mO2 maI@ maI3 maU@" | test_lang en-029 cfd13bc57be7f495935c662472eae3d2c7200ebd "ma na Na pa ta ka ba da ga fa Ta sa Sa xa ha va Da za Za tSa dZa la ra ja wa t2a t#a d#a z#a r-a z/2a w#a m- n- N- _:_ mI mE ma m0 mV mU mi: mA: mO: mu: m3: mA@ mO@ mo@ mU@ mi@3 mIR mVR mi@ me@ mi m@ m3 me# mI# mI2 meI maI mOI moU maU maa mO2 maI@ maI3 maU@" |
test_phonemes cs "Latn" "n'exc j'iS hR^'i:Sne: s'aksof,oni J'a:blu: R'ozezv,utSi: s'i:n^ 'u:Jesn,i:mi t'o:ni v'aldzu\nt'aNga_! a kv'itskstepu\npR^'i:liZ Zl'ucoUtSki: k'u:n^ 'u:pjel J'a:belske: 'o:di" "Nechť již hříšné saxofony ďáblů rozezvučí síň úděsnými tóny waltzu, tanga a quickstepu. Příliš žluťoučký kůň úpěl ďábelské ódy." | test_phonemes cs "Latn" "n'exc j'iS hR^'i:Sne: s'aksof,oni J'a:blu: R'ozezv,utSi: s'i:n^ 'u:Jesn,i:mi t'o:ni v'aldzu\nt'aNga_! a kv'itskstepu\npR^'i:liZ Zl'ucoUtSki: k'u:n^ 'u:pjel J'a:belske: 'o:di" "Nechť již hříšné saxofony ďáblů rozezvučí síň úděsnými tóny waltzu, tanga a quickstepu. Příliš žluťoučký kůň úpěl ďábelské ódy." | ||||
test_phonemes cy "Latn" "p'arkjaIs vY dZ'ak k'o:dI b'aU h'y:d l#'aUn d'u:r g'Er t'y: m'A:bOn" "Parciais fy jac codi baw hud llawn dŵr ger tŷ Mabon." | test_phonemes cy "Latn" "p'arkjaIs vY dZ'ak k'o:dI b'aU h'y:d l#'aUn d'u:r g'Er t'y: m'A:bOn" "Parciais fy jac codi baw hud llawn dŵr ger tŷ Mabon." | ||||
test_phonemes da "Latn" "kv'isd?elt,?&jVn@-_! sp'?isd@-_! j'?orb?E3- m?ED fl'WD@-_!\nm'?Ens s'?i3-k?uskl,?0wn@-n w'Olth?V_! sp'?el@-D@-_! p?O s,?yl?of'?on\n'?ER?W,?Ol" "Quizdeltagerne spiste jordbær med fløde, mens cirkusklovnen Walther spillede på xylofon. Ærøål." | test_phonemes da "Latn" "kv'isd?elt,?&jVn@-_! sp'?isd@-_! j'?orb?E3- m?ED fl'WD@-_!\nm'?Ens s'?i3-k?uskl,?0wn@-n w'Olth?V_! sp'?el@-D@-_! p?O s,?yl?of'?on\n'?ER?W,?Ol" "Quizdeltagerne spiste jordbær med fløde, mens cirkusklovnen Walther spillede på xylofon. Ærøål." | ||||
test_phonemes de "Latn" "v'Ikto:r j'A:kt tsv'Wlf b'OkskEmpf3 kv'e:r_:_: _|,y:b3 de:n gr'o:s@n z'ylt3 d'aIC\nh'aItsWl@-r,yksto:s,abdEmpf,UN" "Victor jagt zwölf Boxkämpfer quer über den großen Sylter Deich. Heizölrückstoßabdämpfung." | |||||
test_phonemes de "Latn" "v'Ikto:r j'A:kt tsv'Wlf b'OkskEmpf3 kv'e:r_:_: _|,y:b3 de:n gr'o:s@n z'ylt3 d'aIC\nh'aItsWlr,yksto:s,abdEmpf,UN" "Victor jagt zwölf Boxkämpfer quer über den großen Sylter Deich. Heizölrückstoßabdämpfung." | |||||
test_phonemes el "Grek" "ks,escep'azo t'im bz,ixofT'ora vD,eliQm'i;a" "Ξεσκεπάζω τὴν ψυχοφθόρα βδελυγμία." | test_phonemes el "Grek" "ks,escep'azo t'im bz,ixofT'ora vD,eliQm'i;a" "Ξεσκεπάζω τὴν ψυχοφθόρα βδελυγμία." | ||||
test_phonemes en "Latn" "D@ kw'Ik br'aUn f'0ks dZ'Vmps ,oUv3 D@ l'eIzi d'0g" "The quick brown fox jumps over the lazy dog" | test_phonemes en "Latn" "D@ kw'Ik br'aUn f'0ks dZ'Vmps ,oUv3 D@ l'eIzi d'0g" "The quick brown fox jumps over the lazy dog" | ||||
test_phonemes eo "Latn" ",eble tS'i;u kv'azaUd'etsa f,uSxoR'aZo dZoI'igos homt'ipon\n,exoS'andZo tS,i;uZ'aUde\np@-*'eskaU f@-*'eSa tS'exa mandZ'aZo" "Eble ĉiu kvazaŭ-deca fuŝĥoraĵo ĝojigos homtipon. Eĥoŝanĝo ĉiuĵaŭde, preskaŭ freŝa ĉeĥa manĝaĵo." | test_phonemes eo "Latn" ",eble tS'i;u kv'azaUd'etsa f,uSxoR'aZo dZoI'igos homt'ipon\n,exoS'andZo tS,i;uZ'aUde\np@-*'eskaU f@-*'eSa tS'exa mandZ'aZo" "Eble ĉiu kvazaŭ-deca fuŝĥoraĵo ĝojigos homtipon. Eĥoŝanĝo ĉiuĵaŭde, preskaŭ freŝa ĉeĥa manĝaĵo." | ||||
test_phonemes tr "Latn" "piZ'amaL@ hast'a j'a:@z SofW*'E tSabudZ'ak Jyv&nd'I\nSISlid'E byj'Yk tS'Wp j@:@nLa*'@" "Pijamalı hasta yağız şoföre çabucak güvendi. Şişli’de büyük çöp yığınları." | test_phonemes tr "Latn" "piZ'amaL@ hast'a j'a:@z SofW*'E tSabudZ'ak Jyv&nd'I\nSISlid'E byj'Yk tS'Wp j@:@nLa*'@" "Pijamalı hasta yağız şoföre çabucak güvendi. Şişli’de büyük çöp yığınları." | ||||
test_phonemes tt "Cyrl" "b0rL'Vq keSel'&r d'& 0z'0t h'&m 'yz 0brujLAr'V h'&m xoquqLAr'V jAGVnn'An t'iN bup'Vp tuAp'Ar\n0L0rG'A 0q'VL h'&m wWZ;d'An birelQ'&n h'&m b'&rb&rsen'& q0r0t'A tuGAnnArS;'A mWnAs&b&tt'& buLVrG'A tieSl'&r" "Барлык кешеләр дә азат һәм үз абруйлары һәм хокуклары ягыннан тиң бупып туапар. Аларга акыл һәм вөҗдан бирелгән һәм бәр-бәрсенә карата туганнарча мөнасәбәттә булырга тиешләр." | test_phonemes tt "Cyrl" "b0rL'Vq keSel'&r d'& 0z'0t h'&m 'yz 0brujLAr'V h'&m xoquqLAr'V jAGVnn'An t'iN bup'Vp tuAp'Ar\n0L0rG'A 0q'VL h'&m wWZ;d'An birelQ'&n h'&m b'&rb&rsen'& q0r0t'A tuGAnnArS;'A mWnAs&b&tt'& buLVrG'A tieSl'&r" "Барлык кешеләр дә азат һәм үз абруйлары һәм хокуклары ягыннан тиң бупып туапар. Аларга акыл һәм вөҗдан бирелгән һәм бәр-бәрсенә карата туганнарча мөнасәбәттә булырга тиешләр." | ||||
test_phonemes ur "Arab" "t.#'Vnd. m'e~\n'e:k q'VH@t z'Vda ga:'o:n se: g'Vz@Rte: v'aqt 'e:k c'[email protected]:\nb'a:s@R 'o: f'a:RIQ S'axs. k'o: b'a:z J'Vl p'VRi n'Uma: 'aZ@dHe: naz.'aR 'a:e:" "ٹھنڈ میں، ایک قحط زدہ گاؤں سے گذرتے وقت ایک چڑچڑے، باأثر و فارغ شخص کو بعض جل پری نما اژدہے نظر آئے۔" | test_phonemes ur "Arab" "t.#'Vnd. m'e~\n'e:k q'VH@t z'Vda ga:'o:n se: g'Vz@Rte: v'aqt 'e:k c'[email protected]:\nb'a:s@R 'o: f'a:RIQ S'axs. k'o: b'a:z J'Vl p'VRi n'Uma: 'aZ@dHe: naz.'aR 'a:e:" "ٹھنڈ میں، ایک قحط زدہ گاؤں سے گذرتے وقت ایک چڑچڑے، باأثر و فارغ شخص کو بعض جل پری نما اژدہے نظر آئے۔" | ||||
test_phonemes vi "Latn" "t['@3t[_| k'a:4_| m,OI6_| N'y@2j_| s'i1n^_| z'a:1_| d_'eU2_| d_,y@6c_| t['y6_| z'O1_| v,a:2_| _b'i2n^_| d_'a4N_| v'e2_| n^'@1n_| f'@4m_| v,a:2_| kw'i@2n_| l'@:I6_|\nm,OI6_| k,O1n_| N'y@2j_| d_'eU2_| d_,y@6c_| t['a:U6_| h'o@3_| _b'a:1n_| tS,O1_| l'i3_| tS'i3_| v,a:2_| l'y@1N_| t['@1m_| v,a:2_| k'@2n_| f,a:I4_| d_'oI3_| s'y4_| v,@:I3_| n^'aU1_| tS'O#1_| t['i2n^_| 'a1n^_| 'E7m_|" "Tất cả mọi người sinh ra đều được tự do và bình đẳng về nhân phẩm và quyền lợi. Mọi con người đều được tạo hóa ban cho lý trí và lương tâm và cần phải đối xử với nhau trong tình anh em." | |||||
test_phonemes vi "Latn" "t['@3t[_| k'a:4_| m,O6j_| N'y@2j_| s'i1n^_| z'a:1_| d_'e2w_| d_,y@6c_| t['y6_| z'O1_| v,a:2_| _b'i2n^_| d_'a4N_| v'e2_| n^'@1n_| f'@4m_| v,a:2_| kw'iE2n_| l'@:6j_|\nm,O6j_| k,O1n_| N'y@2j_| d_'e2w_| d_,y@6c_| t['a:6w_| hw'a:3_| _b'a:1n_| tS,O1_| l'i3_| tS'i3_| v,a:2_| l'y@1N_| t['@1m_| v,a:2_| k'@2n_| f,a:4j_| d_'o3j_| s'y4_| v,@:3j_| n^'a1w_| tS'O#1N_| t['i2n^_| 'e-1n^_| 'E7m_|" "Tất cả mọi người sinh ra đều được tự do và bình đẳng về nhân phẩm và quyền lợi. Mọi con người đều được tạo hóa ban cho lý trí và lương tâm và cần phải đối xử với nhau trong tình anh em." | |||||
##### Fallback to other languages in different scripts (language switch). | ##### Fallback to other languages in different scripts (language switch). | ||||