mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-10-31 05:35:35 +00:00
Merge branch 'upstream' into development
Conflicts: dictsource/dict_phonemes
This commit is contained in:
+4
-10
@@ -151,19 +151,14 @@ _} raItbreIs
|
|||||||
_¡ %Inv,3:tI2dEkskl@m'eIS@n
|
_¡ %Inv,3:tI2dEkskl@m'eIS@n
|
||||||
_¦ broUk@nb'A@
|
_¦ broUk@nb'A@
|
||||||
_¨ daIa#r'i:sIs
|
_¨ daIa#r'i:sIs
|
||||||
_ª fEmI2nIn'O@dI2n@L
|
|
||||||
_« lEft'gIl@mEt
|
_« lEft'gIl@mEt
|
||||||
_ makr0n
|
_ makr0n
|
||||||
² tu:
|
² tu: $native
|
||||||
³ Tri:
|
³ Tri: $native
|
||||||
_¹ su:p@skrIptw'0n
|
|
||||||
_² su:p@skrIptt'u:
|
|
||||||
_³ su:p@skrIptT'ri:
|
|
||||||
_´ a#kju:taksEnt
|
_´ a#kju:taksEnt
|
||||||
_· mId@Ld0t
|
_· mId@Ld0t
|
||||||
_¸ sEd'Il@
|
_¸ sEd'Il@
|
||||||
//_º maskjUlIn'O@dI2n@L
|
|
||||||
_º dI2gr'i:z
|
|
||||||
_» raIt'gIl@mEt
|
_» raIt'gIl@mEt
|
||||||
_¿ %Inv,3:tI2dkw'EstS@n
|
_¿ %Inv,3:tI2dkw'EstS@n
|
||||||
|
|
||||||
@@ -1612,7 +1607,6 @@ fortune fO@tSu:n
|
|||||||
foyer fOIeI
|
foyer fOIeI
|
||||||
freelance fri:laans
|
freelance fri:laans
|
||||||
freon fri:0n
|
freon fri:0n
|
||||||
frequent frI2kwEnt $verb
|
|
||||||
fricassee frIka#seI
|
fricassee frIka#seI
|
||||||
frigate frIg@t
|
frigate frIg@t
|
||||||
fringer frIndZ3 // infringer
|
fringer frIndZ3 // infringer
|
||||||
@@ -3483,7 +3477,7 @@ Amy eImi
|
|||||||
Andre 0ndreI
|
Andre 0ndreI
|
||||||
Andrea andri@
|
Andrea andri@
|
||||||
Andreas A:ndr'eI@s
|
Andreas A:ndr'eI@s
|
||||||
Angela $1
|
Angela ang@l@
|
||||||
Anita $alt3
|
Anita $alt3
|
||||||
Anthony ant@ni
|
Anthony ant@ni
|
||||||
Anton ant0n
|
Anton ant0n
|
||||||
|
|||||||
@@ -2486,6 +2486,7 @@
|
|||||||
ery (A 3j
|
ery (A 3j
|
||||||
_v) ery ErI2
|
_v) ery ErI2
|
||||||
qu) ery i@rI
|
qu) ery i@rI
|
||||||
|
_x) er (o i@r
|
||||||
z) er (o i@r
|
z) er (o i@r
|
||||||
_C) er (o_ i@r
|
_C) er (o_ i@r
|
||||||
er (rA E
|
er (rA E
|
||||||
|
|||||||
+1
-3
@@ -835,7 +835,6 @@ dobro $alt $verb
|
|||||||
doce $alt2
|
doce $alt2
|
||||||
doutora $alt2
|
doutora $alt2
|
||||||
doze $alt2
|
doze $alt2
|
||||||
droga $alt
|
|
||||||
dueto $alt2
|
dueto $alt2
|
||||||
elixir eliSir
|
elixir eliSir
|
||||||
emprego $alt2 $noun
|
emprego $alt2 $noun
|
||||||
@@ -1100,7 +1099,7 @@ rota $alt2
|
|||||||
rota $alt $noun
|
rota $alt $noun
|
||||||
rubores $alt2
|
rubores $alt2
|
||||||
rumores $alt2
|
rumores $alt2
|
||||||
sabonete $alt2
|
sabonete $alt2
|
||||||
sabores $alt2
|
sabores $alt2
|
||||||
saibro s'aIbRU
|
saibro s'aIbRU
|
||||||
saleta $alt2
|
saleta $alt2
|
||||||
@@ -1229,7 +1228,6 @@ laptop lEptOp
|
|||||||
?1 line l'ain
|
?1 line l'ain
|
||||||
layout l'eI,aUt
|
layout l'eI,aUt
|
||||||
?2 login logiN
|
?2 login logiN
|
||||||
?2 logo l'OgU
|
|
||||||
?1 lock l'Ok
|
?1 lock l'Ok
|
||||||
mail m'eIl
|
mail m'eIl
|
||||||
mails m'eIls
|
mails m'eIls
|
||||||
|
|||||||
+19
-18
@@ -214,7 +214,7 @@
|
|||||||
|
|
||||||
i) e (r_ E
|
i) e (r_ E
|
||||||
@s) e (r_ E
|
@s) e (r_ E
|
||||||
qu) e (r_ E
|
qu) e (r_ E
|
||||||
|
|
||||||
ib) e (rL04_ E
|
ib) e (rL04_ E
|
||||||
d) e (rL04_ E
|
d) e (rL04_ E
|
||||||
@@ -229,7 +229,7 @@
|
|||||||
f) e (rL02_ E
|
f) e (rL02_ E
|
||||||
|
|
||||||
e (quL02_ E
|
e (quL02_ E
|
||||||
e (rbL04_ E
|
e (rbL04_ E
|
||||||
e (rgL04_ E
|
e (rgL04_ E
|
||||||
|
|
||||||
e (rsL04_ E
|
e (rsL04_ E
|
||||||
@@ -239,7 +239,7 @@ e (rbL04_ E
|
|||||||
e (ssL04_ E
|
e (ssL04_ E
|
||||||
e (ss_ E // stress and english words
|
e (ss_ E // stress and english words
|
||||||
?2 ection (_ 'EkS&~N
|
?2 ection (_ 'EkS&~N
|
||||||
?2 ee (n_ i
|
?2 ee (n_ i
|
||||||
e (stL04_ E
|
e (stL04_ E
|
||||||
|
|
||||||
e (strL04_ E
|
e (strL04_ E
|
||||||
@@ -372,7 +372,6 @@ e (rbL04_ E
|
|||||||
tiv) e (L05_ E // es-
|
tiv) e (L05_ E // es-
|
||||||
viv) e (L05_ e
|
viv) e (L05_ e
|
||||||
_com) e (L05_ e
|
_com) e (L05_ e
|
||||||
s_colh) e (res_ E
|
|
||||||
_cos) e (L05_ e
|
_cos) e (L05_ e
|
||||||
_pud) e (L05_ E
|
_pud) e (L05_ E
|
||||||
_coub) e (L05_ E
|
_coub) e (L05_ E
|
||||||
@@ -425,18 +424,17 @@ _corro) e (L07_ e
|
|||||||
_interromp) e (L07_ e
|
_interromp) e (L07_ e
|
||||||
_troux) e (L07_ E
|
_troux) e (L07_ E
|
||||||
_ens) e (bL03_ E
|
_ens) e (bL03_ E
|
||||||
_enver) e (dL03_ E
|
|
||||||
_amanc) e (bL03_ E
|
_amanc) e (bL03_ E
|
||||||
qu) e (brL04_ E
|
qu) e (brL04_ E
|
||||||
_cel) e (brL04_ E
|
_cel) e (brL04_ E
|
||||||
_boch) e (chL04_ e
|
_boch) e (chL04_ e
|
||||||
_on) e (rL04_ E
|
_ex) e (crL04_ E
|
||||||
_ex) e (crL04_ E
|
|
||||||
_enr) e (dL01_ E
|
_enr) e (dL01_ E
|
||||||
_v) e (dL03_ E
|
_v) e (dL03_ E
|
||||||
_arr) e (dL03_ E
|
_arr) e (dL03_ E
|
||||||
_depr) e (dL03_ E
|
_depr) e (dL03_ E
|
||||||
_hosp) e (dL03_ E
|
_hosp) e (dL03_ E
|
||||||
|
_enver) e (dL03_ E
|
||||||
_gr) e (gL03_ e
|
_gr) e (gL03_ e
|
||||||
_gal) e (gL03_ e
|
_gal) e (gL03_ e
|
||||||
_pel) e (gL03_ e
|
_pel) e (gL03_ e
|
||||||
@@ -455,6 +453,7 @@ _amanc) e (bL03_ E
|
|||||||
_g) e (rL04_ E
|
_g) e (rL04_ E
|
||||||
_z) e (rL04_ E
|
_z) e (rL04_ E
|
||||||
qu) e (rL04_ E // re-
|
qu) e (rL04_ E // re-
|
||||||
|
_on) e (rL04_ E
|
||||||
_op) e (rL04_ E
|
_op) e (rL04_ E
|
||||||
gen) e (rL04_ E // de- re-
|
gen) e (rL04_ E // de- re-
|
||||||
_alt) e (rL04_ E
|
_alt) e (rL04_ E
|
||||||
@@ -475,15 +474,16 @@ _adult) e (rL04_ E
|
|||||||
_persev) e (rL04_ E
|
_persev) e (rL04_ E
|
||||||
_recup) e (rL04_ E
|
_recup) e (rL04_ E
|
||||||
_refrig) e (rL04_ E
|
_refrig) e (rL04_ E
|
||||||
_ex) e (rcL02_ E
|
_ex) e (rcL02_ E
|
||||||
_alic) e (rcL02_ E
|
_alic) e (rcL02_ E
|
||||||
_p) e (rdL02_ E
|
_p) e (rdL02_ E
|
||||||
_l) e (rdL03_ E
|
_l) e (rdL03_ E
|
||||||
_h) e (rdL04_ E
|
_h) e (rdL04_ E
|
||||||
_des) e (rdL04_ E
|
_des) e (rdL04_ E
|
||||||
|
s_colh) e (res_ E
|
||||||
_) e (rgL03_ e
|
_) e (rgL03_ e
|
||||||
_so) e (rgL03_ e
|
|
||||||
_re) e (rgL03_ e
|
_re) e (rgL03_ e
|
||||||
|
_so) e (rgL03_ e
|
||||||
_bez) e (rrL03_ e
|
_bez) e (rrL03_ e
|
||||||
v) e (rtL03_ e // con- re- in-
|
v) e (rtL03_ e // con- re- in-
|
||||||
_f) e (rvL03_ e
|
_f) e (rvL03_ e
|
||||||
@@ -855,8 +855,8 @@ _entorp) e (çL03_ e
|
|||||||
óCC) o (CA_ o
|
óCC) o (CA_ o
|
||||||
úC) o (CA_ o
|
úC) o (CA_ o
|
||||||
úCC) o (CA_ o
|
úCC) o (CA_ o
|
||||||
?2 otion (_ 'owS&~N
|
?2 otion (_ 'owS&~N
|
||||||
|
|
||||||
//sort
|
//sort
|
||||||
_f) o (L05_ o
|
_f) o (L05_ o
|
||||||
_pormen) o (L05_ O
|
_pormen) o (L05_ O
|
||||||
@@ -866,15 +866,15 @@ _pormen) o (L05_ O
|
|||||||
_esn) o (bL04_ O
|
_esn) o (bL04_ O
|
||||||
_engl) o (bL04_ O
|
_engl) o (bL04_ O
|
||||||
_sal) o (brL03_ o
|
_sal) o (brL03_ o
|
||||||
_env) o (ltL03_ o
|
|
||||||
_) o (cL03_ o
|
_) o (cL03_ o
|
||||||
_m) o (fL01_ O
|
_m) o (fL01_ O
|
||||||
_m) o (fL02_ O
|
_m) o (fL02_ O
|
||||||
_s) o (frL02_ O
|
_s) o (frL02_ O
|
||||||
|
l) o (gL04_ O // dialoga, etc.
|
||||||
r) o (gL04_ O // inter-
|
r) o (gL04_ O // inter-
|
||||||
|
v) o (gL04_ O // advoga, etc.
|
||||||
_j) o (gL04_ O
|
_j) o (gL04_ O
|
||||||
af) o (gL04_ O // des-
|
af) o (gL04_ O // des-
|
||||||
_adv) o (gL04_ O
|
|
||||||
_ref) o (gL04_ O
|
_ref) o (gL04_ O
|
||||||
_ap) oi (L01_ OI
|
_ap) oi (L01_ OI
|
||||||
_ap) oi (L02_ OI
|
_ap) oi (L02_ OI
|
||||||
@@ -884,6 +884,7 @@ _pormen) o (L05_ O
|
|||||||
_emp) o (lgL04_ O
|
_emp) o (lgL04_ O
|
||||||
_) o (lhL04_ O
|
_) o (lhL04_ O
|
||||||
m) o (lhL04_ O
|
m) o (lhL04_ O
|
||||||
|
_env) o (ltL03_ o
|
||||||
ent) o (pL02_ O
|
ent) o (pL02_ O
|
||||||
_c) o (pL03_ O
|
_c) o (pL03_ O
|
||||||
_t) o (pL04_ O
|
_t) o (pL04_ O
|
||||||
@@ -1077,8 +1078,8 @@ _remem) o (rL04_ O
|
|||||||
u (a u
|
u (a u
|
||||||
g) u (a+ w
|
g) u (a+ w
|
||||||
q) u (a+ w
|
q) u (a+ w
|
||||||
u (eC u
|
u (eC u
|
||||||
u (ei u
|
u (ei u
|
||||||
r) u (_A u
|
r) u (_A u
|
||||||
u (L04_ 'u
|
u (L04_ 'u
|
||||||
|
|
||||||
@@ -1086,8 +1087,8 @@ u (ei u
|
|||||||
ui (_ 'uI
|
ui (_ 'uI
|
||||||
u (iu w
|
u (iu w
|
||||||
u (iCK u
|
u (iCK u
|
||||||
u (éC u
|
u (éC u
|
||||||
u (íC u
|
u (íC u
|
||||||
uy uI
|
uy uI
|
||||||
ul (K uw
|
ul (K uw
|
||||||
u (lh+ u
|
u (lh+ u
|
||||||
@@ -1100,7 +1101,7 @@ u (íC u
|
|||||||
|
|
||||||
g) u (Y
|
g) u (Y
|
||||||
_m) ui (tA_ 'wiN
|
_m) ui (tA_ 'wiN
|
||||||
?2 ution (_ 'uS&~N
|
?2 ution (_ 'uS&~N
|
||||||
|
|
||||||
|
|
||||||
.group ú
|
.group ú
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
[Setup]
|
[Setup]
|
||||||
AppName=eSpeak
|
AppName=eSpeak
|
||||||
AppVerName=eSpeak version 1.47.06
|
AppVerName=eSpeak version 1.47.08
|
||||||
AppCopyright=Licensed under GNU General Public License version 3. (See file License.txt for details).
|
AppCopyright=Licensed under GNU General Public License version 3. (See file License.txt for details).
|
||||||
WindowVisible=yes
|
WindowVisible=yes
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
[Setup]
|
[Setup]
|
||||||
AppName=eSpeakEdit
|
AppName=eSpeakEdit
|
||||||
AppVerName=eSpeakEdit version 1.47.06
|
AppVerName=eSpeakEdit version 1.47.08
|
||||||
DefaultDirName={pf}\eSpeak
|
DefaultDirName={pf}\eSpeak
|
||||||
DefaultGroupName=eSpeak
|
DefaultGroupName=eSpeak
|
||||||
OutputBaseFilename=setup_espeakedit
|
OutputBaseFilename=setup_espeakedit
|
||||||
|
|||||||
@@ -133,6 +133,7 @@ MNEM_TAB mnem_flags[] = {
|
|||||||
{"$stem", 0x30}, // must have a suffix
|
{"$stem", 0x30}, // must have a suffix
|
||||||
{"$atend", 0x31}, // use this pronunciation if at end of clause
|
{"$atend", 0x31}, // use this pronunciation if at end of clause
|
||||||
{"$atstart", 0x32}, // use this pronunciation at start of clause
|
{"$atstart", 0x32}, // use this pronunciation at start of clause
|
||||||
|
{"$native", 0x33}, // not if we've switched translators
|
||||||
|
|
||||||
// doesn't set dictionary_flags
|
// doesn't set dictionary_flags
|
||||||
{"$?", 100}, // conditional rule, followed by byte giving the condition number
|
{"$?", 100}, // conditional rule, followed by byte giving the condition number
|
||||||
|
|||||||
@@ -3275,6 +3275,11 @@ static const char *LookupDict2(Translator *tr, const char *word, const char *wor
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(dictionary_flags2 & FLAG_NATIVE)
|
||||||
|
{
|
||||||
|
if(tr != translator)
|
||||||
|
continue; // don't use if we've switched translators
|
||||||
|
}
|
||||||
if(dictionary_flags & FLAG_ALT2_TRANS)
|
if(dictionary_flags & FLAG_ALT2_TRANS)
|
||||||
{
|
{
|
||||||
// language specific
|
// language specific
|
||||||
|
|||||||
@@ -199,6 +199,7 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame)
|
|||||||
EVT_MENU(MENU_OPT_SPEED, MyFrame::OnOptions)
|
EVT_MENU(MENU_OPT_SPEED, MyFrame::OnOptions)
|
||||||
EVT_MENU(MENU_OPT_PUNCT, MyFrame::OnOptions)
|
EVT_MENU(MENU_OPT_PUNCT, MyFrame::OnOptions)
|
||||||
EVT_MENU(MENU_OPT_SPELL, MyFrame::OnOptions)
|
EVT_MENU(MENU_OPT_SPELL, MyFrame::OnOptions)
|
||||||
|
EVT_MENU(MENU_OPT_SPELL2, MyFrame::OnOptions)
|
||||||
EVT_MENU(MENU_PATH0, MyFrame::OnOptions)
|
EVT_MENU(MENU_PATH0, MyFrame::OnOptions)
|
||||||
EVT_MENU(MENU_PATH1, MyFrame::OnOptions)
|
EVT_MENU(MENU_PATH1, MyFrame::OnOptions)
|
||||||
EVT_MENU(MENU_PATH2, MyFrame::OnOptions)
|
EVT_MENU(MENU_PATH2, MyFrame::OnOptions)
|
||||||
@@ -625,6 +626,12 @@ void OnOptions2(int event_id)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case MENU_OPT_SPELL:
|
case MENU_OPT_SPELL:
|
||||||
|
transldlg->t_source->SetValue(_T("<say-as interpret-as=\"characters\">\n"));
|
||||||
|
transldlg->t_source->SetInsertionPointEnd();
|
||||||
|
notebook->SetSelection(1);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case MENU_OPT_SPELL2:
|
||||||
transldlg->t_source->SetValue(_T("<say-as interpret-as=\"tts:char\">\n"));
|
transldlg->t_source->SetValue(_T("<say-as interpret-as=\"tts:char\">\n"));
|
||||||
transldlg->t_source->SetInsertionPointEnd();
|
transldlg->t_source->SetInsertionPointEnd();
|
||||||
notebook->SetSelection(1);
|
notebook->SetSelection(1);
|
||||||
|
|||||||
@@ -127,6 +127,7 @@ enum {
|
|||||||
MENU_OPT_SPEED,
|
MENU_OPT_SPEED,
|
||||||
MENU_OPT_PUNCT,
|
MENU_OPT_PUNCT,
|
||||||
MENU_OPT_SPELL,
|
MENU_OPT_SPELL,
|
||||||
|
MENU_OPT_SPELL2,
|
||||||
MENU_PATHS,
|
MENU_PATHS,
|
||||||
MENU_PATH0,
|
MENU_PATH0,
|
||||||
MENU_PATH1,
|
MENU_PATH1,
|
||||||
|
|||||||
+3
-1
@@ -119,8 +119,10 @@ wxMenuBar *MakeMenu(int type, const char *dict_name)
|
|||||||
option_menu = new wxMenu;
|
option_menu = new wxMenu;
|
||||||
option_menu->Append(MENU_PATHS, _("Set &paths"), paths_menu);
|
option_menu->Append(MENU_PATHS, _("Set &paths"), paths_menu);
|
||||||
option_menu->Append(MENU_OPT_SPEED, _("Speed..."));
|
option_menu->Append(MENU_OPT_SPEED, _("Speed..."));
|
||||||
|
option_menu->AppendSeparator();
|
||||||
option_menu->Append(MENU_OPT_PUNCT, _("Speak punctuation"));
|
option_menu->Append(MENU_OPT_PUNCT, _("Speak punctuation"));
|
||||||
option_menu->Append(MENU_OPT_SPELL, _("Speak character names"));
|
option_menu->Append(MENU_OPT_SPELL, _("Speak characters"));
|
||||||
|
option_menu->Append(MENU_OPT_SPELL2, _("Speak character name"));
|
||||||
|
|
||||||
// TOOLS
|
// TOOLS
|
||||||
vowelchart_menu = new wxMenu;
|
vowelchart_menu = new wxMenu;
|
||||||
|
|||||||
+24
-20
@@ -727,37 +727,41 @@ int TranslateLetter(Translator *tr, char *word, char *phonemes, int control)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
letter = towlower2(letter);
|
letter = towlower2(letter);
|
||||||
|
LookupLetter(tr, letter, word[n_bytes], ph_buf, control & 1);
|
||||||
|
|
||||||
// is this a subscript or superscript letter ?
|
if(ph_buf[0] == 0)
|
||||||
for(ix=0; (c = derived_letters[ix]) != 0; ix+=2)
|
|
||||||
{
|
{
|
||||||
if(c > letter)
|
// is this a subscript or superscript letter ?
|
||||||
break;
|
for(ix=0; (c = derived_letters[ix]) != 0; ix+=2)
|
||||||
if(c == letter)
|
|
||||||
{
|
{
|
||||||
c = derived_letters[ix+1];
|
if(c > letter)
|
||||||
letter = c & 0x3fff;
|
break;
|
||||||
if((modifier = modifiers[c >> 14]) != NULL)
|
if(c == letter)
|
||||||
{
|
{
|
||||||
Lookup(tr, modifier, capital);
|
c = derived_letters[ix+1];
|
||||||
if(capital[0] == 0)
|
letter = c & 0x3fff;
|
||||||
|
if((modifier = modifiers[c >> 14]) != NULL)
|
||||||
{
|
{
|
||||||
capital[2] = SetTranslator2("en"); // overwrites previous contents of translator2
|
Lookup(tr, modifier, capital);
|
||||||
Lookup(translator2, modifier, &capital[3]);
|
if(capital[0] == 0)
|
||||||
if(capital[3] != 0)
|
|
||||||
{
|
{
|
||||||
capital[0] = phonPAUSE;
|
capital[2] = SetTranslator2("en"); // overwrites previous contents of translator2
|
||||||
capital[1] = phonSWITCH;
|
Lookup(translator2, modifier, &capital[3]);
|
||||||
len = strlen(&capital[3]);
|
if(capital[3] != 0)
|
||||||
capital[len+3] = phonSWITCH;
|
{
|
||||||
capital[len+4] = phontab_1;
|
capital[0] = phonPAUSE;
|
||||||
capital[len+5] = 0;
|
capital[1] = phonSWITCH;
|
||||||
|
len = strlen(&capital[3]);
|
||||||
|
capital[len+3] = phonSWITCH;
|
||||||
|
capital[len+4] = phontab_1;
|
||||||
|
capital[len+5] = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
LookupLetter(tr, letter, word[n_bytes], ph_buf, control & 1);
|
||||||
}
|
}
|
||||||
LookupLetter(tr, letter, word[n_bytes], ph_buf, control & 1);
|
|
||||||
|
|
||||||
if(ph_buf[0] == phonSWITCH)
|
if(ph_buf[0] == phonSWITCH)
|
||||||
{
|
{
|
||||||
|
|||||||
+3
-3
@@ -503,13 +503,13 @@ int towupper2(unsigned int c)
|
|||||||
return(towupper(c));
|
return(towupper(c));
|
||||||
|
|
||||||
// check whether a previous character code is the upper-case equivalent of this character
|
// check whether a previous character code is the upper-case equivalent of this character
|
||||||
if(towlower2(c-32) == c)
|
if(towlower2(c-32) == (int)c)
|
||||||
return(c-32); // yes, use it
|
return(c-32); // yes, use it
|
||||||
if(towlower2(c-1) == c)
|
if(towlower2(c-1) == (int)c)
|
||||||
return(c-1);
|
return(c-1);
|
||||||
for(ix=0; wchar_toupper[ix] != 0; ix+=2)
|
for(ix=0; wchar_toupper[ix] != 0; ix+=2)
|
||||||
{
|
{
|
||||||
if(wchar_toupper[ix] == c)
|
if(wchar_toupper[ix] == (int)c)
|
||||||
return(wchar_toupper[ix+1]);
|
return(wchar_toupper[ix+1]);
|
||||||
}
|
}
|
||||||
return(c); // no
|
return(c); // no
|
||||||
|
|||||||
+1
-1
@@ -1167,7 +1167,7 @@ ESPEAK_API void espeak_SetPhonemeTrace(int value, FILE *stream)
|
|||||||
ESPEAK_API void espeak_TextToPhonemes(const void *text, char *buffer, int size, int textmode, int phonememode)
|
ESPEAK_API void espeak_TextToPhonemes(const void *text, char *buffer, int size, int textmode, int phonememode)
|
||||||
{//==============================================================================================================
|
{//==============================================================================================================
|
||||||
/* phoneme_mode bits 0-3: 0=only phoneme names, 1=ties, 2=ZWJ, 3=underscore separator
|
/* phoneme_mode bits 0-3: 0=only phoneme names, 1=ties, 2=ZWJ, 3=underscore separator
|
||||||
bit 4: 0=eSpeak phoneme names, 1=IPA
|
bits 4-7: 0=eSpeak phoneme names, 1=IPA
|
||||||
*/
|
*/
|
||||||
option_multibyte = textmode & 7;
|
option_multibyte = textmode & 7;
|
||||||
TranslateClause(translator, NULL, text, NULL, NULL);
|
TranslateClause(translator, NULL, text, NULL, NULL);
|
||||||
|
|||||||
+62
-29
@@ -55,6 +55,9 @@ Revision 7 24.Dec.2011
|
|||||||
Changed espeak_EVENT structure to add id.string[] for phoneme mnemonics.
|
Changed espeak_EVENT structure to add id.string[] for phoneme mnemonics.
|
||||||
Added espeakINITIALIZE_PHONEME_IPA option for espeak_Initialize() to report phonemes as IPA names.
|
Added espeakINITIALIZE_PHONEME_IPA option for espeak_Initialize() to report phonemes as IPA names.
|
||||||
|
|
||||||
|
Revision 8 26.Apr.2013
|
||||||
|
Added function espeak_TextToPhonemes().
|
||||||
|
|
||||||
*/
|
*/
|
||||||
/********************/
|
/********************/
|
||||||
/* Initialization */
|
/* Initialization */
|
||||||
@@ -94,7 +97,7 @@ typedef struct {
|
|||||||
char string[8]; // used for phoneme names (UTF8). Terminated by a zero byte unless the name needs the full 8 bytes.
|
char string[8]; // used for phoneme names (UTF8). Terminated by a zero byte unless the name needs the full 8 bytes.
|
||||||
} id;
|
} id;
|
||||||
} espeak_EVENT;
|
} espeak_EVENT;
|
||||||
/*
|
/*
|
||||||
When a message is supplied to espeak_synth, the request is buffered and espeak_synth returns. When the message is really processed, the callback function will be repetedly called.
|
When a message is supplied to espeak_synth, the request is buffered and espeak_synth returns. When the message is really processed, the callback function will be repetedly called.
|
||||||
|
|
||||||
|
|
||||||
@@ -102,16 +105,16 @@ typedef struct {
|
|||||||
|
|
||||||
In PLAYBACK mode, the callback function is called as soon as an event happens.
|
In PLAYBACK mode, the callback function is called as soon as an event happens.
|
||||||
|
|
||||||
For example suppose that the following message is supplied to espeak_Synth:
|
For example suppose that the following message is supplied to espeak_Synth:
|
||||||
"hello, hello."
|
"hello, hello."
|
||||||
|
|
||||||
|
|
||||||
* Once processed in RETRIEVAL mode, it could lead to 3 calls of the callback function :
|
* Once processed in RETRIEVAL mode, it could lead to 3 calls of the callback function :
|
||||||
|
|
||||||
** Block 1:
|
** Block 1:
|
||||||
<audio data> +
|
<audio data> +
|
||||||
List of events: SENTENCE + WORD + LIST_TERMINATED
|
List of events: SENTENCE + WORD + LIST_TERMINATED
|
||||||
|
|
||||||
** Block 2:
|
** Block 2:
|
||||||
<audio data> +
|
<audio data> +
|
||||||
List of events: WORD + END + LIST_TERMINATED
|
List of events: WORD + END + LIST_TERMINATED
|
||||||
@@ -148,11 +151,11 @@ typedef enum {
|
|||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
/* PLAYBACK mode: plays the audio data, supplies events to the calling program*/
|
/* PLAYBACK mode: plays the audio data, supplies events to the calling program*/
|
||||||
AUDIO_OUTPUT_PLAYBACK,
|
AUDIO_OUTPUT_PLAYBACK,
|
||||||
|
|
||||||
/* RETRIEVAL mode: supplies audio data and events to the calling program */
|
/* RETRIEVAL mode: supplies audio data and events to the calling program */
|
||||||
AUDIO_OUTPUT_RETRIEVAL,
|
AUDIO_OUTPUT_RETRIEVAL,
|
||||||
|
|
||||||
/* SYNCHRONOUS mode: as RETRIEVAL but doesn't return until synthesis is completed */
|
/* SYNCHRONOUS mode: as RETRIEVAL but doesn't return until synthesis is completed */
|
||||||
AUDIO_OUTPUT_SYNCHRONOUS,
|
AUDIO_OUTPUT_SYNCHRONOUS,
|
||||||
|
|
||||||
@@ -199,7 +202,7 @@ extern "C"
|
|||||||
ESPEAK_API void espeak_SetSynthCallback(t_espeak_callback* SynthCallback);
|
ESPEAK_API void espeak_SetSynthCallback(t_espeak_callback* SynthCallback);
|
||||||
/* Must be called before any synthesis functions are called.
|
/* Must be called before any synthesis functions are called.
|
||||||
This specifies a function in the calling program which is called when a buffer of
|
This specifies a function in the calling program which is called when a buffer of
|
||||||
speech sound data has been produced.
|
speech sound data has been produced.
|
||||||
|
|
||||||
|
|
||||||
The callback function is of the form:
|
The callback function is of the form:
|
||||||
@@ -288,7 +291,7 @@ ESPEAK_API espeak_ERROR espeak_Synth(const void *text,
|
|||||||
start of the text.
|
start of the text.
|
||||||
|
|
||||||
position_type: Determines whether "position" is a number of characters, words, or sentences.
|
position_type: Determines whether "position" is a number of characters, words, or sentences.
|
||||||
Values:
|
Values:
|
||||||
|
|
||||||
end_position: If set, this gives a character position at which speaking will stop. A value
|
end_position: If set, this gives a character position at which speaking will stop. A value
|
||||||
of zero indicates no end position.
|
of zero indicates no end position.
|
||||||
@@ -299,6 +302,7 @@ ESPEAK_API espeak_ERROR espeak_Synth(const void *text,
|
|||||||
espeakCHARS_8BIT The 8 bit ISO-8859 character set for the particular language.
|
espeakCHARS_8BIT The 8 bit ISO-8859 character set for the particular language.
|
||||||
espeakCHARS_AUTO 8 bit or UTF8 (this is the default)
|
espeakCHARS_AUTO 8 bit or UTF8 (this is the default)
|
||||||
espeakCHARS_WCHAR Wide characters (wchar_t)
|
espeakCHARS_WCHAR Wide characters (wchar_t)
|
||||||
|
espeakCHARS_16BIT 16 bit characters.
|
||||||
|
|
||||||
espeakSSML Elements within < > are treated as SSML elements, or if not recognised are ignored.
|
espeakSSML Elements within < > are treated as SSML elements, or if not recognised are ignored.
|
||||||
|
|
||||||
@@ -307,13 +311,13 @@ ESPEAK_API espeak_ERROR espeak_Synth(const void *text,
|
|||||||
espeakENDPAUSE If set then a sentence pause is added at the end of the text. If not set then
|
espeakENDPAUSE If set then a sentence pause is added at the end of the text. If not set then
|
||||||
this pause is suppressed.
|
this pause is suppressed.
|
||||||
|
|
||||||
unique_identifier: message identifier; helpful for identifying later
|
unique_identifier: message identifier; helpful for identifying later
|
||||||
data supplied to the callback.
|
data supplied to the callback.
|
||||||
|
|
||||||
user_data: pointer which will be passed to the callback function.
|
user_data: pointer which will be passed to the callback function.
|
||||||
|
|
||||||
Return: EE_OK: operation achieved
|
Return: EE_OK: operation achieved
|
||||||
EE_BUFFER_FULL: the command can not be buffered;
|
EE_BUFFER_FULL: the command can not be buffered;
|
||||||
you may try after a while to call the function again.
|
you may try after a while to call the function again.
|
||||||
EE_INTERNAL_ERROR.
|
EE_INTERNAL_ERROR.
|
||||||
*/
|
*/
|
||||||
@@ -336,8 +340,8 @@ ESPEAK_API espeak_ERROR espeak_Synth_Mark(const void *text,
|
|||||||
|
|
||||||
For the other parameters, see espeak_Synth()
|
For the other parameters, see espeak_Synth()
|
||||||
|
|
||||||
Return: EE_OK: operation achieved
|
Return: EE_OK: operation achieved
|
||||||
EE_BUFFER_FULL: the command can not be buffered;
|
EE_BUFFER_FULL: the command can not be buffered;
|
||||||
you may try after a while to call the function again.
|
you may try after a while to call the function again.
|
||||||
EE_INTERNAL_ERROR.
|
EE_INTERNAL_ERROR.
|
||||||
*/
|
*/
|
||||||
@@ -350,8 +354,8 @@ ESPEAK_API espeak_ERROR espeak_Key(const char *key_name);
|
|||||||
If key_name is a single character, it speaks the name of the character.
|
If key_name is a single character, it speaks the name of the character.
|
||||||
Otherwise, it speaks key_name as a text string.
|
Otherwise, it speaks key_name as a text string.
|
||||||
|
|
||||||
Return: EE_OK: operation achieved
|
Return: EE_OK: operation achieved
|
||||||
EE_BUFFER_FULL: the command can not be buffered;
|
EE_BUFFER_FULL: the command can not be buffered;
|
||||||
you may try after a while to call the function again.
|
you may try after a while to call the function again.
|
||||||
EE_INTERNAL_ERROR.
|
EE_INTERNAL_ERROR.
|
||||||
*/
|
*/
|
||||||
@@ -360,10 +364,10 @@ ESPEAK_API espeak_ERROR espeak_Key(const char *key_name);
|
|||||||
extern "C"
|
extern "C"
|
||||||
#endif
|
#endif
|
||||||
ESPEAK_API espeak_ERROR espeak_Char(wchar_t character);
|
ESPEAK_API espeak_ERROR espeak_Char(wchar_t character);
|
||||||
/* Speak the name of the given character
|
/* Speak the name of the given character
|
||||||
|
|
||||||
Return: EE_OK: operation achieved
|
Return: EE_OK: operation achieved
|
||||||
EE_BUFFER_FULL: the command can not be buffered;
|
EE_BUFFER_FULL: the command can not be buffered;
|
||||||
you may try after a while to call the function again.
|
you may try after a while to call the function again.
|
||||||
EE_INTERNAL_ERROR.
|
EE_INTERNAL_ERROR.
|
||||||
*/
|
*/
|
||||||
@@ -420,7 +424,7 @@ ESPEAK_API espeak_ERROR espeak_SetParameter(espeak_PARAMETER parameter, int valu
|
|||||||
espeakRANGE: pitch range, range 0-100. 0-monotone, 50=normal
|
espeakRANGE: pitch range, range 0-100. 0-monotone, 50=normal
|
||||||
|
|
||||||
espeakPUNCTUATION: which punctuation characters to announce:
|
espeakPUNCTUATION: which punctuation characters to announce:
|
||||||
value in espeak_PUNCT_TYPE (none, all, some),
|
value in espeak_PUNCT_TYPE (none, all, some),
|
||||||
see espeak_GetParameter() to specify which characters are announced.
|
see espeak_GetParameter() to specify which characters are announced.
|
||||||
|
|
||||||
espeakCAPITALS: announce capital letters by:
|
espeakCAPITALS: announce capital letters by:
|
||||||
@@ -432,8 +436,8 @@ ESPEAK_API espeak_ERROR espeak_SetParameter(espeak_PARAMETER parameter, int valu
|
|||||||
|
|
||||||
espeakWORDGAP: pause between words, units of 10mS (at the default speed)
|
espeakWORDGAP: pause between words, units of 10mS (at the default speed)
|
||||||
|
|
||||||
Return: EE_OK: operation achieved
|
Return: EE_OK: operation achieved
|
||||||
EE_BUFFER_FULL: the command can not be buffered;
|
EE_BUFFER_FULL: the command can not be buffered;
|
||||||
you may try after a while to call the function again.
|
you may try after a while to call the function again.
|
||||||
EE_INTERNAL_ERROR.
|
EE_INTERNAL_ERROR.
|
||||||
*/
|
*/
|
||||||
@@ -455,8 +459,8 @@ ESPEAK_API espeak_ERROR espeak_SetPunctuationList(const wchar_t *punctlist);
|
|||||||
|
|
||||||
punctlist: A list of character codes, terminated by a zero character.
|
punctlist: A list of character codes, terminated by a zero character.
|
||||||
|
|
||||||
Return: EE_OK: operation achieved
|
Return: EE_OK: operation achieved
|
||||||
EE_BUFFER_FULL: the command can not be buffered;
|
EE_BUFFER_FULL: the command can not be buffered;
|
||||||
you may try after a while to call the function again.
|
you may try after a while to call the function again.
|
||||||
EE_INTERNAL_ERROR.
|
EE_INTERNAL_ERROR.
|
||||||
*/
|
*/
|
||||||
@@ -474,6 +478,35 @@ ESPEAK_API void espeak_SetPhonemeTrace(int value, FILE *stream);
|
|||||||
stream output stream for the phoneme symbols (and trace). If stream=NULL then it uses stdout.
|
stream output stream for the phoneme symbols (and trace). If stream=NULL then it uses stdout.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C"
|
||||||
|
#endif
|
||||||
|
ESPEAK_API void espeak_TextToPhonemes(const void *text, char *buffer, int size, int textmode, int phonememode);
|
||||||
|
/* Translates text into phonemes. Call espeak_SetVoiceByName() first, to select a language.
|
||||||
|
text: The text to translate, terminated by a zero character.
|
||||||
|
|
||||||
|
buffer: Output buffer for the phoneme translation.
|
||||||
|
|
||||||
|
size: Size of the output buffer in bytes.
|
||||||
|
|
||||||
|
textmode: Type of character codes, one of:
|
||||||
|
espeakCHARS_UTF8 UTF8 encoding
|
||||||
|
espeakCHARS_8BIT The 8 bit ISO-8859 character set for the particular language.
|
||||||
|
espeakCHARS_AUTO 8 bit or UTF8 (this is the default)
|
||||||
|
espeakCHARS_WCHAR Wide characters (wchar_t)
|
||||||
|
espeakCHARS_16BIT 16 bit characters.
|
||||||
|
|
||||||
|
phonememode: bits0-3:
|
||||||
|
0= just phonemes.
|
||||||
|
1= include ties (U+361) for phoneme names of more than one letter.
|
||||||
|
2= include zero-width-joiner for phoneme names of more than one letter.
|
||||||
|
3= separate phonemes with underscore characters.
|
||||||
|
|
||||||
|
bits 4-7:
|
||||||
|
0= eSpeak's ascii phoneme names.
|
||||||
|
1= International Phonetic Alphabet (as UTF-8 characters).
|
||||||
|
*/
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C"
|
extern "C"
|
||||||
#endif
|
#endif
|
||||||
@@ -501,7 +534,7 @@ typedef struct {
|
|||||||
unsigned char gender; // 0=none 1=male, 2=female,
|
unsigned char gender; // 0=none 1=male, 2=female,
|
||||||
unsigned char age; // 0=not specified, or age in years
|
unsigned char age; // 0=not specified, or age in years
|
||||||
unsigned char variant; // only used when passed as a parameter to espeak_SetVoiceByProperties
|
unsigned char variant; // only used when passed as a parameter to espeak_SetVoiceByProperties
|
||||||
unsigned char xx1; // for internal use
|
unsigned char xx1; // for internal use
|
||||||
int score; // for internal use
|
int score; // for internal use
|
||||||
void *spare; // for internal use
|
void *spare; // for internal use
|
||||||
} espeak_VOICE;
|
} espeak_VOICE;
|
||||||
@@ -546,8 +579,8 @@ ESPEAK_API espeak_ERROR espeak_SetVoiceByName(const char *name);
|
|||||||
/* Searches for a voice with a matching "name" field. Language is not considered.
|
/* Searches for a voice with a matching "name" field. Language is not considered.
|
||||||
"name" is a UTF8 string.
|
"name" is a UTF8 string.
|
||||||
|
|
||||||
Return: EE_OK: operation achieved
|
Return: EE_OK: operation achieved
|
||||||
EE_BUFFER_FULL: the command can not be buffered;
|
EE_BUFFER_FULL: the command can not be buffered;
|
||||||
you may try after a while to call the function again.
|
you may try after a while to call the function again.
|
||||||
EE_INTERNAL_ERROR.
|
EE_INTERNAL_ERROR.
|
||||||
*/
|
*/
|
||||||
@@ -588,7 +621,7 @@ ESPEAK_API espeak_ERROR espeak_Cancel(void);
|
|||||||
function returns, the audio output is fully stopped and the synthesizer is ready to
|
function returns, the audio output is fully stopped and the synthesizer is ready to
|
||||||
synthesize a new message.
|
synthesize a new message.
|
||||||
|
|
||||||
Return: EE_OK: operation achieved
|
Return: EE_OK: operation achieved
|
||||||
EE_INTERNAL_ERROR.
|
EE_INTERNAL_ERROR.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -605,7 +638,7 @@ extern "C"
|
|||||||
#endif
|
#endif
|
||||||
ESPEAK_API espeak_ERROR espeak_Synchronize(void);
|
ESPEAK_API espeak_ERROR espeak_Synchronize(void);
|
||||||
/* This function returns when all data have been spoken.
|
/* This function returns when all data have been spoken.
|
||||||
Return: EE_OK: operation achieved
|
Return: EE_OK: operation achieved
|
||||||
EE_INTERNAL_ERROR.
|
EE_INTERNAL_ERROR.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -614,7 +647,7 @@ extern "C"
|
|||||||
#endif
|
#endif
|
||||||
ESPEAK_API espeak_ERROR espeak_Terminate(void);
|
ESPEAK_API espeak_ERROR espeak_Terminate(void);
|
||||||
/* last function to be called.
|
/* last function to be called.
|
||||||
Return: EE_OK: operation achieved
|
Return: EE_OK: operation achieved
|
||||||
EE_INTERNAL_ERROR.
|
EE_INTERNAL_ERROR.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -35,7 +35,7 @@
|
|||||||
#include "translate.h"
|
#include "translate.h"
|
||||||
#include "wave.h"
|
#include "wave.h"
|
||||||
|
|
||||||
const char *version_string = "1.47.07b 25.Apr.13";
|
const char *version_string = "1.47.08 26.Apr.13";
|
||||||
const int version_phdata = 0x014701;
|
const int version_phdata = 0x014701;
|
||||||
|
|
||||||
int option_device_number = -1;
|
int option_device_number = -1;
|
||||||
|
|||||||
+2
-1
@@ -81,8 +81,9 @@
|
|||||||
#define FLAG_ONLY 0x4000
|
#define FLAG_ONLY 0x4000
|
||||||
#define FLAG_ONLY_S 0x8000
|
#define FLAG_ONLY_S 0x8000
|
||||||
#define FLAG_STEM 0x10000 // must have a suffix
|
#define FLAG_STEM 0x10000 // must have a suffix
|
||||||
#define FLAG_ATEND 0x20000 /* use this pronunciation if at end of clause */
|
#define FLAG_ATEND 0x20000 // use this pronunciation if at end of clause
|
||||||
#define FLAG_ATSTART 0x40000 // use this pronunciation if at start of clause
|
#define FLAG_ATSTART 0x40000 // use this pronunciation if at start of clause
|
||||||
|
#define FLAG_NATIVE 0x80000 // not if we've switched translators
|
||||||
#define FLAG_LOOKUP_SYMBOL 0x40000000 // to indicate called from Lookup()
|
#define FLAG_LOOKUP_SYMBOL 0x40000000 // to indicate called from Lookup()
|
||||||
|
|
||||||
#define BITNUM_FLAG_ALLCAPS 0x2a
|
#define BITNUM_FLAG_ALLCAPS 0x2a
|
||||||
|
|||||||
Reference in New Issue
Block a user