From 0f5520452227f2c6de25b1f4cd87ca35fac67fb5 Mon Sep 17 00:00:00 2001 From: Juho Hiltunen Date: Sun, 10 Dec 2017 20:59:41 +0200 Subject: [PATCH] Move most stress rule definitions from tr_languages.c to language files Keyword stressRule in voices.c handles setting langopts->stress_rule. tr_languages.c still contains the setting for some languages that don't have a language file yet. Contributes to: Issue #218, https://github.com/espeak-ng/espeak-ng/issues/218 --- docs/voices.md | 3 +- espeak-ng-data/lang/aav/vi | 1 + espeak-ng-data/lang/art/eo | 1 + espeak-ng-data/lang/art/ia | 1 + espeak-ng-data/lang/art/jbo | 1 + espeak-ng-data/lang/bat/lt | 1 + espeak-ng-data/lang/bat/lv | 1 + espeak-ng-data/lang/bnt/sw | 1 + espeak-ng-data/lang/bnt/tn | 1 + espeak-ng-data/lang/ccs/ka | 1 + espeak-ng-data/lang/cel/cy | 1 + espeak-ng-data/lang/cel/ga | 1 + espeak-ng-data/lang/cel/gd | 1 + espeak-ng-data/lang/cus/om | 1 + espeak-ng-data/lang/dra/kn | 1 + espeak-ng-data/lang/dra/ml | 1 + espeak-ng-data/lang/dra/ta | 1 + espeak-ng-data/lang/dra/te | 1 + espeak-ng-data/lang/esx/kl | 1 + espeak-ng-data/lang/eu | 1 + espeak-ng-data/lang/gmq/da | 1 + espeak-ng-data/lang/gmq/is | 1 + espeak-ng-data/lang/gmq/nb | 1 + espeak-ng-data/lang/gmq/sv | 1 + espeak-ng-data/lang/gmw/af | 1 + espeak-ng-data/lang/gmw/de | 1 + espeak-ng-data/lang/gmw/en | 1 + espeak-ng-data/lang/gmw/nl | 1 + espeak-ng-data/lang/grk/el | 1 + espeak-ng-data/lang/grk/grc | 1 + espeak-ng-data/lang/inc/as | 2 ++ espeak-ng-data/lang/inc/bn | 1 + espeak-ng-data/lang/inc/bpy | 1 + espeak-ng-data/lang/inc/gu | 1 + espeak-ng-data/lang/inc/hi | 1 + espeak-ng-data/lang/inc/mr | 1 + espeak-ng-data/lang/inc/ne | 1 + espeak-ng-data/lang/inc/or | 1 + espeak-ng-data/lang/inc/pa | 1 + espeak-ng-data/lang/inc/si | 1 + espeak-ng-data/lang/ine/hy | 1 + espeak-ng-data/lang/ine/sq | 2 +- espeak-ng-data/lang/ira/ku | 2 +- espeak-ng-data/lang/ko | 1 + espeak-ng-data/lang/poz/id | 2 +- espeak-ng-data/lang/poz/ms | 2 ++ espeak-ng-data/lang/roa/an | 1 + espeak-ng-data/lang/roa/ca | 1 + espeak-ng-data/lang/roa/es | 1 + espeak-ng-data/lang/roa/fr | 1 + espeak-ng-data/lang/roa/it | 1 + espeak-ng-data/lang/roa/pap | 2 +- espeak-ng-data/lang/roa/pt | 1 + espeak-ng-data/lang/roa/pt-BR | 2 +- espeak-ng-data/lang/sai/gn | 1 + espeak-ng-data/lang/sem/am | 1 + espeak-ng-data/lang/sem/mt | 1 + espeak-ng-data/lang/trk/az | 1 + espeak-ng-data/lang/trk/tr | 1 + espeak-ng-data/lang/trk/tt | 1 + espeak-ng-data/lang/urj/fi | 1 + espeak-ng-data/lang/urj/hu | 2 +- espeak-ng-data/lang/zle/ru | 1 + espeak-ng-data/lang/zls/bg | 1 + espeak-ng-data/lang/zls/bs | 1 + espeak-ng-data/lang/zls/hr | 1 + espeak-ng-data/lang/zls/mk | 1 + espeak-ng-data/lang/zls/sl | 1 + espeak-ng-data/lang/zls/sr | 1 + espeak-ng-data/lang/zlw/cs | 1 + espeak-ng-data/lang/zlw/pl | 1 + espeak-ng-data/lang/zlw/sk | 1 + src/libespeak-ng/tr_languages.c | 55 --------------------------------- 73 files changed, 74 insertions(+), 63 deletions(-) diff --git a/docs/voices.md b/docs/voices.md index bb16c752..55c10438 100644 --- a/docs/voices.md +++ b/docs/voices.md @@ -384,8 +384,7 @@ Four integer parameters. These correspond to: 3. langopts->unstressed_wd1 (stress for $u word of 1 syllable) 4. langopts->unstressed_wd2 (stress for $u word of >1 syllable) -If a value is not given, it defaults to zero. For example: -"stressRule 2" is equal to "stressRule 2 0 0 0" +All parameters are not required. For example, "stressRule 2 1" is valid. ### stressLength diff --git a/espeak-ng-data/lang/aav/vi b/espeak-ng-data/lang/aav/vi index 2ab8767c..c11179b4 100644 --- a/espeak-ng-data/lang/aav/vi +++ b/espeak-ng-data/lang/aav/vi @@ -3,3 +3,4 @@ language vi words 1 pitch 80 118 +stressRule 0 diff --git a/espeak-ng-data/lang/art/eo b/espeak-ng-data/lang/art/eo index e47501fa..fa832927 100644 --- a/espeak-ng-data/lang/art/eo +++ b/espeak-ng-data/lang/art/eo @@ -2,3 +2,4 @@ name Esperanto language eo apostrophe 2 +stressRule 2 diff --git a/espeak-ng-data/lang/art/ia b/espeak-ng-data/lang/art/ia index 6a147287..0c1d1840 100644 --- a/espeak-ng-data/lang/art/ia +++ b/espeak-ng-data/lang/art/ia @@ -1,2 +1,3 @@ name Interlingua language ia +stressRule 2 diff --git a/espeak-ng-data/lang/art/jbo b/espeak-ng-data/lang/art/jbo index 70164f70..5e8d7dcd 100644 --- a/espeak-ng-data/lang/art/jbo +++ b/espeak-ng-data/lang/art/jbo @@ -3,3 +3,4 @@ language jbo speed 80 // speed adjustment, percentage letterVowel y +stressRule 2 diff --git a/espeak-ng-data/lang/bat/lt b/espeak-ng-data/lang/bat/lt index 7cdb1930..a10c28c5 100644 --- a/espeak-ng-data/lang/bat/lt +++ b/espeak-ng-data/lang/bat/lt @@ -1,2 +1,3 @@ name Lithuanian language lt +stressRule 2 diff --git a/espeak-ng-data/lang/bat/lv b/espeak-ng-data/lang/bat/lv index 159d5433..3f272381 100644 --- a/espeak-ng-data/lang/bat/lv +++ b/espeak-ng-data/lang/bat/lv @@ -11,3 +11,4 @@ formant 0 95 100 100 -5 tone 150 220 450 255 750 20 3500 255 stressAmp 12 10 8 8 0 0 18 15 stressLength 160 140 200 140 0 0 240 180 +stressRule 0 diff --git a/espeak-ng-data/lang/bnt/sw b/espeak-ng-data/lang/bnt/sw index d1a4db33..4130e071 100644 --- a/espeak-ng-data/lang/bnt/sw +++ b/espeak-ng-data/lang/bnt/sw @@ -2,3 +2,4 @@ name Swahili language sw status testing +stressRule 2 diff --git a/espeak-ng-data/lang/bnt/tn b/espeak-ng-data/lang/bnt/tn index 8b484e43..bb9e50cd 100644 --- a/espeak-ng-data/lang/bnt/tn +++ b/espeak-ng-data/lang/bnt/tn @@ -2,3 +2,4 @@ name Setswana language tn status testing +stressRule 2 diff --git a/espeak-ng-data/lang/ccs/ka b/espeak-ng-data/lang/ccs/ka index 3a457c87..65f85e3b 100644 --- a/espeak-ng-data/lang/ccs/ka +++ b/espeak-ng-data/lang/ccs/ka @@ -1,2 +1,3 @@ name Georgian language ka +stressRule 0 diff --git a/espeak-ng-data/lang/cel/cy b/espeak-ng-data/lang/cel/cy index dc51c1e8..4ef03ddd 100644 --- a/espeak-ng-data/lang/cel/cy +++ b/espeak-ng-data/lang/cel/cy @@ -4,3 +4,4 @@ language cy intonation 4 letterVowel w letterVowel y +stressRule 2 diff --git a/espeak-ng-data/lang/cel/ga b/espeak-ng-data/lang/cel/ga index 9fea2ae7..3162aa18 100644 --- a/espeak-ng-data/lang/cel/ga +++ b/espeak-ng-data/lang/cel/ga @@ -2,3 +2,4 @@ name Gaelic (Irish) language ga dictrules 1 // fix for eclipsis +stressRule 0 diff --git a/espeak-ng-data/lang/cel/gd b/espeak-ng-data/lang/cel/gd index e416f6fa..4bf192fd 100644 --- a/espeak-ng-data/lang/cel/gd +++ b/espeak-ng-data/lang/cel/gd @@ -2,3 +2,4 @@ name Gaelic (Scottish) language gd status testing +stressRule 0 diff --git a/espeak-ng-data/lang/cus/om b/espeak-ng-data/lang/cus/om index 1d6b396d..0c738169 100644 --- a/espeak-ng-data/lang/cus/om +++ b/espeak-ng-data/lang/cus/om @@ -2,3 +2,4 @@ name Oromo language om status testing +stressRule 2 diff --git a/espeak-ng-data/lang/dra/kn b/espeak-ng-data/lang/dra/kn index a32732c4..2e596216 100644 --- a/espeak-ng-data/lang/dra/kn +++ b/espeak-ng-data/lang/dra/kn @@ -3,3 +3,4 @@ language kn intonation 2 //consonants 80 +stressRule 0 diff --git a/espeak-ng-data/lang/dra/ml b/espeak-ng-data/lang/dra/ml index 92394bbc..0a4e946e 100644 --- a/espeak-ng-data/lang/dra/ml +++ b/espeak-ng-data/lang/dra/ml @@ -3,3 +3,4 @@ language ml intonation 2 //consonants 80 +stressRule 13 diff --git a/espeak-ng-data/lang/dra/ta b/espeak-ng-data/lang/dra/ta index aae63348..261a593a 100644 --- a/espeak-ng-data/lang/dra/ta +++ b/espeak-ng-data/lang/dra/ta @@ -3,3 +3,4 @@ language ta intonation 2 consonants 80 +stressRule 0 diff --git a/espeak-ng-data/lang/dra/te b/espeak-ng-data/lang/dra/te index 8acbb187..825ce49c 100644 --- a/espeak-ng-data/lang/dra/te +++ b/espeak-ng-data/lang/dra/te @@ -5,3 +5,4 @@ status testing intonation 2 //consonants 80 +stressRule 0 diff --git a/espeak-ng-data/lang/esx/kl b/espeak-ng-data/lang/esx/kl index e581b588..6750e9aa 100644 --- a/espeak-ng-data/lang/esx/kl +++ b/espeak-ng-data/lang/esx/kl @@ -1,3 +1,4 @@ name Greenlandic language kl +stressRule 12 diff --git a/espeak-ng-data/lang/eu b/espeak-ng-data/lang/eu index 09e8c18b..805d7c6c 100644 --- a/espeak-ng-data/lang/eu +++ b/espeak-ng-data/lang/eu @@ -2,3 +2,4 @@ name Basque language eu status testing +stressRule 1 diff --git a/espeak-ng-data/lang/gmq/da b/espeak-ng-data/lang/gmq/da index fd77dbdb..f61b394a 100644 --- a/espeak-ng-data/lang/gmq/da +++ b/espeak-ng-data/lang/gmq/da @@ -3,3 +3,4 @@ language da tunes s2 c2 q2 e2 letterVowel y +stressRule 0 diff --git a/espeak-ng-data/lang/gmq/is b/espeak-ng-data/lang/gmq/is index 938c9ec0..058d2d97 100644 --- a/espeak-ng-data/lang/gmq/is +++ b/espeak-ng-data/lang/gmq/is @@ -1,3 +1,4 @@ name Icelandic language is letterVowel y +stressRule 0 diff --git a/espeak-ng-data/lang/gmq/nb b/espeak-ng-data/lang/gmq/nb index d2c78ac8..17695a92 100644 --- a/espeak-ng-data/lang/gmq/nb +++ b/espeak-ng-data/lang/gmq/nb @@ -6,3 +6,4 @@ dictionary no intonation 4 letterVowel y +stressRule 0 diff --git a/espeak-ng-data/lang/gmq/sv b/espeak-ng-data/lang/gmq/sv index 1724c2e4..2961f105 100644 --- a/espeak-ng-data/lang/gmq/sv +++ b/espeak-ng-data/lang/gmq/sv @@ -1,3 +1,4 @@ name Swedish language sv letterVowel y +stressRule 0 diff --git a/espeak-ng-data/lang/gmw/af b/espeak-ng-data/lang/gmw/af index fb2ce120..7655f2bd 100644 --- a/espeak-ng-data/lang/gmw/af +++ b/espeak-ng-data/lang/gmw/af @@ -7,3 +7,4 @@ status mature roughness 0 pitch 63 120 letterVowel y +stressRule 0 diff --git a/espeak-ng-data/lang/gmw/de b/espeak-ng-data/lang/gmw/de index 31a1dc23..ea2da454 100644 --- a/espeak-ng-data/lang/gmw/de +++ b/espeak-ng-data/lang/gmw/de @@ -2,3 +2,4 @@ name German language de letterVowel y +stressRule 0 diff --git a/espeak-ng-data/lang/gmw/en b/espeak-ng-data/lang/gmw/en index f23fb531..1668247a 100644 --- a/espeak-ng-data/lang/gmw/en +++ b/espeak-ng-data/lang/gmw/en @@ -6,3 +6,4 @@ maintainer Reece H. Dunn status mature tunes s1 c1 q1 e1 +stressRule 0 diff --git a/espeak-ng-data/lang/gmw/nl b/espeak-ng-data/lang/gmw/nl index b0711137..af41e38c 100644 --- a/espeak-ng-data/lang/gmw/nl +++ b/espeak-ng-data/lang/gmw/nl @@ -1,3 +1,4 @@ name Dutch language nl letterVowel y +stressRule 0 diff --git a/espeak-ng-data/lang/grk/el b/espeak-ng-data/lang/grk/el index 548a01bc..0b6e540c 100644 --- a/espeak-ng-data/lang/grk/el +++ b/espeak-ng-data/lang/grk/el @@ -1,2 +1,3 @@ name Greek language el +stressRule 2 diff --git a/espeak-ng-data/lang/grk/grc b/espeak-ng-data/lang/grk/grc index baa8b2c6..f700818f 100644 --- a/espeak-ng-data/lang/grk/grc +++ b/espeak-ng-data/lang/grk/grc @@ -2,5 +2,6 @@ name Greek (Ancient) language grc stressLength 170 170 190 190 0 0 230 240 +stressRule 2 dictrules 1 words 3 diff --git a/espeak-ng-data/lang/inc/as b/espeak-ng-data/lang/inc/as index 23991ad7..552c6a7f 100644 --- a/espeak-ng-data/lang/inc/as +++ b/espeak-ng-data/lang/inc/as @@ -2,3 +2,5 @@ name Assamese language as status testing + +stressRule 0 diff --git a/espeak-ng-data/lang/inc/bn b/espeak-ng-data/lang/inc/bn index c7918026..a48f5926 100644 --- a/espeak-ng-data/lang/inc/bn +++ b/espeak-ng-data/lang/inc/bn @@ -1,2 +1,3 @@ name Bengali language bn +stressRule 0 diff --git a/espeak-ng-data/lang/inc/bpy b/espeak-ng-data/lang/inc/bpy index b63bc8d1..9a8e9cf5 100644 --- a/espeak-ng-data/lang/inc/bpy +++ b/espeak-ng-data/lang/inc/bpy @@ -1,2 +1,3 @@ name Bishnupriya Manipuri language bpy +stressRule 0 diff --git a/espeak-ng-data/lang/inc/gu b/espeak-ng-data/lang/inc/gu index fcdacd21..4cf1353c 100644 --- a/espeak-ng-data/lang/inc/gu +++ b/espeak-ng-data/lang/inc/gu @@ -2,3 +2,4 @@ name Gujarati language gu status testing +stressRule 2 diff --git a/espeak-ng-data/lang/inc/hi b/espeak-ng-data/lang/inc/hi index 16ea3892..eff8e129 100644 --- a/espeak-ng-data/lang/inc/hi +++ b/espeak-ng-data/lang/inc/hi @@ -1,2 +1,3 @@ name Hindi language hi +stressRule 6 diff --git a/espeak-ng-data/lang/inc/mr b/espeak-ng-data/lang/inc/mr index d9181f90..7d10f170 100644 --- a/espeak-ng-data/lang/inc/mr +++ b/espeak-ng-data/lang/inc/mr @@ -2,3 +2,4 @@ name Marathi language mr status testing +stressRule 6 diff --git a/espeak-ng-data/lang/inc/ne b/espeak-ng-data/lang/inc/ne index 4b64cc2b..2dcb43f6 100644 --- a/espeak-ng-data/lang/inc/ne +++ b/espeak-ng-data/lang/inc/ne @@ -2,3 +2,4 @@ name Nepali language ne dictrules 1 +stressRule 6 diff --git a/espeak-ng-data/lang/inc/or b/espeak-ng-data/lang/inc/or index 95a990ec..aaca7deb 100644 --- a/espeak-ng-data/lang/inc/or +++ b/espeak-ng-data/lang/inc/or @@ -2,3 +2,4 @@ name Oriya language or status testing +stressRule 6 diff --git a/espeak-ng-data/lang/inc/pa b/espeak-ng-data/lang/inc/pa index 0e9552d3..636f0c4f 100644 --- a/espeak-ng-data/lang/inc/pa +++ b/espeak-ng-data/lang/inc/pa @@ -1,2 +1,3 @@ name Punjabi language pa +stressRule 6 diff --git a/espeak-ng-data/lang/inc/si b/espeak-ng-data/lang/inc/si index 3f877191..5ddfad09 100644 --- a/espeak-ng-data/lang/inc/si +++ b/espeak-ng-data/lang/inc/si @@ -4,3 +4,4 @@ language si status testing intonation 2 +stressRule 0 diff --git a/espeak-ng-data/lang/ine/hy b/espeak-ng-data/lang/ine/hy index ee0be2fe..60199cd3 100644 --- a/espeak-ng-data/lang/ine/hy +++ b/espeak-ng-data/lang/ine/hy @@ -1,3 +1,4 @@ name Armenian (East Armenia) language hy language hy-arevela +stressRule 3 diff --git a/espeak-ng-data/lang/ine/sq b/espeak-ng-data/lang/ine/sq index 3cd293d5..3723976c 100644 --- a/espeak-ng-data/lang/ine/sq +++ b/espeak-ng-data/lang/ine/sq @@ -1,6 +1,6 @@ name Albanian language sq letterVowel y - +stressRule 3 // add this line to remove 'ë' at the end of words // replace 00 @/ NULL diff --git a/espeak-ng-data/lang/ira/ku b/espeak-ng-data/lang/ira/ku index b26bca25..6d54248e 100644 --- a/espeak-ng-data/lang/ira/ku +++ b/espeak-ng-data/lang/ira/ku @@ -2,4 +2,4 @@ name Kurdish language ku //words 1 48 - +stressRule 7 diff --git a/espeak-ng-data/lang/ko b/espeak-ng-data/lang/ko index f03ba091..dda415fd 100644 --- a/espeak-ng-data/lang/ko +++ b/espeak-ng-data/lang/ko @@ -3,3 +3,4 @@ language ko pitch 80 118 intonation 2 +stressRule 8 diff --git a/espeak-ng-data/lang/poz/id b/espeak-ng-data/lang/poz/id index d300372f..a7469d3d 100644 --- a/espeak-ng-data/lang/poz/id +++ b/espeak-ng-data/lang/poz/id @@ -3,5 +3,5 @@ language id stressLength 160 200 180 180 0 0 220 240 stressAmp 16 18 18 18 0 0 22 21 - +stressRule 2 consonants 80 80 diff --git a/espeak-ng-data/lang/poz/ms b/espeak-ng-data/lang/poz/ms index a90a18b1..78fdb3ff 100644 --- a/espeak-ng-data/lang/poz/ms +++ b/espeak-ng-data/lang/poz/ms @@ -7,6 +7,7 @@ translator id stressLength 160 200 180 180 0 0 220 240 stressAmp 16 18 18 18 0 0 22 21 +stressRule 2 intonation 3 // Less intonation, and comma does not raise the pitch. // Nuance - Peninsula Malaysia @@ -14,3 +15,4 @@ intonation 3 // Less intonation, and comma does not raise the pitch. // (only the last phoneme of a word, only in unstressed syllables) consonants 80 80 + diff --git a/espeak-ng-data/lang/roa/an b/espeak-ng-data/lang/roa/an index dc75aa8e..43f1005e 100644 --- a/espeak-ng-data/lang/roa/an +++ b/espeak-ng-data/lang/roa/an @@ -1,2 +1,3 @@ name Aragonese language an +stressRule 2 diff --git a/espeak-ng-data/lang/roa/ca b/espeak-ng-data/lang/roa/ca index 54af356f..331461b3 100644 --- a/espeak-ng-data/lang/roa/ca +++ b/espeak-ng-data/lang/roa/ca @@ -1,2 +1,3 @@ name Catalan language ca +stressRule 2 diff --git a/espeak-ng-data/lang/roa/es b/espeak-ng-data/lang/roa/es index dc90e41c..747b66d4 100644 --- a/espeak-ng-data/lang/roa/es +++ b/espeak-ng-data/lang/roa/es @@ -2,3 +2,4 @@ name Spanish (Spain) language es dictrules 1 tunes s6 c6 q6 e6 +stressRule 2 diff --git a/espeak-ng-data/lang/roa/fr b/espeak-ng-data/lang/roa/fr index e26c916d..5e3e055f 100644 --- a/espeak-ng-data/lang/roa/fr +++ b/espeak-ng-data/lang/roa/fr @@ -5,3 +5,4 @@ language fr dictrules 1 tunes s3 c3 q3 e3 letterVowel y +stressRule 3 diff --git a/espeak-ng-data/lang/roa/it b/espeak-ng-data/lang/roa/it index 092aebe6..08dbd4a5 100644 --- a/espeak-ng-data/lang/roa/it +++ b/espeak-ng-data/lang/roa/it @@ -6,3 +6,4 @@ status mature tunes s4 c4 q4 e4 letterVowel y +stressRule 2 diff --git a/espeak-ng-data/lang/roa/pap b/espeak-ng-data/lang/roa/pap index b9e07fe0..05c185a5 100644 --- a/espeak-ng-data/lang/roa/pap +++ b/espeak-ng-data/lang/roa/pap @@ -4,4 +4,4 @@ language pap status testing phonemes base2 - +stressRule 3 diff --git a/espeak-ng-data/lang/roa/pt b/espeak-ng-data/lang/roa/pt index 0a2f181c..8ed17e6b 100644 --- a/espeak-ng-data/lang/roa/pt +++ b/espeak-ng-data/lang/roa/pt @@ -6,3 +6,4 @@ phonemes pt-pt dictrules 1 intonation 2 letterVowel y +stressRule 3 diff --git a/espeak-ng-data/lang/roa/pt-BR b/espeak-ng-data/lang/roa/pt-BR index 52b850c3..4fe08497 100644 --- a/espeak-ng-data/lang/roa/pt-BR +++ b/espeak-ng-data/lang/roa/pt-BR @@ -4,4 +4,4 @@ language pt 6 dictrules 2 stressLength 200 115 230 230 0 0 250 270 - +stressRule 3 diff --git a/espeak-ng-data/lang/sai/gn b/espeak-ng-data/lang/sai/gn index 6e183e5a..5e89b32c 100644 --- a/espeak-ng-data/lang/sai/gn +++ b/espeak-ng-data/lang/sai/gn @@ -2,3 +2,4 @@ name Guarani language gn dictrules 1 words 0 1 +stressRule 3 diff --git a/espeak-ng-data/lang/sem/am b/espeak-ng-data/lang/sem/am index 87ed65a3..41ff2248 100644 --- a/espeak-ng-data/lang/sem/am +++ b/espeak-ng-data/lang/sem/am @@ -2,3 +2,4 @@ name Amharic language am status testing +stressRule 0 diff --git a/espeak-ng-data/lang/sem/mt b/espeak-ng-data/lang/sem/mt index ea8a3fce..3ba8553b 100644 --- a/espeak-ng-data/lang/sem/mt +++ b/espeak-ng-data/lang/sem/mt @@ -2,3 +2,4 @@ name Maltese language mt status testing +stressRule 2 diff --git a/espeak-ng-data/lang/trk/az b/espeak-ng-data/lang/trk/az index fd9e4f33..bc981dbb 100644 --- a/espeak-ng-data/lang/trk/az +++ b/espeak-ng-data/lang/trk/az @@ -2,3 +2,4 @@ name Azerbaijani language az status testing +stressRule 7 diff --git a/espeak-ng-data/lang/trk/tr b/espeak-ng-data/lang/trk/tr index 1d5cbc49..37f844bc 100644 --- a/espeak-ng-data/lang/trk/tr +++ b/espeak-ng-data/lang/trk/tr @@ -1,2 +1,3 @@ name Turkish language tr +stressRule 7 diff --git a/espeak-ng-data/lang/trk/tt b/espeak-ng-data/lang/trk/tt index 10ebba4c..640b084a 100644 --- a/espeak-ng-data/lang/trk/tt +++ b/espeak-ng-data/lang/trk/tt @@ -1,2 +1,3 @@ name Tatar language tt +stressRule 3 diff --git a/espeak-ng-data/lang/urj/fi b/espeak-ng-data/lang/urj/fi index 0a944a77..dbed868f 100644 --- a/espeak-ng-data/lang/urj/fi +++ b/espeak-ng-data/lang/urj/fi @@ -1,3 +1,4 @@ name Finnish language fi letterVowel y +stressRule 0 diff --git a/espeak-ng-data/lang/urj/hu b/espeak-ng-data/lang/urj/hu index adb35805..9a3b4427 100644 --- a/espeak-ng-data/lang/urj/hu +++ b/espeak-ng-data/lang/urj/hu @@ -3,4 +3,4 @@ language hu option bracket 0 0 pitch 81 117 letterVowel y - +stressRule 0 diff --git a/espeak-ng-data/lang/zle/ru b/espeak-ng-data/lang/zle/ru index 71a615b8..39156e20 100644 --- a/espeak-ng-data/lang/zle/ru +++ b/espeak-ng-data/lang/zle/ru @@ -4,3 +4,4 @@ language ru replace 03 a a# dict_min 20000 +stressRule 5 diff --git a/espeak-ng-data/lang/zls/bg b/espeak-ng-data/lang/zls/bg index 9efaa699..c2ed39bd 100644 --- a/espeak-ng-data/lang/zls/bg +++ b/espeak-ng-data/lang/zls/bg @@ -3,5 +3,6 @@ language bg stressAmp 13 12 17 17 20 22 22 21 stressLength 180 170 200 200 200 200 210 220 +stressRule 2 letterVowel 0x2a diff --git a/espeak-ng-data/lang/zls/bs b/espeak-ng-data/lang/zls/bs index 4dcaabcc..3e70df01 100644 --- a/espeak-ng-data/lang/zls/bs +++ b/espeak-ng-data/lang/zls/bs @@ -14,3 +14,4 @@ stressAdd 10 10 0 0 0 0 -30 -30 dictrules 3 4 letterVowel y letterVowel r +stressRule 0 diff --git a/espeak-ng-data/lang/zls/hr b/espeak-ng-data/lang/zls/hr index 3d6214a7..f5ad4af5 100644 --- a/espeak-ng-data/lang/zls/hr +++ b/espeak-ng-data/lang/zls/hr @@ -15,3 +15,4 @@ stressAdd 10 10 0 0 0 0 -30 -30 dictrules 1 letterVowel y letterVowel r +stressRule 0 diff --git a/espeak-ng-data/lang/zls/mk b/espeak-ng-data/lang/zls/mk index 380c20b6..666104f0 100644 --- a/espeak-ng-data/lang/zls/mk +++ b/espeak-ng-data/lang/zls/mk @@ -1,2 +1,3 @@ name Macedonian language mk +stressRule 4 diff --git a/espeak-ng-data/lang/zls/sl b/espeak-ng-data/lang/zls/sl index b7bf01f2..757e6c4b 100644 --- a/espeak-ng-data/lang/zls/sl +++ b/espeak-ng-data/lang/zls/sl @@ -2,3 +2,4 @@ name Slovenian language sl status testing +stressRule 2 diff --git a/espeak-ng-data/lang/zls/sr b/espeak-ng-data/lang/zls/sr index b9deeea3..7a3434fb 100644 --- a/espeak-ng-data/lang/zls/sr +++ b/espeak-ng-data/lang/zls/sr @@ -14,3 +14,4 @@ dictrules 2 4 letterVowel y letterVowel r +stressRule 0 diff --git a/espeak-ng-data/lang/zlw/cs b/espeak-ng-data/lang/zlw/cs index 6e2413a4..dc418d72 100644 --- a/espeak-ng-data/lang/zlw/cs +++ b/espeak-ng-data/lang/zlw/cs @@ -2,3 +2,4 @@ name Czech language cs letterVowel y letterVowel r +stressRule 0 diff --git a/espeak-ng-data/lang/zlw/pl b/espeak-ng-data/lang/zlw/pl index 09a29334..56393b74 100644 --- a/espeak-ng-data/lang/zlw/pl +++ b/espeak-ng-data/lang/zlw/pl @@ -3,3 +3,4 @@ language pl intonation 2 letterVowel y +stressRule 2 diff --git a/espeak-ng-data/lang/zlw/sk b/espeak-ng-data/lang/zlw/sk index 2db37b03..24e8e5ee 100644 --- a/espeak-ng-data/lang/zlw/sk +++ b/espeak-ng-data/lang/zlw/sk @@ -2,3 +2,4 @@ name Slovak language sk letterVowel y letterVowel r +stressRule 0 diff --git a/src/libespeak-ng/tr_languages.c b/src/libespeak-ng/tr_languages.c index 029389b3..f857008a 100644 --- a/src/libespeak-ng/tr_languages.c +++ b/src/libespeak-ng/tr_languages.c @@ -474,7 +474,6 @@ Translator *SelectTranslator(const char *name) static const short stress_lengths_af[8] = { 170, 140, 220, 220, 0, 0, 250, 270 }; SetupTranslator(tr, stress_lengths_af, NULL); - tr->langopts.stress_rule = STRESSPOSN_1L; tr->langopts.vowel_pause = 0x30; tr->langopts.param[LOPT_DIERESES] = 1; tr->langopts.param[LOPT_PREFIXES] = 1; @@ -487,7 +486,6 @@ Translator *SelectTranslator(const char *name) { SetupTranslator(tr, stress_lengths_fr, stress_amps_fr); tr->letter_bits_offset = OFFSET_ETHIOPIC; - tr->langopts.stress_rule = STRESSPOSN_1L; tr->langopts.stress_flags = S_NO_AUTO_2 | S_FINAL_DIM; // don't use secondary stress tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1; // disable check for unpronouncable words @@ -510,7 +508,6 @@ Translator *SelectTranslator(const char *name) tr->langopts.param[LOPT_UNPRONOUNCABLE] = 0x432; // [v] don't count this character at start of word tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x107; // devoice at end of word, and change voicing to match a following consonant (except v) tr->langopts.param[LOPT_REDUCE] = 2; - tr->langopts.stress_rule = STRESSPOSN_2R; tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_ALLOW_SPACE | NUM_OMIT_1_HUNDRED | NUM_HUNDRED_AND | NUM_AND_UNITS | NUM_SINGLE_AND | NUM_ROMAN | NUM_ROMAN_ORDINAL | NUM_ROMAN_CAPITALS; tr->langopts.thousands_sep = ' '; // don't allow dot as thousands separator } @@ -526,7 +523,6 @@ Translator *SelectTranslator(const char *name) SetupTranslator(tr, stress_lengths_bn, stress_amps_bn); tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable - tr->langopts.stress_rule = STRESSPOSN_1L; tr->langopts.stress_flags = S_MID_DIM | S_FINAL_DIM; // use 'diminished' for unstressed final syllable tr->letter_bits_offset = OFFSET_BENGALI; SetIndicLetters(tr); // call this after setting OFFSET_BENGALI @@ -564,7 +560,6 @@ Translator *SelectTranslator(const char *name) SetupTranslator(tr, stress_lengths_cy, stress_amps_cy); tr->encoding = ESPEAKNG_ENCODING_ISO_8859_14; - tr->langopts.stress_rule = STRESSPOSN_2R; // 'diminished' is an unstressed final syllable tr->langopts.stress_flags = S_FINAL_DIM_ONLY | S_FINAL_NO_2; @@ -581,7 +576,6 @@ Translator *SelectTranslator(const char *name) static const short stress_lengths_da[8] = { 160, 140, 200, 200, 0, 0, 220, 230 }; SetupTranslator(tr, stress_lengths_da, NULL); - tr->langopts.stress_rule = STRESSPOSN_1L; tr->langopts.param[LOPT_PREFIXES] = 1; tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_SWAP_TENS | NUM_HUNDRED_AND | NUM_OMIT_1_HUNDRED | NUM_ORDINAL_DOT | NUM_1900 | NUM_ROMAN | NUM_ROMAN_CAPITALS | NUM_ROMAN_ORDINAL; } @@ -591,7 +585,6 @@ Translator *SelectTranslator(const char *name) static const short stress_lengths_de[8] = { 150, 130, 200, 200, 0, 0, 270, 270 }; static const unsigned char stress_amps_de[] = { 20, 20, 20, 20, 20, 22, 22, 20 }; SetupTranslator(tr, stress_lengths_de, stress_amps_de); - tr->langopts.stress_rule = STRESSPOSN_1L; tr->langopts.word_gap = 0x8; // don't use linking phonemes tr->langopts.vowel_pause = 0x30; tr->langopts.param[LOPT_PREFIXES] = 1; @@ -620,7 +613,6 @@ Translator *SelectTranslator(const char *name) static const short stress_lengths_en[8] = { 182, 140, 220, 220, 0, 0, 248, 275 }; SetupTranslator(tr, stress_lengths_en, NULL); - tr->langopts.stress_rule = STRESSPOSN_1L; tr->langopts.stress_flags = 0x08; tr->langopts.numbers = NUM_HUNDRED_AND | NUM_ROMAN | NUM_1900; tr->langopts.param[LOPT_COMBINE_WORDS] = 2; // allow "mc" to cmbine with the following word @@ -656,7 +648,6 @@ Translator *SelectTranslator(const char *name) SetLetterBits(tr, LETTERGP_Y, el_fvowels); // front vowels: ε η ι υ _ tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable - tr->langopts.stress_rule = STRESSPOSN_2R; tr->langopts.stress_flags = S_FINAL_DIM_ONLY; // mark unstressed final syllables as diminished tr->langopts.unstressed_wd1 = 0; tr->langopts.unstressed_wd2 = 2; @@ -683,7 +674,6 @@ Translator *SelectTranslator(const char *name) tr->char_plus_apostrophe = eo_char_apostrophe; tr->langopts.vowel_pause = 2; - tr->langopts.stress_rule = STRESSPOSN_2R; tr->langopts.stress_flags = S_FINAL_DIM_ONLY | S_FINAL_NO_2; tr->langopts.unstressed_wd2 = 2; @@ -703,7 +693,6 @@ Translator *SelectTranslator(const char *name) SetupTranslator(tr, stress_lengths_es, stress_amps_es); tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable - tr->langopts.stress_rule = STRESSPOSN_2R; // stress last syllable if it doesn't end in vowel or "s" or "n" // 'diminished' is an unstressed final syllable @@ -729,7 +718,6 @@ Translator *SelectTranslator(const char *name) tr->langopts.roman_suffix = utf8_ordinal; } else if (name2 == L_pap) { // stress last syllable unless word ends with a vowel - tr->langopts.stress_rule = STRESSPOSN_1R; tr->langopts.stress_flags = S_FINAL_VOWEL_UNSTRESSED | S_FINAL_DIM_ONLY | S_FINAL_NO_2 | S_NO_AUTO_2; } else tr->langopts.param[LOPT_UNPRONOUNCABLE] = 2; // use es_rules for unpronouncable rules @@ -740,7 +728,6 @@ Translator *SelectTranslator(const char *name) static const short stress_lengths_eu[8] = { 200, 200, 200, 200, 0, 0, 210, 230 }; // very weak stress static const unsigned char stress_amps_eu[8] = { 16, 16, 18, 18, 18, 18, 18, 18 }; SetupTranslator(tr, stress_lengths_eu, stress_amps_eu); - tr->langopts.stress_rule = STRESSPOSN_2L; // ?? second syllable, but not on a word-final vowel tr->langopts.stress_flags = S_FINAL_VOWEL_UNSTRESSED; tr->langopts.param[LOPT_SUFFIX] = 1; tr->langopts.numbers = NUM_SINGLE_STRESS | NUM_DECIMAL_COMMA | NUM_HUNDRED_AND | NUM_OMIT_1_HUNDRED | NUM_OMIT_1_THOUSAND | NUM_VIGESIMAL; @@ -784,7 +771,6 @@ Translator *SelectTranslator(const char *name) SetupTranslator(tr, stress_lengths_fi, stress_amps_fi); - tr->langopts.stress_rule = STRESSPOSN_1L; tr->langopts.stress_flags = S_FINAL_DIM_ONLY | S_FINAL_NO_2 | S_2_TO_HEAVY; // move secondary stress from light to a following heavy syllable tr->langopts.param[LOPT_IT_DOUBLING] = 1; tr->langopts.long_stop = 130; @@ -797,7 +783,6 @@ Translator *SelectTranslator(const char *name) case L('f', 'r'): // french { SetupTranslator(tr, stress_lengths_fr, stress_amps_fr); - tr->langopts.stress_rule = STRESSPOSN_1R; // stress on final syllable tr->langopts.stress_flags = S_NO_AUTO_2 | S_FINAL_DIM; // don't use secondary stress tr->langopts.param[LOPT_IT_LENGTHEN] = 1; // remove lengthen indicator from unstressed syllables tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable @@ -837,7 +822,6 @@ Translator *SelectTranslator(const char *name) tr->encoding = ESPEAKNG_ENCODING_ISCII; tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable - tr->langopts.stress_rule = 6; // stress on last heaviest syllable, excluding final syllable tr->langopts.stress_flags = S_MID_DIM | S_FINAL_DIM; // use 'diminished' for unstressed final syllable tr->langopts.numbers = NUM_SWAP_TENS; tr->langopts.break_numbers = 0x14aa8; // for languages which have numbers for 100,000 and 100,00,000, eg Hindi @@ -848,7 +832,6 @@ Translator *SelectTranslator(const char *name) else if (name2 == L('g', 'u')) { SetupTranslator(tr, stress_lengths_equal, stress_amps_equal); tr->letter_bits_offset = OFFSET_GUJARATI; - tr->langopts.stress_rule = STRESSPOSN_2R; } else if (name2 == L('n', 'e')) { SetupTranslator(tr, stress_lengths_equal, stress_amps_equal); tr->langopts.break_numbers = 0x2aaaa8; @@ -875,7 +858,6 @@ Translator *SelectTranslator(const char *name) SetupTranslator(tr, stress_lengths_hr, stress_amps_hr); tr->encoding = ESPEAKNG_ENCODING_ISO_8859_2; - tr->langopts.stress_rule = STRESSPOSN_1L; tr->langopts.stress_flags = S_FINAL_NO_2; tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x3; tr->langopts.max_initial_consonants = 5; @@ -903,7 +885,6 @@ Translator *SelectTranslator(const char *name) tr->encoding = ESPEAKNG_ENCODING_ISO_8859_2; tr->langopts.vowel_pause = 0x20; - tr->langopts.stress_rule = STRESSPOSN_1L; tr->langopts.stress_flags = S_FINAL_DIM_ONLY | S_FINAL_NO_2 | S_NO_AUTO_2 | 0x8000 | S_HYPEN_UNSTRESS; tr->langopts.unstressed_wd1 = 2; tr->langopts.param[LOPT_IT_DOUBLING] = 1; @@ -929,7 +910,6 @@ Translator *SelectTranslator(const char *name) static const char hy_consonants2[] = { 0x45, 0 }; SetupTranslator(tr, stress_lengths_hy, NULL); - tr->langopts.stress_rule = STRESSPOSN_1R; // default stress on final syllable tr->letter_bits_offset = OFFSET_ARMENIAN; memset(tr->letter_bits, 0, sizeof(tr->letter_bits)); @@ -949,7 +929,6 @@ Translator *SelectTranslator(const char *name) static const unsigned char stress_amps_id[8] = { 16, 18, 18, 18, 20, 22, 22, 21 }; SetupTranslator(tr, stress_lengths_id, stress_amps_id); - tr->langopts.stress_rule = STRESSPOSN_2R; tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_ALLOW_SPACE | NUM_ROMAN; tr->langopts.stress_flags = S_FINAL_DIM_ONLY | S_FINAL_NO_2; tr->langopts.accents = 2; // "capital" after letter name @@ -961,7 +940,6 @@ Translator *SelectTranslator(const char *name) static const wchar_t is_lettergroup_B[] = { 'c', 'f', 'h', 'k', 'p', 't', 'x', 0xfe, 0 }; // voiceless conants, including 'þ' ?? 's' SetupTranslator(tr, stress_lengths_is, NULL); - tr->langopts.stress_rule = STRESSPOSN_1L; tr->langopts.stress_flags = S_FINAL_NO_2; tr->langopts.param[LOPT_IT_LENGTHEN] = 0x11; // remove lengthen indicator from unstressed vowels tr->langopts.param[LOPT_REDUCE] = 2; @@ -980,7 +958,6 @@ Translator *SelectTranslator(const char *name) static const unsigned char stress_amps_it[8] = { 17, 15, 18, 16, 20, 22, 22, 22 }; SetupTranslator(tr, stress_lengths_it, stress_amps_it); tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable - tr->langopts.stress_rule = STRESSPOSN_2R; tr->langopts.stress_flags = S_NO_AUTO_2 | S_FINAL_DIM_ONLY | S_PRIORITY_STRESS; tr->langopts.vowel_pause = 1; tr->langopts.unstressed_wd1 = 0; @@ -1002,7 +979,6 @@ Translator *SelectTranslator(const char *name) static const wchar_t jbo_punct_within_word[] = { '.', ',', '\'', 0x2c8, 0 }; // allow period and comma within a word, also stress marker (from LOPT_CAPS_IN_WORD) SetupTranslator(tr, stress_lengths_jbo, NULL); - tr->langopts.stress_rule = STRESSPOSN_2R; tr->langopts.vowel_pause = 0x20c; // pause before a word which starts with a vowel, or after a word which ends in a consonant tr->punct_within_word = jbo_punct_within_word; tr->langopts.param[LOPT_CAPS_IN_WORD] = 2; // capitals indicate stressed syllables @@ -1022,7 +998,6 @@ Translator *SelectTranslator(const char *name) SetLetterBits(tr, LETTERGP_C, ka_consonants); SetLetterBits(tr, LETTERGP_VOWEL2, ka_vowels); - tr->langopts.stress_rule = STRESSPOSN_1L; tr->langopts.stress_flags = S_FINAL_NO_2; tr->letter_bits_offset = OFFSET_GEORGIAN; tr->langopts.max_initial_consonants = 7; @@ -1058,7 +1033,6 @@ Translator *SelectTranslator(const char *name) case L('k', 'l'): // Greenlandic { SetupTranslator(tr, stress_lengths_equal, stress_amps_equal); - tr->langopts.stress_rule = 12; tr->langopts.stress_flags = S_NO_AUTO_2; tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_SWAP_TENS | NUM_HUNDRED_AND | NUM_OMIT_1_HUNDRED | NUM_ORDINAL_DOT | NUM_1900 | NUM_ROMAN | NUM_ROMAN_CAPITALS | NUM_ROMAN_ORDINAL; } @@ -1075,7 +1049,6 @@ Translator *SelectTranslator(const char *name) SetLetterBits(tr, LETTERGP_Y, ko_ivowels); SetLetterBits(tr, LETTERGP_G, (const char *)ko_voiced); - tr->langopts.stress_rule = 8; // ?? 1st syllable if it is heavy, else 2nd syllable tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1; // disable check for unpronouncable words tr->langopts.numbers = NUM_OMIT_1_HUNDRED; tr->langopts.numbers2 = NUM2_MYRIADS; @@ -1091,8 +1064,6 @@ Translator *SelectTranslator(const char *name) SetupTranslator(tr, stress_lengths_ku, stress_amps_ku); tr->encoding = ESPEAKNG_ENCODING_ISO_8859_9; - tr->langopts.stress_rule = 7; // stress on the last syllable, before any explicitly unstressed syllable - tr->langopts.numbers = NUM_HUNDRED_AND | NUM_AND_UNITS | NUM_OMIT_1_HUNDRED | NUM_AND_HUNDRED; tr->langopts.max_initial_consonants = 2; } @@ -1103,10 +1074,6 @@ Translator *SelectTranslator(const char *name) case L('l', 'a'): // Latin { tr->encoding = ESPEAKNG_ENCODING_ISO_8859_4; // includes a,e,i,o,u-macron - tr->langopts.stress_rule = STRESSPOSN_2R; - tr->langopts.stress_flags = S_NO_AUTO_2; - tr->langopts.unstressed_wd1 = 0; - tr->langopts.unstressed_wd2 = 2; tr->langopts.param[LOPT_DIERESES] = 1; tr->langopts.numbers = NUM_ROMAN; tr->langopts.max_roman = 5000; @@ -1115,7 +1082,6 @@ Translator *SelectTranslator(const char *name) case L('l', 't'): // Lithuanian { tr->encoding = ESPEAKNG_ENCODING_ISO_8859_4; - tr->langopts.stress_rule = STRESSPOSN_2R; tr->langopts.stress_flags = S_NO_AUTO_2; tr->langopts.unstressed_wd1 = 0; tr->langopts.unstressed_wd2 = 2; @@ -1132,7 +1098,6 @@ Translator *SelectTranslator(const char *name) SetupTranslator(tr, stress_lengths_lv, stress_amps_lv); - tr->langopts.stress_rule = STRESSPOSN_1L; tr->langopts.spelling_stress = 1; tr->encoding = ESPEAKNG_ENCODING_ISO_8859_4; tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_OMIT_1_HUNDRED | NUM_DFRACTION_4 | NUM_ORDINAL_DOT; @@ -1154,7 +1119,6 @@ Translator *SelectTranslator(const char *name) tr->letter_groups[0] = tr->letter_groups[7] = vowels_cyrillic; tr->letter_bits_offset = OFFSET_CYRILLIC; - tr->langopts.stress_rule = STRESSPOSN_3R; // antipenultimate tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_AND_UNITS | NUM_OMIT_1_HUNDRED | NUM_OMIT_1_THOUSAND | NUM_DFRACTION_2; tr->langopts.numbers2 = 0x8a; // variant numbers before thousands,milliards } @@ -1163,7 +1127,6 @@ Translator *SelectTranslator(const char *name) { tr->encoding = ESPEAKNG_ENCODING_ISO_8859_3; tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x100; // devoice at end of word - tr->langopts.stress_rule = STRESSPOSN_2R; // penultimate tr->langopts.numbers = 1; } break; @@ -1171,7 +1134,6 @@ Translator *SelectTranslator(const char *name) { static const short stress_lengths_nl[8] = { 160, 135, 210, 210, 0, 0, 260, 280 }; - tr->langopts.stress_rule = STRESSPOSN_1L; tr->langopts.vowel_pause = 0x30; // ?? tr->langopts.param[LOPT_DIERESES] = 1; tr->langopts.param[LOPT_PREFIXES] = 1; @@ -1188,7 +1150,6 @@ Translator *SelectTranslator(const char *name) static const short stress_lengths_no[8] = { 160, 140, 200, 200, 0, 0, 220, 230 }; SetupTranslator(tr, stress_lengths_no, NULL); - tr->langopts.stress_rule = STRESSPOSN_1L; tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_HUNDRED_AND | NUM_ALLOW_SPACE | NUM_1900 | NUM_ORDINAL_DOT; } break; @@ -1198,7 +1159,6 @@ Translator *SelectTranslator(const char *name) static const short stress_lengths_om[8] = { 200, 200, 200, 200, 0, 0, 200, 200 }; SetupTranslator(tr, stress_lengths_om, stress_amps_om); - tr->langopts.stress_rule = STRESSPOSN_2R; tr->langopts.stress_flags = S_FINAL_DIM_ONLY | S_FINAL_NO_2 | 0x80000; tr->langopts.numbers = NUM_OMIT_1_HUNDRED | NUM_HUNDRED_AND; tr->langopts.numbers2 = 0x200; // say "thousands" before its number @@ -1212,7 +1172,6 @@ Translator *SelectTranslator(const char *name) SetupTranslator(tr, stress_lengths_pl, stress_amps_pl); tr->encoding = ESPEAKNG_ENCODING_ISO_8859_2; - tr->langopts.stress_rule = STRESSPOSN_2R; tr->langopts.stress_flags = S_FINAL_DIM_ONLY; // mark unstressed final syllables as diminished tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x9; tr->langopts.max_initial_consonants = 7; // for example: wchrzczony :) @@ -1229,7 +1188,6 @@ Translator *SelectTranslator(const char *name) SetupTranslator(tr, stress_lengths_pt, stress_amps_pt); tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last 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.numbers = NUM_DECIMAL_COMMA | NUM_DFRACTION_2 | NUM_HUNDRED_AND | NUM_AND_UNITS | NUM_ROMAN_CAPITALS; tr->langopts.numbers2 = NUM2_MULTIPLE_ORDINAL | NUM2_NO_TEEN_ORDINALS | NUM2_ORDINAL_NO_AND; @@ -1247,7 +1205,6 @@ Translator *SelectTranslator(const char *name) SetupTranslator(tr, stress_lengths_ro, stress_amps_ro); - tr->langopts.stress_rule = STRESSPOSN_1R; tr->langopts.stress_flags = S_FINAL_VOWEL_UNSTRESSED | S_FINAL_DIM_ONLY; tr->encoding = ESPEAKNG_ENCODING_ISO_8859_2; @@ -1276,7 +1233,6 @@ Translator *SelectTranslator(const char *name) SetupTranslator(tr, stress_lengths_sk, stress_amps_sk); tr->encoding = ESPEAKNG_ENCODING_ISO_8859_2; - tr->langopts.stress_rule = STRESSPOSN_1L; tr->langopts.stress_flags = S_FINAL_DIM_ONLY | S_FINAL_NO_2; tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x3; tr->langopts.max_initial_consonants = 5; @@ -1300,7 +1256,6 @@ Translator *SelectTranslator(const char *name) SetupTranslator(tr, stress_lengths_ta, 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; tr->langopts.stress_flags = S_FINAL_DIM_ONLY | S_FINAL_NO_2; tr->langopts.spelling_stress = 1; @@ -1322,7 +1277,6 @@ Translator *SelectTranslator(const char *name) break; case L('s', 'l'): // Slovenian tr->encoding = ESPEAKNG_ENCODING_ISO_8859_2; - tr->langopts.stress_rule = STRESSPOSN_2R; // Temporary tr->langopts.stress_flags = S_NO_AUTO_2; tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x103; tr->langopts.param[LOPT_UNPRONOUNCABLE] = 0x76; // [v] don't count this character at start of word @@ -1341,7 +1295,6 @@ Translator *SelectTranslator(const char *name) SetupTranslator(tr, stress_lengths_sq, stress_amps_sq); - tr->langopts.stress_rule = STRESSPOSN_1R; tr->langopts.stress_flags = S_FINAL_DIM_ONLY | S_FINAL_NO_2 | S_FINAL_VOWEL_UNSTRESSED; tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_HUNDRED_AND | NUM_AND_UNITS | NUM_DFRACTION_4; tr->langopts.accents = 2; // "capital" after letter name @@ -1353,7 +1306,6 @@ Translator *SelectTranslator(const char *name) static const short stress_lengths_sv[8] = { 160, 135, 220, 220, 0, 0, 250, 280 }; SetupTranslator(tr, stress_lengths_sv, stress_amps_sv); - tr->langopts.stress_rule = STRESSPOSN_1L; tr->langopts.numbers = NUM_SINGLE_STRESS | NUM_DECIMAL_COMMA | NUM_ALLOW_SPACE | NUM_1900; tr->langopts.accents = 1; } @@ -1368,7 +1320,6 @@ Translator *SelectTranslator(const char *name) tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable tr->langopts.vowel_pause = 1; - tr->langopts.stress_rule = STRESSPOSN_2R; tr->langopts.stress_flags = S_FINAL_DIM_ONLY | S_FINAL_NO_2; tr->langopts.max_initial_consonants = 4; // for example: mwngi @@ -1385,7 +1336,6 @@ Translator *SelectTranslator(const char *name) 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; tr->langopts.stress_flags = S_FINAL_DIM_ONLY | S_FINAL_NO_2; // use 'diminished' for unstressed final syllable tr->langopts.spelling_stress = 1; tr->langopts.break_numbers = 0x14a8; // 1000, 100,000 10,000,000 @@ -1402,7 +1352,6 @@ Translator *SelectTranslator(const char *name) tr->letter_bits_offset = OFFSET_MALAYALAM; tr->langopts.numbers = NUM_OMIT_1_THOUSAND | NUM_OMIT_1_HUNDRED; tr->langopts.numbers2 = NUM2_OMIT_1_HUNDRED_ONLY; - tr->langopts.stress_rule = 13; // 1st syllable, unless 1st vowel is short and 2nd is long } else if (name2 == L('k', 'n')) { tr->letter_bits_offset = OFFSET_KANNADA; tr->langopts.numbers = 0x1; @@ -1424,7 +1373,6 @@ Translator *SelectTranslator(const char *name) SetupTranslator(tr, stress_lengths_tr, stress_amps_tr); tr->encoding = ESPEAKNG_ENCODING_ISO_8859_9; - tr->langopts.stress_rule = 7; // stress on the last syllable, before any explicitly unstressed syllable tr->langopts.stress_flags = S_NO_AUTO_2; // no automatic secondary stress tr->langopts.dotless_i = 1; tr->langopts.param[LOPT_SUFFIX] = 1; @@ -1440,7 +1388,6 @@ Translator *SelectTranslator(const char *name) { SetCyrillicLetters(tr); SetupTranslator(tr, stress_lengths_fr, stress_amps_fr); - tr->langopts.stress_rule = STRESSPOSN_1R; // stress on final syllable tr->langopts.stress_flags = S_NO_AUTO_2; // no automatic secondary stress tr->langopts.numbers = NUM_SINGLE_STRESS | NUM_DECIMAL_COMMA | NUM_OMIT_1_HUNDRED | NUM_OMIT_1_THOUSAND | NUM_DFRACTION_4; } @@ -1483,7 +1430,6 @@ Translator *SelectTranslator(const char *name) SetupTranslator(tr, stress_lengths_vi, stress_amps_vi); tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable - tr->langopts.stress_rule = STRESSPOSN_1L; tr->langopts.word_gap = 0x21; // length of a final vowel is less dependent on the next consonant, don't merge consonant with next word tr->letter_groups[0] = tr->letter_groups[7] = vowels_vi; tr->langopts.tone_language = 1; // Tone language, use CalcPitches_Tone() rather than CalcPitches() @@ -1558,7 +1504,6 @@ static void Translator_Russian(Translator *tr) tr->langopts.param[LOPT_UNPRONOUNCABLE] = 0x432; // [v] don't count this character at start of word tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 1; tr->langopts.param[LOPT_REDUCE] = 2; - tr->langopts.stress_rule = 5; tr->langopts.stress_flags = S_NO_AUTO_2; tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_OMIT_1_HUNDRED;