Amplitude changes now apply also to mbrola voices. "voicing" attribute is now used in mbrola voice files to set the voice loudness. SSML commands such as <mark> and <prosody> were ignored if they were inside a multiword group (defined in *_list). This is now fixed so that the command is processed at the end of the group. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@267 d46cf337-b52f-0410-862d-fd96e6ae7743master
_] 'EkIg@kl'am3||ts'u: | _] 'EkIg@kl'am3||ts'u: | ||||
_< klaIn3 | _< klaIn3 | ||||
_> grY:s3 | _> grY:s3 | ||||
_« 'anfy:RUNsts,aIC@n | |||||
_» 'anfy:RUNsts,aIC@n||ts'u: | |||||
_` grA:v | _` grA:v | ||||
_^ tsIrkUmflEks | _^ tsIrkUmflEks | ||||
_— g@d'aNk@nStr,IC | _— g@d'aNk@nStr,IC | ||||
sondern $pause | sondern $pause | ||||
denn dEn $u+ $pause | denn dEn $u+ $pause | ||||
weil $pause | weil $pause | ||||
als $u+ $brk | |||||
als als $u+ $brk | |||||
bevor b@fo:r $2 $pause | bevor b@fo:r $2 $pause | ||||
also $pause | also $pause | ||||
wenn ,vEn $pause $strend | wenn ,vEn $pause $strend | ||||
war %vA:r $only | war %vA:r $only | ||||
warst %vA:rst $only | warst %vA:rst $only | ||||
wart %vA:rt $only | wart %vA:rt $only | ||||
waren 'vA:r@n | |||||
waren %vA:r@n | |||||
will %vIl $only | will %vIl $only | ||||
willst %vIlst $only | willst %vIlst $only | ||||
changier SaNZ'i:r | changier SaNZ'i:r | ||||
ciao tSaU | ciao tSaU | ||||
clique kli:k@ | |||||
coup ku: | coup ku: | ||||
dahlie $alt | dahlie $alt | ||||
erst e:rst | erst e:rst | ||||
ersten e:rst@n | ersten e:rst@n | ||||
erstmal e:rstma:l | erstmal e:rstma:l | ||||
erzgebirg e:rtsg@bIrg | |||||
extravagant $1 | extravagant $1 | ||||
extrem Ekstr'e:m | extrem Ekstr'e:m | ||||
.L01 l r | .L01 l r | ||||
.L02 c f h k p q s t z // unvoiced, except s+vowel | .L02 c f h k p q s t z // unvoiced, except s+vowel | ||||
.L03 a ä | .L03 a ä | ||||
.L04 o ö | |||||
// This file is UTF-8 encoded | // This file is UTF-8 encoded | ||||
a (CC a | a (CC a | ||||
a (sch a | a (sch a | ||||
a (x a | a (x a | ||||
a (ph A: | |||||
&CC) a (_ =A: | &CC) a (_ =A: | ||||
ai aI | ai aI | ||||
.group b | .group b | ||||
_) b (_ be: | _) b (_ be: | ||||
_) b (L01A b // allow bl br at start of word | _) b (L01A b // allow bl br at start of word | ||||
_) b (jA b // allow bj | |||||
b b | b b | ||||
b) b | b) b | ||||
b (_N p | b (_N p | ||||
b (L02 p | b (L02 p | ||||
blich plIC | |||||
b (sA b | b (sA b | ||||
bt (_N pt | bt (_N pt | ||||
c) c | c) c | ||||
ck k | ck k | ||||
_) c (el S | |||||
_) c (el ts | |||||
fa) c (et ts | fa) c (et ts | ||||
_) cey tsaI | _) cey tsaI | ||||
chef (_ SEf | chef (_ SEf | ||||
d) d | d) d | ||||
d (_N t | d (_N t | ||||
d (L02 t | d (L02 t | ||||
dlich tlIC | |||||
d (sA d | d (sA d | ||||
ds (_ ts | ds (_ ts | ||||
dt t | dt t | ||||
e (CC E | e (CC E | ||||
e (sch E | e (sch E | ||||
e (x E | e (x E | ||||
e (ph e: | |||||
ei aI | ei aI | ||||
eu OY | eu OY | ||||
h) ee (_ 'e: | h) ee (_ 'e: | ||||
_) e (ff %E | _) e (ff %E | ||||
l) e (g_ 'e: | l) e (g_ 'e: | ||||
kr) e (ier e: | |||||
eih (_ aI | eih (_ aI | ||||
_) eil (aP3 'aIl | _) eil (aP3 'aIl | ||||
_) eil (fP3 'aIl | _) eil (fP3 'aIl | ||||
g (g | g (g | ||||
g (_N k | g (_N k | ||||
g (L02 k | g (L02 k | ||||
glich klIC | |||||
g (sA g | g (sA g | ||||
gd (_N kt | gd (_N kt | ||||
_) gh (A g | _) gh (A g | ||||
ungs) ge (C@ g@ | ungs) ge (C@ g@ | ||||
_) ge (beX ge: | _) ge (beX ge: | ||||
geben ge:b@n | geben ge:b@n | ||||
ge(birg g@ | |||||
gebirge (_S7 g@bIrg@ | |||||
_) gegen (@P5 ge:g@n | _) gegen (@P5 ge:g@n | ||||
gegen ge:g@n | gegen ge:g@n | ||||
gegn ge:gn | gegn ge:gn | ||||
i (CC I | i (CC I | ||||
i (sch I | i (sch I | ||||
i (x I | i (x I | ||||
i (ph i: | |||||
@) i (ng I | @) i (ng I | ||||
&CC) i (_ =i: | &CC) i (_ =i: | ||||
_) leit (@P4 l'aIt | _) leit (@P4 l'aIt | ||||
_) lern (@@P4 l'Ern | _) lern (@@P4 l'Ern | ||||
_) lexi (@ lEksi: | _) lexi (@ lEksi: | ||||
&) lich (_S4 lIC | |||||
&) liche (_S5 lIC@ | |||||
&) lichem (_S6 lIC@m | |||||
&) lichen (_S6 lIC@n | |||||
&) licher (_S6 lIC3 | |||||
&) liches (_S6 lIC@s | |||||
&) lichere (_S7 lIC@r@ | |||||
&) licherem (_S8 lIC@r@m | |||||
&) licheren (_S8 lIC@r@n | |||||
&) licherer (_S8 lIC@r@3 | |||||
&) licheres (_S8 lIC@r@s | |||||
&) lichste (_S7 lICst@ | |||||
&) lichstem (_S8 lICst@m | |||||
&) lichsten (_S8 lICst@n | |||||
&) lichster (_S8 lICst@r | |||||
&) lichstes (_S8 lICst@s | |||||
&) lichkeit (_S8 lICkaIt | |||||
&) lichung (_S7 lIC%UN | |||||
&) lich (_S4 l2IC // [l2] means devoice previous consonant | |||||
&) liche (_S5 l2IC@ | |||||
&) lichem (_S6 l2IC@m | |||||
&) lichen (_S6 l2IC@n | |||||
&) licher (_S6 l2IC3 | |||||
&) liches (_S6 l2IC@s | |||||
&) lichere (_S7 l2IC@r@ | |||||
&) licherem (_S8 l2IC@r@m | |||||
&) licheren (_S8 l2IC@r@n | |||||
&) licherer (_S8 l2IC@r@3 | |||||
&) licheres (_S8 l2IC@r@s | |||||
&) lichste (_S7 l2ICst@ | |||||
&) lichstem (_S8 l2ICst@m | |||||
&) lichsten (_S8 l2ICst@n | |||||
&) lichster (_S8 l2ICst@r | |||||
&) lichstes (_S8 l2ICst@s | |||||
&) lichkeit (_S8 l2ICkaIt | |||||
&) lichung (_S7 l2IC%UN | |||||
@) lo (gisch l'o: | @) lo (gisch l'o: | ||||
_) luft (CP4 l'Uft | _) luft (CP4 l'Uft | ||||
&) ness (_N _^_EN | &) ness (_N _^_EN | ||||
news _^_EN | news _^_EN | ||||
nieder ni:d3 | nieder ni:d3 | ||||
nord (L04st n%Ort | |||||
nord (west n%Ort | |||||
.group o | .group o | ||||
_) o (_ o: | _) o (_ o: | ||||
o (CC O | o (CC O | ||||
o (sch O | o (sch O | ||||
o (x O | o (x O | ||||
o (ph o: | |||||
&CC) o (_ =o: | &CC) o (_ =o: | ||||
o (Co_ 'o: | o (Co_ 'o: | ||||
o (lo_ o: | o (lo_ o: | ||||
_) 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: | ||||
_) personen (@P8 pErs'o:n@n | |||||
_) personen (@P8 pErz'o:n@n | |||||
person p%Erzo:n | |||||
philie f'i:li: | philie f'i:li: | ||||
_) photo f,o:to: | _) photo f,o:to: | ||||
_) pro (@ %pro: | _) pro (@ %pro: | ||||
q k | q k | ||||
qu kv | qu kv | ||||
@) que (_ =k | @) que (_ =k | ||||
@) quen (_ =k@n | |||||
.group r | .group r | ||||
&C) sten (_S4 st@n | &C) sten (_S4 st@n | ||||
&C) ster (_S4 st3 | &C) ster (_S4 st3 | ||||
&C) stes (_S4 st@s | &C) stes (_S4 st@s | ||||
&n) st (_ st // needs more work | |||||
_be) st St | _be) st St | ||||
_ge) st St | _ge) st St | ||||
@) straße (_S6 str,A:s@ | @) straße (_S6 str,A:s@ | ||||
_) street _^_EN | _) street _^_EN | ||||
style _^_EN | style _^_EN | ||||
süd (L04st z%y:t | |||||
süd (west z%y:t | |||||
synthesi _^_EN | synthesi _^_EN | ||||
system z%Iste:m | |||||
system z%yste:m | |||||
s (system s | |||||
.group t | .group t | ||||
$ dOl'A: | $ dOl'A: | ||||
__) - (_D mi:nUs | __) - (_D mi:nUs | ||||
D_) - (_D daS | |||||
D_) - (_D StrIC | |||||
_) - (_D _ | _) - (_D _ | ||||
s2 t t2 tS ts v z Z | s2 t t2 tS ts v z Z | ||||
Dictionary de_dict 2011-05-14 | |||||
Dictionary de_dict 2011-05-23 | |||||
3 @ @- a A A: aI aU | 3 @ @- a A A: aI aU | ||||
A~ E E2 E: e: EI i I | A~ E E2 E: e: EI i I | ||||
u: W y y: Y: | u: W y y: Y: | ||||
* : ; b C d D dZ | * : ; b C d D dZ | ||||
f g g# h j k l m | |||||
n N p pF r s S t | |||||
tS ts v w x z Z | |||||
f g g# h j k l l2 | |||||
m n N p pF r R s | |||||
S t tS ts v w x z | |||||
Z | |||||
Dictionary el_dict 2011-05-19 | Dictionary el_dict 2011-05-19 | ||||
ts v x z | ts v x z | ||||
Dictionary en_dict 2011-05-18 | |||||
Dictionary en_dict 2011-05-24 | |||||
0 3 3: @ @- @2 @5 @L | 0 3 3: @ @- @2 @5 @L | ||||
a a# A: A@ aa aI aI@ aU | a a# A: A@ aa aI aI@ aU | ||||
s2 t v w Z | s2 t v w Z | ||||
Dictionary fr_dict 2011-04-15 | |||||
Dictionary fr_dict 2011-05-21 | |||||
@ @- a A~ e E E: E~ | @ @- a A~ e E E: E~ | ||||
i I o O O~ u u: w | i I o O O~ u u: w | ||||
t. th th. v w x z | t. th th. v w x z | ||||
Dictionary ta_dict 2011-05-08 | |||||
Dictionary ta_dict 2011-05-23 | |||||
a a: aI aU e E e: i | a a: aI aU e E e: i | ||||
I i: o o: u U u2 u: | I i: o o: u U u2 u: |
/ | |||||
// *************************************************************************** | // *************************************************************************** | ||||
// * Copyright (C) 2005 to 2010 by Jonathan Duddington * | // * Copyright (C) 2005 to 2010 by Jonathan Duddington * | ||||
// * email: [email protected] * | // * email: [email protected] * |
// French translation rules for Espeak | // French translation rules for Espeak | ||||
// *************************************************************************** | // *************************************************************************** | ||||
// * Copyright (C) 2005 to 2010 by Jonathan Duddington * | |||||
// * Copyright (C) 2005 to 2011 by Jonathan Duddington * | |||||
// * email: [email protected] * | // * email: [email protected] * | ||||
// * * | // * * | ||||
// * This program is free software; you can redistribute it and/or modify * | // * This program is free software; you can redistribute it and/or modify * | ||||
// http://www.fluxnic.net/cicero | // http://www.fluxnic.net/cicero | ||||
// | // | ||||
// Rules are now maintained by Michel Such <[email protected]> | // Rules are now maintained by Michel Such <[email protected]> | ||||
// Last update: 2011-04-15 Michel Such <[email protected]> | |||||
// Last update: 2011-05-20 Michel Such <[email protected]> | |||||
// | // | ||||
// Letter classes: | // Letter classes: | ||||
.L14 be in up ut | .L14 be in up ut | ||||
.L15 c f g h | .L15 c f g h | ||||
// Hours | |||||
.L16 0 1 2 3 4 5 6 7 8 9 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | |||||
// Minutes | |||||
.L17 0 1 2 3 4 5 | |||||
.group a | .group a | ||||
// symbols that are normally spoken when reading text | // symbols that are normally spoken when reading text | ||||
// , (D pilk:u | // , (D pilk:u | ||||
_L16_) : (_L17D_ Wr // Say time | |||||
$ dOlar | $ dOlar | ||||
° d@gre | ° d@gre | ||||
_n_) ° // n° | _n_) ° // n° |
போரடிக்காம $alt | போரடிக்காம $alt | ||||
பரத் $alt | பரத் $alt | ||||
பாஷா $alt | பாஷா $alt | ||||
பூட் $alt | |||||
படுக $alt | |||||
படுகா $alt | |||||
(பி . ஏ) bije: | (பி . ஏ) bije: | ||||
_) க (ந்தர்வ gV | _) க (ந்தர்வ gV | ||||
_) க (னக்க gV | _) க (னக்க gV | ||||
_) க (னத் gV | _) க (னத் gV | ||||
_) க (னபாடி gV | |||||
_) க (னம gV | _) க (னம gV | ||||
_) கப் (L04ா gVp | _) கப் (L04ா gVp | ||||
_) கப்ச (ிப் gVptS | _) கப்ச (ிப் gVptS | ||||
_) க (ானா g | _) க (ானா g | ||||
க (ாரன k | க (ாரன k | ||||
க (ாரர k | க (ாரர k | ||||
_) க (ார்டன g | |||||
_) க (ிடுகிடு g | _) க (ிடுகிடு g | ||||
_) க (ின்னஸ g | _) க (ின்னஸ g | ||||
_) க (ின்னென்ற g | _) க (ின்னென்ற g | ||||
_) கி (ளாL04ை k | _) கி (ளாL04ை k | ||||
_) கி (ளாஸ்_ g | _) கி (ளாஸ்_ g | ||||
_) கிளிட kl.it.V# | _) கிளிட kl.it.V# | ||||
_) கிளிண்ட (ன klint.V | |||||
_) கி (ளினிக் k | _) கி (ளினிக் k | ||||
_) கிளிப் (_ kl.ip | _) கிளிப் (_ kl.ip | ||||
_) கி (ளிப்பில k | _) கி (ளிப்பில k | ||||
_தாலு) க (ா k | _தாலு) க (ா k | ||||
_ராதி) க (ா k | _ராதி) க (ா k | ||||
_லங்) க (ா k | _லங்) க (ா k | ||||
ஆஷி) க (ா k | |||||
இலா) க (ா k | இலா) க (ா k | ||||
_கீர்த்தி) க (ா k | _கீர்த்தி) க (ா k | ||||
_கேஷி) க (ா k | |||||
_தாலூ) க (ா k | _தாலூ) க (ா k | ||||
_தேவி) க (ா k | _தேவி) க (ா k | ||||
_யுரே) க (ா k | _யுரே) க (ா k | ||||
_மௌனி) க (ா k | _மௌனி) க (ா k | ||||
_ஸ்ரீலங்) க (ா k | _ஸ்ரீலங்) க (ா k | ||||
_ஹன்L04ி) க (ா k | _ஹன்L04ி) க (ா k | ||||
அனாமி) க (ா k | |||||
_ஹாங்) க (ாங் k | _ஹாங்) க (ாங் k | ||||
_தென்) க (ாசி k | _தென்) க (ாசி k | ||||
_நேர்) க (ாணல k | _நேர்) க (ாணல k | ||||
ச (ந்திர tSV | ச (ந்திர tSV | ||||
_ஹட்) ச (ன sV | _ஹட்) ச (ன sV | ||||
_வாட்) ச (ன sV | _வாட்) ச (ன sV | ||||
_டேவிட்) ச (ன sV | |||||
_) ச (ப்பா tSV | _) ச (ப்பா tSV | ||||
_) ச (ப்பி tSV | _) ச (ப்பி tSV | ||||
_) ச (ப்பு tSV | _) ச (ப்பு tSV | ||||
_) ச (ேலஞ் tS | _) ச (ேலஞ் tS | ||||
_) ச (ேஷ்டை tS | _) ச (ேஷ்டை tS | ||||
_) ச (ைத்திய tS | _) ச (ைத்திய tS | ||||
_) ச (ைனா tS | |||||
_) ச (ைனா_நேவால s | |||||
_) ச (ைனாவ tS | _) ச (ைனாவ tS | ||||
_) ச (ைனீஸ tS | _) ச (ைனீஸ tS | ||||
_) ச (ௌதரி tS | _) ச (ௌதரி tS | ||||
//sort | //sort | ||||
_வால்) ட t.V# | |||||
_கமெண்) ட t.V# | _கமெண்) ட t.V# | ||||
_ரிப்போர்) ட t.V# | _ரிப்போர்) ட t.V# | ||||
அL04ால்) ட t.V# | அL04ால்) ட t.V# | ||||
ங்) ட (ன t.V // -ington | ங்) ட (ன t.V // -ington | ||||
_நியூ) ட (ன t.V | _நியூ) ட (ன t.V | ||||
_மில்) ட (ன t.V | _மில்) ட (ன t.V | ||||
_) ட (னல t.V | |||||
_) ட (ன் t.V | _) ட (ன் t.V | ||||
_) ட (ப்_ t.V | _) ட (ப்_ t.V | ||||
_) டப்ப (ில t.Vbb | _) டப்ப (ில t.Vbb | ||||
_) ட (யரு t.V | _) ட (யரு t.V | ||||
_) ட (யர் t.V | _) ட (யர் t.V | ||||
_ப்ரிண்) ட (ர t.V | _ப்ரிண்) ட (ர t.V | ||||
_ஷெல்) ட (ர t.V | |||||
_ஸ்கூ) ட (ர t.V | _ஸ்கூ) ட (ர t.V | ||||
என்கவுண்) ட (ர t.V | என்கவுண்) ட (ர t.V | ||||
என்கௌண்) ட (ர t.V | என்கௌண்) ட (ர t.V | ||||
_டியூ) ட (ி t. | _டியூ) ட (ி t. | ||||
_ட்யூ) ட (ி t. | _ட்யூ) ட (ி t. | ||||
_சேஃப்) ட (ி t. | _சேஃப்) ட (ி t. | ||||
_பேண்) ட (ி t. | |||||
_ராயல்) ட (ி t. | _ராயல்) ட (ி t. | ||||
_க்வாலி) ட (ி t. | _க்வாலி) ட (ி t. | ||||
_நாவல்) ட (ி t. | _நாவல்) ட (ி t. | ||||
_) டி (யூசன t. | _) டி (யூசன t. | ||||
_) டியூட (ி d.jU:t. | _) டியூட (ி d.jU:t. | ||||
_) டி (யூன t. | _) டி (யூன t. | ||||
_) டி (யூப t. | |||||
_) டி (யூஷன t. | _) டி (யூஷன t. | ||||
_) டி (ரங் t. | _) டி (ரங் t. | ||||
_) டி (ரங்கு t. | _) டி (ரங்கு t. | ||||
_) டி (ரெயின t. | _) டி (ரெயின t. | ||||
_) டி (ரெய்லர t. | _) டி (ரெய்லர t. | ||||
_) டி (ரெஸ d. | _) டி (ரெஸ d. | ||||
இண்) டி (ரெஸ்ட t. | |||||
_) டிரேயின (ை t.re:jn | _) டிரேயின (ை t.re:jn | ||||
_) டி (ரை_ d. | _) டி (ரை_ d. | ||||
_) டி (ரை_செஞ்ச t. | _) டி (ரை_செஞ்ச t. | ||||
_) டோரண்ட (ோ t.o:rVn.t. | _) டோரண்ட (ோ t.o:rVn.t. | ||||
_ப்ரி) ட (ோரிய t. | _ப்ரி) ட (ோரிய t. | ||||
@மெண்) ட் t. // -ment | @மெண்) ட் t. // -ment | ||||
_பேண்) ட் t. | |||||
இண்டர்நெ) ட் t. | இண்டர்நெ) ட் t. | ||||
_ல) ட்ட d.d.V# | _ல) ட்ட d.d.V# | ||||
_ரெ) ட்ட (ியா d.d. | _ரெ) ட்ட (ியா d.d. | ||||
அப்பாயிண்) ட்மெண்ட t.men.t.V# | அப்பாயிண்) ட்மெண்ட t.men.t.V# | ||||
_) ட் (யூசன t. | _) ட் (யூசன t. | ||||
_) ட் (யூன t. | _) ட் (யூன t. | ||||
_) ட் (யூப t. | |||||
ஸ்) ட் (ர _|t. // ?? make t. distinct | ஸ்) ட் (ர _|t. // ?? make t. distinct | ||||
_) ட் (ரங் t. | _) ட் (ரங் t. | ||||
_) ட் (ரங்கு t. | _) ட் (ரங்கு t. | ||||
_) ட் (ராலி t. | _) ட் (ராலி t. | ||||
_) ட் (ராவல t. | _) ட் (ராவல t. | ||||
_) ட் (ராவெல t. | _) ட் (ராவெல t. | ||||
எண்) ட் (ரி t. | |||||
_) ட்ரிக (ர t.riggV | _) ட்ரிக (ர t.riggV | ||||
_) ட்ரிக் t.rik | _) ட்ரிக் t.rik | ||||
_) ட்ரிக்க (ர t.riggV | _) ட்ரிக்க (ர t.riggV | ||||
_போ) ட் (ரு t. | _போ) ட் (ரு t. | ||||
_) ட்ரெயி (லர t.rej | _) ட்ரெயி (லர t.rej | ||||
_) ட் (ரெய்லர t. | _) ட் (ரெய்லர t. | ||||
இண்) ட் (ரேஸ்ட t. | |||||
_) ட் (ரை_செஞ்ச t. | _) ட் (ரை_செஞ்ச t. | ||||
_) ட் (ரை_செய் t. | _) ட் (ரை_செய் t. | ||||
_) ட் (ரை_பண் t. | _) ட் (ரை_பண் t. | ||||
_) த (டிமாட dV | _) த (டிமாட dV | ||||
_) த (டியன dV | _) த (டியன dV | ||||
_) த (டியர dV | _) த (டியர dV | ||||
_) த (டியான dV | |||||
_) த (ட்சசீல dV | _) த (ட்சசீல dV | ||||
_) த (ட்சன dV | _) த (ட்சன dV | ||||
_) த (ட்சிண dV | _) த (ட்சிண dV | ||||
_) த (ேச d | _) த (ேச d | ||||
_) த (ேவகான d | _) த (ேவகான d | ||||
_) த (ேவகி d | _) த (ேவகி d | ||||
_) த (ேவகுரு d | |||||
_) த (ேவகுல d | _) த (ேவகுல d | ||||
_) த (ேவக் d | _) த (ேவக் d | ||||
_) த (ேவசேன d | _) த (ேவசேன d | ||||
_பிர) த (ீ t | _பிர) த (ீ t | ||||
த (ுறை t | த (ுறை t | ||||
வீண்) த (ேவை t | வீண்) த (ேவை t | ||||
_நிவேதி) த (ை t | |||||
வீண்) த (ொல்லை t | வீண்) த (ொல்லை t | ||||
அம்பே) த்க tkV# | அம்பே) த்க tkV# | ||||
யு) த்த ddV# | யு) த்த ddV# | ||||
வி) த்த (ையால்_ dd | வி) த்த (ையால்_ dd | ||||
வி) த்த (ையி dd | வி) த்த (ையி dd | ||||
வி) த்த (ையை dd | வி) த்த (ையை dd | ||||
_ஜெ) த் (மலானி t | |||||
ச) த (்ய t | ச) த (்ய t | ||||
நி) த (்ய t | நி) த (்ய t | ||||
இ) த் (யாதி t | இ) த் (யாதி t | ||||
_) ப (ச்சன bV | _) ப (ச்சன bV | ||||
_) ப (ச்சான bV | _) ப (ச்சான bV | ||||
_) ப (ஜ bV | _) ப (ஜ bV | ||||
_) ப (டுகாக்கள bV | |||||
_) ப (டுகாவ bV | |||||
_) ப (ட்சண bV | _) ப (ட்சண bV | ||||
_) ப (ட்சிக்க bV | _) ப (ட்சிக்க bV | ||||
_) ப (ட்சிப்ப bV | _) ப (ட்சிப்ப bV | ||||
_) ப (ர்கர bV | _) ப (ர்கர bV | ||||
_) ப (ர்த் bV | _) ப (ர்த் bV | ||||
_) ப (ர்னாலா bV | _) ப (ர்னாலா bV | ||||
_) பர்னிச (ர fVrnitSV | |||||
_) ப (ர்னிச்சர fV | |||||
_) ப (ர்மா bV | _) ப (ர்மா bV | ||||
_) ப (ர்லாங் fV | _) ப (ர்லாங் fV | ||||
_) ப (லகீன bV | _) ப (லகீன bV | ||||
_) ப (ாமாவ b | _) ப (ாமாவ b | ||||
_) ப (ாமினி b | _) ப (ாமினி b | ||||
_) ப (ாம்பே b | _) ப (ாம்பே b | ||||
_ஆடு_) ப (ாம்பே p | |||||
_விளையாடு_) ப (ாம்பே p | |||||
_) ப (ாரத b | _) ப (ாரத b | ||||
_) ப (ாரதி b | _) ப (ாரதி b | ||||
_) ப (ாரத்த b | _) ப (ாரத்த b | ||||
_) ப (ாரம b | _) ப (ாரம b | ||||
_) ப (ாரம்பரிய p | _) ப (ாரம்பரிய p | ||||
_) ப (ாரவி b | |||||
_) ப (ாராமுல்லா b | _) ப (ாராமுல்லா b | ||||
_) ப (ாரிஸ்டர b | _) ப (ாரிஸ்டர b | ||||
_) ப (ார்L04லோனா b | _) ப (ார்L04லோனா b | ||||
_) ப (ிட்டடி b | _) ப (ிட்டடி b | ||||
_) ப (ினாமி b | _) ப (ினாமி b | ||||
_) ப (ினிஷ f | _) ப (ினிஷ f | ||||
_) பின் (_லேடன b | |||||
_) ப (ின்லாந்த f | _) ப (ின்லாந்த f | ||||
_) பிப (ி bip | _) பிப (ி bip | ||||
_) ப (ிபிசி b // bbc | _) ப (ிபிசி b // bbc | ||||
_) பி (ராண்ட p | _) பி (ராண்ட p | ||||
_) பி (ராண்ட்_ b | _) பி (ராண்ட்_ b | ||||
_) பி (ராதித் p | _) பி (ராதித் p | ||||
_) பி (ராத்தல b | |||||
_) பி (ராந்தி_ b | _) பி (ராந்தி_ b | ||||
_) பி (ராந்தியங் p | _) பி (ராந்தியங் p | ||||
_) பி (ராந்தியத் p | _) பி (ராந்தியத் p | ||||
_) பி (ரிஸ்டல b | _) பி (ரிஸ்டல b | ||||
_) பிரிஸ்ப (ேன brisb | _) பிரிஸ்ப (ேன brisb | ||||
_) பிரு (கன்நளை bri | _) பிரு (கன்நளை bri | ||||
_) பி (ருகு b | |||||
_) பிரு (ந்தா bri | _) பிரு (ந்தா bri | ||||
_) பிரெஞ்ச fren^tSV# | _) பிரெஞ்ச fren^tSV# | ||||
_) பிரெட்ரிக் fred.rik | _) பிரெட்ரிக் fred.rik | ||||
_) பி (ரைல b | _) பி (ரைல b | ||||
_) பி (ரோகிதர p | _) பி (ரோகிதர p | ||||
_) பி (ரௌச b | _) பி (ரௌச b | ||||
_) பி (ரௌன b | |||||
_) ப (ில்டப் b | |||||
_) ப (ில்டிங் b | _) ப (ில்டிங் b | ||||
_) ப (ில்லியன b | _) ப (ில்லியன b | ||||
_) பி (ளவுஸ b | _) பி (ளவுஸ b | ||||
_) ப (ேகத் b | _) ப (ேகத் b | ||||
_) ப (ேகம b | _) ப (ேகம b | ||||
_) ப (ேக்கரி b | _) ப (ேக்கரி b | ||||
_) ப (ேங்க் b | |||||
_) ப (ேச்சலர b | _) ப (ேச்சலர b | ||||
_) ப (ேச்சிலர b | _) ப (ேச்சிலர b | ||||
_) ப (ேச்சுலர b | _) ப (ேச்சுலர b | ||||
_) ப (ொம்மன b | _) ப (ொம்மன b | ||||
_) ப (ொம்மல b | _) ப (ொம்மல b | ||||
_) ப (ொம்மை b | _) ப (ொம்மை b | ||||
_) ப (ோஃபோர் b | |||||
_) ப (ோக_L11 b | _) ப (ோக_L11 b | ||||
_) ப (ோகங்க b | _) ப (ோகங்க b | ||||
_) ப (ோகத்த b | _) ப (ோகத்த b | ||||
_) ப (ோன்கள f | _) ப (ோன்கள f | ||||
_) ப (ோன்ஸ்லே b | _) ப (ோன்ஸ்லே b | ||||
_) போப (ால bo:p | _) போப (ால bo:p | ||||
_) போப (ோர் bo:f | |||||
_) ப (ோரடிக்காமலா b | _) ப (ோரடிக்காமலா b | ||||
_) ப (ோரடிக்குத b | _) ப (ோரடிக்குத b | ||||
_) ப (ோரடிக்கும b | _) ப (ோரடிக்கும b | ||||
_) ப் (ரவுச b | _) ப் (ரவுச b | ||||
_) ப் (ரஷ் b | _) ப் (ரஷ் b | ||||
_) ப் (ரஸல்ஸ b | _) ப் (ரஸல்ஸ b | ||||
_) ப் (ராத்தல b | |||||
_) ப் (ரான்சிஸ்க f | _) ப் (ரான்சிஸ்க f | ||||
_) ப் (ரான்ஸ f | _) ப் (ரான்ஸ f | ||||
_) ப் (ராவ b | _) ப் (ராவ b | ||||
_) ப் (ரோக்கர b | _) ப் (ரோக்கர b | ||||
_) ப்ரோட (ான pro:t | _) ப்ரோட (ான pro:t | ||||
_) ப் (ரௌச b | _) ப் (ரௌச b | ||||
_) ப் (ரௌன b | |||||
_) ப் (ளவுஸ b | _) ப் (ளவுஸ b | ||||
_) ப் (ளோரிடா f | _) ப் (ளோரிடா f | ||||
_) ப் (ளௌஸ b | _) ப் (ளௌஸ b | ||||
கண்டு) ப (ிடி p | கண்டு) ப (ிடி p | ||||
திமிர்) ப (ிடி p | திமிர்) ப (ிடி p | ||||
ராவல்) ப (ிண்டி p | ராவல்) ப (ிண்டி p | ||||
_டால்) ப (ின f | |||||
ஒ) ப (ினியன p | ஒ) ப (ினியன p | ||||
அன்) ப (ின் b | அன்) ப (ின் b | ||||
_பண்) ப (ின் b | _பண்) ப (ின் b | ||||
இ (ரசிக்க | இ (ரசிக்க | ||||
இ (ரசித்த | இ (ரசித்த | ||||
இ (ரத்த | இ (ரத்த | ||||
இரப்ப (ர irVbbV | |||||
இ (ரயில | இ (ரயில | ||||
இ (ராக | இ (ராக | ||||
இ (ராச | இ (ராச |
name greek-ancient | |||||
language grc | |||||
gender male | |||||
stressLength 170 170 190 190 0 0 230 240 | |||||
dictrules 1 | |||||
words 3 | |||||
name lojban | |||||
language jbo | |||||
language pt 7 | language pt 7 | ||||
name brazil-mbrola-1 | name brazil-mbrola-1 | ||||
gender male | gender male | ||||
pitch 82 117 | pitch 82 117 | ||||
voicing 80 | |||||
dictrules 2 3 4 | dictrules 2 3 4 | ||||
language pt 7 | language pt 7 | ||||
name brazil-mbrola-3 | name brazil-mbrola-3 | ||||
gender male | gender male | ||||
pitch 82 117 | |||||
pitch 80 120 | |||||
dictrules 2 3 4 | dictrules 2 3 4 | ||||
voicing 120 | |||||
mbrola br3 ptbr_phtrans | mbrola br3 ptbr_phtrans | ||||
language pt 7 | language pt 7 | ||||
name brazil-mbrola-4 | name brazil-mbrola-4 | ||||
gender female | gender female | ||||
pitch 140 220 | pitch 140 220 | ||||
voicing 80 | |||||
dictrules 2 3 4 | dictrules 2 3 4 | ||||
dictionary hbs | dictionary hbs | ||||
dictrules 1 | dictrules 1 | ||||
voicing 150 | |||||
pitch 82 117 | pitch 82 117 | ||||
mbrola cr1 cr1_phtrans | mbrola cr1 cr1_phtrans |
name german-mbrola-2 | name german-mbrola-2 | ||||
language de 6 | language de 6 | ||||
gender male | gender male | ||||
voicing 80 | |||||
mbrola de2 de2_phtrans | mbrola de2 de2_phtrans | ||||
language de 6 | language de 6 | ||||
gender male | gender male | ||||
voicing 130 | |||||
mbrola de4 de4_phtrans | mbrola de4 de4_phtrans | ||||
language en 9 | language en 9 | ||||
gender male | gender male | ||||
voicing 130 | |||||
mbrola de4 de4_phtrans | mbrola de4 de4_phtrans | ||||
language de 7 | language de 7 | ||||
gender female | gender female | ||||
voicing 150 | |||||
pitch 140 220 | pitch 140 220 | ||||
mbrola de7 de6_phtrans 22050 | mbrola de7 de6_phtrans 22050 | ||||
language en 2 | language en 2 | ||||
gender male | gender male | ||||
voicing 150 | |||||
pitch 82 117 | pitch 82 117 | ||||
mbrola en1 en1_phtrans | mbrola en1 en1_phtrans |
dictrules 1 | dictrules 1 | ||||
stressLength 180 180 180 180 0 0 220 220 | stressLength 180 180 180 180 0 0 220 220 | ||||
pitch 82 117 | pitch 82 117 | ||||
voicing 70 | |||||
mbrola fr1 fr1_phtrans | mbrola fr1 fr1_phtrans | ||||
dictrules 1 | dictrules 1 | ||||
pitch 82 117 | pitch 82 117 | ||||
voicing 70 | |||||
mbrola fr1 fr1_phtrans | mbrola fr1 fr1_phtrans | ||||
dictrules 1 | dictrules 1 | ||||
pitch 140 220 | pitch 140 220 | ||||
voicing 90 | |||||
mbrola fr1 fr1_phtrans | mbrola fr1 fr1_phtrans | ||||
dictrules 1 | dictrules 1 | ||||
pitch 140 220 | pitch 140 220 | ||||
voicing 90 | |||||
mbrola fr1 fr1_phtrans | mbrola fr1 fr1_phtrans | ||||
gender male | gender male | ||||
pitch 82 117 | pitch 82 117 | ||||
voicing 65 | |||||
mbrola gr2 gr2_phtrans | mbrola gr2 gr2_phtrans |
gender male | gender male | ||||
pitch 82 117 | pitch 82 117 | ||||
voicing 65 | |||||
mbrola gr2 gr2_phtrans | mbrola gr2 gr2_phtrans |
gender female | gender female | ||||
pitch 140 220 | pitch 140 220 | ||||
voicing 160 | |||||
mbrola hu1 hu1_phtrans | mbrola hu1 hu1_phtrans |
gender female | gender female | ||||
pitch 140 220 | pitch 140 220 | ||||
voicing 160 | |||||
mbrola hu1 hu1_phtrans | mbrola hu1 hu1_phtrans |
language is 6 | language is 6 | ||||
gender male | gender male | ||||
voicing 180 | |||||
mbrola ic1 ic1_phtrans | mbrola ic1 ic1_phtrans | ||||
gender male | gender male | ||||
pitch 82 117 | pitch 82 117 | ||||
voicing 120 | |||||
mbrola id1 id1_phtrans | mbrola id1 id1_phtrans | ||||
gender male | gender male | ||||
pitch 82 117 | pitch 82 117 | ||||
voicing 65 | |||||
mbrola it3 it3_phtrans | mbrola it3 it3_phtrans | ||||
replace 03 i I // final unstressed "i" | replace 03 i I // final unstressed "i" |
gender female | gender female | ||||
pitch 140 220 | pitch 140 220 | ||||
voicing 60 | |||||
mbrola it4 it3_phtrans | mbrola it4 it3_phtrans | ||||
replace 03 i I // final unstressed "i" | replace 03 i I // final unstressed "i" |
gender male | gender male | ||||
pitch 82 117 | pitch 82 117 | ||||
voicing 130 | |||||
mbrola nl2 nl_phtrans | mbrola nl2 nl_phtrans | ||||
gender male | gender male | ||||
pitch 82 117 | pitch 82 117 | ||||
voicing 130 | |||||
mbrola nl2 nl_phtrans | mbrola nl2 nl_phtrans | ||||
gender female | gender female | ||||
pitch 140 220 | pitch 140 220 | ||||
voicing 120 | |||||
mbrola pl1 pl1_phtrans | mbrola pl1 pl1_phtrans |
language pt 7 | language pt 7 | ||||
name portugal-mbrola-1 | name portugal-mbrola-1 | ||||
gender female | gender female | ||||
pitch 140 220 | |||||
pitch 145 240 | |||||
dictrules 1 | dictrules 1 | ||||
voicing 70 | |||||
mbrola pt1 pt1_phtrans | mbrola pt1 pt1_phtrans | ||||
gender male | gender male | ||||
pitch 82 117 | pitch 82 117 | ||||
voicing 120 | |||||
mbrola sw1 sv_phtrans | mbrola sw1 sv_phtrans | ||||
gender male | gender male | ||||
pitch 82 117 | pitch 82 117 | ||||
voicing 120 | |||||
mbrola sw1 sv_phtrans | mbrola sw1 sv_phtrans | ||||
gender female | gender female | ||||
pitch 140 220 | pitch 140 220 | ||||
voicing 130 | |||||
mbrola sw2 sv2_phtrans | mbrola sw2 sv2_phtrans | ||||
gender female | gender female | ||||
pitch 140 220 | pitch 140 220 | ||||
voicing 130 | |||||
mbrola sw2 sv2_phtrans | mbrola sw2 sv2_phtrans | ||||
gender female | gender female | ||||
pitch 140 220 | pitch 140 220 | ||||
voicing 170 | |||||
mbrola tr2 tr1_phtrans | mbrola tr2 tr1_phtrans | ||||
dictrules 1 | dictrules 1 | ||||
stressLength 170 135 205 205 0 0 245 275 | stressLength 170 135 205 205 0 0 245 275 | ||||
pitch 82 117 | pitch 82 117 | ||||
voicing 80 | |||||
mbrola us2 us_phtrans | mbrola us2 us_phtrans |
stressLength 170 135 205 205 0 0 245 275 | stressLength 170 135 205 205 0 0 245 275 | ||||
voicing 150 | |||||
pitch 82 117 | pitch 82 117 | ||||
mbrola us3 us3_phtrans | mbrola us3 us3_phtrans |
en-wi 30 150 | en-wi 30 150 | ||||
af 39 136 | af 39 136 | ||||
cy 29 132 | cy 29 132 | ||||
de 37 138 | |||||
de 41 139 | |||||
eo 13 114 | eo 13 114 | ||||
jbo 2 114 | jbo 2 114 | ||||
nci 3 123 | nci 3 123 | ||||
[l/] fr | [l/] fr | ||||
l/l_@ [l/3] base | l/l_@ [l/3] base | ||||
[l/] fr | [l/] fr | ||||
l/l@ [h†s] base | |||||
[l#] base | |||||
l/l@ [l#] base | |||||
[”¦] base | |||||
[l] fr | [l] fr | ||||
[l/2] fr | [l/2] fr | ||||
[K] nso | [K] nso | ||||
l/L2_uL [l/2] base | l/L2_uL [l/2] base | ||||
l/l_3 [l/] de | l/l_3 [l/] de | ||||
l/l_4 [ll] sq | l/l_4 [ll] sq | ||||
l/la [h†s] base | |||||
[l#] base | |||||
l/la [l#] base | |||||
[”¦] base | |||||
[l] fr | [l] fr | ||||
[l/2] fr | [l/2] fr | ||||
[K] nso | [K] nso | ||||
[K] tn | [K] tn | ||||
l/l_a [l/3] base | l/l_a [l/3] base | ||||
[l/] fr | [l/] fr | ||||
l/le [h†s] base | |||||
[l#] base | |||||
l/le [l#] base | |||||
[”¦] base | |||||
[l] fr | [l] fr | ||||
[l/2] fr | [l/2] fr | ||||
[K] nso | [K] nso | ||||
[&:] af | [&:] af | ||||
l/l_front [L] sq | l/l_front [L] sq | ||||
l/l_front_ [l/4] sq | l/l_front_ [l/4] sq | ||||
l/li [h†s] base | |||||
[l#] base | |||||
l/li [l#] base | |||||
[”¦] base | |||||
[l] fr | [l] fr | ||||
[l/2] fr | [l/2] fr | ||||
[l] zh | [l] zh | ||||
ll/_ll [L] bg | ll/_ll [L] bg | ||||
l/l_long [l] base | l/l_long [l] base | ||||
[l] fr | [l] fr | ||||
l/lo [h†s] base | |||||
[l#] base | |||||
l/lo [l#] base | |||||
[”¦] base | |||||
[l/2] fr | [l/2] fr | ||||
[K] nso | [K] nso | ||||
[K] tn | [K] tn | ||||
l^/l_rfx [l.] base | l^/l_rfx [l.] base | ||||
[l] ru | [l] ru | ||||
[l^] ru | [l^] ru | ||||
l/lu [h†s] base | |||||
[l#] base | |||||
l/lu [l#] base | |||||
[”¦] base | |||||
[l] fr | [l] fr | ||||
[l/2] fr | [l/2] fr | ||||
[K] nso | [K] nso |
volume 16 | |||||
0 l/2 NULL 0 l | 0 l/2 NULL 0 l | ||||
0 l/ NULL 0 l | 0 l/ NULL 0 l | ||||
0 r/ NULL 0 r | 0 r/ NULL 0 r |
volume 16 | |||||
0 l/2 NULL 0 l | 0 l/2 NULL 0 l | ||||
0 l/ NULL 0 l | 0 l/ NULL 0 l |
0 O~ NULL 0 o~ | 0 O~ NULL 0 o~ | ||||
16 _| VWL 0 ? | 16 _| VWL 0 ? | ||||
16 _! VWL 0 ? | |||||
//16 _! VWL 0 ? | |||||
// phonemes for English words | // phonemes for English words | ||||
0 @L NULL 0 L | 0 @L NULL 0 L |
//volume 29 | |||||
0 oU NULL 0 @U | 0 oU NULL 0 @U | ||||
0 a# NULL 0 @ | 0 a# NULL 0 @ | ||||
0 @2 NULL 0 @ | 0 @2 NULL 0 @ |
volume 15 | |||||
0 l/2 NULL 0 l | 0 l/2 NULL 0 l | ||||
0 l/ NULL 0 l | 0 l/ NULL 0 l | ||||
0 l2 NULL 0 l | 0 l2 NULL 0 l |
volume 16 | |||||
volume 15 | |||||
0 l/2 NULL 0 l | 0 l/2 NULL 0 l | ||||
0 l/ NULL 0 l | 0 l/ NULL 0 l |
volume 32 | |||||
0 l/2 NULL 0 l | 0 l/2 NULL 0 l | ||||
0 l/ NULL 0 l | 0 l/ NULL 0 l |
volume 32 | |||||
// CR1 doesn't like same phonemes twice | // CR1 doesn't like same phonemes twice | ||||
0 e E 5 e _ | 0 e E 5 e _ |
// for voices "it3" "it4" | // for voices "it3" "it4" | ||||
volume 15 | |||||
0 r/ NULL 0 r | 0 r/ NULL 0 r | ||||
0 w/ NULL 0 w | 0 w/ NULL 0 w |
volume 15 | |||||
0 l/ NULL 0 w | 0 l/ NULL 0 w | ||||
0 l/2 w 0 l | 0 l/2 w 0 l | ||||
0 l/2 j 0 l | 0 l/2 j 0 l |
volume 15 | |||||
0 l/ NULL 0 w | 0 l/ NULL 0 w | ||||
0 l/2 w 0 l | 0 l/2 w 0 l | ||||
0 l/2 j 0 l | 0 l/2 j 0 l |
0 aU@ NULL 70 A: u0 | 0 aU@ NULL 70 A: u0 | ||||
0 T VWL 0 th | 0 T VWL 0 th | ||||
0 T NULL 0 t | 0 T NULL 0 t | ||||
0 D NULL 0 z | |||||
0 D NULL 0 d | |||||
0 w NULL 0 v | 0 w NULL 0 v | ||||
0 z NULL 0 s | 0 z NULL 0 s | ||||
0 tS NULL 50 t rs | 0 tS NULL 50 t rs |
0 aU@ NULL 70 A: u0 | 0 aU@ NULL 70 A: u0 | ||||
0 T VWL 0 th | 0 T VWL 0 th | ||||
0 T NULL 0 t | 0 T NULL 0 t | ||||
0 D NULL 0 z | |||||
0 D NULL 0 d | |||||
0 w NULL 0 v | 0 w NULL 0 v | ||||
0 z NULL 0 s | 0 z NULL 0 s | ||||
0 tS NULL 50 t s | 0 tS NULL 50 t s |
FMT(vnasal/aa_n4) | FMT(vnasal/aa_n4) | ||||
endphoneme | endphoneme | ||||
phoneme l2 // as [l] but devoice previous phoneme | |||||
liquid lengthmod 7 | |||||
ChangePhoneme (l) | |||||
endphoneme | |||||
phoneme b | |||||
vcd alv frc sibilant | |||||
IF nextPh(l2) THEN | |||||
ChangePhoneme(p) | |||||
ENDIF | |||||
CALL base/b | |||||
endphoneme | |||||
phoneme d | |||||
vcd alv stop | |||||
IF nextPh(l2) THEN | |||||
ChangePhoneme(t) | |||||
ENDIF | |||||
CALL base/d | |||||
endphoneme | |||||
phoneme g | |||||
vcd vel stop | |||||
IF nextPh(l2) THEN | |||||
ChangePhoneme(k) | |||||
ENDIF | |||||
CALL base/g | |||||
endphoneme | |||||
// translate from English to German phonemes | // translate from English to German phonemes | ||||
equivalents NULL // disable this table | equivalents NULL // disable this table | ||||
0 O | 0 O |
phoneme || // End Word | phoneme || // End Word | ||||
pause | pause | ||||
lengthmod 1 | |||||
lengthmod 9 // no effect | |||||
endphoneme | endphoneme | ||||
phoneme _ // Short pause | phoneme _ // Short pause |
phon_out = *buf; | phon_out = *buf; | ||||
if(ph->code == phonEND_WORD) | |||||
{ | |||||
// ignore | |||||
phon_out[0] = 0; | |||||
return; | |||||
} | |||||
if(option_phonemes == 3) | if(option_phonemes == 3) | ||||
{ | { | ||||
// has an ipa name been defined for this phoneme ? | // has an ipa name been defined for this phoneme ? | ||||
const char *word_end; | const char *word_end; | ||||
const char *word1; | const char *word1; | ||||
int wflags = 0; | int wflags = 0; | ||||
int wflags2; | |||||
char word_buf[N_WORD_BYTES+1]; | char word_buf[N_WORD_BYTES+1]; | ||||
if(wtab != NULL) | if(wtab != NULL) | ||||
skipwords = flag - 80; | skipwords = flag - 80; | ||||
// don't use the contraction if any of the words are emphasized | // don't use the contraction if any of the words are emphasized | ||||
for(ix=0; ix <= skipwords; ix++) | |||||
// or has an embedded command, such as MARK | |||||
if(wtab != NULL) | |||||
{ | { | ||||
if(wflags & FLAG_EMPHASIZED2) | |||||
for(ix=0; ix <= skipwords; ix++) | |||||
{ | { | ||||
condition_failed = 1; | |||||
if(wtab[ix].flags & FLAG_EMPHASIZED2) | |||||
// if(((wflags2 = wtab[ix].flags) & FLAG_EMPHASIZED2) || ((ix > 0) && (wflags2 & FLAG_EMBEDDED))) | |||||
{ | |||||
condition_failed = 1; | |||||
} | |||||
} | } | ||||
} | } | ||||
#define phVOWEL2 0x100 // liquid that is considered a vowel | #define phVOWEL2 0x100 // liquid that is considered a vowel | ||||
#define phPALATAL 0x200 | #define phPALATAL 0x200 | ||||
#define phSINGLE_INSTN 0x1000 // this phoneme has a single instruction program, with an implicit Return | #define phSINGLE_INSTN 0x1000 // this phoneme has a single instruction program, with an implicit Return | ||||
#define phAPPENDPH 0x2000 // always insert another phoneme (link_out) after this one | |||||
#define phBRKAFTER 0x4000 // [*] add a post-pause | #define phBRKAFTER 0x4000 // [*] add a post-pause | ||||
#define phBEFOREPAUSE 0x8000 // replace with the link_out phoneme if the next phoneme is a pause | |||||
#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 | ||||
// main table of phonemes, index by phoneme number (1-254) | // main table of phonemes, index by phoneme number (1-254) | ||||
typedef struct { | typedef struct { | ||||
unsigned int mnemonic; // 1st char is in the l.s.byte | |||||
unsigned int mnemonic; // Up to 4 characters. The first char is in the l.s.byte | |||||
unsigned int phflags; // bits 16-19 place of articulation | unsigned int phflags; // bits 16-19 place of articulation | ||||
unsigned short program; | |||||
unsigned short program; // index into phondata file | |||||
unsigned char code; // the phoneme number | unsigned char code; // the phoneme number | ||||
unsigned char type; // phVOWEL, phPAUSE, phSTOP etc | unsigned char type; // phVOWEL, phPAUSE, phSTOP etc | ||||
unsigned char start_type; | unsigned char start_type; | ||||
unsigned char end_type; | unsigned char end_type; | ||||
unsigned char std_length; // for vowels, in mS/2; for phSTRESS, the stress/tone type | |||||
unsigned char std_length; // for vowels, in mS/2; for phSTRESS phonemes, this is the stress/tone type | |||||
unsigned char length_mod; // a length_mod group number, used to access length_mod_tab | unsigned char length_mod; // a length_mod group number, used to access length_mod_tab | ||||
} PHONEME_TAB; | } PHONEME_TAB; |
if(GetFileLength(path) <= 0) | if(GetFileLength(path) <= 0) | ||||
{ | { | ||||
sprintf(path,"/usr/share/mbrola/%s",mbrola_voice); | sprintf(path,"/usr/share/mbrola/%s",mbrola_voice); | ||||
if(GetFileLength(path) <= 0) | |||||
{ | |||||
sprintf(path,"/usr/share/mbrola/%s/%s",mbrola_voice,mbrola_voice); | |||||
if(GetFileLength(path) <= 0) | |||||
{ | |||||
sprintf(path,"/usr/share/mbrola/voices/%s",mbrola_voice); | |||||
} | |||||
} | |||||
} | } | ||||
if(GetFileLength(path) <= 0) | |||||
{ | |||||
sprintf(path,"/usr/share/mbrola/%s/%s",mbrola_voice,mbrola_voice); | |||||
} | |||||
if(GetFileLength(path) <= 0) | |||||
{ | |||||
sprintf(path,"/usr/share/mbrola/voices/%s",mbrola_voice); | |||||
} | |||||
close_MBR(); | |||||
#endif | #endif | ||||
#ifdef PLATFORM_WINDOWS | #ifdef PLATFORM_WINDOWS | ||||
if(load_MBR() == FALSE) // load mbrola.dll | if(load_MBR() == FALSE) // load mbrola.dll | ||||
else | else | ||||
len = (80 * speed.wav_factor)/256; | len = (80 * speed.wav_factor)/256; | ||||
DoMarker(espeakEVENT_PHONEME, (p->sourceix & 0x7ff) + clause_start_char, 0, ph->mnemonic); | |||||
if(ph->code != phonEND_WORD) | |||||
DoMarker(espeakEVENT_PHONEME, (p->sourceix & 0x7ff) + clause_start_char, 0, ph->mnemonic); | |||||
ptr += sprintf(ptr,"%s\t",WordToString(name)); | ptr += sprintf(ptr,"%s\t",WordToString(name)); | ||||
} | } | ||||
int MbrolaFill(int length, int resume) | |||||
{//=================================== | |||||
// Read audio data from Mbrola (length is in milisecs) | |||||
int MbrolaFill(int length, int resume, int amplitude) | |||||
{//================================================== | |||||
// Read audio data from Mbrola (length is in millisecs) | |||||
static int n_samples; | static int n_samples; | ||||
int req_samples, result; | int req_samples, result; | ||||
int ix; | |||||
short value16; | |||||
int value; | |||||
if (!resume) | if (!resume) | ||||
n_samples = samplerate * length / 1000; | n_samples = samplerate * length / 1000; | ||||
result = read_MBR((short *)out_ptr, req_samples); | result = read_MBR((short *)out_ptr, req_samples); | ||||
if (result <= 0) | if (result <= 0) | ||||
return 0; | return 0; | ||||
out_ptr += result*2; | |||||
for(ix=0; ix < result; ix++) | |||||
{ | |||||
value16 = out_ptr[0] + (out_ptr[1] << 8); | |||||
value = value16 * amplitude; | |||||
value = value / 40; // adjust this constant to give a suitable amplitude for mbrola voices | |||||
if(value > 0x7fff) | |||||
value = 0x7fff; | |||||
if(value < -0x8000) | |||||
value = 0x8000; | |||||
out_ptr[0] = value; | |||||
out_ptr[1] = value >> 8; | |||||
out_ptr += 2; | |||||
} | |||||
n_samples -= result; | n_samples -= result; | ||||
return n_samples ? 1 : 0; | return n_samples ? 1 : 0; | ||||
} | } | ||||
return(0); | return(0); | ||||
} | } | ||||
int MbrolaFill(int length, int resume) | |||||
int MbrolaFill(int length, int resume, int amplitude) | |||||
{ | { | ||||
return(0); | return(0); | ||||
} | } |
#include "translate.h" | #include "translate.h" | ||||
#include "wave.h" | #include "wave.h" | ||||
const char *version_string = "1.45.27 19.May.11"; | |||||
const char *version_string = "1.45.28 24.May.11"; | |||||
const int version_phdata = 0x014500; | const int version_phdata = 0x014500; | ||||
int option_device_number = -1; | int option_device_number = -1; |
// DoMarker(espeakEVENT_END, count_characters, 0, count_sentences); // end of clause | // DoMarker(espeakEVENT_END, count_characters, 0, count_sentences); // end of clause | ||||
if(p->newword & 1) | if(p->newword & 1) | ||||
DoMarker(espeakEVENT_WORD, sourceix, p->sourceix >> 11, clause_start_word + word_count++); | |||||
DoMarker(espeakEVENT_WORD, sourceix, p->sourceix >> 11, clause_start_word + word_count++); // NOTE, this count doesn't include multiple-word pronunciations in *_list. eg (of a) | |||||
} | } | ||||
EndAmplitude(); | EndAmplitude(); | ||||
if(p->prepause > 0) | if(p->prepause > 0) | ||||
DoPause(p->prepause,1); | DoPause(p->prepause,1); | ||||
if(option_phoneme_events && (p->type != phVOWEL)) | |||||
if(option_phoneme_events && (p->type != phVOWEL) && (p->ph->code != phonEND_WORD)) | |||||
{ | { | ||||
// Note, for vowels, do the phoneme event after the vowel-start | // Note, for vowels, do the phoneme event after the vowel-start | ||||
DoMarker(espeakEVENT_PHONEME, sourceix, 0, p->ph->mnemonic); | DoMarker(espeakEVENT_PHONEME, sourceix, 0, p->ph->mnemonic); |
void SetParameter(int parameter, int value, int relative); | void SetParameter(int parameter, int value, int relative); | ||||
int MbrolaTranslate(PHONEME_LIST *plist, int n_phonemes, int resume, FILE *f_mbrola); | int MbrolaTranslate(PHONEME_LIST *plist, int n_phonemes, int resume, FILE *f_mbrola); | ||||
int MbrolaGenerate(PHONEME_LIST *phoneme_list, int *n_ph, int resume); | int MbrolaGenerate(PHONEME_LIST *phoneme_list, int *n_ph, int resume); | ||||
int MbrolaFill(int length, int resume); | |||||
int MbrolaFill(int length, int resume, int amplitude); | |||||
void MbrolaReset(void); | void MbrolaReset(void); | ||||
void DoEmbedded(int *embix, int sourceix); | void DoEmbedded(int *embix, int sourceix); | ||||
void DoMarker(int type, int char_posn, int length, int value); | void DoMarker(int type, int char_posn, int length, int value); |
} while((embedded_cmd & 0x80) == 0); | } while((embedded_cmd & 0x80) == 0); | ||||
} | } | ||||
if(word[0] == 0) | |||||
if((word[0] == 0) || (word_flags & FLAG_DELETE_WORD)) | |||||
{ | { | ||||
// nothing to translate | |||||
// nothing to translate. Add a dummy phoneme to carry any embedded commands | |||||
if(embedded_flag) | |||||
{ | |||||
ph_list2[n_ph_list2].phcode = phonEND_WORD; | |||||
ph_list2[n_ph_list2].stresslevel = 0; | |||||
ph_list2[n_ph_list2].wordstress = 0; | |||||
ph_list2[n_ph_list2].tone_ph = 0; | |||||
ph_list2[n_ph_list2].synthflags = embedded_flag; | |||||
ph_list2[n_ph_list2].sourceix = 0; | |||||
n_ph_list2++; | |||||
embedded_flag = 0; | |||||
} | |||||
word_phonemes[0] = 0; | word_phonemes[0] = 0; | ||||
return(0); | return(0); | ||||
} | } | ||||
else | else | ||||
{ | { | ||||
pre_pause = 0; | pre_pause = 0; | ||||
dict_flags = TranslateWord2(tr, word, &words[ix], words[ix].pre_pause, words[ix+1].pre_pause); | dict_flags = TranslateWord2(tr, word, &words[ix], words[ix].pre_pause, words[ix+1].pre_pause); | ||||
if(pre_pause > words[ix+1].pre_pause) | if(pre_pause > words[ix+1].pre_pause) | ||||
if(dict_flags & FLAG_SKIPWORDS) | if(dict_flags & FLAG_SKIPWORDS) | ||||
{ | { | ||||
ix += dictionary_skipwords; // dictionary indicates skip next word(s) | |||||
// dictionary indicates skip next word(s) | |||||
while(dictionary_skipwords > 0) | |||||
{ | |||||
words[ix+dictionary_skipwords].flags |= FLAG_DELETE_WORD; | |||||
dictionary_skipwords--; | |||||
} | |||||
} | } | ||||
} | } | ||||
#define FLAG_COMMA_AFTER 0x20000 // comma after this word | #define FLAG_COMMA_AFTER 0x20000 // comma after this word | ||||
#define FLAG_MULTIPLE_SPACES 0x40000 // word is preceded by multiple spaces, newline, or tab | #define FLAG_MULTIPLE_SPACES 0x40000 // word is preceded by multiple spaces, newline, or tab | ||||
#define FLAG_INDIVIDUAL_DIGITS 0x80000 // speak number as individual digits | #define FLAG_INDIVIDUAL_DIGITS 0x80000 // speak number as individual digits | ||||
#define FLAG_DELETE_WORD 0x100000 // don't speak this word, it has been spoken as part of the previous word | |||||
#define FLAG_SUFFIX_VOWEL 0x08000000 // remember an initial vowel from the suffix | #define FLAG_SUFFIX_VOWEL 0x08000000 // remember an initial vowel from the suffix | ||||
#define FLAG_NO_TRACE 0x10000000 // passed to TranslateRules() to suppress dictionary lookup printout | #define FLAG_NO_TRACE 0x10000000 // passed to TranslateRules() to suppress dictionary lookup printout |
break; | break; | ||||
case WCMD_MBROLA_DATA: | case WCMD_MBROLA_DATA: | ||||
result = MbrolaFill(length, resume); | |||||
result = MbrolaFill(length, resume, (general_amplitude * wvoice->voicing)/64); | |||||
break; | break; | ||||
case WCMD_FMT_AMPLITUDE: | case WCMD_FMT_AMPLITUDE: |