Browse Source

[1.47.03a]

Change sound of Portugal 'rr' and initial 'r'.
Fixed for Aragonese ordinal numbers.


git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@330 d46cf337-b52f-0410-862d-fd96e6ae7743
master
jonsd 12 years ago
parent
commit
be3933d1d3

+ 4
- 9
dictsource/an_list View File

_#º o _#º o
_#ª a _#ª a



_1ox prim'Er _1ox prim'Er
_2ox seQ'und _2ox seQ'und
_3ox tErT'Er _3ox tErT'Er
_0M1o mil'en _0M1o mil'en
_0M2o mil^on'en _0M2o mil^on'en
_1M2o mil^on'en _1M2o mil^on'en
_0M4o bil^on'en
_1M4o bil^on'en



// characters // characters
$ d'olar $ d'olar
sant $u sant $u
donya $u donya $u
don $u don $u
he $u
has $u
ha $u
han $u
heba $u
hebas $u
heban $u
se'n sen $u se'n sen $u




whatsapp was'app whatsapp was'app
windows w'indows windows w'indows


mobile _^_EN
//mobile _^_EN

+ 1
- 1
dictsource/dict_phonemes View File

tS tS` v w x z Z tS tS` v w x z Z




Dictionary an_dict 2013-03-19
Dictionary an_dict 2013-03-21


a aI aU e E eI eU i a aI aU e E eI eU i
o O oI u U o O oI u U

+ 8
- 0
dictsource/hu_rules View File

haszo) n (jár n haszo) n (jár n
boszorká) ny (jelet n^ boszorká) ny (jelet n^
káno) n (jog n káno) n (jog n
legé) ny (jár n^
szé) n (jelek n
teljesítmé) ny (j n^


.group o .group o
o o o o
szen) tj (akab tj szen) tj (akab tj
közérze) tj (aví tj közérze) tj (aví tj
ké) tj (átszm tj ké) tj (átszm tj
szavaza) tj (og tj
szavaza) tj (eg tj


.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
_cha) tsz (ob t|s _cha) tsz (ob t|s
robo) ts (of t|S robo) ts (of t|S
merényle) ts (or t|S merényle) ts (or t|S
szavaza) ts (o t|S
szige) ts (ej t|S
szige) ts (o t|S




.group tt .group tt

+ 3
- 1
phsource/compile_report View File

ca 11 127 ca 11 127
an 4 125 an 4 125
pt 29 140 pt 29 140
pt-pt 18 140
pt-pt 20 140
ro 36 148 ro 36 148
el 10 125 el 10 125
grc 12 129 grc 12 129
[r] et [r] et
[r/] fr [r/] fr
[R] fr-ca [R] fr-ca
[x] pt-pt
[*;] ro [*;] ro
[r#] is [r#] is
[r/] tn [r/] tn
vwl_fr/r_ [r/] fr vwl_fr/r_ [r/] fr
vwl_fr/r_@ [r/] fr vwl_fr/r_@ [r/] fr
vwl_fr/r@ fr post_r vwl_fr/r@ fr post_r
vwl_fr/@R [x] pt-pt
vwl_fr/r@2 fr post_r vwl_fr/r@2 fr post_r
vwl_fr/@R2 [R] fr-ca vwl_fr/@R2 [R] fr-ca
vwl_fr/ra fr post_r vwl_fr/ra fr post_r

+ 17
- 0
phsource/ph_portugal View File

endphoneme endphoneme




phoneme x // [r] for Portugal
liquid
trill
ipa ʁ
lengthmod 7
Vowelin f1=0 f2=1500 -400 400 f3=-400 80
IF nextPh(isNotVowel) THEN
ChangePhoneme(r/)
ENDIF
FMT(vwl_fr/@R) addWav(r3/rx, 120)
endphoneme


phoneme R // for Portugal this is same the as [r]
import_phoneme pt/r
endphoneme



phoneme s# // This is [s] for Brazil, [S] for Portugal phoneme s# // This is [s] for Brazil, [S] for Portugal
CALL base/S CALL base/S

+ 13
- 6
src/numbers.cpp View File



if(ph_buf[0] == 0) if(ph_buf[0] == 0)
{ {
if(al_offset == translator->langopts.alt_alphabet)
if((al_offset != 0) && (al_offset == translator->langopts.alt_alphabet))
language = translator->langopts.alt_alphabet_lang; language = translator->langopts.alt_alphabet_lang;
else else
if((alphabet != NULL) && (alphabet->language != 0) && !(al_flags & AL_NOT_LETTERS)) if((alphabet != NULL) && (alphabet->language != 0) && !(al_flags & AL_NOT_LETTERS))
// Numbers // Numbers


static char ph_ordinal2[12]; static char ph_ordinal2[12];
static char ph_ordinal2x[12];




static int CheckDotOrdinal(Translator *tr, char *word, char *word_end, WORD_TAB *wtab, int roman) static int CheckDotOrdinal(Translator *tr, char *word, char *word_end, WORD_TAB *wtab, int roman)
if(control & 4) if(control & 4)
{ {
sprintf(string,"_%d%cx",value,ord_type); // LANG=hu, special word for 1. 2. when there are no higher digits sprintf(string,"_%d%cx",value,ord_type); // LANG=hu, special word for 1. 2. when there are no higher digits
found = Lookup(tr, string, ph_digits);
if((found = Lookup(tr, string, ph_digits)) != 0)
{
if(ph_ordinal2x[0] != 0)
strcpy(ph_ordinal, ph_ordinal2x); // alternate pronunciation (lang=an)
}
} }
if(found == 0) if(found == 0)
{ {
else else
{ {


if((is_ordinal) &&
((units == 0) || (tr->langopts.numbers & NUM_SWAP_TENS) || (tr->langopts.numbers2 & NUM2_MULTIPLE_ORDINAL)))
if(is_ordinal)
{ {
sprintf(string,"_%dX%c", tens, ord_type); sprintf(string,"_%dX%c", tens, ord_type);
if(Lookup(tr, string, ph_tens) != 0) if(Lookup(tr, string, ph_tens) != 0)
{ {
Lookup(tr, "_0and", ph_and); Lookup(tr, "_0and", ph_and);


if((is_ordinal) && (tr->langopts.numbers2 & NUM2_MULTIPLE_ORDINAL))
if((is_ordinal) && (tr->langopts.numbers2 & NUM2_ORDINAL_NO_AND))
ph_and[0] = 0; ph_and[0] = 0;


if(tr->langopts.numbers & NUM_SWAP_TENS) if(tr->langopts.numbers & NUM_SWAP_TENS)
ordinal = 2; ordinal = 2;
flags[0] |= FLAG_SKIPWORDS; flags[0] |= FLAG_SKIPWORDS;
skipwords = 1; skipwords = 1;
sprintf(string,"_x#%s",suffix);
Lookup(tr, string, ph_ordinal2x); // is there an alternate pronunciation?
} }
} }
} }
if((tr->langopts.numbers & NUM_NOPAUSE) && (next_char == ' ')) if((tr->langopts.numbers & NUM_NOPAUSE) && (next_char == ' '))
utf8_in(&next_char,p); utf8_in(&next_char,p);


if(!iswalpha(next_char) && !((wtab[thousandplex].flags & FLAG_HYPHEN_AFTER) && (thousands_exact != 0)))
if(!iswalpha(next_char) && (thousands_exact==0))
// if(!iswalpha(next_char) && !((wtab[thousandplex].flags & FLAG_HYPHEN_AFTER) && (thousands_exact != 0)))
strcat(ph_out,str_pause); // don't add pause for 100s, 6th, etc. strcat(ph_out,str_pause); // don't add pause for 100s, 6th, etc.
} }



+ 1
- 1
src/synthdata.cpp View File

#include "translate.h" #include "translate.h"
#include "wave.h" #include "wave.h"


const char *version_string = "1.47.03 21.Mar.13";
const char *version_string = "1.47.03a 21.Mar.13";
const int version_phdata = 0x014701; const int version_phdata = 0x014701;


int option_device_number = -1; int option_device_number = -1;

+ 5
- 5
src/tr_languages.cpp View File

tr->langopts.max_initial_consonants = 3; tr->langopts.max_initial_consonants = 3;
tr->langopts.replace_chars = NULL; tr->langopts.replace_chars = NULL;
tr->langopts.ascii_language[0] = 0; // Non-Latin alphabet languages, use this language to speak Latin words, default is English tr->langopts.ascii_language[0] = 0; // Non-Latin alphabet languages, use this language to speak Latin words, default is English
tr->langopts.alt_alphabet_lang = L('e','n');


SetLengthMods(tr,201); SetLengthMods(tr,201);
// tr->langopts.length_mods = length_mods_en; // tr->langopts.length_mods = length_mods_en;
tr->langopts.param[LOPT_SONORANT_MIN] = 130; // limit the shortening of sonorants before short vowels tr->langopts.param[LOPT_SONORANT_MIN] = 130; // limit the shortening of sonorants before short vowels


tr->langopts.numbers = NUM_SINGLE_STRESS | NUM_DECIMAL_COMMA; tr->langopts.numbers = NUM_SINGLE_STRESS | NUM_DECIMAL_COMMA;
tr->langopts.numbers2 = 0x2 | NUM2_MULTIPLE_ORDINAL; // variant form of numbers before thousands
tr->langopts.numbers2 = 0x2 | NUM2_MULTIPLE_ORDINAL | NUM2_ORDINAL_NO_AND; // variant form of numbers before thousands


if(name2 == L_grc) if(name2 == L_grc)
{ {
tr->langopts.param[LOPT_SONORANT_MIN] = 120; // limit the shortening of sonorants before short vowels tr->langopts.param[LOPT_SONORANT_MIN] = 120; // limit the shortening of sonorants before short vowels


tr->langopts.numbers = NUM_SINGLE_STRESS | NUM_DECIMAL_COMMA | NUM_AND_UNITS | NUM_OMIT_1_HUNDRED | NUM_OMIT_1_THOUSAND | NUM_ROMAN | NUM_ROMAN_AFTER; tr->langopts.numbers = NUM_SINGLE_STRESS | NUM_DECIMAL_COMMA | NUM_AND_UNITS | NUM_OMIT_1_HUNDRED | NUM_OMIT_1_THOUSAND | NUM_ROMAN | NUM_ROMAN_AFTER;
tr->langopts.numbers2 = NUM2_MULTIPLE_ORDINAL;
tr->langopts.numbers2 = NUM2_MULTIPLE_ORDINAL | NUM2_ORDINAL_NO_AND;


if(name2 == L('c','a')) if(name2 == L('c','a'))
{ {
if(name2 == L('a','n')) if(name2 == L('a','n'))
{ {
tr->langopts.stress_flags = S_FINAL_SPANISH | S_FINAL_DIM_ONLY | S_FINAL_NO_2; tr->langopts.stress_flags = S_FINAL_SPANISH | S_FINAL_DIM_ONLY | S_FINAL_NO_2;
tr->langopts.numbers2 = 0;
tr->langopts.numbers2 = NUM2_ORDINAL_NO_AND;
} }
else else
if(name2 == L_pap) if(name2 == L_pap)
tr->langopts.stress_rule = STRESSPOSN_1R; // stress on final syllable tr->langopts.stress_rule = STRESSPOSN_1R; // stress on final syllable
tr->langopts.stress_flags = S_FINAL_DIM_ONLY | S_FINAL_NO_2 | S_INITIAL_2 | S_PRIORITY_STRESS; tr->langopts.stress_flags = S_FINAL_DIM_ONLY | S_FINAL_NO_2 | S_INITIAL_2 | S_PRIORITY_STRESS;
tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_DFRACTION_2 | NUM_HUNDRED_AND | NUM_AND_UNITS | NUM_ROMAN; tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_DFRACTION_2 | NUM_HUNDRED_AND | NUM_AND_UNITS | NUM_ROMAN;
tr->langopts.numbers2 = NUM2_MULTIPLE_ORDINAL | NUM2_NO_TEEN_ORDINALS;
tr->langopts.numbers2 = NUM2_MULTIPLE_ORDINAL | NUM2_NO_TEEN_ORDINALS | NUM2_ORDINAL_NO_AND;
SetLetterVowel(tr,'y'); SetLetterVowel(tr,'y');
ResetLetterBits(tr,0x2); ResetLetterBits(tr,0x2);
SetLetterBits(tr,1,"bcdfgjkmnpqstvxz"); // B hard consonants, excluding h,l,r,w,y SetLetterBits(tr,1,"bcdfgjkmnpqstvxz"); // B hard consonants, excluding h,l,r,w,y

+ 2
- 0
src/translate.h View File

#define NUM2_THOUSANDS_VAR4 0x100 #define NUM2_THOUSANDS_VAR4 0x100
#define NUM2_THOUSANDS_VAR5 0x140 #define NUM2_THOUSANDS_VAR5 0x140


#define NUM2_ORDINAL_NO_AND 0x800
#define NUM2_MULTIPLE_ORDINAL 0x1000 #define NUM2_MULTIPLE_ORDINAL 0x1000
#define NUM2_NO_TEEN_ORDINALS 0x2000 #define NUM2_NO_TEEN_ORDINALS 0x2000
#define NUM2_MYRIADS 0x4000 #define NUM2_MYRIADS 0x4000
// bits 1-4 use variant form of numbers before thousands,millions,etc. // bits 1-4 use variant form of numbers before thousands,millions,etc.
// bits 6-8 use different forms of thousand, million, etc (M MA MB) // bits 6-8 use different forms of thousand, million, etc (M MA MB)
// bit9=(LANG=rw) say "thousand" and "million" before its number, not after // bit9=(LANG=rw) say "thousand" and "million" before its number, not after
// bit11=(LANG=es,an) don't say 'and' between tens and units for ordinal numbers
// bit12=(LANG=el,es) use ordinal form of hundreds and tens as well as units // bit12=(LANG=el,es) use ordinal form of hundreds and tens as well as units
// bit13=(LANG=pt) don't use 11-19 numbers to make ordinals // bit13=(LANG=pt) don't use 11-19 numbers to make ordinals
// bit14=(LANG=ko) use myriads (groups of 4 digits) not thousands (groups of 3) // bit14=(LANG=ko) use myriads (groups of 4 digits) not thousands (groups of 3)

Loading…
Cancel
Save