Fix lettergroups: Sort items to longest first. Lang en-us: Use rhotic [3] in place of [@] when [r] follows. Voice files: add attribute "fast-test" to experiment with faster talking speeds. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@212 d46cf337-b52f-0410-862d-fd96e6ae7743master
//maintainer: Willem van der Walt | |||||
//maintainer: Willem van der Walt | |||||
// email: [email protected] | // email: [email protected] | ||||
// tel: +27 12 8413996 | // tel: +27 12 8413996 | ||||
// Meraka Institute, CSIR | // Meraka Institute, CSIR | ||||
(da vinci) da||v'intSi | (da vinci) da||v'intSi | ||||
debora d@bo@ra | debora d@bo@ra | ||||
debussy d@bus'i: | debussy d@bus'i: | ||||
de d@ | |||||
(de la) d@||la $u // de la Rey/de la Bat, etc. | (de la) d@||la $u // de la Rey/de la Bat, etc. | ||||
der d@r | der d@r | ||||
derick dErik | derick dErik | ||||
// misc unstressed | // misc unstressed | ||||
de d@ | |||||
dat $u $strend | dat $u $strend | ||||
te t@ $verbf | te t@ $verbf | ||||
nie $unstressend $verbextend | nie $unstressend $verbextend |
_, tSa:Rka | _, tSa:Rka | ||||
_- mi:nus | _- mi:nus | ||||
_; zdR^edn^i:k | _; zdR^edn^i:k | ||||
_= Rovno | |||||
_* hvjezJitSka | |||||
_? otazn^i:k | _? otazn^i:k | ||||
__ pottr-Zen^i: | __ pottr-Zen^i: | ||||
_` 'obRa:ts,ena:||tS'a:Rka | _` 'obRa:ts,ena:||tS'a:Rka | ||||
_> vjetSi: | _> vjetSi: | ||||
_| sv'isla:||tS'a:Ra | _| sv'isla:||tS'a:Ra | ||||
_: dv'ojtetSka | _: dv'ojtetSka | ||||
% pRotsento | |||||
+ plus | |||||
. tetSka $max3 | |||||
* hvjezJitSka $max3 | |||||
= Rovno $max3 | |||||
* hvjezJitSka $max3 | |||||
% pRotsento $max3 | |||||
+ plus $max3 | |||||
! vigR^itSn^i:k $max3 | |||||
€ eURo | € eURo | ||||
@ zavina:tS | @ zavina:tS | ||||
& ampr-sent | & ampr-sent | ||||
# gR^i:Zek | # gR^i:Zek | ||||
/ lomeno | / lomeno | ||||
_\ beksleS | |||||
\ beksleS | |||||
° stupen^ | ° stupen^ | ||||
× kRa:t | × kRa:t |
ü i | ü i | ||||
$ dola:R | $ dola:R | ||||
! vigR^itSn^i:k | |||||
. tetSka | |||||
. (. _: | |||||
\.) . | |||||
__) - (_D mi:nus | __) - (_D mi:nus | ||||
A_) - (_D _ | A_) - (_D _ | ||||
C_) - (_D _ | C_) - (_D _ | ||||
--) - | |||||
* hvj'ezJitSka | |||||
*) * (* | |||||
** | |||||
**) * (_ _:: |
// spoken when "speak punctuation" option is on. | // spoken when "speak punctuation" option is on. | ||||
_. pUnkt | _. pUnkt | ||||
_, kOma | |||||
* StE*n $max3 | |||||
% p@-*o:ts'Ent $max3 | |||||
+ plUs $max3 | |||||
= glaIC $max3 | |||||
# nUm3 $max3 | |||||
€ OY*o: | |||||
£ paUnd | |||||
& Unt | |||||
@ kl'ame:*,af@ | |||||
~ tIld@ | |||||
\ bEkslES | |||||
_, kOma | |||||
_| paIp | _| paIp | ||||
_: d'Op@lp,UNkt | _: d'Op@lp,UNkt | ||||
_; St@-*'ICpUNkt | _; St@-*'ICpUNkt | ||||
_stk S@-*'Egst@-*IC | _stk S@-*'Egst@-*IC | ||||
_tld t'Ild@ | _tld t'Ild@ | ||||
æ $accent | |||||
é $accent | |||||
ç $accent | |||||
č $accent | |||||
š $accent | |||||
ž $accent | |||||
// Not Roman numbers | // Not Roman numbers | ||||
v faU | v faU | ||||
x Iks | x Iks |
, (D kOma | , (D kOma | ||||
$ dOl'A: | $ dOl'A: | ||||
€ OY*o: | |||||
£ paUnd | |||||
% p@-*o:ts'Ent | |||||
& Unt | |||||
@ kl'ame:*,af@ | |||||
# nUm3 | |||||
+ plUs | |||||
= glaIC | |||||
~ tIld@ | |||||
\ bEkslES | |||||
. pUnkt | |||||
. (. _: | |||||
\.) . | |||||
* StE*n | |||||
*) * (* | |||||
** | |||||
**) * (_ _:: | |||||
& a a: a~ e E e~ i | & a a: a~ e E e~ i | ||||
I i: i:~ i~ l- o O o: | I i: i:~ i~ l- o O o: | ||||
O~ o~ r- U u u: u:~ u~ | O~ o~ r- U u u: u:~ u~ | ||||
V | |||||
* b B bh c C ch d | * b B bh c C ch d | ||||
d. d.h dh g gh h j J | d. d.h dh g gh h j J | ||||
i i: l- o o: oU r- u | i i: l- o o: oU r- u | ||||
u: | u: | ||||
* ; b c d dZ f g | |||||
h j J k l l^ m n | |||||
N n^ p r R R^ R^/ s | |||||
S t tS ts v x z Z | |||||
* ; b c d dZ dz f | |||||
g h j J k l l^ m | |||||
n N n^ p r R R^ R^/ | |||||
s S t tS ts v x z | |||||
Z | |||||
Dictionary cy_dict | Dictionary cy_dict | ||||
E e e: i I i: l- O | E e e: i I i: l- O | ||||
o o: oU r* r- u U u: | o o: oU r* r- u U u: | ||||
* ; b d dZ dZ; f g | |||||
h j k l l^ m n N | |||||
n^ p r R R2 s S t | |||||
tS ts tS; v x z Z | |||||
* ; b d dZ dz dZ; f | |||||
g h j k l l^ m n | |||||
N n^ p r R R2 s S | |||||
t tS ts tS; v x z Z | |||||
Dictionary hi_dict | Dictionary hi_dict | ||||
uo | uo | ||||
: b c d dZ f g h | : b c d dZ f g h | ||||
j J k l l^ m n n^ | |||||
p r R R2 s S t tS | |||||
ts v x z Z | |||||
j J k l l^ m n N | |||||
n^ p r R R2 s S t | |||||
tS ts v z Z | |||||
Dictionary mk_dict | Dictionary mk_dict | ||||
e e: i I i: l- o o: | e e: i I i: l- o o: | ||||
oU r- u u: | oU r- u u: | ||||
* b d dZ dZ; f g h | |||||
j k k^ l l^ m n N | |||||
n^ p r R s S t tS | |||||
ts tS; v x z Z | |||||
* b d dZ dz dZ; f g | |||||
h j k k^ l l^ m n | |||||
N n^ p r R s S t | |||||
tS ts tS; v x z Z | |||||
Dictionary ml_dict | Dictionary ml_dict | ||||
y | y | ||||
: ; b c C d d; dZ | : ; b c C d d; dZ | ||||
dz; f g h j k l m | |||||
n N n^ p r R s S | |||||
s; S; t t; tS ts ts; tS; | |||||
v w x z Z Z; | |||||
dz dz; f g h j k l | |||||
m n N n^ p r R s | |||||
S s; S; t t; tS ts ts; | |||||
tS; v w x z Z Z; | |||||
Dictionary pt_dict | Dictionary pt_dict | ||||
l- l: o o: oU r- r: u | l- l: o o: oU r- r: u | ||||
u: | u: | ||||
* ; b d d; dZ f g | |||||
h j k l l^ m n N | |||||
n^ p r R R^ R^/ s S | |||||
t t; tS ts v x z Z | |||||
* ; b d d; dZ dz f | |||||
g h j k l l^ m n | |||||
N n^ p r R R^ R^/ s | |||||
S t t; tS ts v x z | |||||
Z | |||||
Dictionary sq_dict | Dictionary sq_dict |
_‼ Ekskla2m'eIS@nz | _‼ Ekskla2m'eIS@nz | ||||
_₠ jU@roU | _₠ jU@roU | ||||
@ _at_ | |||||
& _and | |||||
\ bakstroUk $max3 | \ bakstroUk $max3 | ||||
/ stroUk $max3 | / stroUk $max3 | ||||
?3 \ bakslaS $max3 | ?3 \ bakslaS $max3 | ||||
Bhutan bu:t'an | Bhutan bu:t'an | ||||
Bogota b0g@t'A: | Bogota b0g@t'A: | ||||
?3 Boston bOst@n | ?3 Boston bOst@n | ||||
Bucharest bu:k@r'Est | |||||
Bucharest bu:ka2r'Est | |||||
Budapest bu:d@p'Est | Budapest bu:d@p'Est | ||||
Buenos bweIn0s | Buenos bweIn0s | ||||
Burundi bUr'UndI | Burundi bUr'UndI | ||||
Egyptian IdZ'IpS@n | Egyptian IdZ'IpS@n | ||||
Eire e@r@ | Eire e@r@ | ||||
Geneva dZ@ni:v@ | Geneva dZ@ni:v@ | ||||
Harare h@rA:rI | |||||
Harare ha2rA:rI | |||||
Hanoi han'OI | Hanoi han'OI | ||||
Hawaii h@w'aIi: | Hawaii h@w'aIi: | ||||
Hawai'i h@w'aIi: | Hawai'i h@w'aIi: | ||||
Jerusalem dZ@ru:s@l@m | Jerusalem dZ@ru:s@l@m | ||||
Johannesburg $2 | Johannesburg $2 | ||||
Kalgoorlie kalgU@lI | Kalgoorlie kalgU@lI | ||||
Karachi k@rA@tSI | |||||
Karachi ka2rA@tSI | |||||
Kentucky $2 | Kentucky $2 | ||||
Kiev ki:Ev | Kiev ki:Ev | ||||
Khmer kmi@3 | Khmer kmi@3 | ||||
Taiwan taI'wan | Taiwan taI'wan | ||||
(tel aviv) t,El||a2v'i:v | (tel aviv) t,El||a2v'i:v | ||||
Tibet tI2b'Et | Tibet tI2b'Et | ||||
Totonto t@r0ntoU | |||||
Toronto t@r0ntoU | |||||
Timor ti:mo@ | Timor ti:mo@ | ||||
Tokyo toUkIoU | Tokyo toUkIoU | ||||
Toulouse tu:l'u:z | Toulouse tu:l'u:z |
r) anged (S1 d | r) anged (S1 d | ||||
perm) an @n | perm) an @n | ||||
ang (er aNg | ang (er aNg | ||||
h) ang (er aN | |||||
m) anoeu (v @nu: | m) anoeu (v @nu: | ||||
_qu) an 0n | _qu) an 0n | ||||
_w) an 0n | _w) an 0n | ||||
cla) ng (er Ng | cla) ng (er Ng | ||||
ta) ngi ndZI | ta) ngi ndZI | ||||
i) ng (er Ng | i) ng (er Ng | ||||
bi) ng (er ndZ | |||||
ri) ng (er N | |||||
si) ng (er N | |||||
bi) ng (er ndZ | |||||
gi) ng (er ndZ | gi) ng (er ndZ | ||||
o) ng (er Ng | o) ng (er Ng | ||||
you) ng (er Ng | you) ng (er Ng | ||||
: koUl@n | : koUl@n | ||||
D_) : (_DD_ // omit colon in time, eg: 2:30 | D_) : (_DD_ // omit colon in time, eg: 2:30 | ||||
$ d0l3 | $ d0l3 | ||||
@ at_: | |||||
& _!%and | |||||
!= n0ti:kw@Lz | != n0ti:kw@Lz | ||||
>= greIt@O@i:kw@L | >= greIt@O@i:kw@L | ||||
<= lEsO@i:kw@L | <= lEsO@i:kw@L |
__ subst@-*eko | __ subst@-*eko | ||||
~ tildo | ~ tildo | ||||
° gradoI | ° gradoI | ||||
% p@-*otsento | |||||
% p@-*otsento $max3 | |||||
@ _tSe_ | @ _tSe_ | ||||
& kaI | |||||
= egala | |||||
& _kaI | |||||
= egala $max3 | |||||
\ deklivo | \ deklivo | ||||
/ oblikvo | / oblikvo | ||||
| duktosigno | | duktosigno | ||||
* asteRisko | |||||
* asteRisko $max3 | |||||
© kopiRaIto | © kopiRaIto | ||||
_( R'ondak@-*'ampo | _( R'ondak@-*'ampo | ||||
_) f'eRmaRondak@-*'ampo | _) f'eRmaRondak@-*'ampo |
_> s'u:*empIk'uin | _> s'u:*empIk'uin | ||||
_- vi:va2 | _- vi:va2 | ||||
__ ala2vi:va2 | __ ala2vi:va2 | ||||
+ plus | |||||
+ plus $max3 | |||||
* asteriski $max3 | |||||
= 'yht&k'uin $max3 | |||||
% p@-*osent:I $max3 | |||||
/ kaut:a2 | / kaut:a2 | ||||
\ keno | \ keno | ||||
€ eu*o | € eu*o | ||||
£ punta2 | £ punta2 | ||||
¤ valu:t:a2 | ¤ valu:t:a2 | ||||
& et | |||||
@ &t | |||||
% p@-*osent:I | |||||
& _et | |||||
@ _&t | |||||
~ tilde | ~ tilde | ||||
_acu 'aku:t:I | _acu 'aku:t:I |
.group | .group | ||||
å o | å o | ||||
å o: | |||||
åå o: | |||||
š S | š S | ||||
ž Z | ž Z | ||||
$ dollarin | $ dollarin | ||||
* asteriski | |||||
= 'yht&k'uin | |||||
__) - (_D mi:nus | __) - (_D mi:nus | ||||
A_) - (_D _ | A_) - (_D _ | ||||
C_) - (_D _ | C_) - (_D _ |
_' a2postr'Of | _' a2postr'Of | ||||
_( 'uvR@-parA~t'Ez | _( 'uvR@-parA~t'Ez | ||||
_) f'Erm parA~t'Ez | _) f'Erm parA~t'Ez | ||||
_* asterisk: | |||||
_, virgyl | _, virgyl | ||||
_- tirE | _- tirE | ||||
_. _|pw%E~ | _. _|pw%E~ | ||||
// symbols that are normally spoken when reading text | // symbols that are normally spoken when reading text | ||||
@ arobaz | @ arobaz | ||||
% pursA~ | |||||
& e $u $brk | |||||
% pursA~ $max3 | |||||
* asterisk: $max3 | |||||
& _e | |||||
_& _e_komErsj'al | _& _e_komErsj'al | ||||
+ plys | |||||
+ plys $max3 | |||||
~ tilde | ~ tilde | ||||
€ @ro | € @ro | ||||
¢ sEnt | ¢ sEnt |
_lig l'ig&t,UR& | _lig l'ig&t,UR& | ||||
_acu 'akUt | _acu 'akUt | ||||
_ac2 dv'ostr**UkI;'akUt | _ac2 dv'ostr**UkI;'akUt | ||||
//_brv | |||||
_brv br**'Ev // ?? | |||||
_ced ts'EdIl& | _ced ts'EdIl& | ||||
_cir ts'iRkUmflEks | _cir ts'iRkUmflEks | ||||
_dia 'uml&Ut | _dia 'uml&Ut | ||||
_cap k'apIt&l // ?? use English until I find the correct word | _cap k'apIt&l // ?? use English until I find the correct word | ||||
© 'aUtoRsk&||pr*av& | © 'aUtoRsk&||pr*av& | ||||
% p'osto | |||||
+ plus | |||||
* zvj'ezdits& $max3 | |||||
= _j'edn&ko $max3 | |||||
% p'osto $max3 | |||||
+ plus $max3 | |||||
. totSk& $max3 | |||||
?4 . tatSk& $max3 | |||||
€ 'euRo | € 'euRo | ||||
?4 € 'evr*o | ?4 € 'evr*o | ||||
@ _'at | @ _'at | ||||
?2 ! 'uzvItSnIk | ?2 ! 'uzvItSnIk | ||||
: dv'ototSk& | : dv'ototSk& | ||||
?4 : dv'ot&tSk& | ?4 : dv'ot&tSk& | ||||
# br*'oj_ | |||||
/ kr*'oz_ | |||||
\\ b'EkslES | |||||
# br*'oj_ $max3 | |||||
/ kr*'oz_ $max3 | |||||
\ b'EkslES $max3 | |||||
^ ts'iRkumfleks | ^ ts'iRkumfleks | ||||
~ t'ild& | ~ t'ild& | ||||
¤ v'alut& | ¤ v'alut& |
$ d'ol&R | $ d'ol&R | ||||
. totSk& | |||||
?4 . tatSk& | |||||
. (. _: | |||||
\.) . | |||||
__) - (_D minus | __) - (_D minus | ||||
A_) - (_D _ | A_) - (_D _ | ||||
C_) - (_D _ | C_) - (_D _ | ||||
--) - | |||||
* zvj'ezdits& | |||||
*) * (* | |||||
** | |||||
**) * (_ _:: | |||||
= _j'edn&ko | |||||
= (== | |||||
=) = (= | |||||
==) = (_ _:: | |||||
.group 0xce // Greek letters | .group 0xce // Greek letters | ||||
_acu e:lES | _acu e:lES | ||||
_ac2 kEt:Y:S | _ac2 kEt:Y:S | ||||
_brv fe:lkYR2 | _brv fe:lkYR2 | ||||
//_ced // cedilla | |||||
_ced tse:dillE | |||||
_cir tsiR2kumflEks | _cir tsiR2kumflEks | ||||
_dia tR2e:mA | _dia tR2e:mA | ||||
//_dot // dot above | //_dot // dot above | ||||
ly Ellipsilon | ly Ellipsilon | ||||
ny En^ | ny En^ | ||||
_. pont | |||||
ä $accent | |||||
æ $accent | |||||
ç $accent | |||||
ñ $accent | |||||
ø $accent | |||||
ß _^_DE | |||||
. pont $max3 | |||||
* tS'illAg $max3 | |||||
% sa:zAle:k $max3 | |||||
+ plus $max3 | |||||
= EJEnlY:Se:g $max3 | |||||
@ kukAts | |||||
& e:SjEl | |||||
€ EuR2o | |||||
¶ bEkEzde:S | |||||
§ pAR2AgR2AfuS | |||||
~ tildE | |||||
^ hia:n^ | |||||
° fokjEl | |||||
Ft foR2int | Ft foR2int | ||||
_, vEss2Y: | |||||
_; pontoSvEss2Y: | |||||
_: kEt:Y:Spont | |||||
_! fElkia:lto: | |||||
_? ke:R2dY: | |||||
_- kYtY:jEl | |||||
__ Ala:hu:za:S | |||||
_' ApostR2o:f | |||||
_– nAJkYtY: | |||||
_— kviR2tmi:nus | |||||
_" ide:zY: | |||||
_( za:R2o: | |||||
_) za:R2o: | |||||
_[ s'YglEtES||z'a:R2o: | |||||
_] s'YglEtES||z'a:R2o: | |||||
_{ k'AptSoS||z'a:R2o: | |||||
_} k'AptSoS||z'a:R2o: | |||||
_# sa:mjEl | |||||
_… ha:R2_mASpont | |||||
_• di:spont | |||||
_\ viss2ApER2 | |||||
// Main Exceptions List | // Main Exceptions List | ||||
//===================== | //===================== |
ç tS | ç tS | ||||
ñ n^ | ñ n^ | ||||
ø Y | ø Y | ||||
% sa:zAle:k | |||||
@ kukAts | |||||
€ EuR2o | |||||
+ plus | |||||
§ pAR2AgR2AfuS | |||||
. pont | |||||
. (. _: | |||||
\.) . | |||||
* tS'illAg // asterisk | |||||
*) * (* | |||||
** | |||||
**) * (_ _:: |
tesser tess'ER | tesser tess'ER | ||||
uomini $1 | uomini $1 | ||||
// $alt = use ò or è in the stressed syllable | // $alt = use ò or è in the stressed syllable | ||||
// If the final vowel is omitted, then the rule applies to 'a' 'e' 'i' 'o' | // If the final vowel is omitted, then the rule applies to 'a' 'e' 'i' 'o' | ||||
$textmode | $textmode |
_} pRavy||n,av;as||klamR'Ovy | _} pRavy||n,av;as||klamR'Ovy | ||||
_' ap'OstROf | _' ap'OstROf | ||||
. kR'Opka | |||||
. kR'Opka $max3 | |||||
~ t'ylda | ~ t'ylda | ||||
= R'uvna||S;E | |||||
/ slES | |||||
* gv;'astka | |||||
\ b'EkslES | |||||
= R'uvna||S;E $max3 | |||||
/ slES $max3 | |||||
* gv;'astka $max3 | |||||
\ b'EkslES $max3 | |||||
| kR,Eska||p;On'Ova | | kR,Eska||p;On'Ova | ||||
# haS | |||||
# haS $max3 | |||||
_$ d'OlaR | _$ d'OlaR | ||||
% pR'OtsEnt | % pR'OtsEnt | ||||
^ d'aSEk // what's be better? | ^ d'aSEk // what's be better? | ||||
& and | & and | ||||
` 'aktsEnt | ` 'aktsEnt | ||||
@ m'awpa | @ m'awpa | ||||
+ plus | |||||
+ plus $max3 | |||||
// other characters | // other characters | ||||
_õ $accent | _õ $accent | ||||
_ú $accent | _ú $accent | ||||
_ü $accent | _ü $accent | ||||
ß _^_DE | |||||
v ve // not Roman numbers | v ve // not Roman numbers | ||||
x Sis# | x Sis# | ||||
_cap maI'uskulU | _cap maI'uskulU | ||||
_?A l'etR&_ | _?A l'etR&_ | ||||
_?? s'imbolU_ | _?? s'imbolU_ | ||||
?1 _#32 Sp'asU | ?1 _#32 Sp'asU | ||||
_#9 tab | _#9 tab | ||||
_. p'oNtU | |||||
* &ste*'iskU $max3 | |||||
= __igw'&l_ $max3 | |||||
. p'oNtU $max3 | |||||
+ maIs# $max3 | |||||
% pors'eINtU $max3 | |||||
& _'e_ | |||||
@ &x'ob& | |||||
¤ 'eU*U | |||||
€ 'eU*U | |||||
§ p&*'agRafU | |||||
_! ,eskl&mas'&U~ | _! ,eskl&mas'&U~ | ||||
_" 'asp&s# | _" 'asp&s# | ||||
?1 _# k,ardin'al | ?1 _# k,ardin'al | ||||
?2 _# k,ardZin'aU | ?2 _# k,ardZin'aU | ||||
_$ s,ifR'&U~ | _$ s,ifR'&U~ | ||||
_% pors'eINtU | |||||
_& 'e | _& 'e | ||||
?1 _' ap'Ostr,ofy | ?1 _' ap'Ostr,ofy | ||||
?2 _' &p'OstRofU | ?2 _' &p'OstRofU | ||||
_( ,abRipa*'eINtezy | _( ,abRipa*'eINtezy | ||||
_) f,ES&pa*'eINtezy | _) f,ES&pa*'eINtezy | ||||
_* &ste*'iskU | _* &ste*'iskU | ||||
_+ m'aIs# | |||||
_− m'enUs | |||||
_, v'irgul& | _, v'irgul& | ||||
_- 'ifeIN | _- 'ifeIN | ||||
?2 _= igw'aU | ?2 _= igw'aU | ||||
_> maI'Or | _> maI'Or | ||||
_? ,iNtex,ogas'&U~ | _? ,iNtex,ogas'&U~ | ||||
_@ &x'ob& | |||||
_[ ,abRikowS'etSi | _[ ,abRikowS'etSi | ||||
_\ b,ax&,iNvertS'id& | _\ b,ax&,iNvertS'id& | ||||
_] f,ES&kowS'etSi | _] f,ES&kowS'etSi |
ü u | ü u | ||||
ß s | ß s | ||||
% pors'eINtU | |||||
$ sifR'&U~ | $ sifR'&U~ | ||||
_r_) $ | _r_) $ | ||||
− m'enUs | |||||
+ maIs# | |||||
& 'e | |||||
@ &x'ob& | |||||
¤ 'eU*U | |||||
€ 'eU*U | |||||
§ p&*'agRafU | |||||
D_) º %o // ordinal | D_) º %o // ordinal | ||||
D_) ª %a // ordinal | D_) ª %a // ordinal | ||||
// don't speak multiple occurances of these symbols | |||||
, (D v'irgul& | , (D v'irgul& | ||||
. p'oNtU | |||||
. (. _: | |||||
\.) . | |||||
* &ste*'iskU | |||||
*) * (* | |||||
** | |||||
**) * (_ _:: | |||||
__) - (_D m'enUs | __) - (_D m'enUs | ||||
A_) - (_D _ | A_) - (_D _ | ||||
C_) - (_D _ | C_) - (_D _ | ||||
--) - | |||||
= __igw'&l_ | |||||
= (== | |||||
=) = (= | |||||
==) = (_ _:: | |||||
â ,ydin'a $atend | â ,ydin'a $atend | ||||
ă '@ $atend | ă '@ $atend | ||||
î ,ydin'i $atend | î ,ydin'i $atend | ||||
ö $accent | |||||
_?? ka*akt'er | _?? ka*akt'er | ||||
_cap maZusk'ul@ | _cap maZusk'ul@ | ||||
// punctuation and symbols | // punctuation and symbols | ||||
_. punkt | |||||
_, v'irgul@ | _, v'irgul@ | ||||
_: do'u@p'unkte | _: do'u@p'unkte | ||||
_; p'unkt||Siv'irgul@ | _; p'unkt||Siv'irgul@ | ||||
_#9 t'ab | _#9 t'ab | ||||
_#32 sp'atsiU | _#32 sp'atsiU | ||||
= eg'al | |||||
# dj'ez | |||||
+ plus | |||||
. punkt $max3 | |||||
* aste*isk $max3 | |||||
= eg'al $max3 | |||||
# dj'ez $max3 | |||||
+ plus $max3 | |||||
& ampersand | & ampersand | ||||
© k'apiraIt | © k'apiraIt | ||||
@ a*'ond | @ a*'ond | ||||
° g@-*ade | ° g@-*ade | ||||
// numeric | // numeric | ||||
//******** | //******** | ||||
_0 z'e*o | _0 z'e*o | ||||
_0Z2 s'utimi | _0Z2 s'utimi | ||||
_0Z3 m'iImi | _0Z3 m'iImi | ||||
// not Roman numbers | |||||
vi vi | |||||
vii viI | |||||
// Abbreviations | // Abbreviations | ||||
//************** | //************** |
.replace | .replace | ||||
ș ş | ș ş | ||||
ț ţ | ț ţ | ||||
Ș ş // because Windows doesn't convert upper-case Ș Ț to lower-case | |||||
Ț ţ | |||||
.group a | .group a | ||||
a a | a a | ||||
, (D v'irgul@ | , (D v'irgul@ | ||||
. punkt | |||||
. (. _: | |||||
\.) . | |||||
__) - (_D m'inus | __) - (_D m'inus | ||||
A_) - (_D _ | A_) - (_D _ | ||||
C_) - (_D _ | C_) - (_D _ | ||||
--) - | |||||
* aste*isk | |||||
*) * (* | |||||
** | |||||
**) * (_ _:: | |||||
_z zet | _z zet | ||||
ž Zet | ž Zet | ||||
ě $accent | |||||
// accent names | // accent names | ||||
_lig l'igat,u:Rov,ane: | _lig l'igat,u:Rov,ane: | ||||
_acu s_d'l:Zn^om | _acu s_d'l:Zn^om | ||||
_#32 'medzeRa | _#32 'medzeRa | ||||
_?A znak | _?A znak | ||||
* hviezda $max3 | |||||
+ plus $max3 | |||||
= Rovna:sa $max3 | |||||
@ zavina:tS | |||||
& ampeRsand | |||||
# kRi:Zik $max3 | |||||
_! vi:kRitSn^i:k | _! vi:kRitSn^i:k | ||||
_" u:vodzovki | _" u:vodzovki | ||||
_# kRi:Zik | |||||
_$ dola:R | _$ dola:R | ||||
_& ampeRsand | |||||
_' apostRof | _' apostRof | ||||
_( za:tvoRka | _( za:tvoRka | ||||
_) zatvoRit; | _) zatvoRit; | ||||
_* hviezda | |||||
+ plus | |||||
_, tSiaRka | _, tSiaRka | ||||
_- poml-tSka | _- poml-tSka | ||||
__ podtSiaRknutie | __ podtSiaRknutie | ||||
_: dvojbodka | _: dvojbodka | ||||
_; bodkotSiaRka | _; bodkotSiaRka | ||||
_< menSi: | _< menSi: | ||||
_= Rovna:sa | |||||
_> vetSSi: | _> vetSSi: | ||||
_? ota:zn^ik | _? ota:zn^ik | ||||
_@ zavina:tS | |||||
_[ hRanata:||za:tvoRka | _[ hRanata:||za:tvoRka | ||||
_\ opatSne:||lomeno | _\ opatSne:||lomeno | ||||
_] hRanata:||zatvoRit; | _] hRanata:||zatvoRit; | ||||
_0M1 t;'isi:ts | _0M1 t;'isi:ts | ||||
_1M1 t;'isi:ts | _1M1 t;'isi:ts | ||||
_2M1 dv'et;'isi:ts | _2M1 dv'et;'isi:ts | ||||
_0M2 m'ilio:n | |||||
_0M3 m'iljaRda | |||||
_0M2 m'ilio:nou // others, 5-9 | |||||
_0MA2 m'ilio:ni // for 2,3,4 million | |||||
_1M2 m'ilio:n // for 1 million | |||||
_0M3 m'iljaRt | |||||
_0MA3 m'iljaRdi | |||||
_1M3 m'iljaRda | |||||
_0M4 b'ilio:nou | |||||
_0MA4 b'ilio:ni | |||||
_1M4 b'ilio:n | |||||
_dpt _:tSj,arka_ | _dpt _:tSj,arka_ | ||||
_acu vURg'UimI | _acu vURg'UimI | ||||
_ac2 tS'IftvURg'UimI | _ac2 tS'IftvURg'UimI | ||||
_brv ku#s'altmaimI | _brv ku#s'altmaimI | ||||
_ced tSEnJ'El | |||||
_ced h'aRf | |||||
_cir Sapk'a | _cir Sapk'a | ||||
_dia Umla'Ut | _dia Umla'Ut | ||||
_dot YstnOkt'a | _dot YstnOkt'a | ||||
_& v'EiSa*et'I | _& v'EiSa*et'I | ||||
_* j'u#ldu#z | _* j'u#ldu#z | ||||
_@ kUjRUkl'U'a | _@ kUjRUkl'U'a | ||||
_\\ t'ERs||ej,IktSIzg'I | |||||
_\ t'ERs||ej,IktSIzg'I | |||||
¶ pa*agR'af | ¶ pa*agR'af | ||||
§ tSEnJ'El | § tSEnJ'El | ||||
° de*edZ'E | ° de*edZ'E | ||||
_# dij'Ez | _# dij'Ez | ||||
_~ jaklaS'u#k | _~ jaklaS'u#k | ||||
__ ,alttSIzg'I | __ ,alttSIzg'I | ||||
+ aRt'u# | |||||
€ avR'O | |||||
= ESIt $max3 | |||||
% jYzdE $max3 | |||||
+ aRtu# $max3 | |||||
€ avRO | |||||
_0 su#fu#R | _0 su#fu#R |
.group | .group | ||||
$ dolar | $ dolar | ||||
' (Pb % // split a word at ' and translate the first part separately. | |||||
' (Pb // split a word at ' and translate the first part separately. | |||||
new total | new total | ||||
base 103 103 | base 103 103 | ||||
base2 24 122 | base2 24 122 | ||||
en 51 149 | |||||
en_n 31 149 | |||||
en_us 36 150 | |||||
en 50 149 | |||||
en_n 32 149 | |||||
en_us 37 150 | |||||
en_sc 39 151 | en_sc 39 151 | ||||
en_rp 34 149 | en_rp 34 149 | ||||
en_wm 30 149 | |||||
en_wm 31 149 | |||||
en_wi 30 149 | en_wi 30 149 | ||||
af 39 135 | af 39 135 | ||||
cy 29 129 | cy 29 129 | ||||
hu 23 119 | hu 23 119 | ||||
lv 29 126 | lv 29 126 | ||||
nl 28 126 | nl 28 126 | ||||
pl 19 116 | |||||
sk 28 134 | |||||
cs 6 134 | |||||
hr 26 139 | |||||
mk 3 140 | |||||
sr 14 139 | |||||
pl 20 117 | |||||
sk 28 135 | |||||
cs 6 135 | |||||
hr 26 140 | |||||
mk 3 141 | |||||
sr 14 140 | |||||
ru 39 134 | ru 39 134 | ||||
it 17 125 | it 17 125 | ||||
la 21 121 | la 21 121 | ||||
tr 18 127 | tr 18 127 | ||||
ku 18 127 | ku 18 127 | ||||
id 15 124 | id 15 124 | ||||
sq 35 127 | |||||
hy 24 119 | |||||
rw 15 129 | rw 15 129 | ||||
ko 18 159 | ko 18 159 | ||||
da 15 133 | da 15 133 | ||||
sq 35 127 | |||||
ml 13 151 | ml 13 151 | ||||
kn 15 151 | kn 15 151 | ||||
bn 59 155 | bn 59 155 | ||||
ne 18 157 | ne 18 157 | ||||
hy 24 119 | |||||
om 25 125 | om 25 125 | ||||
en_klatt 77 149 | en_klatt 77 149 | ||||
ga 18 117 | ga 18 117 | ||||
[d.h] hi | [d.h] hi | ||||
[d] hu | [d] hu | ||||
[d] pl | [d] pl | ||||
[dz] pl | |||||
[d] hr | [d] hr | ||||
[d] ru | [d] ru | ||||
[d;] ro | [d;] ro | ||||
[d] id | [d] id | ||||
[d] sq | [d] sq | ||||
[dz] sq | [dz] sq | ||||
[dz] hy | |||||
[d] bn | [d] bn | ||||
[d.] bn | [d.] bn | ||||
[dz] hy | |||||
[d[] ga | [d[] ga | ||||
d/xd2 [d`] om | d/xd2 [d`] om | ||||
d/xd3 [dh] hi | d/xd3 [dh] hi | ||||
[n] da | [n] da | ||||
n/n_long_ [n] zh | n/n_long_ [n] zh | ||||
nn/_nn [N] base | nn/_nn [N] base | ||||
[N] en | |||||
[N] en_n | |||||
[N] en_wm | |||||
[N] zh | [N] zh | ||||
nn/nn_ [N] base | nn/nn_ [N] base | ||||
[N] en | |||||
[N] en_n | |||||
[N] en_wm | |||||
nn/nn@ [(@)] base | nn/nn@ [(@)] base | ||||
[(@)] en_klatt | [(@)] en_klatt | ||||
nn/nn#_ [N#] is | nn/nn#_ [N#] is | ||||
[z2] fr | [z2] fr | ||||
[s] es | [s] es | ||||
[s#] pt | [s#] pt | ||||
[s`] ko | |||||
[z] sq | [z] sq | ||||
[s`] ko | |||||
[s] en_klatt | [s] en_klatt | ||||
ufric/s_ [s] base | ufric/s_ [s] base | ||||
[z] base | [z] base | ||||
[k] sk | [k] sk | ||||
[k] el | [k] el | ||||
[k] zhy | [k] zhy | ||||
[k`] ko | |||||
[k] sq | [k] sq | ||||
[k] bn | |||||
[k] hy | [k] hy | ||||
[k`] ko | |||||
[k] bn | |||||
ustop/k_unasp_ [k] zh | ustop/k_unasp_ [k] zh | ||||
ustop/null [?] base | ustop/null [?] base | ||||
ustop/p [p] base | ustop/p [p] base | ||||
[p2] fr | [p2] fr | ||||
[ph] hi | [ph] hi | ||||
[ph] zh | [ph] zh | ||||
[ph] bn | |||||
[p#] hy | [p#] hy | ||||
[ph] bn | |||||
ustop/p_asp [bh] hi | ustop/p_asp [bh] hi | ||||
[ph] hi | [ph] hi | ||||
[p#] hy | [p#] hy | ||||
[p] la | [p] la | ||||
[p;] ro | [p;] ro | ||||
[p] sq | [p] sq | ||||
[p] bn | |||||
[ph] bn | |||||
[p] hy | [p] hy | ||||
[p#] hy | [p#] hy | ||||
[p] bn | |||||
[ph] bn | |||||
ustop/pr [p] base | ustop/pr [p] base | ||||
[p] base2 | [p] base2 | ||||
[p] fi | [p] fi | ||||
[p] hu | [p] hu | ||||
[p] la | [p] la | ||||
[p;] ro | [p;] ro | ||||
[p] bn | |||||
[ph] bn | |||||
[p] hy | [p] hy | ||||
[p#] hy | [p#] hy | ||||
[p] bn | |||||
[ph] bn | |||||
ustop/p_unasp [p] base | ustop/p_unasp [p] base | ||||
[p] base2 | [p] base2 | ||||
[p] fi | [p] fi | ||||
[p] la | [p] la | ||||
[p;] ro | [p;] ro | ||||
[p] zh | [p] zh | ||||
[p`] ko | |||||
[p] sq | [p] sq | ||||
[p] bn | |||||
[p] hy | [p] hy | ||||
[p`] ko | |||||
[p] bn | |||||
ustop/p_unasp_ [p] base2 | ustop/p_unasp_ [p] base2 | ||||
[p] fi | [p] fi | ||||
[p] hi | [p] hi | ||||
[p] la | [p] la | ||||
[p;] ro | [p;] ro | ||||
[p] sq | [p] sq | ||||
[p] bn | |||||
[p] hy | [p] hy | ||||
[p] bn | |||||
ustop/q [q] base | ustop/q [q] base | ||||
ustop/q_u [q] base | ustop/q_u [q] base | ||||
ustop/t [t] base | ustop/t [t] base | ||||
[t;] ro | [t;] ro | ||||
[t[] vi | [t[] vi | ||||
[t] sw | [t] sw | ||||
[t`] ko | |||||
[t] sq | [t] sq | ||||
[t] bn | |||||
[t] hy | [t] hy | ||||
[t`] ko | |||||
[t] bn | |||||
[t[] ga | [t[] ga | ||||
ustop/t_dnt2 [t[] vi | ustop/t_dnt2 [t[] vi | ||||
ustop/t_ejc [t`] om | ustop/t_ejc [t`] om | ||||
ustop/t_hi [t] hi | ustop/t_hi [t] hi | ||||
[t] sq | [t] sq | ||||
[t] hy | |||||
[t] bn | [t] bn | ||||
[th] bn | [th] bn | ||||
[t] hy | |||||
ustop/t_pzd [t;] pl | ustop/t_pzd [t;] pl | ||||
[t;] ru | [t;] ru | ||||
ustop/tr [t] base | ustop/tr [t] base | ||||
[ts] eo | [ts] eo | ||||
[ts] hu | [ts] hu | ||||
[ts] pl | [ts] pl | ||||
[dz] pl | |||||
[ts] ru | [ts] ru | ||||
[ts;] ro | [ts;] ro | ||||
[z] zhy | [z] zhy | ||||
[ts] hu | [ts] hu | ||||
[ts] lv | [ts] lv | ||||
[ts] pl | [ts] pl | ||||
[dz] pl | |||||
[ts] ru | [ts] ru | ||||
[ts;] ro | [ts;] ro | ||||
[ts] sq | [ts] sq | ||||
[ch] bn | [ch] bn | ||||
ustop/ts_pzd_ [c] hi | ustop/ts_pzd_ [c] hi | ||||
[c] hu | [c] hu | ||||
[c] bn | |||||
[c] hy | [c] hy | ||||
[c] bn | |||||
ustop/ts_pzd2 [c] hi | ustop/ts_pzd2 [c] hi | ||||
[c] hu | [c] hu | ||||
[c] hy | |||||
[c`] ko | [c`] ko | ||||
[c] bn | [c] bn | ||||
[c] hy | |||||
ustop/ts_pzd3 [tS;] hr | ustop/ts_pzd3 [tS;] hr | ||||
[dZ;] hr | [dZ;] hr | ||||
ustop/t_sr [d] sr | ustop/t_sr [d] sr | ||||
[aI] pt | [aI] pt | ||||
[a:I] vi | [a:I] vi | ||||
[aI] id | [aI] id | ||||
[aI] kn | |||||
[aI] hy | [aI] hy | ||||
[aI] kn | |||||
vdiph/ai_2 [aI] en | vdiph/ai_2 [aI] en | ||||
[aI] cy | [aI] cy | ||||
[aY] cy | [aY] cy | ||||
[EI] de | [EI] de | ||||
[EI] nl | [EI] nl | ||||
[EI] vi | [EI] vi | ||||
[eI] ne | |||||
[eI] hy | [eI] hy | ||||
[eI] ne | |||||
vdiph/eei_2 [eI] eo | vdiph/eei_2 [eI] eo | ||||
[ei] fi | [ei] fi | ||||
[ei] lv | [ei] lv | ||||
[@] en_rp | [@] en_rp | ||||
[V] cy | [V] cy | ||||
[@4] hi | [@4] hi | ||||
[@] hy | |||||
[@] ml | [@] ml | ||||
[@] kn | [@] kn | ||||
[@4] bn | [@4] bn | ||||
[@] hy | |||||
[@] ga | [@] ga | ||||
vowel/@- [@-] base | vowel/@- [@-] base | ||||
[r*] hr | [r*] hr | ||||
vowel/0_2 [0] en_n | vowel/0_2 [0] en_n | ||||
[O] pt_pt | [O] pt_pt | ||||
[o] sw | [o] sw | ||||
vowel/0_3 [O] en_sc | |||||
vowel/0_3 [O:] en_us | |||||
[O] en_sc | |||||
[0] en_rp | [0] en_rp | ||||
[A] hu | [A] hu | ||||
vowel/@_2 [@] vi | vowel/@_2 [@] vi | ||||
[@] nl | [@] nl | ||||
[@] no | [@] no | ||||
vowel/@_5 [W] fr | vowel/@_5 [W] fr | ||||
vowel/@_6 [@/] en_us | |||||
vowel/8 [o-] zh | vowel/8 [o-] zh | ||||
vowel/8_2 [U] en_us | vowel/8_2 [U] en_us | ||||
[8] sv | [8] sv | ||||
[a:] la | [a:] la | ||||
[a] is | [a] is | ||||
[A] zh | [A] zh | ||||
[A] da | |||||
[a] sq | [a] sq | ||||
[A] da | |||||
vowel/a#_3 [a2] en | vowel/a#_3 [a2] en | ||||
[a2] en_n | [a2] en_n | ||||
[a2] en_us | [a2] en_us | ||||
[A] zh | [A] zh | ||||
vowel/aa_3 [A:] af | vowel/aa_3 [A:] af | ||||
[A] sq | [A] sq | ||||
vowel/aa_4 [O:] en_us | |||||
[A:] sv | |||||
vowel/aa_4 [A:] sv | |||||
[O] vi | [O] vi | ||||
vowel/aa_5 [A:] en_n | vowel/aa_5 [A:] en_n | ||||
[A:] en_wm | [A:] en_wm | ||||
[e] grc | [e] grc | ||||
[e] vi | [e] vi | ||||
[e] id | [e] id | ||||
[e] sq | |||||
[e] rw | [e] rw | ||||
[e#] rw | [e#] rw | ||||
[e] ko | [e] ko | ||||
[e] da | [e] da | ||||
[e] sq | |||||
[e] ml | [e] ml | ||||
[e:] ml | [e:] ml | ||||
[e:] kn | [e:] kn | ||||
[E] tr | [E] tr | ||||
[E] id | [E] id | ||||
[E2] id | [E2] id | ||||
[e] hy | |||||
[E] da | [E] da | ||||
[E] bn | [E] bn | ||||
[e] hy | |||||
vowel/e_mid2 [E] af | vowel/e_mid2 [E] af | ||||
[E] de | [E] de | ||||
[E2] de | [E2] de | ||||
[e] el | [e] el | ||||
[e] sw | [e] sw | ||||
[e] tr | [e] tr | ||||
[E] ko | |||||
[e#] sq | [e#] sq | ||||
[E] ko | |||||
[e] kn | [e] kn | ||||
[E] om | [E] om | ||||
[E#] om | [E#] om | ||||
[i] zhy | [i] zhy | ||||
[i] zh | [i] zh | ||||
[i] sw | [i] sw | ||||
[i] hy | |||||
[i] rw | [i] rw | ||||
[i#] rw | [i#] rw | ||||
[i] ko | [i] ko | ||||
[i:] ml | [i:] ml | ||||
[i:] kn | [i:] kn | ||||
[i] ne | [i] ne | ||||
[i] hy | |||||
[i:] om | [i:] om | ||||
[i:] ga | [i:] ga | ||||
vowel/i# [y:] cy | vowel/i# [y:] cy | ||||
[@2] bn | [@2] bn | ||||
[V] ne | [V] ne | ||||
[@/] ne | [@/] ne | ||||
vowel/@_low2 [@/] en_us | |||||
[@2] en_us | |||||
vowel/o [o] base2 | vowel/o [o] base2 | ||||
[o:] en | [o:] en | ||||
[oU] en_n | [oU] en_n | ||||
[o] grc | [o] grc | ||||
[o:] sv | [o:] sv | ||||
[o] id | [o] id | ||||
[o] hy | |||||
[o] rw | [o] rw | ||||
[o#] rw | [o#] rw | ||||
[o] ml | [o] ml | ||||
[o] kn | [o] kn | ||||
[o:] kn | [o:] kn | ||||
[o] bn | [o] bn | ||||
[o] hy | |||||
[o:] ga | [o:] ga | ||||
vowel/o_2 [o:] cy | vowel/o_2 [o:] cy | ||||
[o2] fr | [o2] fr | ||||
vowel/oe [W] en | vowel/oe [W] en | ||||
[W] af | [W] af | ||||
[W] de | [W] de | ||||
[W] da | |||||
[W] hy | [W] hy | ||||
[W] da | |||||
vowel/oe_2 [W] no | vowel/oe_2 [W] no | ||||
[W] tr | [W] tr | ||||
vowel/oe_4 [W] sv | vowel/oe_4 [W] sv | ||||
[u] is | [u] is | ||||
[u] zhy | [u] zhy | ||||
[u] zh | [u] zh | ||||
[u] hy | |||||
[u] rw | [u] rw | ||||
[u#] rw | [u#] rw | ||||
[u] ko | [u] ko | ||||
[u:] bn | [u:] bn | ||||
[u] ne | [u] ne | ||||
[u] hy | |||||
[u:] ga | [u:] ga | ||||
vowel/u_bck2 [u:] la | vowel/u_bck2 [u:] la | ||||
[u] sq | [u] sq |
endphoneme | endphoneme | ||||
phoneme N | |||||
vcd vel nasal | |||||
vowelout f1=3 f2=2300 300 400 f3=-200 80 len=40 rms=20 brk | |||||
length 100 | |||||
formants NULL | |||||
after _ nn/_nn | |||||
before _ nn/nn_ | |||||
lengthmod 8 // longer than 'n' | |||||
linkout g- | |||||
endphoneme | |||||
phoneme l | phoneme l | ||||
liquid | liquid | ||||
length 100 | length 100 |
phoneme N | |||||
vcd vel nasal | |||||
vowelout f1=3 f2=2300 300 400 f3=-200 80 len=40 rms=20 brk | |||||
length 100 | |||||
formants NULL | |||||
after _ nn/_nn | |||||
before _ nn/nn_ | |||||
lengthmod 8 // longer than 'n' | |||||
linkout g- | |||||
endphoneme | |||||
//******************************************************************* | //******************************************************************* | ||||
// VOWELS | // VOWELS |
//******************************************************************* | //******************************************************************* | ||||
// VOWELS | // VOWELS | ||||
//******************************************************************* | //******************************************************************* | ||||
formants vwl_en_us/3_us | formants vwl_en_us/3_us | ||||
unstressed | unstressed | ||||
linkout r- | linkout r- | ||||
// beforevowel @ | |||||
length 210 | length 210 | ||||
endphoneme | endphoneme | ||||
vowel starttype (@) endtype (@) | vowel starttype (@) endtype (@) | ||||
formants vowel/@_4 | formants vowel/@_4 | ||||
unstressed | unstressed | ||||
before_r 3 | |||||
length 130 | length 130 | ||||
endphoneme | endphoneme | ||||
phoneme @/ // Schwa, end of word | phoneme @/ // Schwa, end of word | ||||
vowel starttype (@) endtype (@) | vowel starttype (@) endtype (@) | ||||
formants vowel/@_6 | |||||
formants vowel/@_low2 | |||||
unstressed | unstressed | ||||
length 130 | length 130 | ||||
endphoneme | endphoneme | ||||
phoneme @2 // Schwa, changes to I before a vowel | |||||
vowel starttype (@) endtype (@) | |||||
formants vowel/@_low2 | |||||
unstressed | |||||
beforevowel I2 | |||||
length 120 | |||||
endphoneme | |||||
phoneme @L | phoneme @L | ||||
vowel starttype (@) endtype l | vowel starttype (@) endtype l | ||||
phoneme A@ // Used for [A:] when followed by 'r', becomes [A:]+[r] in American | phoneme A@ // Used for [A:] when followed by 'r', becomes [A:]+[r] in American | ||||
vowel starttype (a) endtype (@) | vowel starttype (a) endtype (@) | ||||
length 250 | |||||
length 260 | |||||
formants vwl_en_us/ar | formants vwl_en_us/ar | ||||
appendph r | appendph r | ||||
endphoneme | endphoneme | ||||
phoneme O: | phoneme O: | ||||
vowel starttype (a) endtype (a) | |||||
vowel starttype (o) endtype (o) | |||||
length 210 | length 210 | ||||
formants vowel/aa_4 | |||||
// formants vowel/aa_4 | |||||
formants vowel/0_3 | |||||
before r vwl_en_us/oor | before r vwl_en_us/oor | ||||
// before r vwl_en_us/or | |||||
reduceto @ 0 | reduceto @ 0 | ||||
endphoneme | endphoneme | ||||
phoneme O | phoneme O | ||||
vowel starttype (a) endtype (a) | |||||
vowel starttype (o) endtype (o) | |||||
length 200 | length 200 | ||||
formants vowel/aa# | formants vowel/aa# | ||||
reduceto @ 0 | reduceto @ 0 |
phoneme N | |||||
vcd vel nasal | |||||
vowelout f1=3 f2=2300 300 400 f3=-200 80 len=40 rms=20 brk | |||||
length 100 | |||||
formants NULL | |||||
after _ nn/_nn | |||||
before _ nn/nn_ | |||||
lengthmod 8 // longer than 'n' | |||||
linkout g- | |||||
endphoneme | |||||
//******************************************************************* | //******************************************************************* | ||||
// VOWELS | // VOWELS |
endphoneme | endphoneme | ||||
phoneme ts | phoneme ts | ||||
vls alv afr sibilant | vls alv afr sibilant | ||||
vowelin f1=0 f2=1700 -300 300 f3=-100 80 | vowelin f1=0 f2=1700 -300 300 f3=-100 80 | ||||
lengthmod 2 | lengthmod 2 | ||||
wave ustop/ts | wave ustop/ts | ||||
before _ ustop/ts_ | before _ ustop/ts_ | ||||
switchvoicing dz | |||||
endphoneme | |||||
phoneme dz | |||||
vcd alv afr sibilant | |||||
vowelin f1=1 f2=1700 -300 300 f3=-100 80 | |||||
vowelout f1=2 f2=1700 -300 300 f3=-100 80 | |||||
formants d/xd+ustop/ts | |||||
before _ d/xd+ustop/ts_ | |||||
after _ NULL | |||||
after @ d/xd | |||||
lengthmod 5 | |||||
switchvoicing ts | |||||
endphoneme | endphoneme | ||||
phoneme w | phoneme w | ||||
liquid | liquid | ||||
length 100 | length 100 |
phoneme r | phoneme r | ||||
liquid starttype #r endtype #r | liquid starttype #r endtype #r | ||||
rhotic | |||||
length 100 | length 100 | ||||
lengthmod 7 | lengthmod 7 | ||||
beforenotvowel r/ | beforenotvowel r/ | ||||
phonemetable id base2 | phonemetable id base2 | ||||
include ph_indonesian | include ph_indonesian | ||||
phonemetable sq base | |||||
include ph_albanian | |||||
phonemetable hy base | |||||
include ph_armenian | |||||
phonemetable rw base2 | phonemetable rw base2 | ||||
phonemetable da is | phonemetable da is | ||||
include ph_danish | include ph_danish | ||||
phonemetable sq base | |||||
include ph_albanian | |||||
phonemetable ml hi | phonemetable ml hi | ||||
include ph_malayalam | include ph_malayalam | ||||
phonemetable ne hi | phonemetable ne hi | ||||
include ph_nepali | include ph_nepali | ||||
phonemetable hy base | |||||
include ph_armenian | |||||
phonemetable om base | phonemetable om base | ||||
include ph_oromo | include ph_oromo | ||||
#define tBEFORENOTVOWEL 19 | #define tBEFORENOTVOWEL 19 | ||||
#define tBEFORENOTVOWEL2 20 | #define tBEFORENOTVOWEL2 20 | ||||
#define tSWITCHVOICING 21 | #define tSWITCHVOICING 21 | ||||
#define tBEFORE_R 22 | |||||
#define tLINKOUT 23 | #define tLINKOUT 23 | ||||
#define tVOWELIN 24 | #define tVOWELIN 24 | ||||
#define tSTRESSTYPE 32 | #define tSTRESSTYPE 32 | ||||
static const int flags_alternative[] = {phBEFOREVOWEL,phBEFOREVOWELPAUSE,phBEFORENOTVOWEL,phBEFORENOTVOWEL2,phSWITCHVOICING}; | |||||
static const int flags_alternative[] = {phBEFOREVOWEL,phBEFOREVOWELPAUSE,phBEFORENOTVOWEL,phBEFORENOTVOWEL2,phSWITCHVOICING,phBEFORE_R}; | |||||
extern void MakeVowelLists(void); | extern void MakeVowelLists(void); | ||||
extern void FindPhonemesUsed(void); | extern void FindPhonemesUsed(void); | ||||
{"beforevowelpause", tBEFOREVOWELPAUSE}, | {"beforevowelpause", tBEFOREVOWELPAUSE}, | ||||
{"beforenotvowel",tBEFORENOTVOWEL}, | {"beforenotvowel",tBEFORENOTVOWEL}, | ||||
{"beforenotvowel2",tBEFORENOTVOWEL2}, | {"beforenotvowel2",tBEFORENOTVOWEL2}, | ||||
{"before_r",tBEFORE_R}, | |||||
{"linkout",tLINKOUT}, | {"linkout",tLINKOUT}, | ||||
{"switchvoicing",tSWITCHVOICING}, | {"switchvoicing",tSWITCHVOICING}, | ||||
{"vowelin",tVOWELIN}, | {"vowelin",tVOWELIN}, | ||||
{"palatal", 0x2000000+phPALATAL}, | {"palatal", 0x2000000+phPALATAL}, | ||||
{"long", 0x2000000+phLONG}, | {"long", 0x2000000+phLONG}, | ||||
{"brkafter", 0x2000000+phBRKAFTER}, | {"brkafter", 0x2000000+phBRKAFTER}, | ||||
{"rhotic", 0x2000000+phRHOTIC}, | |||||
{"nonsyllabic",0x2000000+phNONSYLLABIC}, | {"nonsyllabic",0x2000000+phNONSYLLABIC}, | ||||
{"lengthenstop",0x2000000+phLENGTHENSTOP}, | {"lengthenstop",0x2000000+phLENGTHENSTOP}, | ||||
case tBEFORENOTVOWEL: | case tBEFORENOTVOWEL: | ||||
case tBEFORENOTVOWEL2: | case tBEFORENOTVOWEL2: | ||||
case tSWITCHVOICING: | case tSWITCHVOICING: | ||||
case tBEFORE_R: | |||||
ph->phflags |= flags_alternative[item - tBEFOREVOWEL]; | ph->phflags |= flags_alternative[item - tBEFOREVOWEL]; | ||||
if((phcode = NextItem(tPHONEMEMNEM)) == -1) | if((phcode = NextItem(tPHONEMEMNEM)) == -1) | ||||
phcode = LookupPhoneme(item_string,1); | phcode = LookupPhoneme(item_string,1); | ||||
n = sscanf(line_buf,"%f %f %d",&env_x[n_points],&env_y[n_points],&env_lin[n_points]); | n = sscanf(line_buf,"%f %f %d",&env_x[n_points],&env_y[n_points],&env_lin[n_points]); | ||||
if(n >= 2) | if(n >= 2) | ||||
{ | { | ||||
env_x[n_points] *= 1.28; // convert range 0-100 to 0-128 | |||||
env_x[n_points] *= (float)1.28; // convert range 0-100 to 0-128 | |||||
n_points++; | n_points++; | ||||
} | } | ||||
} | } |
static int compile_lettergroup(char *input, FILE *f_out) | static int compile_lettergroup(char *input, FILE *f_out) | ||||
{//===================================================== | {//===================================================== | ||||
char *p; | char *p; | ||||
char *p_start; | |||||
int group; | int group; | ||||
int ix; | |||||
int n_items; | |||||
int length; | |||||
int max_length = 0; | |||||
#define N_LETTERGP_ITEMS 200 | |||||
char *items[N_LETTERGP_ITEMS]; | |||||
char item_length[N_LETTERGP_ITEMS]; | |||||
p = input; | p = input; | ||||
if(!isdigit(p[0]) || !isdigit(p[1])) | if(!isdigit(p[0]) || !isdigit(p[1])) | ||||
fputc(group + 'A', f_out); | fputc(group + 'A', f_out); | ||||
letterGroupsDefined[group] = 1; | letterGroupsDefined[group] = 1; | ||||
for(;;) | |||||
n_items = 0; | |||||
while(n_items < N_LETTERGP_ITEMS) | |||||
{ | { | ||||
while(isspace2(*p)) p++; | while(isspace2(*p)) p++; | ||||
if(*p == 0) | if(*p == 0) | ||||
break; | break; | ||||
items[n_items] = p_start = p; | |||||
while((*p & 0xff) > ' ') | while((*p & 0xff) > ' ') | ||||
{ | { | ||||
fputc(*p++, f_out); | |||||
p++; | |||||
} | } | ||||
fputc(0,f_out); | |||||
*p++ = 0; | |||||
length = p - p_start; | |||||
if(length > max_length) | |||||
max_length = length; | |||||
item_length[n_items++] = length; | |||||
} | } | ||||
// write out the items, longest first | |||||
while(max_length > 1) | |||||
{ | |||||
for(ix=0; ix < n_items; ix++) | |||||
{ | |||||
if(item_length[ix] == max_length) | |||||
{ | |||||
fwrite(items[ix],1,max_length,f_out); | |||||
} | |||||
} | |||||
max_length--; | |||||
} | |||||
fputc(RULE_GROUP_END,f_out); | fputc(RULE_GROUP_END,f_out); | ||||
return(0); | return(0); |
{//==================================== | {//==================================== | ||||
// returns M, or perhaps MA for some cases | // returns M, or perhaps MA for some cases | ||||
if(((value % 100)>20) || ((value % 100)<10)) // but not teens, 10 to 19 | |||||
if((translator->langopts.numbers2 & 0x100) && (value >= 2) && (value <= 4)) | |||||
return("0MA"); // Czech, Slovak | |||||
else | |||||
if(((value % 100) < 10) || ((value % 100) > 20)) // but not teens, 10 to 19 | |||||
{ | { | ||||
if ((translator->langopts.numbers2 & 0x40) && | if ((translator->langopts.numbers2 & 0x40) && | ||||
((value % 10)>=2) && | ((value % 10)>=2) && |
#define phBEFORENOTVOWEL 0x0c00 | #define phBEFORENOTVOWEL 0x0c00 | ||||
#define phBEFORENOTVOWEL2 0x1000 | #define phBEFORENOTVOWEL2 0x1000 | ||||
#define phSWITCHVOICING 0x0800 | #define phSWITCHVOICING 0x0800 | ||||
#define phBEFORE_R 0x1400 | |||||
#define phNONSYLLABIC 0x100000 // don't count this vowel as a syllable when finding the stress position | #define phNONSYLLABIC 0x100000 // don't count this vowel as a syllable when finding the stress position | ||||
#define phLONG 0x200000 | #define phLONG 0x200000 | ||||
#define phLENGTHENSTOP 0x400000 // make the pre-pause slightly longer | #define phLENGTHENSTOP 0x400000 // make the pre-pause slightly longer | ||||
#define phRHOTIC 0x800000 | |||||
// fixed phoneme code numbers, these can be used from the program code | // fixed phoneme code numbers, these can be used from the program code | ||||
#define phonCONTROL 1 | #define phonCONTROL 1 |
if(next->type == phVOWEL) | if(next->type == phVOWEL) | ||||
alternative = ph->alternative_ph; | alternative = ph->alternative_ph; | ||||
break; | break; | ||||
case phBEFORE_R: | |||||
if(next->phflags & phRHOTIC) | |||||
{ | |||||
alternative = ph->alternative_ph; | |||||
} | |||||
break; | |||||
} | } | ||||
} | } | ||||
if(ph->phflags & phBEFOREPAUSE) | if(ph->phflags & phBEFOREPAUSE) |
} | } | ||||
if((attr2 = GetSsmlAttribute(px,"time")) != NULL) | if((attr2 = GetSsmlAttribute(px,"time")) != NULL) | ||||
{ | { | ||||
value = (attrnumber(attr2,0,1) * 25) / speed_factor1; // compensate for speaking speed to keep constant pause length | |||||
value = (attrnumber(attr2,0,1) * 25) / speed.speed_factor1; // compensate for speaking speed to keep constant pause length | |||||
if(terminator == 0) | if(terminator == 0) | ||||
terminator = CLAUSE_NONE; | terminator = CLAUSE_NONE; |
{ | { | ||||
// these are used in synthesis file | // these are used in synthesis file | ||||
s1 = (x * voice->speedf1)/256; | s1 = (x * voice->speedf1)/256; | ||||
speed_factor1 = (256 * s1)/115; // full speed adjustment, used for pause length | |||||
if(speed_factor1 < 15) | |||||
speed_factor1 = 15; | |||||
speed.speed_factor1 = (256 * s1)/115; // full speed adjustment, used for pause length | |||||
if(speed.speed_factor1 < 15) | |||||
speed.speed_factor1 = 15; | |||||
if(wpm >= 170) | if(wpm >= 170) | ||||
// speed_factor2 = 100 + (166*s1)/128; // reduced speed adjustment, used for playing recorded sounds | // speed_factor2 = 100 + (166*s1)/128; // reduced speed adjustment, used for playing recorded sounds | ||||
speed_factor2 = 110 + (150*s1)/128; // reduced speed adjustment, used for playing recorded sounds | |||||
speed.speed_factor2 = 110 + (150*s1)/128; // reduced speed adjustment, used for playing recorded sounds | |||||
else | else | ||||
speed_factor2 = 128 + (128*s1)/130; // = 215 at 170 wpm | |||||
speed.speed_factor2 = 128 + (128*s1)/130; // = 215 at 170 wpm | |||||
if(wpm2 > 369) | if(wpm2 > 369) | ||||
{ | { | ||||
if(wpm2 > 390) | if(wpm2 > 390) | ||||
wpm2 = 390; | wpm2 = 390; | ||||
speed_factor2 = faster[wpm2 - 370]; | |||||
speed.speed_factor2 = faster[wpm2 - 370]; | |||||
} | } | ||||
} | } | ||||
speed_min_sample_len = 450; | |||||
speed.min_sample_len = 450; | |||||
speed.speed_factor3 = 110; // controls the effect of FRFLAG_LEN_MOD reduce length change | |||||
if(wpm2 >= 370) | |||||
{ | |||||
// TESTING | |||||
// use experimental fast settings if they have been specified in the Voice | |||||
if(speed.fast_settings[0] > 0) | |||||
speed.speed_factor1 = speed.fast_settings[0]; | |||||
if(speed.fast_settings[1] > 0) | |||||
speed.speed_factor2 = speed.fast_settings[1]; | |||||
if(speed.fast_settings[2] > 0) | |||||
speed.speed_factor3 = speed.fast_settings[2]; | |||||
} | |||||
} // end of SetSpeed | } // end of SetSpeed | ||||
length_mod *= speed3; | length_mod *= speed3; | ||||
length_mod = length_mod / 128; | length_mod = length_mod / 128; | ||||
// if(length_mod < 9) | |||||
// length_mod = 9; // restrict how much lengths can be reduced | |||||
if(length_mod < 8) | if(length_mod < 8) | ||||
length_mod = 8; // restrict how much lengths can be reduced | length_mod = 8; // restrict how much lengths can be reduced | ||||
{ | { | ||||
// a pause phoneme, which has not been changed by the translation | // a pause phoneme, which has not been changed by the translation | ||||
name = '_'; | name = '_'; | ||||
len = (p->length * speed_factor1)/256; | |||||
len = (p->length * speed.speed_factor1)/256; | |||||
// if(len == 0) continue; | // if(len == 0) continue; | ||||
if(len == 0) | if(len == 0) | ||||
len = 1; | len = 1; | ||||
} | } | ||||
else | else | ||||
len = (80 * speed_factor2)/256; | |||||
len = (80 * speed.speed_factor2)/256; | |||||
#ifdef USE_MBROLA_LIB | #ifdef USE_MBROLA_LIB | ||||
MbrolaMarker(espeakEVENT_PHONEME, (p->sourceix & 0x7ff) + clause_start_char, 0, ph->mnemonic); | MbrolaMarker(espeakEVENT_PHONEME, (p->sourceix & 0x7ff) + clause_start_char, 0, ph->mnemonic); | ||||
break; | break; | ||||
case phVSTOP: | case phVSTOP: | ||||
len = (80 * speed_factor2)/256; | |||||
len = (80 * speed.speed_factor2)/256; | |||||
break; | break; | ||||
case phFRICATIVE: | case phFRICATIVE: |
#include "translate.h" | #include "translate.h" | ||||
#include "wave.h" | #include "wave.h" | ||||
const char *version_string = "1.39.42 17.Dec.08"; | |||||
const char *version_string = "1.39.48 19.Dec.08"; | |||||
const int version_phdata = 0x013900; | const int version_phdata = 0x013900; | ||||
int option_device_number = -1; | int option_device_number = -1; |
int mbrola_delay; | int mbrola_delay; | ||||
char mbrola_name[20]; | char mbrola_name[20]; | ||||
int speed_factor1; | |||||
int speed_factor2; | |||||
int speed_min_sample_len; | |||||
SPEED_FACTORS speed; | |||||
static int last_pitch_cmd; | static int last_pitch_cmd; | ||||
static int last_amp_cmd; | static int last_amp_cmd; | ||||
int len; | int len; | ||||
if(control == 0) | if(control == 0) | ||||
len = (pause * speed_factor1)/256; | |||||
len = (pause * speed.speed_factor1)/256; | |||||
else | else | ||||
len = (pause * speed_factor2)/256; | |||||
len = (pause * speed.speed_factor2)/256; | |||||
if(len < 5) len = 5; // mS, limit the amount to which pauses can be shortened | if(len < 5) len = 5; // mS, limit the amount to which pauses can be shortened | ||||
return(len); | return(len); | ||||
length = length1; | length = length1; | ||||
length = (length * speed_factor2)/256; | |||||
min_length = speed_min_sample_len; | |||||
length = (length * speed.speed_factor2)/256; | |||||
min_length = speed.min_sample_len; | |||||
if(format==0) | if(format==0) | ||||
min_length *= 2; | min_length *= 2; | ||||
length_factor = length_mod; | length_factor = length_mod; | ||||
if(frame1->frflags & FRFLAG_LEN_MOD) // reduce effect of length mod | if(frame1->frflags & FRFLAG_LEN_MOD) // reduce effect of length mod | ||||
{ | { | ||||
length_factor = (length_mod*4 + 256*3)/7; | |||||
length_factor = (length_mod*(256-speed.speed_factor3) + 256*speed.speed_factor3)/256; | |||||
} | } | ||||
len = (frame_length * samplerate)/1000; | len = (frame_length * samplerate)/1000; | ||||
len = (len * length_factor)/256; | len = (len * length_factor)/256; |
int control; | int control; | ||||
} MBROLA_TAB; | } MBROLA_TAB; | ||||
typedef struct { | |||||
int speed_factor1; | |||||
int speed_factor2; | |||||
int speed_factor3; | |||||
int min_sample_len; | |||||
int fast_settings[8]; | |||||
} SPEED_FACTORS; | |||||
// phoneme table | // phoneme table | ||||
extern PHONEME_TAB *phoneme_tab[N_PHONEME_TAB]; | extern PHONEME_TAB *phoneme_tab[N_PHONEME_TAB]; | ||||
extern unsigned char *envelope_data[18]; | extern unsigned char *envelope_data[18]; | ||||
extern int formant_rate[]; // max rate of change of each formant | extern int formant_rate[]; // max rate of change of each formant | ||||
extern int speed_factor1; | |||||
extern int speed_factor2; | |||||
extern int speed_min_sample_len; | |||||
extern SPEED_FACTORS speed; | |||||
extern long count_samples; | extern long count_samples; | ||||
extern int outbuf_size; | extern int outbuf_size; |
SetLetterBitsRange(tr,LETTERGP_F,0x3e,0x4c); // vowel signs, but not virama | SetLetterBitsRange(tr,LETTERGP_F,0x3e,0x4c); // vowel signs, but not virama | ||||
tr->langopts.numbers = 0x1; | tr->langopts.numbers = 0x1; | ||||
tr->langopts.numbers2 = 0x100; | |||||
tr->langopts.numbers2 = NUM2_100000; | |||||
} | } | ||||
break; | break; | ||||
tr->langopts.param[LOPT_COMBINE_WORDS] = 4; // combine some prepositions with the following word | tr->langopts.param[LOPT_COMBINE_WORDS] = 4; // combine some prepositions with the following word | ||||
tr->langopts.numbers = 0x0401 + 0x4000 + NUM_ROMAN; | tr->langopts.numbers = 0x0401 + 0x4000 + NUM_ROMAN; | ||||
tr->langopts.numbers2 = 0x40; | |||||
tr->langopts.numbers2 = 0x100; | |||||
tr->langopts.thousands_sep = 0; //no thousands separator | tr->langopts.thousands_sep = 0; //no thousands separator | ||||
tr->langopts.decimal_sep = ','; | tr->langopts.decimal_sep = ','; | ||||
if(name2 == L('c','s')) | if(name2 == L('c','s')) | ||||
{ | { | ||||
tr->langopts.numbers2 = 0x48; // variant numbers before milliards | |||||
tr->langopts.numbers2 = 0x108; // variant numbers before milliards | |||||
} | } | ||||
SetLetterVowel(tr,'y'); | SetLetterVowel(tr,'y'); |
// bit21= say "roman" after the number, not before | // bit21= say "roman" after the number, not before | ||||
int numbers; | int numbers; | ||||
#define NUM2_100000 0x100 // numbers for 100,000 and 10,000,000 | |||||
#define NUM2_100000a 0x500 // numbers for 100,000 and 1,000,000 | |||||
#define NUM2_100000 0x800 // numbers for 100,000 and 10,000,000 | |||||
#define NUM2_100000a 0xc00 // numbers for 100,000 and 1,000,000 | |||||
// bits 1-4 use variant form of numbers before thousands,millions,etc. | // bits 1-4 use variant form of numbers before thousands,millions,etc. | ||||
// bit6=(LANG=pl) two forms of plural, M or MA | // bit6=(LANG=pl) two forms of plural, M or MA | ||||
// bit7=(LANG-ru) use MB for 1 thousand, million, etc | // bit7=(LANG-ru) use MB for 1 thousand, million, etc | ||||
// bit8=(LANG=hi) special word for 100,000 and 10,000,000 | |||||
// bit8=(LANG=cs,sk) two forms of plural, M or MA | |||||
// bit9=(LANG=rw) say "thousand" and "million" before its number, not after | // bit9=(LANG=rw) say "thousand" and "million" before its number, not after | ||||
// bit10=(LANG=sw) special word for 100,000 and 1,000,000 | // bit10=(LANG=sw) special word for 100,000 and 1,000,000 | ||||
// bit11=(LANG=hi) special word for 100,000 and 10,000,000 | |||||
int numbers2; | int numbers2; | ||||
int max_roman; | int max_roman; |
espeak_VOICE voice_selected; | espeak_VOICE voice_selected; | ||||
#define V_NAME 1 | |||||
#define V_LANGUAGE 2 | |||||
#define V_GENDER 3 | |||||
#define V_TRANSLATOR 4 | |||||
#define V_PHONEMES 5 | |||||
#define V_DICTIONARY 6 | |||||
enum { | |||||
V_NAME = 1, | |||||
V_LANGUAGE, | |||||
V_GENDER, | |||||
V_TRANSLATOR, | |||||
V_PHONEMES, | |||||
V_DICTIONARY, | |||||
// these affect voice quality, are independent of language | // these affect voice quality, are independent of language | ||||
#define V_FORMANT 7 | |||||
#define V_PITCH 8 | |||||
#define V_ECHO 9 | |||||
#define V_FLUTTER 10 | |||||
#define V_ROUGHNESS 11 | |||||
#define V_CLARITY 12 | |||||
#define V_TONE 13 | |||||
#define V_VOICING 14 | |||||
#define V_BREATH 15 | |||||
#define V_BREATHW 16 | |||||
V_FORMANT, | |||||
V_PITCH, | |||||
V_ECHO, | |||||
V_FLUTTER, | |||||
V_ROUGHNESS, | |||||
V_CLARITY, | |||||
V_TONE, | |||||
V_VOICING, | |||||
V_BREATH, | |||||
V_BREATHW, | |||||
// these override defaults set by the translator | // these override defaults set by the translator | ||||
#define V_WORDGAP 17 | |||||
#define V_INTONATION 18 | |||||
#define V_STRESSLENGTH 19 | |||||
#define V_STRESSAMP 20 | |||||
#define V_STRESSADD 21 | |||||
#define V_DICTRULES 22 | |||||
#define V_STRESSRULE 23 | |||||
#define V_CHARSET 24 | |||||
#define V_NUMBERS 25 | |||||
#define V_OPTION 26 | |||||
#define V_MBROLA 27 | |||||
#define V_KLATT 28 | |||||
V_WORDGAP, | |||||
V_INTONATION, | |||||
V_STRESSLENGTH, | |||||
V_STRESSAMP, | |||||
V_STRESSADD, | |||||
V_DICTRULES, | |||||
V_STRESSRULE, | |||||
V_CHARSET, | |||||
V_NUMBERS, | |||||
V_OPTION, | |||||
V_MBROLA, | |||||
V_KLATT, | |||||
V_FAST, | |||||
// these need a phoneme table to have been specified | // these need a phoneme table to have been specified | ||||
#define V_REPLACE 29 | |||||
#define V_CONSONANTS 30 | |||||
V_REPLACE, | |||||
V_CONSONANTS | |||||
}; | |||||
{"mbrola", V_MBROLA}, | {"mbrola", V_MBROLA}, | ||||
{"consonants", V_CONSONANTS}, | {"consonants", V_CONSONANTS}, | ||||
{"klatt", V_KLATT}, | {"klatt", V_KLATT}, | ||||
{"fast_test", V_FAST}, | |||||
// these just set a value in langopts.param[] | // these just set a value in langopts.param[] | ||||
{"l_dieresis", 0x100+LOPT_DIERESES}, | {"l_dieresis", 0x100+LOPT_DIERESES}, | ||||
voice->consonant_amp = 100; | voice->consonant_amp = 100; | ||||
voice->consonant_ampv = 100; | voice->consonant_ampv = 100; | ||||
memset(voice->klatt,0,sizeof(voice->klatt)); | memset(voice->klatt,0,sizeof(voice->klatt)); | ||||
memset(speed.fast_settings,0,sizeof(speed.fast_settings)); | |||||
#ifdef PLATFORM_RISCOS | #ifdef PLATFORM_RISCOS | ||||
voice->roughness = 1; | voice->roughness = 1; | ||||
voice->klatt[KLATT_Kopen] -= 40; | voice->klatt[KLATT_Kopen] -= 40; | ||||
break; | break; | ||||
case V_FAST: | |||||
Read8Numbers(p,speed.fast_settings); | |||||
SetSpeed(2); | |||||
break; | |||||
default: | default: | ||||
if((key & 0xff00) == 0x100) | if((key & 0xff00) == 0x100) | ||||
{ | { |