Conflicts: dictsource/dict_phonemes phsource/compile_report phsource/vnasal/a#_n2 phsource/vnasal/o_n4master
@@ -107,57 +107,67 @@ _1M2 un||mil^'on | |||
_0M4 bil^'ons | |||
_1M4 un||bil^'on | |||
_0and i | |||
_0and %i | |||
_dpt kon | |||
// ordinal numbers | |||
_#º 'eno | |||
_#ª 'ena | |||
_#º o | |||
_#ª a | |||
//_ord eno | |||
_1o un | |||
1o prim'Er | |||
_2o dos | |||
2o seQ'und | |||
_3o tres | |||
3o tErT'Er | |||
_4o kwatr | |||
_5o Tink | |||
_6o seIs | |||
_7o sEt | |||
_8o gwit | |||
_9o n'U | |||
_10o DET | |||
_11o onT | |||
_12o DoT | |||
_13o tReT | |||
_14o katorT | |||
_15o kinT | |||
_16o sET | |||
_1ox prim'Er | |||
_2ox seQ'und | |||
_3ox tErT'Er | |||
_1o un'en | |||
_2o dos'en | |||
_3o tres'en | |||
_4o kwatr'en | |||
_5o Tink'en | |||
_6o seIs'en | |||
_7o sEt'en | |||
_8o gwit'en | |||
_9o nU'en | |||
_11o onT'en | |||
_12o DoT'en | |||
_13o tReT'en | |||
_14o katorT'en | |||
_15o kinT'en | |||
_16o sET'en | |||
_10o DET'en | |||
_20o Bint'en | |||
_30o trent'en | |||
_40o kwarant'en | |||
_50o Tinkwant'en | |||
_60o siSant'en | |||
_70o sEtant'en | |||
_80o gwitant'en | |||
_90o noBant'en | |||
_1Xo DeTi | |||
_20o Bint | |||
_2Xo Binti | |||
_30o trent | |||
_3Xo trentaI | |||
_40o kwarant | |||
_4Xo kwarantaI | |||
_50o Tinkwant | |||
_5Xo TinkwantaI | |||
_60o siSant | |||
_6Xo siSantaI | |||
_70o sEtant | |||
_7Xo sEtantaI | |||
_80o gwitant | |||
_8Xo gwitantaI | |||
_90o noBant | |||
_9Xo noBantaI | |||
_0Co TEnt | |||
_1Co TEnt | |||
_0M1o mil | |||
_1M1 mil | |||
_0M2o mil^on | |||
_1M2o mil^on | |||
_1Co TEnt'en | |||
_2Co dosTEnt'en | |||
_3Co tresTEnt'en | |||
_4Co kw,atroTEnt'en | |||
_5Co T,inkoTEnt'en | |||
_6Co seIsTEnt'en | |||
_7Co sjEtTEnt'en | |||
_8Co gw,eItoTEnt'en | |||
_9Co nweUTEnt'en | |||
_0M1o mil'en | |||
_1M1 mil'en | |||
_0M2o mil^on'en | |||
_1M2o mil^on'en | |||
// unstressed words |
@@ -4,13 +4,17 @@ | |||
// words of one letter | |||
в $combine | |||
а $u $combine | |||
а $u $combine | |||
е $u | |||
й i $u | |||
й i $u | |||
и $u $pause | |||
у $u $combine | |||
с $combine | |||
г god'ina $hasdot | |||
у $u $combine | |||
с $combine | |||
г god'ina $hasdot | |||
(а в) %av | |||
(а с) %as | |||
// letter names | |||
б b@ |
@@ -5864,7 +5864,7 @@ | |||
_) zs (Y z | |||
_) z (wY z | |||
n) z (_ ts | |||
n) z (_N ts | |||
@) zales (_ z'A:l@s | |||
zei zaI | |||
zes (_ zI2z |
@@ -195,12 +195,7 @@ _dpt _d@s@ml'o:_ // ?? what is Hi for "." ? | |||
ॐ #X1o~m | |||
_?? Vks.@r | |||
_a ej | |||
_b bi: | |||
_c si: | |||
_d di: | |||
_e i: | |||
_f Ef | |||
// Punctuation | |||
। dVn.d.V |
@@ -26,7 +26,7 @@ p pi: | |||
q kju: | |||
r a:r | |||
s Es | |||
t thi: | |||
t t#i: | |||
u ju: | |||
v vi: | |||
w dabalju: |
@@ -63,7 +63,7 @@ p pi: | |||
q kju: | |||
r a:R | |||
s Es | |||
t ti: | |||
t t#i: | |||
u ju: | |||
v vi: | |||
w dVbVlju: |
@@ -734,6 +734,7 @@ comodo $alt2 | |||
concerto $alt2 $noun | |||
concordo $alt | |||
conforto $alt $verb | |||
congelo $alt | |||
consolo $alt2 $noun | |||
controle $alt2 $noun | |||
controlo $alt2 $noun | |||
@@ -861,7 +862,6 @@ hemorroida $alt | |||
hoje $alt2 | |||
horrores $alt2 | |||
ideia $alt | |||
insonoro $alt | |||
interesse $alt2 $noun | |||
jogo $alt2 $noun | |||
joguete $alt2 | |||
@@ -993,6 +993,7 @@ selvagem seUv'aZeIN | |||
sexteto $alt2 | |||
?1 senhora $alt2 | |||
senhores $alt2 | |||
singelo $alt | |||
sinopse $alt | |||
soco $alt2 | |||
soco $alt $verb | |||
@@ -1030,6 +1031,7 @@ trombeta $alt2 | |||
tumores $alt2 | |||
valeta $alt2 | |||
vanessa $alt2 | |||
velo $alt | |||
velozes $alt | |||
verme $alt | |||
violeta $alt2 |
@@ -359,12 +359,11 @@ | |||
_perd) e (L05_ e | |||
_quis) e (L05_ E | |||
_soub) e (L05_ E | |||
proteg) e (L05_ e // des- | |||
diss) e (L06_ E / contra- | |||
diss) e (L06_ E // contra- | |||
tend) e (L06_ e // a- con- en- es- | |||
vend) e (L06_ e // re- | |||
_mord) e (L06_ e | |||
_rend) e (L06_ e | |||
_vend) e (L06_ e | |||
prend) e (L06_ e // a- rea- des- desa- | |||
_arrepend) e (L06_ e | |||
_defend) e (L06_ e | |||
@@ -373,7 +372,7 @@ _escond) e (L06_ e | |||
preend) e (L06_ e // com- a- re- sur- | |||
respond) e (L06_ e // cor- | |||
bat) e (L07_ e // re- com- | |||
ceb) e (L07_ e / re- per- con- | |||
ceb) e (L07_ e // re- per- con- | |||
ced) e (L07_ e // pro- con- su- | |||
met) e (L07_ e // co- pro- arre- re- intro- compro- sub- | |||
mov) e (L07_ e // re- co- | |||
@@ -388,6 +387,7 @@ respond) e (L06_ e // cor- | |||
tend) e (L07_ e // en- con- a- es- | |||
torc) e (L07_ e // con- | |||
venc) e (L07_ e // con- | |||
vend) e (L07_ e // re- | |||
vert) e (L07_ e // in- re- con- | |||
volv) e (L07_ e // de- en- re- | |||
_eleg) e (L07_ e | |||
@@ -401,7 +401,6 @@ respond) e (L06_ e // cor- | |||
parec) e (L07_ e // a- rea- com- desa- | |||
prend) e (L07_ e // a- rea- des- | |||
screv) e (L07_ e // e- in- ree- pre- de- | |||
_abastec) e (L07_ e | |||
_aborrec) e (L07_ e | |||
_absolv) e (L07_ e | |||
_adoec) e (L07_ e | |||
@@ -434,6 +433,7 @@ _perec) e (L07_ e | |||
_rejuvenec) e (L07_ e | |||
_resolv) e (L07_ e | |||
_suspend) e (L07_ e | |||
abastec) e (L07_ e // re- | |||
conhec) e (L07_ e // & re- des- | |||
estabelec) e (L07_ e // re- | |||
favorec) e (L07_ e // des- | |||
@@ -458,10 +458,12 @@ respond) e (L07_ e // cor- | |||
_sev) e (rL03_ E | |||
_reit) e (rL03_ E | |||
_sinc) e (rL03_ E | |||
g) e (rL04_ E // su- refri- | |||
_g) e (rL04_ E | |||
qu) e (rL04_ E // re- | |||
_op) e (rL04_ E | |||
gen) e (rL04_ E // de- re- | |||
_alt) e (rL04_ E | |||
_sug) e (rL04_ E | |||
_sup) e (rL04_ E | |||
_tol) e (rL04_ E | |||
_ven) e (rL04_ E | |||
@@ -469,6 +471,7 @@ respond) e (L07_ e // cor- | |||
_coop) e (rL04_ E | |||
_temp) e (rL04_ E | |||
_recup) e (rL04_ E | |||
_refrig) e (rL04_ E | |||
_v) e (rbL03_ E | |||
_p) e (rdL02_ E | |||
_l) e (rdL03_ E | |||
@@ -503,11 +506,13 @@ _obsol) e (tL03_ e | |||
scr) e (vL03_ e // e- in- pre- ree- de- | |||
_atr) e (vL03_ e | |||
_r) e (zL04_ E | |||
pr) e (zL04_ E / des- menos- | |||
_pr) e (zL04_ E | |||
_despr) e (zL04_ E | |||
_embel) e (zL04_ E | |||
_menospr) e (zL04_ E | |||
_emagr) e (çL03 | |||
pr) e (çL03_ e // a- | |||
aqu) e (çL03_ e / re- | |||
aqu) e (çL03_ e // re- | |||
mer) e (çL03_ e // des- | |||
pad) e (çL03_ e // com- | |||
par) e (çL03_ e // a- re- com- rea- desa- | |||
@@ -859,6 +864,10 @@ _desabr) o (chL04_ O | |||
_ens) o (pL04_ O | |||
_s) o (prL04_ O | |||
_) o (ptL04_ O | |||
_inod) o (rL03_ O | |||
_inson) o (rL03_ O | |||
_comem) o (rL04 O | |||
_remem) o (rL04_ O | |||
_enf) o (rquL02_ O | |||
c) o (rrL01_ o // escorra, incorra, corra, recorra | |||
_m) o (rrL01_ o |
@@ -68,7 +68,7 @@ p pi: | |||
q kju: | |||
r a:R | |||
s Es | |||
t thi: | |||
t t#i: | |||
u ju: | |||
v vi: | |||
w dVbVlju: |
@@ -950,6 +950,7 @@ _துப்பாக்கி) க்க (ுண்ட gg | |||
_ப) சக் tSVk | |||
_) ச (க்கரவர்த்தி tSV | |||
_) ச (க்கிலி tSV | |||
_) சக் (ரவர்த்தி tSVk | |||
_க) ச (க்ஸ்தான zV | |||
சங்க (ர s.VNkV | |||
_) ச (ட்டL08ஸ்கர tSV | |||
@@ -1057,6 +1058,7 @@ _தணிகா) ச (ல tSV | |||
_வரதா) ச (ாரி tS | |||
_வேதா) ச (ாரி tS | |||
_கிருஷ்ணமா) ச (ாரி tS | |||
_கோபால) ச (ாரி tS | |||
_சங்கரா) ச (ாரி tS | |||
_தேசிகா) ச (ாரி tS | |||
_பட்டா) ச (ாரி tS | |||
@@ -1064,6 +1066,7 @@ _பிரம்ம) ச (ாரி tS | |||
_மத்வா) ச (ாரி tS | |||
அனந்தா) ச (ாரி tS | |||
அன்னமா) ச (ாரி tS | |||
ராஜகோபால) ச (ாரி tS | |||
ராமானுஜா) ச (ாரி tS | |||
ஆ) ச (ாரிய_ tS | |||
ஆ) ச (ாரியார tS | |||
@@ -2601,6 +2604,10 @@ _டீயும்_) ப (ன்னும்_ bV | |||
_) ப (ாகீரதி b | |||
_) ப (ாக்கிக் b | |||
_) ப (ாக்கிய b | |||
_) ப (ாக்டரி_ f | |||
_) ப (ாக்டரியா b | |||
_) ப (ாக்டரியி f | |||
_) ப (ாக்டரியை f | |||
_) பாக்ட (ீரியா ba:kt. | |||
_) பாக்த (ாத ba:gd | |||
_) ப (ாக்ய b | |||
@@ -2947,6 +2954,7 @@ _விளையாடு_) ப (ாம்பே p | |||
_) பி (ராதித் p | |||
_) பி (ராத்தல b | |||
_) பி (ராந்தி_ b | |||
_) பி (ராந்திய_ p | |||
_) பி (ராந்தியங் p | |||
_) பி (ராந்தியத் p | |||
_) பி (ராந்தியம்_ p | |||
@@ -2986,8 +2994,10 @@ _விளையாடு_) ப (ாம்பே p | |||
_) பி (ரித்தானி b | |||
_) பிரின்சிப (ால prinsip | |||
_) பி (ரிமிய p | |||
_) பி (ரியங்கள p | |||
_) பிரியங்க (ா prijVNk | |||
_) பி (ரியதர p | |||
_) பி (ரியத்த p | |||
_) பி (ரியன p | |||
_) பி (ரியப்பட p | |||
_) பி (ரியம p |
@@ -24,7 +24,7 @@ p pi: | |||
q kju: | |||
r a:r | |||
s Es | |||
t thi: | |||
t t#i: | |||
u ju: | |||
v vi: | |||
w dVbVlju: |
@@ -77,7 +77,7 @@ ỵ ỵ | |||
//================================ | |||
// Consonants | |||
//================================ | |||
.L01 t c ne nd k x s nt ch th me te le ce ny ry e o u re nch de p pe ph sh v ve | |||
.L01 t c ne nd k x s nt ch th me te le ce ny ry e o u re nch de p pe ph sh v ve ge | |||
.L02 n | |||
@@ -460,7 +460,7 @@ ỵ ỵ | |||
.group i | |||
i i | |||
i (A j | |||
//i (A j | |||
ia i@ | |||
ià i@2 | |||
iá i@3 | |||
@@ -822,7 +822,7 @@ ỵ ỵ | |||
.group y | |||
y i | |||
y (A j | |||
// y (A j | |||
ya i@ | |||
yà i@2 | |||
yá i@3 | |||
@@ -837,7 +837,7 @@ ỵ ỵ | |||
yệ i@6 | |||
// yêu i@U | |||
y (L01 _^_EN | |||
.group ỳ | |||
ỳ i2 |
@@ -745,6 +745,7 @@ static void CompileReport(void) | |||
REF_HASH_TAB **list; | |||
const char *data_path; | |||
int prev_table; | |||
int procedure_num; | |||
int prev_mnemonic; | |||
if(f_report == NULL) | |||
@@ -802,7 +803,17 @@ static void CompileReport(void) | |||
j++; | |||
} | |||
fprintf(f_report," [%s] %s",WordToString(prev_mnemonic = list[ix]->ph_mnemonic), phoneme_tab_list2[prev_table = list[ix]->ph_table].name); | |||
prev_mnemonic = list[ix]->ph_mnemonic; | |||
if((prev_mnemonic >> 24) == 'P') | |||
{ | |||
// a procedure, not a phoneme | |||
procedure_num = atoi(WordToString(prev_mnemonic)); | |||
fprintf(f_report," %s %s", phoneme_tab_list2[prev_table = list[ix]->ph_table].name, proc_names[procedure_num]); | |||
} | |||
else | |||
{ | |||
fprintf(f_report," [%s] %s",WordToString(prev_mnemonic), phoneme_tab_list2[prev_table = list[ix]->ph_table].name); | |||
} | |||
fputc('\n',f_report); | |||
} | |||
@@ -1856,7 +1867,7 @@ static int LoadWavefile(FILE *f, const char *fname) | |||
} | |||
sprintf(command,"sox \"%s%s.wav\" -r %d -c1 -t wav %s\n",path_source,fname2,samplerate_native, fname_temp); | |||
if(system(command) < 0) | |||
if(system(command) != 0) | |||
{ | |||
failed = 1; | |||
} | |||
@@ -2761,6 +2772,8 @@ int CompilePhoneme(int compile_phoneme) | |||
} | |||
strcpy(proc_names[n_procs], item_string); | |||
phoneme_out = &phoneme_out2; | |||
sprintf(number_buf,"%.3dP", n_procs); | |||
phoneme_out->mnemonic = StringToWord(number_buf); | |||
} | |||
phoneme_out->code = phcode; | |||
@@ -3498,10 +3511,11 @@ static void CompilePhonemeData2(const char *source) | |||
make_envs(); | |||
#endif | |||
wxLogStatus(_T("Compiling phoneme data: ")+wxString(path_source,wxConvLocal)); | |||
n_envelopes = 0; | |||
error_count = 0; | |||
resample_count = 0; | |||
memset(markers_used,0,sizeof(markers_used)); | |||
memset(markers_used,0,sizeof(markers_used)); | |||
f_errors = stderr; | |||
@@ -3666,7 +3680,7 @@ fprintf(f_errors,"\nRefs %d, Reused %d\n",count_references,duplicate_references | |||
if(error_count > 0) | |||
{ | |||
report += _T(" See file: 'phsource/error_log'."); | |||
report += _T(" See file: '")+wxString(path_source,wxConvLocal)+_T("phsource/error_log'."); | |||
wxLogError(report); | |||
} | |||
wxLogStatus(report + report_dict); | |||
@@ -4136,7 +4150,11 @@ void CompilePhonemeData() | |||
void CompileSampleRate() | |||
{ | |||
long value; | |||
value = wxGetNumberFromUser(_T("Compile phoneme data with a specified sample rate"), _T("Sample rate"), _T("Resample (needs sox)"), 22050, 5000, 48000); | |||
#ifndef PLATFORM_POSIX | |||
wxLogError(_T("Change Sample Rate needs the 'sox' program. It probably doesn't work on Windows")); | |||
#endif | |||
value = wxGetNumberFromUser(_T("Compile phoneme data with a specified sample rate"), _T("Sample rate"), _T("Resample (needs 'sox' program)"), 22050, 5000, 48000); | |||
if(value > 1000) | |||
{ |
@@ -91,8 +91,8 @@ wxMenuBar *MakeMenu(int type, const char *dict_name) | |||
data_menu = new wxMenu; | |||
data_menu->Append(MENU_COMPILE_DICT, _("Compile &dictionary")); | |||
data_menu->Append(MENU_COMPILE_DICT_DEBUG, _("Compile dictionary (debu&g)")); | |||
data_menu->Append(MENU_COMPILE_PH, _("Compile &phoneme data")); | |||
data_menu->Append(MENU_COMPILE_PH2, _("Change sample &rate")); | |||
data_menu->Append(MENU_COMPILE_PH, _("Compile &phoneme data 22050Hz")); | |||
data_menu->Append(MENU_COMPILE_PH2, _("Compile at sample &rate")); | |||
data_menu->AppendSeparator(); | |||
data_menu->Append(MENU_COMPILE_MBROLA, _("Compile &mbrola phonemes list...")); | |||
data_menu->Append(MENU_COMPILE_INTONATION, _("Compile &intonation data")); |
@@ -35,7 +35,7 @@ | |||
#include "translate.h" | |||
#include "wave.h" | |||
const char *version_string = "1.46.51 15.Mar.13"; | |||
const char *version_string = "1.46.53 16.Mar.13"; | |||
const int version_phdata = 0x014640; | |||
int option_device_number = -1; |
@@ -82,7 +82,7 @@ const char *WordToString(unsigned int word) | |||
int ix; | |||
static char buf[5]; | |||
for(ix=0; ix<3; ix++) | |||
for(ix=0; ix<4; ix++) | |||
buf[ix] = word >> (ix*8); | |||
buf[4] = 0; | |||
return(buf); |
@@ -455,6 +455,7 @@ Translator *SelectTranslator(const char *name) | |||
static const short stress_lengths_sk[8] = {190,190, 210,210, 0,0, 210,210}; | |||
static const short stress_lengths_ta[8] = {200, 200, 210, 210, 0, 0, 230, 230}; | |||
static const short stress_lengths_ta2[8] = {230, 230, 240, 240, 0, 0, 260, 260}; | |||
static const unsigned char stress_amps_ta[8] = {18,18, 18,18, 20,20, 22,22 }; | |||
// convert name string into a word of up to 4 characters, for the switch() | |||
@@ -731,6 +732,7 @@ Translator *SelectTranslator(const char *name) | |||
if(name2 == L('a','n')) | |||
{ | |||
tr->langopts.stress_flags = S_FINAL_SPANISH | S_FINAL_DIM_ONLY | S_FINAL_NO_2; | |||
tr->langopts.numbers2 = 0; | |||
} | |||
else | |||
if(name2 == L_pap) | |||
@@ -1423,7 +1425,7 @@ SetLengthMods(tr,3); // all equal | |||
case L('m','r'): // Marathi | |||
case L('t','e'): // Telugu | |||
{ | |||
SetupTranslator(tr,stress_lengths_ta,stress_amps_ta); | |||
SetupTranslator(tr,stress_lengths_ta2, stress_amps_ta); | |||
tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable | |||
tr->langopts.stress_rule = STRESSPOSN_1L; | |||
@@ -1433,9 +1435,12 @@ SetLengthMods(tr,3); // all equal | |||
if(name2 == L('t','a')) | |||
{ | |||
SetupTranslator(tr,stress_lengths_ta, NULL); | |||
tr->letter_bits_offset = OFFSET_TAMIL; | |||
tr->langopts.numbers = NUM_OMIT_1_THOUSAND ; | |||
tr->langopts.param[LOPT_WORD_MERGE] = 1; // don't break vowels betwen words | |||
} | |||
else | |||
if(name2 == L('m','r')) | |||
{ | |||
tr->letter_bits_offset = OFFSET_DEVANAGARI; | |||
@@ -1458,9 +1463,8 @@ SetLengthMods(tr,3); // all equal | |||
tr->letter_bits_offset = OFFSET_TELUGU; | |||
tr->langopts.numbers = 0x1; | |||
} | |||
tr->langopts.param[LOPT_WORD_MERGE] = 1; // don't break vowels betwen words | |||
SetIndicLetters(tr); // call this after setting OFFSET_ | |||
SetLetterBitsRange(tr,LETTERGP_B,0x4e,0x4e); // chillu-virama (unofficial) | |||
SetLetterBitsRange(tr,LETTERGP_B,0x4e,0x4e); // chillu-virama (unofficial) | |||
} | |||
break; | |||
@@ -842,7 +842,7 @@ int TranslateWord(Translator *tr, char *word_start, int next_pause, WORD_TAB *wt | |||
char prefix_chars[0x3f + 2]; | |||
int found=0; | |||
int end_flags; | |||
char c_temp; // save a character byte while we temporarily replace it with space | |||
int c_temp; // save a character byte while we temporarily replace it with space | |||
int first_char; | |||
int last_char = 0; | |||
int add_plural_suffix = 0; | |||
@@ -912,7 +912,9 @@ int TranslateWord(Translator *tr, char *word_start, int next_pause, WORD_TAB *wt | |||
if((word_length == 1) && (wflags & FLAG_TRANSLATOR2)) | |||
{ | |||
// retranslating a 1-character word using a different language, say its name | |||
spell_word = 1; | |||
utf8_in(&c_temp, wordx+1); // the next character | |||
if(!IsAlpha(c_temp) || (AlphabetFromChar(last_char) != AlphabetFromChar(c_temp))) | |||
spell_word = 1; | |||
} | |||
if(option_sayas == SAYAS_KEY) | |||
@@ -1938,6 +1940,7 @@ static int TranslateWord2(Translator *tr, char *word, WORD_TAB *wtab, int pre_pa | |||
if(ok) | |||
{ | |||
*p2 = '-'; // replace next space by hyphen | |||
wtab[0].flags &= ~FLAG_ALL_UPPER; // prevent it being considered an abbreviation | |||
flags = TranslateWord(translator, word, next_pause, wtab, NULL); // translate the combined word | |||
if((sylimit > 0) && (CountSyllables(p) > (sylimit & 0x1f))) | |||
{ |