Fix crash when embedded control codes are followed by numbers of 5 or more digits. Fix lang=hu, First character of an abbreviation is missed after an ordinal number (eg."2. cd") Fix XML tag not recognized after "..." when announce punctuation is enabled. Fix lang=zh-yue, 'p' 't' 'k' after a vowel give a long pause. Fix lang=ru, "o" missing in unstressed syllables. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@241 d46cf337-b52f-0410-862d-fd96e6ae7743master
appeal _^_EN | appeal _^_EN | ||||
apple _^_EN | apple _^_EN | ||||
bbc _^_EN | bbc _^_EN | ||||
beat _^_EN | |||||
beachbuggy _^_EN | |||||
beachvolley _^_EN | |||||
browser _^_EN | browser _^_EN | ||||
byte _^_EN | byte _^_EN | ||||
camcorder _^_EN | camcorder _^_EN | ||||
austin _^_EN | austin _^_EN | ||||
bailey _^_EN | bailey _^_EN | ||||
bronx _^_EN | bronx _^_EN | ||||
clarence _^_EN | |||||
cyrus _^_EN | cyrus _^_EN | ||||
fox _^_EN | fox _^_EN | ||||
jean _^_EN | jean _^_EN | ||||
(union station) junj3n||steisj@n // PB | (union station) junj3n||steisj@n // PB | ||||
chevrolet sjEvrol'e | chevrolet sjEvrol'e | ||||
saigon sajg3-n // PB Saigon | saigon sajg3-n // PB Saigon | ||||
managua m&n'&:gw& | |||||
// Abbreviations | // Abbreviations | ||||
pga pOgR'O?n'a? $hasdot // PB short for 'på grund af' | pga pOgR'O?n'a? $hasdot // PB short for 'på grund af' | ||||
(sig til) si||tel // PB sig til ham, at han skal ... | (sig til) si||tel // PB sig til ham, at han skal ... | ||||
(gav sig til) g&||saj||tel // PB han gav sig til at ... | (gav sig til) g&||saj||tel // PB han gav sig til at ... | ||||
sig si $capital PB Sig = si with capital S - Sig det med blomster | sig si $capital PB Sig = si with capital S - Sig det med blomster | ||||
// avoid [staj] as in "flæskesteg" | |||||
(han steg) h&n||st'e | |||||
(hun steg) hOn||st'e | |||||
(vi steg) vi||st'e | |||||
(de steg) di||st'e |
| |||||
// This file is UTF8 encoded | // This file is UTF8 encoded | ||||
// Spelling-to-phoneme rules for Danish | // Spelling-to-phoneme rules for Danish | ||||
a (nt '& // PB stressed a in words with -ant - interessant | a (nt '& // PB stressed a in words with -ant - interessant | ||||
Ah) a (nd '& // PB stressed a in words with -hand - behendling | Ah) a (nd '& // PB stressed a in words with -hand - behendling | ||||
ok) a (l '& // PB stressed a in 'vokal, lokal, bifokal' | ok) a (l '& // PB stressed a in 'vokal, lokal, bifokal' | ||||
v) a (nlig '& // PB usædvanlig - stressed a | |||||
bl) a a // PB blad | bl) a a // PB blad | ||||
fr) a A // PB fra, fratage | fr) a A // PB fra, fratage | ||||
gr) a A // PB gratis | gr) a A // PB gratis | ||||
a (L03K &: // PB alle, anden | a (L03K &: // PB alle, anden | ||||
h) a (CK & // PB han | h) a (CK & // PB han | ||||
hvabeh) ar 'A // PB hvabehar | |||||
a (L03 &: // PB foran halvvokal | a (L03 &: // PB foran halvvokal | ||||
a (v+ A // PB tavs | a (v+ A // PB tavs | ||||
L08) a (v & // PB stav | L08) a (v & // PB stav | ||||
ri) d (e D | ri) d (e D | ||||
si) d (e D | si) d (e D | ||||
ti) d (e D | ti) d (e D | ||||
ur) d (e d | |||||
// ur) d (e d | |||||
vi) d (e D | vi) d (e D | ||||
æl) d (e | æl) d (e | ||||
Coe) d (e // PB boede without d | Coe) d (e // PB boede without d | ||||
ral) d (e | ral) d (e | ||||
sag) d (e | sag) d (e | ||||
snu) d (e D | snu) d (e D | ||||
A) de (N_ D@ // PB change to D? | |||||
A) de (_ D@ // PB change to D? | |||||
in) d (eks d | in) d (eks d | ||||
mo) d (el 'd | mo) d (el 'd | ||||
or) d (el d | or) d (el d | ||||
afl) e 3 // PB aflevere | afl) e 3 // PB aflevere | ||||
ov) e (r 3 // PB over | ov) e (r 3 // PB over | ||||
l) e (r 3 // PB forhandlere | l) e (r 3 // PB forhandlere | ||||
fl) e (r e // PB flere | |||||
e (lse @ // PB fornøjelse | e (lse @ // PB fornøjelse | ||||
sk) e (t_ e // PB sket | sk) e (t_ e // PB sket | ||||
r) eau o // PB bureaukratiske | r) eau o // PB bureaukratiske | ||||
nt) e @ // PB tante, hente | nt) e @ // PB tante, hente | ||||
nt) e (r V // PB tanter, henter | nt) e (r V // PB tanter, henter | ||||
mont) e (r e // PB montere | mont) e (r e // PB montere | ||||
e (r_++ V // PB changed from [e (rK] - 'vers' mispronounced | |||||
v) e (r+ e // PB vers, verden | |||||
e (rK+ V // PB efter | |||||
k) e (r+ e // PB forkert | |||||
er (ne V // PB kammeraterne | |||||
_) e (r_++ er // PB er | _) e (r_++ er // PB er | ||||
h) e (r++ e // PB her, herhen | h) e (r++ e // PB her, herhen | ||||
_sk) er (_ er // PB sker | _sk) er (_ er // PB sker | ||||
fr) e (L03 a // PB fremme, frende, frelse | fr) e (L03 a // PB fremme, frende, frelse | ||||
fr) e (d e // PB fred fredag | fr) e (d e // PB fred fredag | ||||
l) e (t e // PB toilet | l) e (t e // PB toilet | ||||
_l) e (r_ e // PB ler | |||||
_l) er (_++ er // PB ler | |||||
hv) e (r e // PB hver | hv) e (r e // PB hver | ||||
el) e (r V // PB hellere | el) e (r V // PB hellere | ||||
mm) e (l @ // PB gammel | mm) e (l @ // PB gammel | ||||
s) e (_ @ // PB rose, skose | s) e (_ @ // PB rose, skose | ||||
_s) e (_ e? // PB se | _s) e (_ e? // PB se | ||||
L06) er (_ &r // PB per | L06) er (_ &r // PB per | ||||
L06L06) (er V // PB klipper | |||||
L06L06) er V // PB klipper | |||||
L03L06) er (_ V // PB bomber | |||||
_) er (_ &r // PB er | _) er (_ &r // PB er | ||||
_a) e (_ 3 // PB ae | _a) e (_ 3 // PB ae | ||||
pl) e (men 3 // PB supplement | pl) e (men 3 // PB supplement | ||||
e (gn a // PB tegne , hegn | e (gn a // PB tegne , hegn | ||||
bl) e (m 3 // PB møblement | bl) e (m 3 // PB møblement | ||||
probl) e (m 'e // PB stressed e | probl) e (m 'e // PB stressed e | ||||
C) e (ring 'e // PB stressed e in words with -ering (1.000) - likvidering | |||||
e (ndig 'e // PB stressed e in words with -endig - elendig, nødvendig | |||||
ni) e (n e | ni) e (n e | ||||
ani) e (l e | ani) e (l e | ||||
lini) e @ // PB changed from [e] to [@] | lini) e @ // PB changed from [e] to [@] | ||||
r) e (_N 3_: // PB mere | r) e (_N 3_: // PB mere | ||||
// r) e (_T e // PB for words in the list file with -ere | |||||
r) e (nd a // PB rend | r) e (nd a // PB rend | ||||
n) e (r V // PM klovner | n) e (r V // PM klovner | ||||
hvab) e (har_ 3 // PB hvabehar | |||||
_r) e e | _r) e e | ||||
// r) e ( | // r) e ( | ||||
r) e (l e | r) e (l e | ||||
gourm) e 'e // PB gourmet | gourm) e 'e // PB gourmet | ||||
@) e (kt 'e: // PB stressed e in words with -ekt - konfekt | @) e (kt 'e: // PB stressed e in words with -ekt - konfekt | ||||
L06) eg (e aj // PB p) changed to L06 to include b | L06) eg (e aj // PB p) changed to L06 to include b | ||||
L08) eg aj // PB steg, spegepølse | |||||
L08) eg aj // PB steg, spegepølse - problem with the verb stige/steg | |||||
best) eg (_ 'e // PB besteg | |||||
jav) e (l 'e // PB stressed e in 'javel' | jav) e (l 'e // PB stressed e in 'javel' | ||||
m) eg (a eg | m) eg (a eg | ||||
eg (et a:j | eg (et a:j | ||||
Ad) en (@ '@-n // udenlandsk, udenad | Ad) en (@ '@-n // udenlandsk, udenad | ||||
&) ene (_ @-n@ | &) ene (_ @-n@ | ||||
&) ende (_ @-nn@ | &) ende (_ @-nn@ | ||||
&) ere (_T 'e:3 // PB can't get 'vurdere' to work with -ere words in list file | |||||
&) eren (_ 3r3n | &) eren (_ 3r3n | ||||
&) ere (_T 'er3 // PB stressed - manipulere, protestere - words in list file | |||||
&) ere (NT_ 'e:3 // PB stressed - manipulere, protestere - words in list file | |||||
&) erede (NS2_ =D3 // PB stressed - manipulerede, protesterede - words in list file | &) erede (NS2_ =D3 // PB stressed - manipulerede, protesterede - words in list file | ||||
&) eres (TNS1_ =s // PB stressed - manipuleres, protesteres - words in list file | |||||
&) eret (TNS1_ =3D // PB stressed - manipuleret, protestet 1.810 words in list file | |||||
&) eres (NS1_ =s // PB stressed - manipuleres, protesteres - words in list file | |||||
&) erer (NS1_ =V // PB stressed - manipuleres, protesteres - words in list file | |||||
&) eret (S1_ =3D // PB stressed - manipuleret, protestet 1.810 words in list file | |||||
_sen) ere er3 // PB senere | _sen) ere er3 // PB senere | ||||
&) eren (s_ 3r3n | &) eren (s_ 3r3n | ||||
&) es (_ @s | &) es (_ @s | ||||
ir) e (n 'e | ir) e (n 'e | ||||
yr) e (n 'e | yr) e (n 'e | ||||
ork) e (ster 'e // PB stressed e in 'orkester' | ork) e (ster 'e // PB stressed e in 'orkester' | ||||
forur) e (ne 'e // PB stressed - forurene | |||||
st) e (ret // PB orkesteret | st) e (ret // PB orkesteret | ||||
b) ea (t i: // PB beat, beatorkester | |||||
ompet) en (ce aN | ompet) en (ce aN | ||||
ress) en (timent aN // PB ressentiment | ress) en (timent aN // PB ressentiment | ||||
bl) e (g aj // PB bleg | bl) e (g aj // PB bleg | ||||
g) g (e | g) g (e | ||||
g (ent g | g (ent g | ||||
g (entl j // PB egentlig | g (entl j // PB egentlig | ||||
ami) g (o g // PB amigo | |||||
&) g (r g | &) g (r g | ||||
g (ård g | g (ård g | ||||
g (ment g | g (ment g | ||||
ser) gent 'sjant // PB sergent | ser) gent 'sjant // PB sergent | ||||
gjorde gjo:3 // PB gjorde | gjorde gjo:3 // PB gjorde | ||||
ki) g k // PB kig, udkig | ki) g k // PB kig, udkig | ||||
a) g (C ?w | |||||
// a) g (C ?w | |||||
a) g (e | a) g (e | ||||
a) g (en g | a) g (en g | ||||
a) g (i g | a) g (i g | ||||
a) g (urk 'g | a) g (urk 'g | ||||
g) g | g) g | ||||
//e) g (e | //e) g (e | ||||
ste) g j // PB steg, stegefedt | |||||
e) g (o g | e) g (o g | ||||
i) g (t g | i) g (t g | ||||
i) g (t_ | i) g (t_ | ||||
bor) g u | bor) g u | ||||
bud) g (et S | bud) g (et S | ||||
gti) g | gti) g | ||||
gti) g (ere // PB vigtigere | |||||
hol) g (er g | hol) g (er g | ||||
jer) g (A w | jer) g (A w | ||||
jer) g (C w | jer) g (C w | ||||
ige (_ i;@ | ige (_ i;@ | ||||
iew j'u | iew j'u | ||||
i (nK i | i (nK i | ||||
r) i (nK e // PB ring | |||||
am) i (go 'i // PB amigo | |||||
i (nn e | i (nn e | ||||
i (mK e | i (mK e | ||||
i (k e // PB ikke, pik | i (k e // PB ikke, pik | ||||
l) i (k i // PB likvid | |||||
pr) i (+ i // PB privat | pr) i (+ i // PB privat | ||||
i (kk+ e // PB skiderikker | i (kk+ e // PB skiderikker | ||||
i (r+ i // PB Irland, irrationel | i (r+ i // PB Irland, irrationel | ||||
L02) i (L03 e // PB foran halvvokal - til | |||||
// L02) i (L03 e // PB foran halvvokal - til | |||||
t) i (me i: // PB time | |||||
s) i (dA+ i: // PB siden | s) i (dA+ i: // PB siden | ||||
// s) i (d_ e // PB sid | |||||
s) i (d_ e // PB sid | |||||
s) i (dd+ e: // PB sidde | s) i (dd+ e: // PB sidde | ||||
s) i (gA+ i // PB siger | s) i (gA+ i // PB siger | ||||
s) i (n e // PB tusind | s) i (n e // PB tusind | ||||
t) i (d+ i // PB tiden | t) i (d+ i // PB tiden | ||||
t) i (l e // PB til | |||||
t) i (n e // PB tin, ting | |||||
l) i (p e // PB slippe | l) i (p e // PB slippe | ||||
//L03) i (L03K i // PB mellem to halvvokaler midt, vil, til SHOULD BE e FIND A RULE FOR Camilla with | //L03) i (L03K i // PB mellem to halvvokaler midt, vil, til SHOULD BE e FIND A RULE FOR Camilla with | ||||
i | i | ||||
L03) i (L03L03 e // PB middag | L03) i (L03L03 e // PB middag | ||||
L03) i (L03 i //PB vide | L03) i (L03 i //PB vide | ||||
L03) i (g+ i // PB ligne | |||||
L03) i (gt+ e // vigtig | |||||
L03) i (L03L02 e // PB spille | L03) i (L03L02 e // PB spille | ||||
v) i (l+ e // PB vil | v) i (l+ e // PB vil | ||||
) i (l e // PB til | |||||
t) i (l e // PB til | |||||
to) i (l // PB toilet | to) i (l // PB toilet | ||||
ju) i (ce // juice - skip the i | ju) i (ce // juice - skip the i | ||||
soft) i (ce aj // PB softice | soft) i (ce aj // PB softice | ||||
fr) i e // PB fri | |||||
fr) i i // PB fri | |||||
fr) i (L08 e // PB friste | |||||
s) i (kC e // PB sikker, sikre | s) i (kC e // PB sikker, sikre | ||||
p) is es // PB pis | p) is es // PB pis | ||||
p) i (L08+ i // PB pisk, pistol | p) i (L08+ i // PB pisk, pistol | ||||
perfid) i 'i // PB perfidi | perfid) i 'i // PB perfidi | ||||
rapsod) i 'i // PB rapsodi | rapsod) i 'i // PB rapsodi | ||||
ortopæd) i 'i // PB ortopædi | ortopæd) i 'i // PB ortopædi | ||||
v) i (sk e // PB viskelæder | |||||
v) i (L08 e // PB viskelæder | |||||
l) i (e j | l) i (e j | ||||
n) i (e i | n) i (e i | ||||
r) i (g i | r) i (g i | ||||
r) i (gt e // PB rigtigt | |||||
s) i (e j | s) i (e j | ||||
t) i (e j | t) i (e j | ||||
t) i (on // i ommitted because of sj | t) i (on // i ommitted because of sj | ||||
k k | k k | ||||
kk k | kk k | ||||
k) (oordinat oVdi'nat | |||||
k (oordinat oVdi'nat | |||||
s) k g | s) k g | ||||
pun) k (t N | pun) k (t N | ||||
run) k (en N | run) k (en N | ||||
n n | n n | ||||
// nn n | // nn n | ||||
band) (er n? // PB takes away the d in 'bander' = 'gangs' - n => n? | |||||
ba) nd (er n? // PB takes away the d in 'bander' = 'gangs' - n => n? | |||||
ka) n_ // no n - kan | ka) n_ // no n - kan | ||||
nd (K n | nd (K n | ||||
nd (ow nd | nd (ow nd | ||||
o (sse V // PB tosse, nosse | o (sse V // PB tosse, nosse | ||||
j) o (b V // PB job | j) o (b V // PB job | ||||
o (vA+ Vu // PB over, oven | o (vA+ Vu // PB over, oven | ||||
o (v++ V // PB sjov, lov, skov | |||||
o (v+ V // PB sjov, lov, skov | |||||
l) o (ve+ Vu // PB love | |||||
h) o (v+ o // hov, sove | h) o (v+ o // hov, sove | ||||
telef) o (n 'o // PB telefon | telef) o (n 'o // PB telefon | ||||
L08j) o (l V // PB skjold | L08j) o (l V // PB skjold | ||||
tr) o o // PB tro | tr) o o // PB tro | ||||
bistr) o 'o // PB stressed o in 'bistro' | bistr) o 'o // PB stressed o in 'bistro' | ||||
pist) o (l 'o // PB stressed o - pistol | |||||
_m) o (C o // PB m + o + 2 consonants: mor, mord, | _m) o (C o // PB m + o + 2 consonants: mor, mord, | ||||
L08) o (L03 o: // PB exception from the rule above - skole, spole | |||||
L08) o (l o: // PB skole, spole | |||||
o (L03A o // PB - romantisk, hoved | o (L03A o // PB - romantisk, hoved | ||||
// L02) o (L03_ V // PB consonant + o + semivowel + end of word - kom, som | // L02) o (L03_ V // PB consonant + o + semivowel + end of word - kom, som | ||||
_C) o (_ o // PB jo, ko, lo, so | _C) o (_ o // PB jo, ko, lo, so | ||||
o (f V // PB ofte | o (f V // PB ofte | ||||
l) o (f V | l) o (f V | ||||
r) o (f o // PB profil | r) o (f o // PB profil | ||||
r) o (tt V // PB rotte | |||||
spr) o (g o // PB sprog | spr) o (g o // PB sprog | ||||
k) ors V:s // PB kors, korsage | k) ors V:s // PB kors, korsage | ||||
c) o (rs V // PB corsage | c) o (rs V // PB corsage | ||||
ou 'u // PB poussin, toupe | ou 'u // PB poussin, toupe | ||||
ough Vf // PB tough, rough - only 2 words | ough Vf // PB tough, rough - only 2 words | ||||
oun aVn // PB discount | oun aVn // PB discount | ||||
nark) o (tik 'o // PB narkotika, narkotisk | |||||
ul) o (v 'V // PB stressed o - ulovlig | |||||
.group or | .group or | ||||
_f) or (kammer 'V // PB forkammer | _f) or (kammer 'V // PB forkammer | ||||
_f) or (kant 'o // PB forkant | _f) or (kant 'o // PB forkant | ||||
_f) or (karl 'o // PB forkarl | _f) or (karl 'o // PB forkarl | ||||
_f) orka) (rl+ a // PB forkarl | |||||
_f) orka (rl+ a // PB forkarl | |||||
_f) or (klog 'o // PB forklog, forklogskab | _f) or (klog 'o // PB forklog, forklogskab | ||||
_f) or (kontor 'o // PB forkontor | _f) or (kontor 'o // PB forkontor | ||||
_f) or (krop 'o // PB forkrop | _f) or (krop 'o // PB forkrop | ||||
suppo) r //PB support [s@p'@t] | suppo) r //PB support [s@p'@t] | ||||
r (K r // not followed by a vowel | r (K r // not followed by a vowel | ||||
e) r (_ // PB end of word: no r - lager [l&:V] | e) r (_ // PB end of word: no r - lager [l&:V] | ||||
ve) r (+ r // PB over, overrasket | |||||
r (e_ // PB end of word before e: no r | |||||
r (e_T+ r | |||||
_se) r (_ r // PB ser | _se) r (_ r // PB ser | ||||
he) r (_ r // PB her | he) r (_ r // PB her | ||||
e) r (es 3 // PB jeres, deres | e) r (es 3 // PB jeres, deres | ||||
bu) rd (eK rd | bu) rd (eK rd | ||||
// &) rd (eKK r | |||||
&) rd (eNKK r | |||||
ve) rd (eKK rd | ve) rd (eKK rd | ||||
&) rd (e_ r | &) rd (e_ r | ||||
o) rd (el++ rd | o) rd (el++ rd | ||||
o) rd (en++ d // PB exception - pronounce d in 'orden, ordentlig' | o) rd (en++ d // PB exception - pronounce d in 'orden, ordentlig' | ||||
o) rd (rin d | o) rd (rin d | ||||
A) r (eT // PB bære without r | |||||
A) r (e_T // PB hellere | |||||
// A) r (eN // PB bære without r | |||||
A) r (eN_ // PB hellere | |||||
transpo) r (t //PB transport | transpo) r (t //PB transport | ||||
s (C s | s (C s | ||||
s (A s | s (A s | ||||
s (ie s | s (ie s | ||||
s (ion S | |||||
s (ion S' // PB stress added | |||||
s (j s | s (j s | ||||
sch S // PB changed from [s(ch] - casch | sch S // PB changed from [s(ch] - casch | ||||
al) s (ace 's // PB Alsace (French region) | al) s (ace 's // PB Alsace (French region) | ||||
p) t t // PB toptitel | p) t t // PB toptitel | ||||
s) t d // PB stor | s) t d // PB stor | ||||
A) t (er d // PB Peter, efter, alter | A) t (er d // PB Peter, efter, alter | ||||
A) t (ere t // PB invitere | |||||
teress tr@s // PB interessant | teress tr@s // PB interessant | ||||
L03) t t // PB garanteret | L03) t t // PB garanteret | ||||
r) t d // PB kuffert | r) t d // PB kuffert | ||||
t (ie t | t (ie t | ||||
t (ion+ sj' | t (ion+ sj' | ||||
t (iøs+ sj' | t (iøs+ sj' | ||||
&) tt t | |||||
// &) tt t | |||||
.group u | .group u | ||||
u u: // PB u => u: - u couldn't be heard in 'umuligt' | u u: // PB u => u: - u couldn't be heard in 'umuligt' | ||||
le) v (et // PB blevet, levet | le) v (et // PB blevet, levet | ||||
la) v (A // PB no v - laver | la) v (A // PB no v - laver | ||||
la) v (ement @ // PB lavement | la) v (ement @ // PB lavement | ||||
ve (lse @ // PB øvelse | |||||
ve (lse v3 // PB øvelse | |||||
&A) v v | &A) v v | ||||
&r) v v | &r) v v | ||||
al) v (A v | al) v (A v | ||||
y (nK W // PB changed from Y to W - synge, ynde | y (nK W // PB changed from Y to W - synge, ynde | ||||
l) y (n y // PB lyn | l) y (n y // PB lyn | ||||
whisk) y i // PB whisky | whisk) y i // PB whisky | ||||
y (nde 'W // PB begynde - stressed | |||||
y (nd 'W // PB begynde - stressed | |||||
best) y (r 'y // PB bestyre - stressed | |||||
y (mK Y | y (mK Y | ||||
d) y (_ i | d) y (_ i | ||||
b) y (A y | b) y (A y | ||||
.group æ | .group æ | ||||
æ E | æ E | ||||
æ (CK E | |||||
æ (CK E: | |||||
æ (bK E // PB dræb, slæb | æ (bK E // PB dræb, slæb | ||||
æ (bt ae? // PB dræbt - FIND A BETTER VOWEL | æ (bt ae? // PB dræbt - FIND A BETTER VOWEL | ||||
f) æ (re 'E: // PB affære, atmosfære, sfære | f) æ (re 'E: // PB affære, atmosfære, sfære | ||||
g) ø (r @: | g) ø (r @: | ||||
h) ø (j V | h) ø (j V | ||||
ø (je V3 // PB øje | ø (je V3 // PB øje | ||||
ø (jn V3 // PB øjne | |||||
h) ø (r W: | h) ø (r W: | ||||
//k) ø (r W: | //k) ø (r W: | ||||
l) øg (n 'Vj | l) øg (n 'Vj |
// 2006-11-18 Gilles Casse <[email protected]> | // 2006-11-18 Gilles Casse <[email protected]> | ||||
// | // | ||||
// Updated: 2010-03-05 Michel Such <[email protected]> | |||||
// Updated: 2010-03-08 Michel Such <[email protected]> | |||||
// | // | ||||
// Letter classes: | // Letter classes: | ||||
a (ils_ a | a (ils_ a | ||||
a (il_ a | a (il_ a | ||||
aie (me E2 // paiement | aie (me E2 // paiement | ||||
ai E2 // aile | |||||
ai E // aile | |||||
ai (L06 E // aile | ai (L06 E // aile | ||||
ai (CAX E // aile | ai (CAX E // aile | ||||
am (b A~ // jambon | am (b A~ // jambon | ||||
vin) gt (_neuvi t | vin) gt (_neuvi t | ||||
gt (_ // vingt doigts | gt (_ // vingt doigts | ||||
gt t // vingtaine doigté | |||||
vin) gt (A t // vingtaine doigté | |||||
gu (i g // anguille | gu (i g // anguille | ||||
ai) gui (l gw^i // aiguillage | ai) gui (l gw^i // aiguillage | ||||
C) ill ij // famille | C) ill ij // famille | ||||
a) il (_ j // bail | a) il (_ j // bail | ||||
e) il (_ j | e) il (_ j | ||||
gt) i (m aj | |||||
u) il (_ j // deuil | u) il (_ j // deuil | ||||
L01_f) ils (_ is // fils (enfant) | L01_f) ils (_ is // fils (enfant) | ||||
in (C E~ // vingt | in (C E~ // vingt | ||||
in (_ W~ // vin | in (_ W~ // vin | ||||
ing (_ iN | ing (_ iN | ||||
_) infra (_P5 E~fra | |||||
_) infra (sP5 E~fra | |||||
_) inter (@@P5 E~tEr | _) inter (@@P5 E~tEr | ||||
_) interr (A E~tEr | _) interr (A E~tEr | ||||
_) inter (_ E~t'Er | _) inter (_ E~t'Er | ||||
oû u // coûter | oû u // coûter | ||||
oyes (_ ua // troyes | oyes (_ ua // troyes | ||||
oy (A uaj // noyer voyelles | oy (A uaj // noyer voyelles | ||||
_b) oy (co oi- // boycott | |||||
_c) oy (o oi // coyote | |||||
_y) o (y o | _y) o (y o | ||||
oy ua // roy | oy ua // roy | ||||
o (_ o // zorro allégro | o (_ o // zorro allégro |
_#-étől e:tY:l $alt2 | _#-étől e:tY:l $alt2 | ||||
_#-ét e:t $alt2 | _#-ét e:t $alt2 | ||||
_#-át a:t $alt2 | _#-át a:t $alt2 | ||||
_#-ének e:nEk | |||||
_#-ának a:nAk | |||||
(1-e) elseje $text $alt2 | (1-e) elseje $text $alt2 | ||||
(1-én) elsején $text $alt2 | (1-én) elsején $text $alt2 | ||||
(1-jére) elsejére $text $alt2 | (1-jére) elsejére $text $alt2 | ||||
(1-jétől) elsejétől $text $alt2 | (1-jétől) elsejétől $text $alt2 | ||||
(1-jéig) elsejéig $text $alt2 | (1-jéig) elsejéig $text $alt2 | ||||
(1-ének) elsejének $text $alt2 | |||||
(2-i) másodikai $text $alt2 | (2-i) másodikai $text $alt2 | ||||
(2-ig) másodikáig $text $alt2 | (2-ig) másodikáig $text $alt2 | ||||
(3-i) hAR2_mAdikAi $alt2 | (3-i) hAR2_mAdikAi $alt2 |
kavi) cs (zátony tS | kavi) cs (zátony tS | ||||
har) c (cselek ts | har) c (cselek ts | ||||
külön) c (sé ts | külön) c (sé ts | ||||
mala) c (sül ts | |||||
mala) c (sül ts | |||||
.group ch | .group ch | ||||
ötö) dsz (ör ts: | ötö) dsz (ör ts: | ||||
ezre) d (szin d | ezre) d (szin d | ||||
ha) d (szin d | ha) d (szin d | ||||
hor) d (szí d | |||||
ezre) d (szá d | |||||
kó) d (sor d | |||||
máso) d (szin d | |||||
hor) d (szí d | |||||
ezre) d (szá d | |||||
kó) d (sor d | |||||
máso) d (szin d | |||||
.group dz | .group dz | ||||
é) gh (ajla kh | é) gh (ajla kh | ||||
se) gg (fe g | se) gg (fe g | ||||
se) gg (be g | se) gg (be g | ||||
pro) g (gyak g | |||||
pro) g (gyak g | |||||
.group gy | .group gy | ||||
gy J | gy J | ||||
e) gy (aránt J: | e) gy (aránt J: | ||||
e) gy (enrang J: | e) gy (enrang J: | ||||
e) gy (előre J: | e) gy (előre J: | ||||
e) gy (enként J: | |||||
félmege) gy (ez J: | |||||
e) gy (enként J: | |||||
félmege) gy (ez J: | |||||
.group h | .group h | ||||
kossutht koSu:t: | kossutht koSu:t: | ||||
készségg ke:SSe:g: | készségg ke:SSe:g: | ||||
_a) kk (reditál k | _a) kk (reditál k | ||||
_) köztük kYstyk | |||||
_) köztük kYstyk | |||||
.group l | .group l | ||||
l l | l l | ||||
me) ll (kas l | me) ll (kas l | ||||
inte) ll (ige l | inte) ll (ige l | ||||
e) ll (ipsz l | e) ll (ipsz l | ||||
_) e) lj (ár lj | |||||
_) e) lj (ár lj | |||||
egye) n (jogú n | egye) n (jogú n | ||||
beto) n (járda n | beto) n (járda n | ||||
verse) ny (jog n^ | verse) ny (jog n^ | ||||
irá) ny (jel n^ | |||||
.group o | .group o | ||||
o o | o o | ||||
rádió) ssz (ob Ss | rádió) ssz (ob Ss | ||||
jelzé) ssz (erű Ss | jelzé) ssz (erű Ss | ||||
kitöré) ssz (erű Ss | kitöré) ssz (erű Ss | ||||
hatá) ssz (üne Ss | |||||
hatá) ssz (üne Ss | |||||
.group sz | .group sz | ||||
sz s | sz s | ||||
néme) t (juhá t | néme) t (juhá t | ||||
pó) t (je t | pó) t (je t | ||||
halo) tt (ba t | halo) tt (ba t | ||||
éle) t (jel t | |||||
éle) t (jel t | |||||
.group ts | .group ts | ||||
ts (_S2 tS //general rule with word end of ts letters | ts (_S2 tS //general rule with word end of ts letters | ||||
zsz z|s //general exception. Need difference first z and second sz phoneme. For example, rajzszög, rajzszeg, mézszín words. | zsz z|s //general exception. Need difference first z and second sz phoneme. For example, rajzszög, rajzszeg, mézszín words. | ||||
pén) z (t s | pén) z (t s | ||||
rende) z (ked s | rende) z (ked s | ||||
kocká) z (ta s | |||||
kocká) z (ta s | |||||
hibá) z (tat s | hibá) z (tat s | ||||
különbö) z (tet s | különbö) z (tet s | ||||
válto) z (tat s | válto) z (tat s | ||||
búcsú) z (ko s | búcsú) z (ko s | ||||
nyújtó) z (ko s | nyújtó) z (ko s | ||||
ő) z (sörét z | ő) z (sörét z | ||||
szedelő) z (kö s | |||||
alkalma) z (ko s | |||||
egye) z (ke s | |||||
egye) z (te s | |||||
szedelő) z (kö s | |||||
alkalma) z (ko s | |||||
egye) z (ke s | |||||
egye) z (te s | |||||
.group | .group |
_11 Od;'innVttsVt; | _11 Od;'innVttsVt; | ||||
_12 dv;In'AttsVt; | _12 dv;In'AttsVt; | ||||
_13 tR;In'AttsVt; | _13 tR;In'AttsVt; | ||||
_14 ts;It'y@-*nVttsVt; | |||||
_14 tS;It'y@-*nVttsVt; | |||||
_15 p;Itn'AttsVt; | _15 p;Itn'AttsVt; | ||||
_16 SE#stn'AttsVt; | _16 SE#stn'AttsVt; | ||||
_17 s;Imn'AttsVt; | _17 s;Imn'AttsVt; | ||||
_0C st'o | _0C st'o | ||||
_2C dv;'es;t;I | _2C dv;'es;t;I | ||||
_3C tr;'ista | _3C tr;'ista | ||||
_4C ts;It'yr;E2sta | |||||
_4C tS;It'yr;E2sta | |||||
_5C p;,It;s'ot | _5C p;,It;s'ot | ||||
_6C S,E#s;t;s'ot | _6C S,E#s;t;s'ot | ||||
_7C s;,Ims'ot | _7C s;,Ims'ot | ||||
_8C vOs;Ims'ot | _8C vOs;Ims'ot | ||||
_9C dev;Vn'ostO | _9C dev;Vn'ostO | ||||
_1MA1 t'ys;Its;V // no '1' before thousand | |||||
_0MA1 t'ys;Its;i | |||||
_0M1 t'ys;Vts; | |||||
_1MA1 t'ys;ItS;V // no '1' before thousand | |||||
_0MA1 t'ys;ItS;i | |||||
_0M1 t'ys;VtS; | |||||
_1MA2 m;,IlI;'on | _1MA2 m;,IlI;'on | ||||
_0MA2 m;,IlI;'ona | _0MA2 m;,IlI;'ona | ||||
_0M2 m;,IlI;'onof | _0M2 m;,IlI;'onof |
[W] fr | [W] fr | ||||
[Y] fr | [Y] fr | ||||
[l/] fr | [l/] fr | ||||
l/l@ [L] base | |||||
[¼ÈÔ] base | |||||
l/l@ [] base | |||||
[L] base | |||||
[W] fr | [W] fr | ||||
[Y] fr | [Y] fr | ||||
[l] fr | [l] fr | ||||
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 [L] base | |||||
[¼ÈÔ] base | |||||
l/la [] base | |||||
[L] base | |||||
[a] fr | [a] fr | ||||
[l] fr | [l] fr | ||||
l/l_a [l/3] base | l/l_a [l/3] base | ||||
[l/] fr | [l/] fr | ||||
l/le [L] base | |||||
[¼ÈÔ] base | |||||
l/le [] base | |||||
[L] base | |||||
[l] fr | [l] fr | ||||
l/l_e [l/3] base | l/l_e [l/3] base | ||||
[l/] fr | [l/] fr | ||||
[&:] 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 [L] base | |||||
[¼ÈÔ] base | |||||
l/li [] base | |||||
[L] base | |||||
[l] fr | [l] fr | ||||
[l] zh | [l] zh | ||||
l/l_i [l/3] base | l/l_i [l/3] base | ||||
[i] sq | [i] sq | ||||
l/l_long [l] base | l/l_long [l] base | ||||
[l] fr | [l] fr | ||||
l/lo [L] base | |||||
[¼ÈÔ] base | |||||
l/lo [] base | |||||
[L] base | |||||
[l] fr | [l] fr | ||||
l/l_o [l/3] base | l/l_o [l/3] base | ||||
[l/] fr | [l/] fr | ||||
[o2] fr | [o2] fr | ||||
l^/l_rfx [l.] base | l^/l_rfx [l.] base | ||||
l/lu [L] base | |||||
[¼ÈÔ] base | |||||
l/lu [] base | |||||
[L] base | |||||
[l] fr | [l] fr | ||||
[w^i] fr | [w^i] fr | ||||
l/l_u [l/3] base | l/l_u [l/3] base | ||||
vwl_fr/_r [r] fr | vwl_fr/_r [r] fr | ||||
vwl_fr/r_ [r/2] fr | vwl_fr/r_ [r/2] fr | ||||
vwl_fr/r_@ [r/2] fr | vwl_fr/r_@ [r/2] fr | ||||
vwl_fr/r@ [‰g] fr | |||||
vwl_fr/r@ [Ég] fr | |||||
vwl_fr/@R [x] pt_pt | vwl_fr/@R [x] pt_pt | ||||
vwl_fr/_r2 [r] fr | vwl_fr/_r2 [r] fr | ||||
vwl_fr/@R2 [R] fr_ca | vwl_fr/@R2 [R] fr_ca | ||||
vwl_fr/ra [‰g] fr | |||||
vwl_fr/ra [Ég] fr | |||||
vwl_fr/r_a [r/2] fr | vwl_fr/r_a [r/2] fr | ||||
vwl_fr/raa [A~] fr | vwl_fr/raa [A~] fr | ||||
vwl_fr/r_an [A~] fr | vwl_fr/r_an [A~] fr | ||||
vwl_fr/re [‰g] fr | |||||
vwl_fr/re [Ég] fr | |||||
vwl_fr/r_e [r/2] fr | vwl_fr/r_e [r/2] fr | ||||
vwl_fr/ri [‰g] fr | |||||
vwl_fr/ri [Ég] fr | |||||
vwl_fr/r_i [r/2] fr | vwl_fr/r_i [r/2] fr | ||||
vwl_fr/ro [‰g] fr | |||||
vwl_fr/ro [Ég] fr | |||||
vwl_fr/r_o [o] fr | vwl_fr/r_o [o] fr | ||||
[o2] fr | [o2] fr | ||||
[r/2] fr | [r/2] fr | ||||
vwl_fr/ru [‰g] fr | |||||
vwl_fr/ru [Ég] fr | |||||
vwl_fr/r_u [r/2] fr | vwl_fr/r_u [r/2] fr | ||||
vwl_fr/ry [y] fr | vwl_fr/ry [y] fr | ||||
[w^i] fr | [w^i] fr | ||||
vwl_ru/ja [ja] ru | vwl_ru/ja [ja] ru | ||||
vwl_ru/ju [ju] ru | vwl_ru/ju [ju] ru | ||||
vwl_ru/o [o] ru | vwl_ru/o [o] ru | ||||
vwl_ru/oo [O] ru | |||||
vwl_ru/u [u] ru | vwl_ru/u [u] ru | ||||
vwl_ru/u# [u#] ru | vwl_ru/u# [u#] ru | ||||
vwl_ru/u#u [u"] ru | vwl_ru/u#u [u"] ru |
//==================================================== | //==================================================== | ||||
// French | // French | ||||
//==================================================== | //==================================================== | ||||
// Updated 2010-02-25 Michel Such <[email protected]> | |||||
// Updated 2010-03-12 Michel Such <[email protected]> | |||||
phoneme #l virtual | phoneme #l virtual | ||||
// Used for l and l/ | // Used for l and l/ | ||||
ENDIF | ENDIF | ||||
IF nextPh(isStressed) THEN | IF nextPh(isStressed) THEN | ||||
length 45 | |||||
length 40 | |||||
ENDIF | ENDIF | ||||
VowelEnding(vwl_fr/xr) | VowelEnding(vwl_fr/xr) | ||||
IF prevPh(isPause) OR prevPhW(r/2) THEN | IF prevPh(isPause) OR prevPhW(r/2) THEN | ||||
FMT(vwl_fr/_r) | FMT(vwl_fr/_r) | ||||
ELIF prevPhW(p) OR prevPhW(k) THEN | ELIF prevPhW(p) OR prevPhW(k) THEN | ||||
length 50 | |||||
IF nextPh(isNotStressed) THEN | |||||
length 50 | |||||
ENDIF | |||||
FMT(vwl_fr/tr) | FMT(vwl_fr/tr) | ||||
ELIF prevPhW(t) THEN | ELIF prevPhW(t) THEN | ||||
length 45 | |||||
IF nextPh(isNotStressed) THEN | |||||
length 60 | |||||
ENDIF | |||||
FMT(vwl_fr/tr) addWav(r3/rx,30) | FMT(vwl_fr/tr) addWav(r3/rx,30) | ||||
ELIF prevPhW(f) OR prevPhW(g) OR prevPhW(v) THEN | |||||
ELIF prevPhW(f) OR prevPhW(v) THEN | |||||
length 40 | length 40 | ||||
ELIF prevPhW(g) OR prevPh(b) THEN | |||||
IF nextPh(isNotStressed) THEN | |||||
length 60 | |||||
ENDIF | |||||
ENDIF | ENDIF | ||||
IF thisPh(isWordStart) THEN | IF thisPh(isWordStart) THEN | ||||
VowelEnding(vwl_fr/r_u) | VowelEnding(vwl_fr/r_u) | ||||
EndSwitch | EndSwitch | ||||
IF prevPh(t) OR prevPh(p) OR prevPh(k) OR prevPh(d) THEN | |||||
IF prevPh(t) OR prevPh(p) OR prevPh(k) THEN | |||||
FMT(vwl_fr/trr) | FMT(vwl_fr/trr) | ||||
ENDIF | ENDIF | ||||
IF thisPh(isWordEnd) THEN | IF thisPh(isWordEnd) THEN | ||||
FMT(vwl_fr/r_) addWav(r3/rx, 20) | |||||
IF prevPhW(v) THEN | |||||
length 40 | |||||
ELIF prevPhW(f) THEN | |||||
length 60 | |||||
ELIF prevPhW(d) THEN | |||||
length 80 | |||||
ENDIF | |||||
FMT(vwl_fr/r_) addWav(r3/rx, 15) | |||||
ENDIF | ENDIF | ||||
IF prevPh(isVowel) THEN | IF prevPh(isVowel) THEN | ||||
IF nextPh(isPause2) OR nextPh(isPause) THEN | IF nextPh(isPause2) OR nextPh(isPause) THEN | ||||
FMT(d/d_) addWav(x/d_, 50) | FMT(d/d_) addWav(x/d_, 50) | ||||
// ELIF nextPh(#r) THEN | // ELIF nextPh(#r) THEN | ||||
// FMT(d/dr) addWav(x/d, 50) | |||||
// FMT(d/dr) addWav(x/d, 30) | |||||
ELIF prevPh(isPause) THEN | ELIF prevPh(isPause) THEN | ||||
FMT(d/d) addWav(x/d, 50) | FMT(d/d) addWav(x/d, 50) | ||||
ENDIF | ENDIF | ||||
ELIF nextPh(#l) THEN | ELIF nextPh(#l) THEN | ||||
WAV(ustop/pl, 30) | WAV(ustop/pl, 30) | ||||
ELIF nextPh(#r) THEN | ELIF nextPh(#r) THEN | ||||
length 50 | |||||
WAV(ustop/pr, 30) | |||||
WAV(ustop/pr, 25) | |||||
ENDIF | ENDIF | ||||
WAV(ustop/p_unasp_, 90) | WAV(ustop/p_unasp_, 90) | ||||
endphoneme | endphoneme | ||||
vcd lbd frc | vcd lbd frc | ||||
voicingswitch f | voicingswitch f | ||||
lengthmod 6 | lengthmod 6 | ||||
length 90 | |||||
Vowelin f1=0 f2=1000 -300 -200 f3=-300 100 | Vowelin f1=0 f2=1000 -300 -200 f3=-300 100 | ||||
Vowelout f1=0 f2=1000 -500 -300 f3=-300 60 len=50 | Vowelout f1=0 f2=1000 -500 -300 f3=-300 60 len=50 | ||||
IF thisPh(isMaxStress) THEN | IF thisPh(isMaxStress) THEN | ||||
ChangePhoneme(o) | ChangePhoneme(o) | ||||
ENDIF | ENDIF | ||||
FMT(vwl_ru/oo) | |||||
endphoneme | endphoneme | ||||
vls vel stop | vls vel stop | ||||
lengthmod 2 | lengthmod 2 | ||||
Vowelin f1=0 f2=2300 200 300 f3=-200 80 | Vowelin f1=0 f2=2300 200 300 f3=-200 80 | ||||
Vowelout f1=0 f2=2300 300 400 f3=-200 80 rms=20 | |||||
Vowelout f1=1 f2=2300 300 400 f3=-200 80 rms=20 | |||||
IF nextPh(isPause2) THEN | IF nextPh(isPause2) THEN | ||||
WAV(NULL) | WAV(NULL) | ||||
vls blb stop | vls blb stop | ||||
lengthmod 2 | lengthmod 2 | ||||
Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 rms=30 | Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 rms=30 | ||||
Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=22 | |||||
Vowelout f1=1 f2=1000 -500 -350 f3=-300 80 rms=22 | |||||
IF nextPh(isPause2) THEN | IF nextPh(isPause2) THEN | ||||
WAV(NULL) | WAV(NULL) | ||||
ENDIF | ENDIF | ||||
vls alv stop | vls alv stop | ||||
lengthmod 2 | lengthmod 2 | ||||
Vowelin f1=0 f2=1700 -300 300 f3=100 80 | Vowelin f1=0 f2=1700 -300 300 f3=100 80 | ||||
Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20 | |||||
Vowelout f1=1 f2=1700 -300 250 f3=-100 80 rms=20 | |||||
IF nextPh(isPause2) THEN | IF nextPh(isPause2) THEN | ||||
WAV(NULL) | WAV(NULL) | ||||
ENDIF | ENDIF |
c1 = 0x2026; | c1 = 0x2026; | ||||
c2 = ' '; | c2 = ' '; | ||||
} | } | ||||
UngetC(c_next); | |||||
if(c1 == 0x2026) | |||||
c2 = c_next; | |||||
else | |||||
UngetC(c_next); | |||||
} | } | ||||
punct_data = 0; | punct_data = 0; | ||||
if((punct = lookupwchar(punct_chars,c1)) != 0) | if((punct = lookupwchar(punct_chars,c1)) != 0) | ||||
{ | { |
#include "translate.h" | #include "translate.h" | ||||
#include "wave.h" | #include "wave.h" | ||||
const char *version_string = "1.43.10 12.Mar.10"; | |||||
const char *version_string = "1.43.12 13.Mar.10"; | |||||
const int version_phdata = 0x014300; | const int version_phdata = 0x014300; | ||||
int option_device_number = -1; | int option_device_number = -1; |
amp2 = (amp2 * 32)/100; | amp2 = (amp2 * 32)/100; | ||||
} | } | ||||
seq_len_adjust=0; | |||||
len = DoSample2(phdata->sound_addr[pd_WAV], 2, phdata->pd_param[pd_LENGTHMOD]*2, phdata->pd_control, length_mod, amp2); | |||||
seq_len_adjust=0; | |||||
if(phdata->sound_addr[pd_WAV] == 0) | |||||
{ | |||||
len = 0; | |||||
} | |||||
else | |||||
{ | |||||
len = DoSample2(phdata->sound_addr[pd_WAV], 2, phdata->pd_param[pd_LENGTHMOD]*2, phdata->pd_control, length_mod, amp2); | |||||
} | |||||
last_frame = NULL; | last_frame = NULL; | ||||
return(len); | return(len); | ||||
} // end of DoSample3 | } // end of DoSample3 |
length=0; | length=0; | ||||
while(wordx[length] != ' ') length++; | while(wordx[length] != ' ') length++; | ||||
if(length > 0) | |||||
wordx[-1] = ' '; // prevent this affecting the pronunciation of the pronuncable part | |||||
} | } | ||||
SetSpellingStress(tr,unpron_phonemes,0,posn); | SetSpellingStress(tr,unpron_phonemes,0,posn); | ||||
// anything left ? | // anything left ? | ||||
if(*wordx != ' ') | if(*wordx != ' ') | ||||
{ | { | ||||
if(unpron_phonemes[0] != 0) | |||||
{ | |||||
// letters which have been spoken individually from affecting the pronunciation of the pronuncable part | |||||
wordx[-1] = ' '; | |||||
} | |||||
// Translate the stem | // Translate the stem | ||||
end_type = TranslateRules(tr, wordx, phonemes, N_WORD_PHONEMES, end_phonemes, wflags, dictionary_flags); | end_type = TranslateRules(tr, wordx, phonemes, N_WORD_PHONEMES, end_phonemes, wflags, dictionary_flags); | ||||
for(j=1; j<=nw; j++) | for(j=1; j<=nw; j++) | ||||
{ | { | ||||
num_wtab[j].flags &= ~FLAG_MULTIPLE_SPACES; // don't use this flag for subsequent parts when splitting a number | |||||
num_wtab[j].flags &= ~(FLAG_MULTIPLE_SPACES | FLAG_EMBEDDED); // don't use these flags for subsequent parts when splitting a number | |||||
} | } | ||||
// include the next few characters, in case there are an ordinal indicator or other suffix | // include the next few characters, in case there are an ordinal indicator or other suffix |