Browse Source

Use ESPEAKNG_DEFAULT_VOICE instead of hard coded "en".

This will make it easier to set a default voice other than
English. This is important for cases when a language will fall back to
the default voice.

Some references to L('e', 'n') still need to be changed.
master
Juho Hiltunen 3 years ago
parent
commit
d80f1a80a2

+ 2
- 2
src/libespeak-ng/dictionary.c View File

} }
*outptr = 0; *outptr = 0;
if (c == 0) { if (c == 0) {
if (strcmp(p_lang, "en") == 0) {
*p_lang = 0; // don't need "en", it's assumed by default
if (strcmp(p_lang, ESPEAKNG_DEFAULT_VOICE) == 0) {
*p_lang = 0; // don't need ESPEAKNG_DEFAULT_VOICE, it's assumed by default
return p; return p;
} }
} else } else

+ 3
- 3
src/libespeak-ng/numbers.c View File

if (tr->translator_name == L('e', 'n')) if (tr->translator_name == L('e', 'n'))
return; // we are already using English return; // we are already using English


SetTranslator2("en");
SetTranslator2(ESPEAKNG_DEFAULT_VOICE);
if (Lookup(translator2, &single_letter[2], ph_buf3) != 0) { if (Lookup(translator2, &single_letter[2], ph_buf3) != 0) {
// yes, switch to English and re-translate the word // yes, switch to English and re-translate the word
sprintf(ph_buf1, "%c", phonSWITCH); sprintf(ph_buf1, "%c", phonSWITCH);
// don't say "superscript" during normal text reading // don't say "superscript" during normal text reading
Lookup(tr, modifier, capital); Lookup(tr, modifier, capital);
if (capital[0] == 0) { if (capital[0] == 0) {
capital[2] = SetTranslator2("en"); // overwrites previous contents of translator2
capital[2] = SetTranslator2(ESPEAKNG_DEFAULT_VOICE); // overwrites previous contents of translator2
Lookup(translator2, modifier, &capital[3]); Lookup(translator2, modifier, &capital[3]);
if (capital[3] != 0) { if (capital[3] != 0) {
capital[0] = phonPAUSE; capital[0] = phonPAUSE;
ph_buf2[0] = 0; ph_buf2[0] = 0;
if (Lookup(translator, alphabet->name, ph_alphabet) == 0) { // the original language for the current voice if (Lookup(translator, alphabet->name, ph_alphabet) == 0) { // the original language for the current voice
// Can't find the local name for this alphabet, use the English name // Can't find the local name for this alphabet, use the English name
ph_alphabet[2] = SetTranslator2("en"); // overwrites previous contents of translator2
ph_alphabet[2] = SetTranslator2(ESPEAKNG_DEFAULT_VOICE); // overwrites previous contents of translator2
Lookup(translator2, alphabet->name, ph_buf2); Lookup(translator2, alphabet->name, ph_buf2);
} else if (translator != tr) { } else if (translator != tr) {
phontab_1 = tr->phoneme_tab_ix; phontab_1 = tr->phoneme_tab_ix;

+ 3
- 3
src/libespeak-ng/readclause.c View File



if ((only == 0) && ((phonemes[0] == 0) || (phonemes[0] == phonSWITCH)) && (tr->translator_name != L('e', 'n'))) { if ((only == 0) && ((phonemes[0] == 0) || (phonemes[0] == phonSWITCH)) && (tr->translator_name != L('e', 'n'))) {
// not found, try English // not found, try English
SetTranslator2("en");
SetTranslator2(ESPEAKNG_DEFAULT_VOICE);
string = &single_letter[1]; string = &single_letter[1];
single_letter[1] = '_'; single_letter[1] = '_';
if (LookupDictList(translator2, &string, phonemes, flags, 0, NULL) == 0) { if (LookupDictList(translator2, &string, phonemes, flags, 0, NULL) == 0) {
LookupDictList(translator2, &string, phonemes, flags, 0, NULL); LookupDictList(translator2, &string, phonemes, flags, 0, NULL);
} }
if (phonemes[0]) if (phonemes[0])
lang_name = "en";
lang_name = ESPEAKNG_DEFAULT_VOICE;
else else
SelectPhonemeTable(voice->phoneme_tab_ix); // revert to original phoneme table SelectPhonemeTable(voice->phoneme_tab_ix); // revert to original phoneme table
} }
if (lang_name) { if (lang_name) {
SetWordStress(translator2, phonemes, flags, -1, 0); SetWordStress(translator2, phonemes, flags, -1, 0);
DecodePhonemes(phonemes, phonemes2); DecodePhonemes(phonemes, phonemes2);
sprintf(buf, "[\002_^_%s %s _^_%s]]", "en", phonemes2, WordToString2(tr->translator_name));
sprintf(buf, "[\002_^_%s %s _^_%s]]", ESPEAKNG_DEFAULT_VOICE, phonemes2, WordToString2(tr->translator_name));
SelectPhonemeTable(voice->phoneme_tab_ix); // revert to original phoneme table SelectPhonemeTable(voice->phoneme_tab_ix); // revert to original phoneme table
} else { } else {
SetWordStress(tr, phonemes, flags, -1, 0); SetWordStress(tr, phonemes, flags, -1, 0);

+ 1
- 1
src/libespeak-ng/speech.c View File



espeak_ng_STATUS status; espeak_ng_STATUS status;
if (translator == NULL) { if (translator == NULL) {
status = espeak_ng_SetVoiceByName("en");
status = espeak_ng_SetVoiceByName(ESPEAKNG_DEFAULT_VOICE);
if (status != ENS_OK) if (status != ENS_OK)
return status; return status;
} }

+ 2
- 2
src/libespeak-ng/translate.c View File

if (unpron_phonemes[0] == phonSWITCH) { if (unpron_phonemes[0] == phonSWITCH) {
// change to another language in order to translate this word // change to another language in order to translate this word
strcpy(word_phonemes, unpron_phonemes); strcpy(word_phonemes, unpron_phonemes);
if (strcmp(&unpron_phonemes[1], "en") == 0)
if (strcmp(&unpron_phonemes[1], ESPEAKNG_DEFAULT_VOICE) == 0)
return FLAG_SPELLWORD; // _^_en must have been set in TranslateLetter(), not *_rules which uses only _^_ return FLAG_SPELLWORD; // _^_en must have been set in TranslateLetter(), not *_rules which uses only _^_
return 0; return 0;
} }


new_language = (char *)(&p[1]); new_language = (char *)(&p[1]);
if (new_language[0] == 0) if (new_language[0] == 0)
new_language = "en";
new_language = ESPEAKNG_DEFAULT_VOICE;


switch_phonemes = SetTranslator2(new_language); switch_phonemes = SetTranslator2(new_language);



+ 1
- 1
src/libespeak-ng/voices.c View File

f_voice = fopen(buf, "r"); f_voice = fopen(buf, "r");


if (!(control & 8)/*compiling phonemes*/) if (!(control & 8)/*compiling phonemes*/)
language_type = "en"; // default
language_type = ESPEAKNG_DEFAULT_VOICE; // default
else else
language_type = ""; language_type = "";



Loading…
Cancel
Save