Conflicts: dictsource/dict_phonemes phsource/compile_reportmaster
| _10 t'i | _10 t'i | ||||
| _11 'Elv@ | _11 'Elv@ | ||||
| _12 t'Vl | _12 t'Vl | ||||
| _13 tR'&#d@-n // PB & changed to &# | |||||
| _13 tR'?&#d@-n // PB & changed to &# | |||||
| _14 fj'ord@-n | _14 fj'ord@-n | ||||
| _15 f'emt@-n | |||||
| _15 f'Emd@-n | |||||
| _16 s'ajsd@-n | _16 s'ajsd@-n | ||||
| _17 s'Wd@-n // PP Y changed to W | _17 s'Wd@-n // PP Y changed to W | ||||
| _18 '&d@-n // PB a changed to & | |||||
| _18 '?&d@-n // PB a changed to & | |||||
| _19 n'ed@-n | _19 n'ed@-n | ||||
| _2X t'y:w | |||||
| _2X t'y:?u | |||||
| _3X tR'&#Dv@ //PB [tR'ADv@] changed to [tR'&#Dv@] | _3X tR'&#Dv@ //PB [tR'ADv@] changed to [tR'&#Dv@] | ||||
| _4X f'W:V //PB [f'W:*3] changed to [ f'W:V] | |||||
| _4X f'?W:_|V //PB [f'W:*3] changed to [ f'?W:V] | |||||
| _5X h&l't*Es // PB [a] changed to [&], e changed to E | _5X h&l't*Es // PB [a] changed to [&], e changed to E | ||||
| _6X t*'Es // PB changed from e to E | _6X t*'Es // PB changed from e to E | ||||
| _7X h&lfj'&rs // PV a changed to & | _7X h&lfj'&rs // PV a changed to & | ||||
| ved $u+ // at | ved $u+ // at | ||||
| om $u+ $brk // about, within | om $u+ $brk // about, within | ||||
| med $u+ // with | med $u+ // with | ||||
| af & // PB changed from [a?] to [&] - sound too short in a sentence | |||||
| af &_| // PB changed from [a?] to [&] - sound too short in a sentence | |||||
| // Also removed $u from 'af' and other words. They disappeared. | // Also removed $u from 'af' and other words. They disappeared. | ||||
| ad &: // PB added 'ad' | ad &: // PB added 'ad' | ||||
| ad &D $atend $sentence // PB "Det må ikke skille os ad." | ad &D $atend $sentence // PB "Det må ikke skille os ad." | ||||
| // possessive pronouns | // possessive pronouns | ||||
| min min $u | min min $u | ||||
| mit mit $u | mit mit $u | ||||
| mine m'in@ | |||||
| mine m'in3 | |||||
| din d'in $u+ | din d'in $u+ | ||||
| dit d'it $u | dit d'it $u | ||||
| dine d'ine | |||||
| dine d'in3 | |||||
| deres dE:Vs $u | deres dE:Vs $u | ||||
| hans $u+ | hans $u+ | ||||
| hendes $u+ | hendes $u+ | ||||
| the _^_EN | the _^_EN | ||||
| skinhead _^_EN | skinhead _^_EN | ||||
| skinheads _^_EN | skinheads _^_EN | ||||
| street _^_EN | |||||
| boy _^_EN | boy _^_EN | ||||
| square _^_EN | square _^_EN | ||||
| apple _^_EN | apple _^_EN | ||||
| // exceptions | // exceptions | ||||
| alene &l'en@ // alone | alene &l'en@ // alone | ||||
| egen a:j@n | |||||
| egen _|aj@-n | |||||
| mc mak' $capital // PB McDonald | mc mak' $capital // PB McDonald | ||||
| egne a:in@ | |||||
| egne ajn@- | |||||
| enter entV | enter entV | ||||
| ide id'e // idea | ide id'e // idea | ||||
| idé id'e // idea | idé id'e // idea | ||||
| tune tun3 $capital // PB Tune lufthavn - not "tune a car" [tjune] | tune tun3 $capital // PB Tune lufthavn - not "tune a car" [tjune] | ||||
| ny ny // new | ny ny // new | ||||
| også Vs@ // also | |||||
| også Vs@- // also | |||||
| idet id'e // in so far as | idet id'e // in so far as | ||||
| (rub og stub) R'Ob||V||sd'Ob | (rub og stub) R'Ob||V||sd'Ob | ||||
| tre tr'e // the number 3 | |||||
| tre tr'E // the number 3 | |||||
| rejicere rejis'eV // PB should not be pronounced [raje] | rejicere rejis'eV // PB should not be pronounced [raje] | ||||
| rejicerer rejis'eV // PB | rejicerer rejis'eV // PB | ||||
| rejiceres rejis'eVs // PB | rejiceres rejis'eVs // PB | ||||
| konfirmandernes kVnferm'&nd3-n@s // PB | konfirmandernes kVnferm'&nd3-n@s // PB | ||||
| giv g'i // PB the v shouldn't be pronounced | giv g'i // PB the v shouldn't be pronounced | ||||
| giver gir // PB the v shouldn't be pronounced | giver gir // PB the v shouldn't be pronounced | ||||
| opgiver Vpgir // PB | |||||
| jaloux sj&'lu // PB jaloux | jaloux sj&'lu // PB jaloux | ||||
| aficionado afisjo'na:do // PB | aficionado afisjo'na:do // PB | ||||
| breakdance brEig'da:ns // PB breakdance | breakdance brEig'da:ns // PB breakdance | ||||
| wien v'i:n // PB Wien - the town of Vienna | wien v'i:n // PB Wien - the town of Vienna | ||||
| calais kal'E // PB Calais - town in France | calais kal'E // PB Calais - town in France | ||||
| date dejt // PB date - stævnemøde | date dejt // PB date - stævnemøde | ||||
| siger sir // PB silent d | |||||
| //siger sir // PB silent d | |||||
| (tids nok) tis||n'Vk // PB silent d | (tids nok) tis||n'Vk // PB silent d | ||||
| skateboardet sk'eitbo@d3D // PB | skateboardet sk'eitbo@d3D // PB | ||||
| (hole in one) h'oulinw,0n // PB English golf expression used in Danish | (hole in one) h'oulinw,0n // PB English golf expression used in Danish | ||||
| (deres kvarter) dE:Vs||kvA'ter // PB | (deres kvarter) dE:Vs||kvA'ter // PB | ||||
| (det kvarter) de||kvA'ter // PB | (det kvarter) de||kvA'ter // PB | ||||
| (i kvarter) i||kv'A:dV | (i kvarter) i||kv'A:dV | ||||
| (at have) &||h&: // PB the verb 'have', not the noun 'have' = garden | |||||
| (vil have) vel||h'&: // PB | |||||
| (du have) du||h&: // PB | |||||
| (må have) m'O:||h&: // PB | |||||
| (at have) &||h& // PB the verb 'have', not the noun 'have' = garden | |||||
| (vil have) vel||h'& // PB | |||||
| (ville have) v?il3||h'& // PB | |||||
| (du have) du||h& // PB | |||||
| (må have) mO:||h& // PB | |||||
| (skal have) sk?&||h& // PB | |||||
| (helst have) h'Elst||h& | |||||
| (gerne have) g'Ern3||h& | |||||
| (kan have) k?&n||h& // PB | |||||
| (ikke have) ege||h& // PB | (ikke have) ege||h& // PB | ||||
| // PB 'hav' = ocean - 'hav' = have (a nice day) | // PB 'hav' = ocean - 'hav' = have (a nice day) | ||||
| (et hav) ed||hAu | (et hav) ed||hAu |
| Dolce d0ltSeI | Dolce d0ltSeI | ||||
| Dvorak d@-vo@Zak | Dvorak d@-vo@Zak | ||||
| Emory Em3ri | Emory Em3ri | ||||
| Fleming flEmIN | |||||
| Folger foUldZ3 | Folger foUldZ3 | ||||
| Genghis dZENgIs | Genghis dZENgIs | ||||
| Gibson gIbs@n | Gibson gIbs@n |
| concordo $alt | concordo $alt | ||||
| conforto $alt $verb | conforto $alt $verb | ||||
| consolo $alt2 $noun | consolo $alt2 $noun | ||||
| contivermos $alt | |||||
| controle $alt2 $noun | controle $alt2 $noun | ||||
| controlo $alt2 $noun | controlo $alt2 $noun | ||||
| coreia $alt | coreia $alt | ||||
| corveta $alt2 | corveta $alt2 | ||||
| corvos $alt | corvos $alt | ||||
| coto $alt2 | coto $alt2 | ||||
| couberdes $alt | |||||
| coubermos $alt | |||||
| cratera $alt | cratera $alt | ||||
| crede $alt2 | crede $alt2 | ||||
| der $alt | |||||
| derdes $alt | |||||
| desapego $alt2 $noun | desapego $alt2 $noun | ||||
| descabelo $alt | descabelo $alt | ||||
| descordo $alt | descordo $alt | ||||
| envolto $alt2 | envolto $alt2 | ||||
| enxerto $alt2 $noun | enxerto $alt2 $noun | ||||
| epopeia $alt | epopeia $alt | ||||
| erga $alt2 | |||||
| ergam $alt2 | |||||
| ergo $alt2 | |||||
| eritreia $alt | eritreia $alt | ||||
| erro $alt2 $noun | erro $alt2 $noun | ||||
| erros $alt2 | erros $alt2 | ||||
| espoleta $alt2 | espoleta $alt2 | ||||
| esposa $alt2 | esposa $alt2 | ||||
| esqueleto $alt2 | esqueleto $alt2 | ||||
| estiverdes $alt | |||||
| estivermos $alt | |||||
| estrela $alt2 | estrela $alt2 | ||||
| estrofe $alt | estrofe $alt | ||||
| estorno $alt $verb | estorno $alt $verb | ||||
| ferozes $alt | ferozes $alt | ||||
| fezes $alt | fezes $alt | ||||
| ?1 fixe fiSy | ?1 fixe fiSy | ||||
| fizerdes $alt | |||||
| fizermos $alt | |||||
| foda $alt2 $verb | foda $alt2 $verb | ||||
| folheto $alt2 | folheto $alt2 | ||||
| folga $alt | folga $alt | ||||
| hemorroida $alt | hemorroida $alt | ||||
| hoje $alt2 | hoje $alt2 | ||||
| horrores $alt2 | horrores $alt2 | ||||
| houverdes $alt | |||||
| houvermos $alt | |||||
| ideia $alt | ideia $alt | ||||
| insonoro $alt | insonoro $alt | ||||
| interesse $alt2 $noun | interesse $alt2 $noun | ||||
| lopes $alt | lopes $alt | ||||
| maior $alt | maior $alt | ||||
| maleta $alt2 | maleta $alt2 | ||||
| mantiverdes $alt | |||||
| mantiveres $alt | |||||
| mantivermos $alt | |||||
| marcelo $alt | marcelo $alt | ||||
| marmelo $alt | marmelo $alt | ||||
| marreta $alt2 | marreta $alt2 | ||||
| miolo $alt2 | miolo $alt2 | ||||
| miolos $alt | miolos $alt | ||||
| moeda $alt | moeda $alt | ||||
| modos $alt | |||||
| molho $alt2 $noun | molho $alt2 $noun | ||||
| monera $alt | monera $alt | ||||
| morcego $alt2 | morcego $alt2 | ||||
| nervo $alt2 | nervo $alt2 | ||||
| novos $alt | novos $alt | ||||
| obstetra $alt | obstetra $alt | ||||
| obtivera $alt | |||||
| obtivermos $alt | |||||
| odisseia $alt | odisseia $alt | ||||
| onu $1 | onu $1 | ||||
| olho $alt2 $noun | olho $alt2 $noun | ||||
| osso $alt2 | |||||
| ossos $alt | |||||
| opereta $alt2 | opereta $alt2 | ||||
| ordens $alt | ordens $alt | ||||
| osso $alt2 | |||||
| ossos $alt | |||||
| ostra $alt2 | ostra $alt2 | ||||
| ovos $alt | ovos $alt | ||||
| pachorra $alt2 | pachorra $alt2 | ||||
| pedra $alt | pedra $alt | ||||
| pelego $alt2 | pelego $alt2 | ||||
| pelo $alt $verb | pelo $alt $verb | ||||
| pesque $alt | |||||
| pesquem $alt | |||||
| peso $alt $verb | peso $alt $verb | ||||
| piloto $alt2 $noun | piloto $alt2 $noun | ||||
| pintora $alt2 | pintora $alt2 | ||||
| preço $alt2 | preço $alt2 | ||||
| primavera $alt | primavera $alt | ||||
| provo $alt | provo $alt | ||||
| puder $alt | |||||
| puderdes $alt | |||||
| pudermos $alt | |||||
| puserdes $alt | |||||
| quarteto $alt2 | quarteto $alt2 | ||||
| queda $alt | queda $alt | ||||
| quinteto $alt2 | quinteto $alt2 | ||||
| quiserdes $alt | |||||
| quisermos $alt | |||||
| recomeço $alt2 $noun | recomeço $alt2 $noun | ||||
| recordo $alt | recordo $alt | ||||
| recorto $alt | recorto $alt | ||||
| soro $alt2 | soro $alt2 | ||||
| sorvete $alt2 | sorvete $alt2 | ||||
| sossego $alt2 $noun | sossego $alt2 $noun | ||||
| souberdes $alt | |||||
| soubermos $alt | |||||
| suborno $alt $verb | suborno $alt $verb | ||||
| sufoco $alt2 $noun | sufoco $alt2 $noun | ||||
| sufocos $alt2 | sufocos $alt2 | ||||
| tempero $alt2 $noun | tempero $alt2 $noun | ||||
| teta $alt2 | teta $alt2 | ||||
| tetra $alt | tetra $alt | ||||
| tiverdes $alt | |||||
| tivermos $alt | |||||
| tocha $alt | tocha $alt | ||||
| toga $alt | toga $alt | ||||
| topo $alt $verb | topo $alt $verb | ||||
| vanessa $alt2 | vanessa $alt2 | ||||
| velozes $alt | velozes $alt | ||||
| verme $alt | verme $alt | ||||
| vierem $alt | |||||
| violeta $alt2 | violeta $alt2 | ||||
| violoncelo $alt | violoncelo $alt | ||||
| voga $alt | voga $alt |
| .L02 e em | .L02 e em | ||||
| .L03 a am o | .L03 a am o | ||||
| .L04 a am e em o ue uem | .L04 a am e em o ue uem | ||||
| .L05 r ra ram re rem rdes | |||||
| .L06 ra ram ste re rem | |||||
| .L05 r ra ram re rem rde rmo | |||||
| .L06 ra ram ste re rem rmo | |||||
| .L07 sse ssem ste | .L07 sse ssem ste | ||||
| sf) e (ra_ E // esfera, biosfera | sf) e (ra_ E // esfera, biosfera | ||||
| //sort | //sort | ||||
| _d) e (L05_ E | |||||
| _vi) e (L05_ E | |||||
| fiz) e (L05_ E | fiz) e (L05_ E | ||||
| pus) e (L05_ E / com- im- de- | |||||
| tiv) e (L05_ E // es- | tiv) e (L05_ E // es- | ||||
| _com) e (L05_ e | _com) e (L05_ e | ||||
| _pud) e (L05_ E | |||||
| _coub) e (L05_ E | _coub) e (L05_ E | ||||
| _exag) e (L05_ E | _exag) e (L05_ E | ||||
| _houv) e (L05_ E | _houv) e (L05_ E | ||||
| _perd) e (L05_ e | _perd) e (L05_ e | ||||
| _quis) e (L05_ E | |||||
| _soub) e (L05_ E | _soub) e (L05_ E | ||||
| _rend) e (L06_ e | _rend) e (L06_ e | ||||
| _vend) e (L06_ e | _vend) e (L06_ e | ||||
| _tem) e (L07_ e | _tem) e (L07_ e | ||||
| colh) e (L07_ e // & es- | colh) e (L07_ e // & es- | ||||
| corr) e (L07_ e // per- con- in- so- dis- | corr) e (L07_ e // per- con- in- so- dis- | ||||
| nasc) e (L07_ e / re- | |||||
| torc) e (L07_ e // con- | torc) e (L07_ e // con- | ||||
| venc) e (L07_ e // con- | venc) e (L07_ e // con- | ||||
| vert) e (L07_ e // in- re- con- | vert) e (L07_ e // in- re- con- | ||||
| _aborrec) e (L07_ e | _aborrec) e (L07_ e | ||||
| _adoec) e (L07_ e | _adoec) e (L07_ e | ||||
| _adormec) e (L07_ e | _adormec) e (L07_ e | ||||
| _agradec) e (L07_ e | |||||
| _amanhec) e (L07_ e | _amanhec) e (L07_ e | ||||
| _anoitec) e (L07_ e | _anoitec) e (L07_ e | ||||
| _arrepend) e (L07_ e | _arrepend) e (L07_ e | ||||
| _cresc) e (L07_ e | |||||
| _defend) e (L07_ e | _defend) e (L07_ e | ||||
| _depend) e (L07_ e | _depend) e (L07_ e | ||||
| _emagrec) e (L07_ e | |||||
| _enlouquec) e (L07_ e | _enlouquec) e (L07_ e | ||||
| _entristec) e (L07_ e | _entristec) e (L07_ e | ||||
| _envaidec) e (L07_ e | _envaidec) e (L07_ e | ||||
| _p) e (quL02_ E | _p) e (quL02_ E | ||||
| _s) e (quL02_ E | _s) e (quL02_ E | ||||
| l) e (que_ E | l) e (que_ E | ||||
| _sug) e (rL02_ E | |||||
| _imp) e (rL03_ E | _imp) e (rL03_ E | ||||
| _sev) e (rL03_ E | _sev) e (rL03_ E | ||||
| _reit) e (rL03_ E | _reit) e (rL03_ E | ||||
| _sinc) e (rL03_ E | _sinc) e (rL03_ E | ||||
| _g) e (rL04_ E | |||||
| g) e (rL04_ E / su- refri- | |||||
| qu) e (rL04_ E / re- | |||||
| _op) e (rL04_ E | _op) e (rL04_ E | ||||
| _qu) e (rL04_ E | |||||
| _alt) e (rL04_ E | _alt) e (rL04_ E | ||||
| _sup) e (rL04_ E | _sup) e (rL04_ E | ||||
| _tol) e (rL04_ E | _tol) e (rL04_ E | ||||
| _p) e (rdL02_ E | _p) e (rdL02_ E | ||||
| _l) e (rdL03_ E | _l) e (rdL03_ E | ||||
| _h) e (rdL04_ E | _h) e (rdL04_ E | ||||
| _) e (rgL03_ e | |||||
| _) e (rguL02_ E | _) e (rguL02_ E | ||||
| _alb) e (rguL02_ E | _alb) e (rguL02_ E | ||||
| _enx) e (rguL02_ E | _enx) e (rguL02_ E | ||||
| _cr) e (scL02_ E | _cr) e (scL02_ E | ||||
| _p) e (scL03_ E | _p) e (scL03_ E | ||||
| _m) e (sclL04 E | _m) e (sclL04 E | ||||
| _p) e (squL02_ E | |||||
| _l) e (ssL02_ e | _l) e (ssL02_ e | ||||
| _esp) e (ssL03_ e | _esp) e (ssL03_ e | ||||
| _c) e (stL03_ e | _c) e (stL03_ e | ||||
| _embel) e (zL04_ E | _embel) e (zL04_ E | ||||
| _acont) e (çL01_ e | _acont) e (çL01_ e | ||||
| _arref) e (çL01_ e | _arref) e (çL01_ e | ||||
| _emagr) e (çL03 | |||||
| par) e (çL03_ e // a- re- com- rea- desa- | par) e (çL03_ e // a- re- com- rea- desa- | ||||
| _ado) e (çL03_ e | _ado) e (çL03_ e | ||||
| _aqu) e (çL03_ e | _aqu) e (çL03_ e | ||||
| _ofer) e (çL03_ e | _ofer) e (çL03_ e | ||||
| abast) e (çL03_ e // re- | abast) e (çL03_ e // re- | ||||
| _aborr) e (çL03_ e | _aborr) e (çL03_ e | ||||
| _agrad) e (çL03_ e | |||||
| _amanh) e (çL03_ e | _amanh) e (çL03_ e | ||||
| _anoit) e (çL03_ e | _anoit) e (çL03_ e | ||||
| _enfraqu) e (çL03_ e | _enfraqu) e (çL03_ e | ||||
| _c) o (pL03_ O | _c) o (pL03_ O | ||||
| _ens) o (pL04_ O | _ens) o (pL04_ O | ||||
| _s) o (prL04_ O | _s) o (prL04_ O | ||||
| _) o (ptL04_ O | |||||
| _enf) o (rquL02_ O | _enf) o (rquL02_ O | ||||
| c) o (rrL01_ o // escorra, incorra, corra, recorra | c) o (rrL01_ o // escorra, incorra, corra, recorra | ||||
| _m) o (rrL01_ o | _m) o (rrL01_ o | ||||
| __) - (_D m'enUs | __) - (_D m'enUs | ||||
| A_) - (_D _ | A_) - (_D _ | ||||
| C_) - (_D _ | C_) - (_D _ | ||||
| phoneme @ | phoneme @ | ||||
| vowel starttype #@ endtype #@ | vowel starttype #@ endtype #@ | ||||
| unstressed | unstressed | ||||
| length 110 | |||||
| length 60 | |||||
| FMT(vowel/@_3) | FMT(vowel/@_3) | ||||
| endphoneme | endphoneme | ||||
| phoneme @- // very short schwa | |||||
| vowel starttype #@ endtype #@ | |||||
| unstressed nonsyllabic | |||||
| ipa ə | |||||
| IF nextPhW(*) OR nextPhW(r) THEN | |||||
| ipa NULL // @-* is used to make 'r' | |||||
| ENDIF | |||||
| length 40 | |||||
| FMT(vowel/@-) | |||||
| endphoneme | |||||
| // ToDo: change [@] to [a#] if adjacent to [r] or [R] | // ToDo: change [@] to [a#] if adjacent to [r] or [R] | ||||
| phoneme 3 | phoneme 3 | ||||
| vowel starttype #a endtype #a | vowel starttype #a endtype #a | ||||
| unstressed | unstressed | ||||
| length 110 | |||||
| length 40 | |||||
| FMT(vowel/a#_3) | FMT(vowel/a#_3) | ||||
| endphoneme | endphoneme | ||||
| // PB sort of schwa [ɐ] (0250+032F) | |||||
| // "spurgt" [sp'o3-d] – ipa [spˈoɐ̯d] | |||||
| phoneme 3- // used for 'r' after a vowel (to create a diphthong) | |||||
| liquid | |||||
| lengthmod 7 | |||||
| ipa ɐ̯ | |||||
| FMT(r/a_) | |||||
| endphoneme | |||||
| phoneme i | phoneme i | ||||
| vowel starttype #i endtype #i | vowel starttype #i endtype #i | ||||
| length 150 | length 150 | ||||
| IfNextVowelAppend(;) | |||||
| // IfNextVowelAppend(;) | |||||
| IF nextPhW(isNotVowel) AND NOT next2PhW(3) AND NOT next2PhW(V) AND NOT next2PhW(@-) THEN | |||||
| glstop | |||||
| length 90 | |||||
| ENDIF | |||||
| // PB "tie", "stige", "krige" vowel + vowel: extra length | |||||
| // What is causing this very short [i] in words with final [@-]? | |||||
| // NOT "galleriet" [g,?&lVR'i@-D] NOT "krigen" [kR'i@-n] | |||||
| IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) OR nextPhW(@-) AND NOT next2PhW(D) AND NOT next2PhW(n) THEN | |||||
| length 240 | |||||
| ENDIF | |||||
| // "siden" | |||||
| IF nextVowel(3) OR nextVowel(V) OR nextVowel(@) OR nextVowel(@-) AND nextPhW(D) THEN | |||||
| length 150 | |||||
| ENDIF | |||||
| // "lise" | |||||
| IF nextPhW(isNotVowel) AND nextVowel(@-) OR nextVowel(@) THEN | |||||
| length 150 | |||||
| ENDIF | |||||
| // PB "Bishop" | |||||
| IF nextPhW(S) AND next2PhW(V) THEN | |||||
| length 90 | |||||
| ENDIF | |||||
| // "pjækkeri", "røveri" | |||||
| IF thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN | |||||
| length 90 | |||||
| ENDIF | |||||
| // "vilje" | |||||
| IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN | |||||
| length 90 | |||||
| ENDIF | |||||
| FMT(vowel/i_4) | FMT(vowel/i_4) | ||||
| endphoneme | endphoneme | ||||
| // sviret vs. svirret | // sviret vs. svirret | ||||
| phoneme ?i | phoneme ?i | ||||
| vowel starttype #i endtype #i | vowel starttype #i endtype #i | ||||
| length 95 | |||||
| length 90 | |||||
| IfNextVowelAppend(;) | IfNextVowelAppend(;) | ||||
| FMT(vowel/i_4) | FMT(vowel/i_4) | ||||
| endphoneme | endphoneme | ||||
| phoneme e | phoneme e | ||||
| vowel starttype #e endtype #e | vowel starttype #e endtype #e | ||||
| length 150 | length 150 | ||||
| IF NOT next2PhW(3) AND NOT next2PhW(V) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN | |||||
| glstop | |||||
| length 90 | |||||
| ENDIF | |||||
| IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) THEN | |||||
| length 150 | |||||
| ENDIF | |||||
| // "delte", "mante", "evig" [evi] | |||||
| IF nextVowel(3) OR nextVowel(V) OR nextVowel(@) OR nextVowel(@) OR nextVowel(@-) THEN | |||||
| length 150 | |||||
| ENDIF | |||||
| // "prinsen" - TEST | |||||
| IF nextPhW(n) AND next2PhW(s) THEN | |||||
| length 90 | |||||
| ENDIF | |||||
| // "slesk", "sleske" short vowel | |||||
| IF nextPhW(s) AND next2PhW(t) AND nextVowel(@-) THEN | |||||
| length 90 | |||||
| ELIF nextPhW(s) AND next2PhW(k) AND nextVowel(@-) THEN | |||||
| length 90 | |||||
| // "skriften" - very broad: short before 2 consonants | |||||
| ELIF nextPhW(isNotVowel) AND next2PhW(isNotVowel) AND nextVowel(@-) THEN | |||||
| length 90 | |||||
| ENDIF | |||||
| // PB "ring", "ringe" | |||||
| IF nextPhW(N) THEN | |||||
| length 90 | |||||
| ENDIF | |||||
| // PB "enig", "enige", "evig" | |||||
| IF nextPhW(isNotVowel) AND next2PhW(i) THEN | |||||
| length 150 | |||||
| ENDIF | |||||
| // "labyrinter" , "labyrinten" - short followed by 2 consonants | |||||
| IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN | |||||
| length 60 | |||||
| ENDIF | |||||
| FMT(vowel/e) | FMT(vowel/e) | ||||
| endphoneme | endphoneme | ||||
| // "skille" vs. "skele", "pille" vs. "pile" | // "skille" vs. "skele", "pille" vs. "pile" | ||||
| phoneme ?e | phoneme ?e | ||||
| vowel starttype #e endtype #e | vowel starttype #e endtype #e | ||||
| length 95 | |||||
| length 90 | |||||
| FMT(vowel/e) | FMT(vowel/e) | ||||
| endphoneme | endphoneme | ||||
| phoneme E | phoneme E | ||||
| vowel starttype #e endtype #e | vowel starttype #e endtype #e | ||||
| length 150 | length 150 | ||||
| IF NOT next2PhW(3) AND NOT next2PhW(V) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN | |||||
| glstop | |||||
| length 90 | |||||
| ENDIF | |||||
| // example? | |||||
| IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) THEN | |||||
| length 50 | |||||
| ENDIF | |||||
| // "værelse", "breve" | |||||
| IF nextVowel(3) OR nextVowel(V) OR nextVowel(@) OR nextVowel(@-) THEN | |||||
| length 150 | |||||
| ENDIF | |||||
| // "fest", "feste" short vowel | |||||
| IF nextPhW(s) AND next2PhW(t) AND nextVowel(@-) THEN | |||||
| length 90 | |||||
| ELIF nextPhW(s) AND next2PhW(k) AND nextVowel(@-) THEN | |||||
| length 90 | |||||
| // PB knægten | |||||
| ELIF nextPhW(g) AND next2PhW(t) AND nextVowel(@-) THEN | |||||
| length 90 | |||||
| // "femten", "tænker" - very broad: short before 2 consonants | |||||
| ELIF nextPhW(isNotVowel) AND next2PhW(isNotVowel) AND nextVowel(@-) OR nextVowel(V)THEN | |||||
| length 90 | |||||
| // PB "kærlig" [k'Erli]- a bit longer because og the missing [ɐ] [ˈkæɐ̯li] | |||||
| ELIF nextPhW(r) AND next2PhW(isNotVowel) AND nextVowel(i) THEN | |||||
| length 130 | |||||
| ENDIF | |||||
| // "ære", "kærester", "ærefrygt" - longer E | |||||
| IF nextPhW(V) THEN | |||||
| length 180 | |||||
| ENDIF | |||||
| FMT(vowel/e_mid2) | FMT(vowel/e_mid2) | ||||
| endphoneme | endphoneme | ||||
| // "læsse" vs. "læse" | // "læsse" vs. "læse" | ||||
| phoneme ?E | phoneme ?E | ||||
| vowel starttype #e endtype #e | vowel starttype #e endtype #e | ||||
| length 95 | |||||
| length 90 | |||||
| // PB "færre" [f'?EV] - a bit longer because og the missing [ɐ] [ˈfæɐ̯ʌ] | |||||
| // Changed now [f'?E3-V] but it won't do any harm | |||||
| IF nextPhW(V) THEN | |||||
| length 120 | |||||
| ENDIF | |||||
| FMT(vowel/e_mid2) | FMT(vowel/e_mid2) | ||||
| endphoneme | endphoneme | ||||
| phoneme & | phoneme & | ||||
| vowel starttype #e endtype #e | vowel starttype #e endtype #e | ||||
| length 150 | length 150 | ||||
| IF NOT next2PhW(3) AND NOT next2PhW(V) AND NOT next2PhW(@) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN | |||||
| glstop | |||||
| length 90 | |||||
| ENDIF | |||||
| // PB "sable", "sabler", "anede", "David" | |||||
| IF nextVowel(3) OR nextVowel(V) OR nextVowel(@) OR nextVowel(i) OR nextVowel(@-) THEN | |||||
| length 150 | |||||
| ENDIF | |||||
| // "stadig" [st&Di] | |||||
| IF nextVowel(i) AND nextVowel(isFinalVowel) AND nextVowel(isWordEnd) THEN | |||||
| length 180 | |||||
| // "stadigt" [st&Dit] | |||||
| ELIF nextVowel(i) AND nextVowel(isFinalVowel) AND next2PhW(t) THEN | |||||
| length 180 | |||||
| // "latin" [l&t'in] | |||||
| ELIF nextVowel(i) AND nextVowel(isFinalVowel) AND NOT next2PhW(t) THEN | |||||
| length 90 | |||||
| ENDIF | |||||
| // "ae", "aer", "dagen" vowel + vowel: extra length | |||||
| IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) THEN | |||||
| length 240 | |||||
| ENDIF | |||||
| // "Alfie", "alfer" - short before 2 consonants | |||||
| IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN | |||||
| length 90 | |||||
| ENDIF | |||||
| // "Omaha" | |||||
| IF thisPh(isWordEnd) THEN | |||||
| length 90 | |||||
| ENDIF | |||||
| FMT(vowel/ee_2) | FMT(vowel/ee_2) | ||||
| endphoneme | endphoneme | ||||
| // PB Experimental glottal a | // PB Experimental glottal a | ||||
| // e.g. the last a in "staldkarl" | // e.g. the last a in "staldkarl" | ||||
| // "sale" vs. "sal" | |||||
| phoneme ?& | phoneme ?& | ||||
| vowel starttype #e endtype #e | vowel starttype #e endtype #e | ||||
| length 95 | |||||
| length 90 | |||||
| FMT(vowel/ee_2) | FMT(vowel/ee_2) | ||||
| endphoneme | endphoneme | ||||
| phoneme &# | phoneme &# | ||||
| vowel starttype #e endtype #e | vowel starttype #e endtype #e | ||||
| length 120 | length 120 | ||||
| IF NOT next2Ph(3) AND NOT next2Ph(V) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN | |||||
| glstop | |||||
| length 90 | |||||
| ENDIF | |||||
| IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) THEN | |||||
| length 150 | |||||
| ENDIF | |||||
| FMT(vowel/&) | FMT(vowel/&) | ||||
| endphoneme | endphoneme | ||||
| // PB short &# | |||||
| // "revl" vs. "tremme" | |||||
| phoneme ?&# | |||||
| vowel starttype #e endtype #e | |||||
| length 90 | |||||
| FMT(vowel/&) | |||||
| endphoneme | |||||
| phoneme a | phoneme a | ||||
| vowel starttype #a endtype #a | vowel starttype #a endtype #a | ||||
| length 150 | length 150 | ||||
| IF NOT next2PhW(3) AND NOT next2PhW(V) AND NOT next2PhW(@) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN | |||||
| glstop | |||||
| length 90 | |||||
| ENDIF | |||||
| IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) OR nextPhW(@-) THEN | |||||
| length 150 | |||||
| ENDIF | |||||
| FMT(vowel/a_2) | |||||
| endphoneme | |||||
| // PB short (glottal) a | |||||
| // "bragt" | |||||
| phoneme ?a | |||||
| vowel starttype #a endtype #a | |||||
| length 90 | |||||
| FMT(vowel/a_2) | FMT(vowel/a_2) | ||||
| endphoneme | endphoneme | ||||
| phoneme A | phoneme A | ||||
| vowel starttype #a endtype #a | vowel starttype #a endtype #a | ||||
| length 150 | length 150 | ||||
| IF NOT next2PhW(3) AND NOT next2PhW(V) AND NOT next2PhW(@) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN | |||||
| glstop | |||||
| length 90 | |||||
| ENDIF | |||||
| IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) OR nextPhW(@-) THEN | |||||
| length 150 | |||||
| ENDIF | |||||
| // "far", "bastard" - a bit longer followed by [r] | |||||
| IF nextPhW(r) THEN | |||||
| length 120 | |||||
| ENDIF | |||||
| FMT(vowel/a_3) | |||||
| endphoneme | |||||
| // PB glottal a | |||||
| // "drab" vs. "drabelig" | |||||
| phoneme ?A | |||||
| vowel starttype #a endtype #a | |||||
| length 90 | |||||
| // "straffeattest", "straffe" - a bit longer after R | |||||
| IF prevPhW(R) AND nextPhW(isNotVowel) THEN | |||||
| length 120 | |||||
| ENDIF | |||||
| FMT(vowel/a_3) | FMT(vowel/a_3) | ||||
| endphoneme | endphoneme | ||||
| phoneme u | phoneme u | ||||
| vowel starttype #u endtype #u | vowel starttype #u endtype #u | ||||
| length 150 | length 150 | ||||
| // Short vowel followed by consonant and NOT consonant + 3 or V or @ | |||||
| // "blus" vs. "bluse" and "bluser" | |||||
| IF NOT next2PhW(3) AND NOT next2PhW(V) AND NOT next2PhW(@) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN | |||||
| glstop | |||||
| length 90 | |||||
| ENDIF | |||||
| // "hue", "suge", "uge" | |||||
| IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) THEN | |||||
| length 150 | |||||
| ENDIF | |||||
| // extra length followed by 3 or V or @ | |||||
| IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) THEN | |||||
| length 240 | |||||
| ENDIF | |||||
| // "umulig" | |||||
| IF nextVowel(i) AND nextVowel(isFinalVowel) AND nextVowel(isWordEnd) THEN | |||||
| length 180 | |||||
| ENDIF | |||||
| FMT(vowel/u_bck) | FMT(vowel/u_bck) | ||||
| endphoneme | endphoneme | ||||
| // PB glottal u | // PB glottal u | ||||
| // "gud" vs. "guden" - [guD] [g?D@n] | |||||
| // "tude" vs. "tuden" - [tuD3] [t?uD@n] | |||||
| phoneme ?u | phoneme ?u | ||||
| vowel starttype #u endtype #u | vowel starttype #u endtype #u | ||||
| length 95 | |||||
| length 90 | |||||
| FMT(vowel/u_bck) | FMT(vowel/u_bck) | ||||
| endphoneme | endphoneme | ||||
| phoneme o | phoneme o | ||||
| vowel starttype #o endtype #o | vowel starttype #o endtype #o | ||||
| length 150 | length 150 | ||||
| IF NOT next2PhW(3) AND NOT next2PhW(V) AND NOT next2PhW(@) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN | |||||
| glstop | |||||
| length 90 | |||||
| ENDIF | |||||
| // "tro" | |||||
| IF thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN | |||||
| length 90 | |||||
| ENDIF | |||||
| IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) THEN | |||||
| length 150 | |||||
| ENDIF | |||||
| // "modig" - long vowel after consonant + [i] | |||||
| IF nextVowel(3) OR nextVowel(V) OR nextVowel(@) OR nextVowel(i) THEN | |||||
| length 150 | |||||
| ENDIF | |||||
| FMT(vowel/o_2) | |||||
| endphoneme | |||||
| // PB Short o | |||||
| // "patron" vs. "kone" | |||||
| phoneme ?o | |||||
| vowel starttype #o endtype #o | |||||
| length 95 | |||||
| FMT(vowel/o_2) | FMT(vowel/o_2) | ||||
| endphoneme | endphoneme | ||||
| phoneme O | phoneme O | ||||
| vowel starttype #o endtype #o | vowel starttype #o endtype #o | ||||
| length 150 | length 150 | ||||
| IF NOT next2PhW(3) AND NOT next2PhW(V) AND NOT next2PhW(@) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN | |||||
| glstop | |||||
| length 90 | |||||
| ENDIF | |||||
| // PB "gået" | |||||
| IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) OR nextPhW(@-) THEN | |||||
| length 150 | |||||
| ENDIF | |||||
| // "rådig" | |||||
| IF nextVowel(i) AND nextVowel(isFinalVowel) THEN | |||||
| length 180 | |||||
| ENDIF | |||||
| FMT(vowel/o_5) | FMT(vowel/o_5) | ||||
| endphoneme | endphoneme | ||||
| // "toget" vs. "tåget" | // "toget" vs. "tåget" | ||||
| phoneme ?O | phoneme ?O | ||||
| vowel starttype #o endtype #o | vowel starttype #o endtype #o | ||||
| length 95 | |||||
| length 90 | |||||
| FMT(vowel/o_5) | FMT(vowel/o_5) | ||||
| endphoneme | endphoneme | ||||
| phoneme V | phoneme V | ||||
| vowel starttype #@ endtype #@ | vowel starttype #@ endtype #@ | ||||
| length 150 | length 150 | ||||
| // "sport" [spV:t] | |||||
| IF NOT next2PhW(3) AND NOT next2PhW(V) AND NOT next2PhW(@) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN | |||||
| glstop | |||||
| length 90 | |||||
| ENDIF | |||||
| IF nextPh(3) OR nextPh(V) OR nextPh(@) THEN | |||||
| length 150 | |||||
| ENDIF | |||||
| // PB short V in "holder", "solder" | |||||
| IF nextPhW(isNotVowel) AND next2Ph(V) THEN | |||||
| length 90 | |||||
| ENDIF | |||||
| // PB "snorke", "snorker", årlig | |||||
| IF next2PhW(3) OR next2PhW(V) OR next2PhW(@) OR next2PhW(i) THEN | |||||
| length 180 | |||||
| ENDIF | |||||
| // "sove" [sVw3] - longer followed by w + 3 | |||||
| IF nextPhW(w) AND next2PhW(3) THEN | |||||
| length 220 | |||||
| ENDIF | |||||
| FMT(vowel/V_4) | |||||
| endphoneme | |||||
| // PB Glottal (short) å | |||||
| // "forstår" vs. "kåre" | |||||
| phoneme ?V | |||||
| vowel starttype #@ endtype #@ | |||||
| length 100 | |||||
| FMT(vowel/V_4) | FMT(vowel/V_4) | ||||
| endphoneme | endphoneme | ||||
| phoneme 0 | phoneme 0 | ||||
| vowel starttype #o endtype #o | vowel starttype #o endtype #o | ||||
| length 150 | length 150 | ||||
| IF NOT next2PhW(3) AND NOT next2PhW(V) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN | |||||
| glstop | |||||
| length 90 | |||||
| ENDIF | |||||
| IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) THEN | |||||
| length 150 | |||||
| ENDIF | |||||
| FMT(vowel/oo_2) | FMT(vowel/oo_2) | ||||
| endphoneme | endphoneme | ||||
| // ?B short 0 "sukker" | |||||
| phoneme ?0 | |||||
| vowel starttype #o endtype #o | |||||
| length 90 | |||||
| FMT(vowel/oo_2) | |||||
| endphoneme | |||||
| phoneme y | phoneme y | ||||
| vowel starttype #i endtype #i | vowel starttype #i endtype #i | ||||
| // experiment: changed to short from 150 | |||||
| length 150 | length 150 | ||||
| // Short vowel followed by consonant and NOT consonant + 3 or V | |||||
| // "lyd" vs. "lyde" and "lyder" | |||||
| IF nextPhW(isNotVowel) AND NOT next2PhW(3) AND NOT next2PhW(V) AND NOT next2PhW(@)AND NOT next2PhW(@-) THEN | |||||
| glstop | |||||
| length 90 | |||||
| ENDIF | |||||
| // "syg" [sy] | |||||
| IF thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN | |||||
| length 90 | |||||
| ENDIF | |||||
| // "skyd" | |||||
| IF thisPh(isFinalVowel) AND nextPhW(isWordEnd) AND nextPhW(isNotVowel) THEN | |||||
| length 90 | |||||
| ENDIF | |||||
| // "dydig" [dyDi] | |||||
| IF nextVowel(3) OR nextVowel(V) OR nextVowel(@) OR nextVowel(i) THEN | |||||
| length 150 | |||||
| ENDIF | |||||
| // "syge" [sy3] vowel + vowel: extra length, but NOT "fyret" [fyVD] | |||||
| IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) OR nextPhW(@-) AND NOT next2PhW(D) THEN | |||||
| length 220 | |||||
| ENDIF | |||||
| // PB "kryster" - short y | |||||
| IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN | |||||
| length 80 | |||||
| ENDIF | |||||
| // PB "gryden" | |||||
| FMT(vowel/y) | FMT(vowel/y) | ||||
| endphoneme | endphoneme | ||||
| // PB glottal y | |||||
| // PB Short y | |||||
| // "kylling" vs. "kyle", "krybbe" vs. "krybe" | // "kylling" vs. "kyle", "krybbe" vs. "krybe" | ||||
| phoneme ?y | phoneme ?y | ||||
| vowel starttype #i endtype #i | vowel starttype #i endtype #i | ||||
| length 95 | |||||
| length 70 | |||||
| FMT(vowel/y) | FMT(vowel/y) | ||||
| endphoneme | endphoneme | ||||
| phoneme Y | phoneme Y | ||||
| vowel starttype #i endtype #i | vowel starttype #i endtype #i | ||||
| length 150 | length 150 | ||||
| IF NOT next2Ph(3) AND NOT next2Ph(V) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN | |||||
| glstop | |||||
| length 90 | |||||
| ENDIF | |||||
| IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) THEN | |||||
| length 150 | |||||
| ENDIF | |||||
| FMT(vowel/yy) | FMT(vowel/yy) | ||||
| endphoneme | endphoneme | ||||
| phoneme W | phoneme W | ||||
| vowel starttype #@ endtype #@ | vowel starttype #@ endtype #@ | ||||
| length 150 | |||||
| length 160 | |||||
| // Shorter vowel when followed by consonant | |||||
| IF NOT next2PhW(3) AND NOT next2PhW(V) AND NOT next2PhW(@) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN | |||||
| glstop | |||||
| length 90 | |||||
| ENDIF | |||||
| // "kløe" vowel + vowel: extra length | |||||
| IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) OR nextPhW(@-) THEN | |||||
| length 220 | |||||
| ENDIF | |||||
| // "klø" short W when word ends with W | |||||
| IF thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN | |||||
| length 90 | |||||
| ENDIF | |||||
| // røde" W + 1 consonant + 3 or W or @ | |||||
| IF next2PhW(3) OR next2PhW(V) OR next2PhW(@) THEN | |||||
| length 160 | |||||
| ENDIF | |||||
| // PB "nødig", "nødigt", "kølige" | |||||
| IF nextVowel(i) THEN | |||||
| length 160 | |||||
| ENDIF | |||||
| // "møve" [mWw@-] | |||||
| IF nextPhW(w) AND nextVowel(@-) THEN | |||||
| length 160 | |||||
| ENDIF | |||||
| // "børnebog" | |||||
| IF nextPhW(r) AND next2PhW(n) AND nextVowel(@-) THEN | |||||
| length 150 | |||||
| ENDIF | |||||
| FMT(vowel/oe) | FMT(vowel/oe) | ||||
| endphoneme | endphoneme | ||||
| // "prøv" vs. "prøve" | // "prøv" vs. "prøve" | ||||
| phoneme ?W | phoneme ?W | ||||
| vowel starttype #@ endtype #@ | vowel starttype #@ endtype #@ | ||||
| length 80 | |||||
| length 95 | |||||
| FMT(vowel/oe) | FMT(vowel/oe) | ||||
| endphoneme | endphoneme | ||||
| phoneme W# | phoneme W# | ||||
| vowel starttype #@ endtype #@ | vowel starttype #@ endtype #@ | ||||
| length 150 | length 150 | ||||
| IF NOT next2Ph(3) AND NOT next2Ph(V) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN | |||||
| glstop | |||||
| length 90 | |||||
| ENDIF | |||||
| IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) THEN | |||||
| length 150 | |||||
| ENDIF | |||||
| FMT(vowel/V) | FMT(vowel/V) | ||||
| endphoneme | endphoneme | ||||
| // PB short W# | |||||
| // "rømme" | |||||
| phoneme ?W# | |||||
| vowel starttype #@ endtype #@ | |||||
| length 90 | |||||
| FMT(vowel/V) | |||||
| endphoneme | |||||
| phoneme aI | phoneme aI | ||||
| vowel starttype #a endtype #i | vowel starttype #a endtype #i | ||||
| length 250 | |||||
| length 300 | |||||
| IF NOT next2Ph(3) AND NOT next2Ph(V) AND NOT next2Ph(@-) AND nextPhW(isNotVowel) THEN | |||||
| glstop | |||||
| length 150 | |||||
| ENDIF | |||||
| IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) OR nextPhW(@-) THEN | |||||
| length 300 | |||||
| ENDIF | |||||
| // PB "drej" vs. "dreje" | |||||
| IF thisPh(isWordEnd) THEN | |||||
| length 140 | |||||
| ENDIF | |||||
| FMT(vdiph/ai) | FMT(vdiph/ai) | ||||
| endphoneme | endphoneme | ||||
| voicingswitch f | voicingswitch f | ||||
| endphoneme | endphoneme | ||||
| // PB Actually a kind of schwa = [ɐ]? - "byder" [bˈyðɐʌ] | |||||
| phoneme r // used for 'r' after a vowel (to create a diphthong) | phoneme r // used for 'r' after a vowel (to create a diphthong) | ||||
| liquid | liquid | ||||
| lengthmod 7 | lengthmod 7 | ||||
| IF nextPhW(isVowel) THEN | |||||
| ipa ɐ̯ | |||||
| IF nextPhW(isVowel) AND NOT nextPhW(?V) AND NOT nextPhW(V) THEN | |||||
| ChangePhoneme(R) | ChangePhoneme(R) | ||||
| ENDIF | ENDIF | ||||
| FMT(r/a_) | FMT(r/a_) | ||||
| endphoneme | endphoneme | ||||
| phoneme R | phoneme R | ||||
| lengthmod 7 | |||||
| lengthmod 6 | |||||
| liquid | liquid | ||||
| ipa ʁ | ipa ʁ | ||||
| FMT(r/aa) | FMT(r/aa) | ||||
| endphoneme | endphoneme | ||||
| // don't weaken consonants at end of word or before a stop | // don't weaken consonants at end of word or before a stop | ||||
| phoneme s | phoneme s | ||||
| WAV(ufric/s) | WAV(ufric/s) | ||||
| endphoneme | endphoneme | ||||
| phoneme p | phoneme p | ||||
| vls blb stop | vls blb stop | ||||
| voicingswitch b | voicingswitch b | ||||
| lengthmod 2 | |||||
| lengthmod 7 | |||||
| Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 amp=11 | Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 amp=11 | ||||
| Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=22 | Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=22 | ||||
| WAV(ustop/p) | WAV(ustop/p) | ||||
| endphoneme | endphoneme | ||||
| phoneme t | phoneme t | ||||
| vls alv stop | vls alv stop | ||||
| voicingswitch d | voicingswitch d | ||||
| lengthmod 2 | |||||
| lengthmod 7 | |||||
| Vowelin f1=0 f2=1700 -300 300 f3=-100 80 | Vowelin f1=0 f2=1700 -300 300 f3=-100 80 | ||||
| Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20 | Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20 | ||||
| WAV(ustop/t, 90) | WAV(ustop/t, 90) | ||||
| endphoneme | endphoneme | ||||
| phoneme j | |||||
| liquid palatal | |||||
| lengthmod 7 | |||||
| IF nextPhW(isVowel) THEN | |||||
| NextVowelStarts | |||||
| VowelStart(j/j@) | |||||
| VowelStart(j/ja) | |||||
| VowelStart(j/je,-60) | |||||
| VowelStart(j/ji) | |||||
| VowelStart(j/jo) | |||||
| VowelStart(j/ju) | |||||
| EndSwitch | |||||
| Vowelout len=70 | |||||
| VowelEnding(j/xj, -30) | |||||
| IF prevPh(isPause) THEN | |||||
| FMT(j/_j) | |||||
| ENDIF | |||||
| ELSE | |||||
| // no vowel follows | |||||
| Vowelout len=70 | |||||
| FMT(j/j_) | |||||
| ENDIF | |||||
| endphoneme |
| #define N_PATH_HOME 120 | |||||
| #define N_PATH_HOME 230 | |||||
| extern char path_home[N_PATH_HOME]; // this is the espeak-data directory | extern char path_home[N_PATH_HOME]; // this is the espeak-data directory | ||||
| extern void strncpy0(char *to,const char *from, int size); | extern void strncpy0(char *to,const char *from, int size); |
| #define N_PATH_HOME 120 | |||||
| #define N_PATH_HOME 230 | |||||
| extern char path_home[N_PATH_HOME]; // this is the espeak-data directory | extern char path_home[N_PATH_HOME]; // this is the espeak-data directory | ||||
| extern void strncpy0(char *to,const char *from, int size); | extern void strncpy0(char *to,const char *from, int size); |
| #define N_PATH_HOME 220 | |||||
| #define N_PATH_HOME 230 | |||||
| extern char path_home[N_PATH_HOME]; // this is the espeak-data directory | extern char path_home[N_PATH_HOME]; // this is the espeak-data directory | ||||
| extern void strncpy0(char *to,const char *from, int size); | extern void strncpy0(char *to,const char *from, int size); |
| #define N_PATH_HOME 120 | |||||
| #define N_PATH_HOME 230 | |||||
| extern char path_home[N_PATH_HOME]; // this is the espeak-data directory | extern char path_home[N_PATH_HOME]; // this is the espeak-data directory | ||||
| extern void strncpy0(char *to,const char *from, int size); | extern void strncpy0(char *to,const char *from, int size); |
| #define N_PATH_HOME 220 | |||||
| #define N_PATH_HOME 230 | |||||
| extern char path_home[N_PATH_HOME]; // this is the espeak-data directory | extern char path_home[N_PATH_HOME]; // this is the espeak-data directory | ||||
| extern void strncpy0(char *to,const char *from, int size); | extern void strncpy0(char *to,const char *from, int size); |
| p++; // skip over the zero which terminates the list for this hash value | p++; // skip over the zero which terminates the list for this hash value | ||||
| } | } | ||||
| if((tr->dict_min_size > 0) && (size < tr->dict_min_size)) | |||||
| { | |||||
| fprintf(stderr, "Full dictionary is not installed for '%s'\n", name); | |||||
| } | |||||
| return(0); | return(0); | ||||
| } // end of LoadDictionary | } // end of LoadDictionary | ||||
| #ifdef PLATFORM_WINDOWS | #ifdef PLATFORM_WINDOWS | ||||
| #define N_PATH_HOME 220 | |||||
| #define N_PATH_HOME 230 | |||||
| #else | #else | ||||
| #define N_PATH_HOME 150 | |||||
| #define N_PATH_HOME 160 | |||||
| #endif | #endif | ||||
| extern char path_home[N_PATH_HOME]; // this is the espeak-data directory | extern char path_home[N_PATH_HOME]; // this is the espeak-data directory |
| #include "translate.h" | #include "translate.h" | ||||
| #include "wave.h" | #include "wave.h" | ||||
| const char *version_string = "1.46.42 06.Mar.13"; | |||||
| const char *version_string = "1.46.43 07.Mar.13"; | |||||
| const int version_phdata = 0x014640; | const int version_phdata = 0x014640; | ||||
| int option_device_number = -1; | int option_device_number = -1; |
| tr->charset_a0 = charsets[1]; // ISO-8859-1, this is for when the input is not utf8 | tr->charset_a0 = charsets[1]; // ISO-8859-1, this is for when the input is not utf8 | ||||
| dictionary_name[0] = 0; | dictionary_name[0] = 0; | ||||
| tr->dict_condition=0; | tr->dict_condition=0; | ||||
| tr->dict_min_size = 0; | |||||
| tr->data_dictrules = NULL; // language_1 translation rules file | tr->data_dictrules = NULL; // language_1 translation rules file | ||||
| tr->data_dictlist = NULL; // language_2 dictionary lookup file | tr->data_dictlist = NULL; // language_2 dictionary lookup file | ||||
| int name2 = 0; | int name2 = 0; | ||||
| Translator *tr; | Translator *tr; | ||||
| static const short stress_lengths_equal[8] = {250, 250, 250, 250, 0, 0, 250, 250}; | |||||
| static const short stress_lengths_equal[8] = {230, 230, 230, 230, 0, 0, 230, 230}; | |||||
| static const unsigned char stress_amps_equal[8] = {18,18, 18,18, 18,18, 18,18 }; | static const unsigned char stress_amps_equal[8] = {18,18, 18,18, 18,18, 18,18 }; | ||||
| static const short stress_lengths_fr[8] = {190, 170, 190, 200, 0, 0, 190, 240}; | static const short stress_lengths_fr[8] = {190, 170, 190, 200, 0, 0, 190, 240}; | ||||
| static const unsigned char stress_amps_sk[8] = {17,16, 20,20, 20,22, 22,21 }; | static const unsigned char stress_amps_sk[8] = {17,16, 20,20, 20,22, 22,21 }; | ||||
| static const short stress_lengths_sk[8] = {190,190, 210,210, 0,0, 210,210}; | static const short stress_lengths_sk[8] = {190,190, 210,210, 0,0, 210,210}; | ||||
| static const short stress_lengths_ta[8] = {240, 240, 250, 250, 0, 0, 270, 270}; | |||||
| static const short stress_lengths_ta[8] = {200, 200, 210, 210, 0, 0, 230, 230}; | |||||
| static const unsigned char stress_amps_ta[8] = {18,18, 18,18, 20,20, 22,22 }; | static const unsigned char stress_amps_ta[8] = {18,18, 18,18, 20,20, 22,22 }; | ||||
| // convert name string into a word of up to 4 characters, for the switch() | // convert name string into a word of up to 4 characters, for the switch() |
| unsigned char stress_amps_r[8]; | unsigned char stress_amps_r[8]; | ||||
| short stress_lengths[8]; | short stress_lengths[8]; | ||||
| int dict_condition; // conditional apply some pronunciation rules and dict.lookups | int dict_condition; // conditional apply some pronunciation rules and dict.lookups | ||||
| int dict_min_size; | |||||
| const unsigned short *charset_a0; // unicodes for characters 0xa0 to oxff | const unsigned short *charset_a0; // unicodes for characters 0xa0 to oxff | ||||
| const wchar_t *char_plus_apostrophe; // single chars + apostrophe treated as words | const wchar_t *char_plus_apostrophe; // single chars + apostrophe treated as words | ||||
| const wchar_t *punct_within_word; // allow these punctuation characters within words | const wchar_t *punct_within_word; // allow these punctuation characters within words |
| wxString filename; | wxString filename; | ||||
| char *p; | char *p; | ||||
| char vname[40]; | char vname[40]; | ||||
| char fname[sizeof(path_home)+10]; | |||||
| char fname[sizeof(path_home)+30]; | |||||
| if(variant) | if(variant) | ||||
| { | { |
| int phoneme_tab_ix; // phoneme table number | int phoneme_tab_ix; // phoneme table number | ||||
| int pitch_base; // Hz<<12 | int pitch_base; // Hz<<12 | ||||
| int pitch_range; // standard = 0x1000 | int pitch_range; // standard = 0x1000 | ||||
| int speedf1; | int speedf1; | ||||
| int speedf2; | int speedf2; | ||||
| int speedf3; | int speedf3; |
| V_KLATT, | V_KLATT, | ||||
| V_FAST, | V_FAST, | ||||
| V_SPEED, | V_SPEED, | ||||
| V_DICTMIN, | |||||
| // these need a phoneme table to have been specified | // these need a phoneme table to have been specified | ||||
| V_REPLACE, | V_REPLACE, | ||||
| {"klatt", V_KLATT}, | {"klatt", V_KLATT}, | ||||
| {"fast_test2", V_FAST}, | {"fast_test2", V_FAST}, | ||||
| {"speed", V_SPEED}, | {"speed", V_SPEED}, | ||||
| {"dict_min", V_DICTMIN}, | |||||
| // these just set a value in langopts.param[] | // these just set a value in langopts.param[] | ||||
| {"l_dieresis", 0x100+LOPT_DIERESES}, | {"l_dieresis", 0x100+LOPT_DIERESES}, | ||||
| char phonemes_name[40]; | char phonemes_name[40]; | ||||
| char option_name[40]; | char option_name[40]; | ||||
| const char *language_type; | const char *language_type; | ||||
| char buf[200]; | |||||
| char buf[sizeof(path_home)+30]; | |||||
| char path_voices[sizeof(path_home)+12]; | char path_voices[sizeof(path_home)+12]; | ||||
| int dict_min = 0; | |||||
| int stress_amps[8]; | int stress_amps[8]; | ||||
| int stress_lengths[8]; | int stress_lengths[8]; | ||||
| int stress_add[8]; | int stress_add[8]; | ||||
| SetSpeed(3); | SetSpeed(3); | ||||
| break; | break; | ||||
| case V_DICTMIN: | |||||
| sscanf(p,"%d",&dict_min); | |||||
| break; | |||||
| default: | default: | ||||
| if((key & 0xff00) == 0x100) | if((key & 0xff00) == 0x100) | ||||
| { | { | ||||
| } | } | ||||
| voice->phoneme_tab_ix = ix; | voice->phoneme_tab_ix = ix; | ||||
| new_translator->phoneme_tab_ix = ix; | new_translator->phoneme_tab_ix = ix; | ||||
| new_translator->dict_min_size = dict_min; | |||||
| LoadDictionary(new_translator, new_dictionary, control & 4); | LoadDictionary(new_translator, new_dictionary, control & 4); | ||||
| if(dictionary_name[0]==0) | if(dictionary_name[0]==0) | ||||
| return(NULL); // no dictionary loaded | return(NULL); // no dictionary loaded | ||||
| translator = new_translator; | translator = new_translator; | ||||
| } | } | ||||
| // relative lengths of different stress syllables | // relative lengths of different stress syllables | ||||
| for(ix=0; ix<stress_lengths_set; ix++) | for(ix=0; ix<stress_lengths_set; ix++) | ||||
| { | { |