|
|
@@ -528,7 +528,6 @@ voice_t *LoadVoice(const char *vname, int control) |
|
|
|
int tone_only = control & 2; |
|
|
|
bool language_set = false; |
|
|
|
bool phonemes_set = false; |
|
|
|
int conditional_rules = 0; |
|
|
|
|
|
|
|
char voicename[40]; |
|
|
|
char language_name[40]; |
|
|
@@ -766,9 +765,21 @@ voice_t *LoadVoice(const char *vname, int control) |
|
|
|
translator->langopts.tunes[ix] = value; |
|
|
|
} |
|
|
|
break; |
|
|
|
|
|
|
|
case V_DICTRULES: // conditional dictionary rules and list entries |
|
|
|
case V_NUMBERS: |
|
|
|
if (CheckTranslator(translator, keyword_tab, key) != 0) |
|
|
|
break; |
|
|
|
|
|
|
|
ReadNumbers(p, &translator->dict_condition, 32, keyword_tab, key); |
|
|
|
break; |
|
|
|
case V_STRESSOPT: |
|
|
|
if (CheckTranslator(translator, keyword_tab, key) != 0) |
|
|
|
break; |
|
|
|
|
|
|
|
ReadNumbers(p, &translator->langopts.stress_flags, 32, keyword_tab, key); |
|
|
|
break; |
|
|
|
|
|
|
|
case V_NUMBERS: |
|
|
|
if (CheckTranslator(translator, keyword_tab, key) != 0) |
|
|
|
break; |
|
|
|
|
|
|
@@ -778,18 +789,12 @@ voice_t *LoadVoice(const char *vname, int control) |
|
|
|
if ((n = atoi(p)) > 0) { |
|
|
|
p++; |
|
|
|
if (n < 32) { |
|
|
|
if (key == V_DICTRULES) |
|
|
|
conditional_rules |= (1 << n); |
|
|
|
else if (key == V_NUMBERS) |
|
|
|
translator->langopts.numbers |= (1 << n); |
|
|
|
else if (key == V_STRESSOPT) |
|
|
|
translator->langopts.stress_flags |= (1 << n); |
|
|
|
} else { |
|
|
|
if ((key == V_NUMBERS) && (n < 64)) |
|
|
|
if (n < 64) |
|
|
|
translator->langopts.numbers2 |= (1 << (n-32)); |
|
|
|
else |
|
|
|
fprintf(stderr, "Bad option number %d\n", n); |
|
|
|
} |
|
|
|
fprintf(stderr, "numbers: Bad option number %d\n", n); } |
|
|
|
} |
|
|
|
while (isalnum(*p)) p++; |
|
|
|
} |
|
|
@@ -949,8 +954,6 @@ voice_t *LoadVoice(const char *vname, int control) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
translator->dict_condition = conditional_rules; |
|
|
|
|
|
|
|
voice_languages[langix] = 0; |
|
|
|
} |
|
|
|
|