| @@ -471,6 +471,7 @@ dictionaries: \ | |||
| espeak-ng-data/eu_dict \ | |||
| espeak-ng-data/fa_dict \ | |||
| espeak-ng-data/fi_dict \ | |||
| espeak-ng-data/fo_dict \ | |||
| espeak-ng-data/fr_dict \ | |||
| espeak-ng-data/ga_dict \ | |||
| espeak-ng-data/gd_dict \ | |||
| @@ -655,6 +656,9 @@ espeak-ng-data/fa_dict: dictsource/fa_list dictsource/fa_rules dictsource/fa_ext | |||
| fi: espeak-ng-data/fi_dict | |||
| espeak-ng-data/fi_dict: dictsource/fi_list dictsource/fi_rules dictsource/fi_extra dictsource/fi_emoji | |||
| fo: espeak-ng-data/fo_dict | |||
| espeak-ng-data/fo_dict: dictsource/fo_list dictsource/fo_rules dictsource/fo_extra dictsource/fo_emoji | |||
| fr: espeak-ng-data/fr_dict | |||
| espeak-ng-data/fr_dict: dictsource/fr_list dictsource/fr_rules dictsource/fr_extra dictsource/fr_emoji | |||
| @@ -0,0 +1,356 @@ | |||
| // Exceptions dictionary for: Faroese | |||
| // Faroese prepared by Andras Eliassen, iSolveIT ApS (VoisIT) | |||
| // This file in UTF8 encoded | |||
| // Letters | |||
| // If a letter has a "word" pronunciation which is different from its | |||
| // "letter" name, then include the letter name here, with the letter | |||
| // prefixed by a _ character. | |||
| // numeric | |||
| //******** | |||
| _0 n'ul# | |||
| _1 'aIt | |||
| _2 tv'eI | |||
| _3 Tr#'ui | |||
| _4 f'u:*iRa | |||
| _1f 'eIhd | |||
| _2f tv'W: | |||
| _3f Tr#j'u: | |||
| _4f fj'W:Qyrr# | |||
| _5 f'Im | |||
| _6 s'E:gs | |||
| _7 sj'Ei: | |||
| _8 'aUhda | |||
| _9 nu@-dju | |||
| _10 tu@-dju | |||
| _11 'EdlEv,y | |||
| _12 t'@oUlv | |||
| _13 t'rEhtan | |||
| _14 fj'yr#tan | |||
| _15 f'Imtan | |||
| _16 s'ExsdaUn | |||
| _17 s'Yy:djaUn | |||
| _18 'ua:tjaUn | |||
| _19 n'ui:tjaUn | |||
| _21 aI:nut'jeu,vu | |||
| _2X t'jeu,vu | |||
| _3X Tred'i,vu | |||
| _31 aI:nuTred'i,vu | |||
| _4X fj'W:*Ryt,i;y | |||
| _41 aI:nufj'W:*Ryt,i;y | |||
| _5X h'aultruisj | |||
| _51 aI:nuh'aultruisj | |||
| _6X t'ruisj | |||
| _61 aI:nut'ruisj | |||
| _7X h@-lfjers | |||
| _71 aI:nuh@-lfjers | |||
| _8X f'uirs | |||
| _81 aI:nuf'uirs | |||
| _9X h'aulfems | |||
| _91 aI:nuh'aulfems | |||
| _0C h'undra | |||
| _1C h'undra | |||
| _2C tv'@i:||h'undra | |||
| _3C Trui:||h'undra | |||
| _4C fuirr#||h'undra | |||
| _8C 'aUt||h'undra | |||
| _0M1 T'eu:sin | |||
| _0M2 m'IljoUn | |||
| _1M2 eI:n||m'IljoUn | |||
| _2M2 tv'ae:rr#||m'IdljoUnir | |||
| _3M2 Tr#j'a:rr#||m'IdljoUnir | |||
| _4M2 f'ui:ra||m'IdljoUnir | |||
| _dpt _k,Omma_ | |||
| _0and u-o | |||
| _cap sd'oUrr#d | |||
| _?? t'aUghn# | |||
| // Characters | |||
| // abbreviations | |||
| // Function words | |||
| hin $u+ | |||
| hitt $u+ // this | |||
| hina $u+ | |||
| hinir $u+ | |||
| hinar $u+ | |||
| hinum $u+ | |||
| hini $u+ | |||
| hinu $u+ | |||
| hins $u+ | |||
| hinnar $u+ | |||
| hinna $u+ | |||
| // articles | |||
| // pronouns | |||
| eg $u // nominative | |||
| tú $u | |||
| hann $u | |||
| hon $u | |||
| tað $u | |||
| vit $u | |||
| tit $u | |||
| teir $u | |||
| tær $u | |||
| tey $u | |||
| meg $u+ | |||
| teg $u+ | |||
| hana $u+ | |||
| okkara $u+ | |||
| tykkara $u+ | |||
| hetta $u+ | |||
| hesir $u+ | |||
| hesar $u+ | |||
| hesi $u+ | |||
| tann $u+ | |||
| tá $u+ | |||
| teim $u+ | |||
| teirri $u+ | |||
| hví $u+ | |||
| tess $u+ | |||
| teirra $u+ | |||
| teir $u+ | |||
| tær $u+ | |||
| hvør $u+ $pause // who | |||
| // possessive adjectives | |||
| mín $u+ | |||
| mítt $u+ | |||
| mína $u+ | |||
| mínum $u+ | |||
| mínar $u+ | |||
| míni $u+ | |||
| mínu $u+ | |||
| míns $u+ | |||
| mínir $u+ | |||
| tín $u+ | |||
| títt $u+ | |||
| tína $u+ | |||
| tínum $u+ | |||
| tíni $u+ | |||
| // etc | |||
| sín $u+ | |||
| sítt $u+ | |||
| sín $u+ | |||
| sínum $u+ | |||
| sína $u+ | |||
| síni $u+ | |||
| vár $u+ | |||
| várt $u+ | |||
| vára $u+ | |||
| várar $u+ | |||
| okkara $u+ | |||
| tykkara $u+ | |||
| // etc... | |||
| // prepositions | |||
| á $u+ $brk | |||
| at $u+ $brk // towards | |||
| av $u+ $brk // from,off of | |||
| eftir $u+ $pause // after,by | |||
| frá $u+ $brk // off | |||
| fyri $u+ $pause // for,by | |||
| í $u+ $brk | |||
| við $u+ $brk // with | |||
| til $u+ $brk // to | |||
| um $u+ $brk // about | |||
| við $u+ $brk // with,at,against | |||
| úr $u+ $brk // out of | |||
| uttan $u+ $pause // without | |||
| hjá $u+ $brk // by, with | |||
| millum $pause // between | |||
| mót $u+ $brk // against | |||
| móti $u+ $brk // against | |||
| afturat $brk // in addition to, besides | |||
| gjøgnum $brk // through | |||
| undir $u $brk // under | |||
| yvir $brk // over | |||
| framvið $brk // by, past | |||
| handan $brk // behind | |||
| áðrenn $pause // before | |||
| vegna $pause // because of | |||
| síðan $pause // since | |||
| // conjunctions | |||
| men $u+ $pause // but | |||
| ella $u+ $pause // or | |||
| hvørki $pause // nor | |||
| og $u+ $pause // and | |||
| tá $pause // when, as soon as | |||
| um $u+ $pause // if | |||
| men $pause // but, however | |||
| tó $pause // although | |||
| vegna $pause // because of | |||
| hvørt $pause // whether | |||
| hóast $pause // thus, so | |||
| meðan $pause // while, as long as | |||
| annars $pause // else, otherwise | |||
| so $pause // so (that) | |||
| sum $u+ $brk // as | |||
| hví $u+ $pause // the..the.. | |||
| // negative | |||
| ikki $u+ | |||
| nei $u+ | |||
| // questions | |||
| // auxillary verbs (be, have, can, etc) | |||
| //**************** | |||
| var $u // was | |||
| verða $u // to be | |||
| er $u // is, present | |||
| eru $u | |||
| kunnu $u | |||
| kann $u | |||
| hava $u | |||
| hevur $u | |||
| havi $u | |||
| var $u // was, past | |||
| varst $u | |||
| vóru $u | |||
| verið $u | |||
| eiga $u+ // to have (own) | |||
| eigi $u+ | |||
| átti $u+ // to have (own) past | |||
| áttu $u+ | |||
| átt $u+ | |||
| hava $u // to have | |||
| havi $u | |||
| hevur $u | |||
| høvdu $u | |||
| hevði $u | |||
| verð $u // to become | |||
| verður $u | |||
| verði $u | |||
| verða $u | |||
| gjørdist $u | |||
| gjørdust $u | |||
| bleiv $u | |||
| varð $u // became, past | |||
| varðst $u | |||
| vóru $u | |||
| blivu $u | |||
| kann $u+ // can | |||
| kannst $u+ | |||
| kunnu $u+ | |||
| kundi $u+ // could, past | |||
| kundu $u+ | |||
| vil $u+ // will | |||
| vilt $u+ | |||
| vilja $u+ | |||
| vildi $u+ | |||
| vildu $u+ | |||
| fá $u+ // get | |||
| fáa $u+ | |||
| fær $u+ | |||
| færst $u+ | |||
| fái $u+ | |||
| fekk $u+ // got, past | |||
| fekkst $u+ | |||
| fingu $u+ | |||
| // some common adjectives and adverbs | |||
| nøkur $u+ // any, some, a few | |||
| nakar $u+ | |||
| nøkrum $u+ | |||
| nakað $u+ | |||
| nakars $u+ | |||
| nakrir $u+ | |||
| nakrar $u+ | |||
| summir $u+ // some | |||
| summum $u+ | |||
| summi $u+ | |||
| // common adverbs etc. | |||
| fram $u+ // forward | |||
| aftur $u+ // backwards | |||
| // character names | |||
| //**************** | |||
| _á ua: | |||
| á ua: $atend | |||
| b bE: | |||
| c sE: | |||
| d dE: | |||
| ð E:D | |||
| f Ef | |||
| g gE: | |||
| h ho'a: | |||
| i i: | |||
| _í ui: | |||
| í ui: $atend | |||
| j j'O:D | |||
| k k'@a: | |||
| l El | |||
| m Em | |||
| n En | |||
| p p'E: | |||
| q ku: | |||
| r Er: | |||
| s Es: | |||
| t tE: | |||
| ú e'u | |||
| v vE: | |||
| w tv'uivE: | |||
| x E:xs | |||
| _y 'yfsilOn||,I: | |||
| _ý 'yfsilOn||,i: | |||
| y 'yfsilOn||,I: $atend | |||
| ý 'yfsilOn||,i: $atend | |||
| z sE:ta | |||
| þ T'Ordn# | |||
| // MAIN WORD DICTIONARY | |||
| //********************* | |||
| bolla bOlla | |||
| halló halloU | |||
| mylla mIlla | |||
| @@ -0,0 +1,179 @@ | |||
| // Faroese prepared by Andras Eliassen, iSolveIT ApS (VoisIT) | |||
| // This file is UTF8 encoded. | |||
| // letter group B voiceless consonants c,f,h,k,p,t,x,þ | |||
| // letter group F p,t,k,s | |||
| // letter group H j,r,v, | |||
| .L01 e i í y ý æ j // front vowels | |||
| .L02 c f h k p t x s // voiceless consonants | |||
| .L03 p t k | |||
| .replace | |||
| x xz // so that it behaves as 2 letters | |||
| .group a | |||
| a a | |||
| .group á | |||
| á %oa | |||
| .group b | |||
| b b | |||
| bb b | |||
| .group c | |||
| c k | |||
| c (e s | |||
| c (i s | |||
| .group d | |||
| d d | |||
| dd d | |||
| .group ð | |||
| ð v | |||
| .group e | |||
| e E: | |||
| .group é | |||
| é jE: | |||
| .group f | |||
| f f | |||
| ff f | |||
| .group g | |||
| g g | |||
| gg g | |||
| e) g | |||
| g (i dj | |||
| .group h | |||
| h h | |||
| .group i | |||
| i I: | |||
| .group í | |||
| í ui: | |||
| .group j | |||
| j j | |||
| .group k | |||
| _) k k | |||
| k k | |||
| k (i tj | |||
| .group l | |||
| l l | |||
| .group m | |||
| m m | |||
| .group n | |||
| n n | |||
| nn n: | |||
| .group o | |||
| o O: | |||
| o (CC o | |||
| .group ó | |||
| ó oU: | |||
| .group p | |||
| p p | |||
| .group q | |||
| q k | |||
| .group r | |||
| r r | |||
| o) rn dn | |||
| e) rn dn | |||
| .group s | |||
| s s | |||
| ss ss2 | |||
| .group t | |||
| _) t t | |||
| t t | |||
| tt t | |||
| .group u | |||
| u u | |||
| .group ú | |||
| ú u: | |||
| .group v | |||
| v v | |||
| .group w | |||
| w v | |||
| .group x | |||
| x ks | |||
| xz ks | |||
| .group y | |||
| y y | |||
| .group ý | |||
| ý ui: | |||
| .group z | |||
| z z | |||
| zz ts // pizza | |||
| .group æ | |||
| æ @: | |||
| .group ö | |||
| ö W: | |||
| .group ø | |||
| ø W: | |||
| .group | |||
| $ dOllari | |||
| @@ -0,0 +1,2 @@ | |||
| name Faroese | |||
| language fo | |||
| @@ -0,0 +1,350 @@ | |||
| //========================================================= | |||
| // Faroese | |||
| // Faroese prepared by Andras Eliassen, iSolveIT ApS (VoisIT) | |||
| //========================================================= | |||
| phoneme : // Lengthen previous vowel by "length" | |||
| virtual | |||
| length 110 | |||
| endphoneme | |||
| // Vowels | |||
| //======= | |||
| phoneme i | |||
| vwl starttype #i endtype #i | |||
| length 130 | |||
| IfNextVowelAppend(;) | |||
| FMT(vowel/ii_6) | |||
| endphoneme | |||
| phoneme i: | |||
| vwl starttype #i endtype #i | |||
| length 230 | |||
| IfNextVowelAppend(;) | |||
| ChangeIfNotStressed(i) | |||
| FMT(vowel/i_4) | |||
| endphoneme | |||
| phoneme I | |||
| vwl starttype #i endtype #i | |||
| length 130 | |||
| IfNextVowelAppend(;) | |||
| FMT(vowel/ii) | |||
| endphoneme | |||
| phoneme I: | |||
| vwl starttype #i endtype #i | |||
| length 230 | |||
| IfNextVowelAppend(;) | |||
| ChangeIfNotStressed(I) | |||
| FMT(vowel/ii) | |||
| endphoneme | |||
| phoneme E | |||
| vwl starttype #e endtype #e | |||
| length 130 | |||
| FMT(vowel/e_mid) | |||
| endphoneme | |||
| phoneme E: | |||
| vwl starttype #e endtype #e | |||
| length 130 | |||
| FMT(vowel/e_e) | |||
| endphoneme | |||
| phoneme a | |||
| vwl starttype #@ endtype #@ | |||
| length 130 | |||
| FMT(vowel/a#_2) | |||
| endphoneme | |||
| phoneme a: | |||
| vwl starttype #a endtype #a | |||
| length 230 | |||
| ChangeIfNotStressed(a) | |||
| FMT(vowel/aa_8) | |||
| endphoneme | |||
| phoneme O | |||
| vwl starttype #o endtype #o | |||
| length 130 | |||
| FMT(vowel/oo_5) | |||
| endphoneme | |||
| phoneme O: | |||
| vwl starttype #o endtype #o | |||
| length 230 | |||
| ChangeIfNotStressed(O) | |||
| FMT(vdiph2/o_oo) | |||
| endphoneme | |||
| phoneme u | |||
| vwl starttype #u endtype #u | |||
| length 130 | |||
| FMT(vowel/u_2) | |||
| endphoneme | |||
| phoneme u: | |||
| vwl starttype #u endtype #u | |||
| length 230 | |||
| ChangeIfNotStressed(u) | |||
| FMT(vowel/u_bck) | |||
| endphoneme | |||
| phoneme y | |||
| vwl starttype #@ endtype #@ | |||
| length 130 | |||
| FMT(vowel/y##) | |||
| endphoneme | |||
| phoneme y: | |||
| vwl starttype #i endtype #i | |||
| length 230 | |||
| ChangeIfNotStressed(y) | |||
| FMT(vowel/yy_4) | |||
| endphoneme | |||
| phoneme W | |||
| vwl starttype #@ endtype #@ | |||
| length 130 | |||
| FMT(vowel/y#_3) | |||
| endphoneme | |||
| phoneme W: | |||
| vwl starttype #@ endtype #@ | |||
| length 130 | |||
| ChangeIfNotStressed(W) | |||
| FMT(vowel/y#_3) | |||
| endphoneme | |||
| phoneme aI | |||
| vwl starttype #a endtype #i | |||
| length 170 | |||
| FMT(vdiph/ai_7) | |||
| endphoneme | |||
| phoneme aI: | |||
| vwl starttype #a endtype #i | |||
| length 230 | |||
| ChangeIfNotStressed(aI) | |||
| FMT(vdiph/ai_7) | |||
| endphoneme | |||
| phoneme eI | |||
| vwl starttype #e endtype #i | |||
| length 170 | |||
| FMT(vdiph/ei) | |||
| endphoneme | |||
| phoneme eI: | |||
| vwl starttype #e endtype #i | |||
| length 230 | |||
| ChangeIfNotStressed(eI) | |||
| FMT(vdiph/ei) | |||
| endphoneme | |||
| phoneme aU | |||
| vwl starttype #a endtype #u | |||
| length 170 | |||
| FMT(vdiph/aau) | |||
| endphoneme | |||
| phoneme aU: | |||
| vwl starttype #a endtype #u | |||
| length 230 | |||
| ChangeIfNotStressed(aU) | |||
| FMT(vdiph/aau) | |||
| endphoneme | |||
| phoneme oU | |||
| vwl starttype #o endtype #u | |||
| length 170 | |||
| FMT(vdiph/ou_3) | |||
| endphoneme | |||
| phoneme oU: // long version for óf | |||
| vwl starttype #o endtype #u | |||
| length 230 | |||
| ChangeIfNotStressed(oU) | |||
| FMT(vdiph/ou_3) | |||
| endphoneme | |||
| phoneme Yy | |||
| vwl starttype #@ endtype #i | |||
| length 150 | |||
| FMT(vdiph/y#i_2) | |||
| endphoneme | |||
| phoneme Yy: | |||
| vwl starttype #@ endtype #i | |||
| length 220 | |||
| ChangeIfNotStressed(Yy) | |||
| FMT(vdiph/y#i_2) | |||
| endphoneme | |||
| phoneme OI | |||
| vwl starttype #o endtype #i | |||
| length 210 | |||
| FMT(vdiph/oi) | |||
| endphoneme | |||
| phoneme yI | |||
| vwl starttype #i endtype #i | |||
| length 180 | |||
| FMT(vowel/yy_4) | |||
| endphoneme | |||
| // Consonants | |||
| //=========== | |||
| phoneme m# | |||
| vcd blb nas | |||
| lengthmod 6 | |||
| ipa m# | |||
| Vowelout f1=2 f2=1000 -500 -350 f3=-200 80 brk | |||
| FMT(m/m#_) | |||
| endphoneme | |||
| phoneme n# | |||
| vcd alv nas | |||
| lengthmod 6 | |||
| ipa n# | |||
| Vowelout f1=2 f2=1700 -300 250 f3=-100 80 rms=20 brk | |||
| NextVowelStarts | |||
| VowelStart(n/n@) | |||
| VowelStart(n/na) | |||
| VowelStart(n/ne) | |||
| VowelStart(n/ni) | |||
| VowelStart(n/no) | |||
| VowelStart(n/nu) | |||
| EndSwitch | |||
| FMT(n/n#_) | |||
| endphoneme | |||
| phoneme n^# | |||
| vcd pal nas pzd | |||
| lengthmod 6 | |||
| ipa ɲ# | |||
| Vowelout f1=3 f2=2300 300 400 f3=100 80 brk rate | |||
| FMT(n^/n^#_) | |||
| endphoneme | |||
| phoneme N# | |||
| vcd vel nas | |||
| lengthmod 6 | |||
| ipa ŋ# | |||
| Vowelout f1=3 f2=2300 300 400 f3=-200 80 len=40 rms=20 brk | |||
| NextVowelStarts | |||
| VowelStart(nn/nn@) | |||
| VowelStart(nn/nna) | |||
| VowelStart(nn/nne) | |||
| VowelStart(nn/nni) | |||
| VowelStart(nn/nno) | |||
| VowelStart(nn/nnu) | |||
| EndSwitch | |||
| FMT(nn/nn#_) | |||
| endphoneme | |||
| phoneme l# | |||
| vls alv frc | |||
| lengthmod 3 | |||
| ipa l# | |||
| WAV(ufric/l#, 25) | |||
| endphoneme | |||
| phoneme tl# | |||
| vls alv stp | |||
| lengthmod 2 | |||
| ipa tl# | |||
| Vowelin f1=0 f2=1700 -300 300 f3=-100 80 | |||
| Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20 | |||
| WAV(ufric/tl#, 50) | |||
| endphoneme | |||
| phoneme r# // used for [r] when not preceding a vowel | |||
| liquid | |||
| lengthmod 2 // | |||
| ipa r# | |||
| FMT(r3/r#_) addWav(r3/rx) | |||
| // before n r3/r_n+r3/rx | |||
| endphoneme | |||
| phoneme b | |||
| vls blb stp | |||
| lengthmod 5 | |||
| Vowelin f1=1 f2=1000 -300 -200 f3=-200 80 amp=11 | |||
| Vowelout f1=2 f2=1000 -300 -300 f3=-300 80 brk | |||
| WAV(x/b) | |||
| endphoneme | |||
| phoneme d | |||
| vls alv stp | |||
| lengthmod 5 | |||
| Vowelin f1=2 f2=1700 -300 300 f3=-100 80 | |||
| Vowelout f1=2 f2=1700 -300 300 f3=-100 80 | |||
| IF nextPh(isPause2) THEN | |||
| WAV(x/d_) | |||
| ENDIF | |||
| WAV(x/d, 80) | |||
| endphoneme | |||
| phoneme g | |||
| vls vel stp | |||
| lengthmod 5 | |||
| Vowelin f1=2 f2=2300 200 300 f3=-300 80 | |||
| Vowelout f1=2 f2=2300 250 300 f3=-300 80 brk | |||
| IF nextPh(isPause2) THEN | |||
| WAV(x/g_) | |||
| ENDIF | |||
| WAV(x/g2, 150) | |||
| endphoneme | |||
| phoneme v // no fricative noise | |||
| import_phoneme base1/v# | |||
| voicingswitch f | |||
| endphoneme | |||
| phoneme s2 // 2nd part of geminated s | |||
| import_phoneme consonants/s2 | |||
| endphoneme | |||
| @@ -1708,6 +1708,9 @@ include ph_farsi | |||
| phonemetable fi base1 | |||
| include ph_finnish | |||
| phonemetable fo base1 | |||
| include ph_faroese | |||
| phonemetable smj base1 | |||
| include ph_lule_saami | |||
| @@ -826,6 +826,17 @@ Translator *SelectTranslator(const char *name) | |||
| case L('e', 't'): // Estonian | |||
| tr->encoding = ESPEAKNG_ENCODING_ISO_8859_4; | |||
| // fallthrough: | |||
| case L('f', 'o'): // Faroese | |||
| { | |||
| //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; | |||
| //SetLetterVowel(tr, 'y'); | |||
| 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; | |||
| } | |||
| break; | |||
| case L('f', 'i'): // Finnish | |||
| { | |||
| tr->langopts.long_stop = 130; | |||