|
|
|
|
|
|
|
|
ipa NULL // @-* is used to make 'r' |
|
|
ipa NULL // @-* is used to make 'r' |
|
|
ENDIF |
|
|
ENDIF |
|
|
length 40 |
|
|
length 40 |
|
|
|
|
|
// "femten", "manden" - only a short "n" sound |
|
|
|
|
|
IF nextPhW(n) THEN |
|
|
|
|
|
length 20 |
|
|
|
|
|
ENDIF |
|
|
|
|
|
IF prevPhW(isNotVowel) AND thisPh(isWordEnd) THEN |
|
|
|
|
|
length 15 |
|
|
|
|
|
ENDIF |
|
|
|
|
|
// "lige" [li@-] |
|
|
|
|
|
IF prevPhW(i) AND thisPh(isWordEnd) THEN |
|
|
|
|
|
length 15 |
|
|
|
|
|
ENDIF |
|
|
FMT(vowel/@-) |
|
|
FMT(vowel/@-) |
|
|
endphoneme |
|
|
endphoneme |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
phoneme i |
|
|
phoneme i |
|
|
vowel starttype #i endtype #i |
|
|
vowel starttype #i endtype #i |
|
|
length 95 //150 |
|
|
|
|
|
|
|
|
length 140 //225 |
|
|
// PB long vowel followed by consonant and certain vowels "gide" |
|
|
// PB long vowel followed by consonant and certain vowels "gide" |
|
|
IF nextPhW(isNotVowel) AND next2PhW(#@) OR next2PhW(V) THEN |
|
|
IF nextPhW(isNotVowel) AND next2PhW(#@) OR next2PhW(V) THEN |
|
|
length 150 |
|
|
|
|
|
|
|
|
length 225 |
|
|
ENDIF |
|
|
ENDIF |
|
|
// "gider", vrider" |
|
|
// "gider", vrider" |
|
|
IF nextPhW(D) AND next2PhW(V) OR next2PhW(?V) THEN |
|
|
IF nextPhW(D) AND next2PhW(V) OR next2PhW(?V) THEN |
|
|
length 95 |
|
|
|
|
|
|
|
|
length 140 |
|
|
ENDIF |
|
|
ENDIF |
|
|
// PB long vowel followed by certain vowels - "pigen" [p'i@-n] |
|
|
|
|
|
IF nextPhW(#@) OR nextPhW(#e) THEN |
|
|
|
|
|
length 150 |
|
|
|
|
|
|
|
|
// PB long vowel followed by [@-] - "pigen" [p'i@-n] |
|
|
|
|
|
IF nextPhW(@-) OR nextPhW(V) THEN |
|
|
|
|
|
length 225 |
|
|
ENDIF |
|
|
ENDIF |
|
|
// Only this vowel (in this case [i]) |
|
|
// Only this vowel (in this case [i]) |
|
|
IF thisPh(isFinalVowel) AND thisPh(isWordEnd) AND thisPh(isWordStart) OR prevPhW(_) THEN |
|
|
IF thisPh(isFinalVowel) AND thisPh(isWordEnd) AND thisPh(isWordStart) OR prevPhW(_) THEN |
|
|
length 150 |
|
|
|
|
|
|
|
|
length 225 |
|
|
ENDIF |
|
|
ENDIF |
|
|
// This vowel is word end - longer because it sounds too short |
|
|
// This vowel is word end - longer because it sounds too short |
|
|
// "sig", "si" |
|
|
// "sig", "si" |
|
|
|
|
|
|
|
|
ENDIF |
|
|
ENDIF |
|
|
// "vilje" - short followed by 2 consonants |
|
|
// "vilje" - short followed by 2 consonants |
|
|
IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN |
|
|
IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN |
|
|
length 95 |
|
|
|
|
|
|
|
|
length 140 |
|
|
ENDIF |
|
|
ENDIF |
|
|
// PB "tie", "stige", "krige" vowel + vowel: extra length |
|
|
// PB "tie", "stige", "krige" vowel + vowel: extra length |
|
|
// What is causing this very short [i] in words with final [@-]? |
|
|
// 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 |
|
|
|
|
|
|
|
|
// NOT "galleriet" [g,?&lVR'i@-D] |
|
|
|
|
|
IF nextPhW(V) OR nextPhW(@) OR nextPhW(@-) AND NOT next2PhW(D) THEN |
|
|
length 240 |
|
|
length 240 |
|
|
ENDIF |
|
|
ENDIF |
|
|
|
|
|
//"skider" short |
|
|
|
|
|
IF nextPhW(D) AND next2PhW(V) THEN |
|
|
|
|
|
length 140 |
|
|
|
|
|
ENDIF |
|
|
|
|
|
//"skideren" long |
|
|
|
|
|
IF nextPhW(D) AND next2PhW(V) AND next3PhW(V) THEN |
|
|
|
|
|
length 225 |
|
|
|
|
|
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 90 |
|
|
|
|
|
|
|
|
length 100 |
|
|
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 95 //150 |
|
|
|
|
|
|
|
|
length 140 //225 |
|
|
// "delte", "mente" |
|
|
// "delte", "mente" |
|
|
IF nextPhW(@-) OR nextPhW(V) OR next2PhW(@-) OR next2PhW(V) THEN |
|
|
IF nextPhW(@-) OR nextPhW(V) OR next2PhW(@-) OR next2PhW(V) THEN |
|
|
length 150 |
|
|
|
|
|
|
|
|
length 225 |
|
|
ENDIF |
|
|
ENDIF |
|
|
// PB "ring", "ringe" |
|
|
// PB "ring", "ringe" |
|
|
IF nextPhW(N) THEN |
|
|
IF nextPhW(N) THEN |
|
|
length 95 |
|
|
|
|
|
|
|
|
length 140 |
|
|
ENDIF |
|
|
ENDIF |
|
|
// PB "enig", "enige", "evig" |
|
|
// PB "enig", "enige", "evig" |
|
|
IF nextPhW(isNotVowel) AND next2PhW(i) THEN |
|
|
IF nextPhW(isNotVowel) AND next2PhW(i) THEN |
|
|
length 150 |
|
|
|
|
|
|
|
|
length 225 |
|
|
ENDIF |
|
|
ENDIF |
|
|
// Only "e" |
|
|
// Only "e" |
|
|
IF thisPh(isWordEnd) AND thisPh(isWordStart) THEN |
|
|
IF thisPh(isWordEnd) AND thisPh(isWordStart) THEN |
|
|
length 150 |
|
|
|
|
|
|
|
|
length 225 |
|
|
ENDIF |
|
|
ENDIF |
|
|
// "nedladende" [n'eDl&D@-n@-] - before 2 consonants: short |
|
|
// "nedladende" [n'eDl&D@-n@-] - before 2 consonants: short |
|
|
IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN |
|
|
IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN |
|
|
length 95 |
|
|
|
|
|
|
|
|
length 140 |
|
|
|
|
|
ENDIF |
|
|
|
|
|
// "et" |
|
|
|
|
|
IF thisPh(isWordStart) AND nextPhW(isWordEnd) THEN |
|
|
|
|
|
length 120 |
|
|
ENDIF |
|
|
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 90 |
|
|
|
|
|
|
|
|
length 140 |
|
|
FMT(vowel/e) |
|
|
FMT(vowel/e) |
|
|
endphoneme |
|
|
endphoneme |
|
|
|
|
|
|
|
|
phoneme E |
|
|
phoneme E |
|
|
vowel starttype #e endtype #e |
|
|
vowel starttype #e endtype #e |
|
|
length 100 //150 |
|
|
|
|
|
// "værelse", "breve" |
|
|
|
|
|
IF nextVowel(3) OR nextVowel(V) OR nextVowel(@) OR nextVowel(@-) THEN |
|
|
|
|
|
// length 150 |
|
|
|
|
|
|
|
|
length 140 //225 |
|
|
|
|
|
// no link with next vowel |
|
|
|
|
|
IF thisPh(isWordEnd) THEN |
|
|
|
|
|
IfNextVowelAppend(_!) |
|
|
ENDIF |
|
|
ENDIF |
|
|
// "ræve" |
|
|
|
|
|
|
|
|
// "ræve" |
|
|
IF nextVowel(#@) OR nextVowel(#e) THEN |
|
|
IF nextVowel(#@) OR nextVowel(#e) THEN |
|
|
length 160 |
|
|
length 160 |
|
|
ENDIF |
|
|
ENDIF |
|
|
|
|
|
|
|
|
ENDIF |
|
|
ENDIF |
|
|
// "længe" - short - 2 consonants => 1 consonant |
|
|
// "længe" - short - 2 consonants => 1 consonant |
|
|
IF nextPhW(N) THEN |
|
|
IF nextPhW(N) THEN |
|
|
length 120 |
|
|
|
|
|
|
|
|
length 100 |
|
|
ENDIF |
|
|
ENDIF |
|
|
// "værelse" [v'E3-Vls@_!] |
|
|
// "værelse" [v'E3-Vls@_!] |
|
|
IF nextPhW(3-) AND next2PhW(V) THEN |
|
|
IF nextPhW(3-) AND next2PhW(V) THEN |
|
|
length 120 |
|
|
|
|
|
|
|
|
length 100 |
|
|
ENDIF |
|
|
ENDIF |
|
|
// "mælkebøtte" - short followed by 2 consonants |
|
|
// "mælkebøtte" - short followed by 2 consonants |
|
|
IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN |
|
|
IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN |
|
|
length 120 |
|
|
|
|
|
|
|
|
length 140 |
|
|
ENDIF |
|
|
ENDIF |
|
|
FMT(vowel/e_mid2) |
|
|
FMT(vowel/e_mid2) |
|
|
endphoneme |
|
|
endphoneme |
|
|
|
|
|
|
|
|
phoneme ?E |
|
|
phoneme ?E |
|
|
vowel starttype #e endtype #e |
|
|
vowel starttype #e endtype #e |
|
|
ipa ε |
|
|
ipa ε |
|
|
length 100 |
|
|
|
|
|
|
|
|
length 140 |
|
|
FMT(vowel/e_mid2) |
|
|
FMT(vowel/e_mid2) |
|
|
endphoneme |
|
|
endphoneme |
|
|
|
|
|
|
|
|
phoneme & |
|
|
phoneme & |
|
|
vowel starttype #e endtype #e |
|
|
vowel starttype #e endtype #e |
|
|
ipa a |
|
|
ipa a |
|
|
length 90 //150 |
|
|
|
|
|
// "same", "sale", "bade" - consonant + gooup #e or group #@: long |
|
|
|
|
|
IF next2PhW(#@) OR next2PhW(#e) THEN |
|
|
|
|
|
length 150 |
|
|
|
|
|
|
|
|
length 140 //225 |
|
|
|
|
|
// "same", "sale", "bade" - consonant + @-: long |
|
|
|
|
|
// but NOT "hinanden" |
|
|
|
|
|
IF next2PhW(@-) OR next2PhW(@) AND NOT next3PhW(n) THEN |
|
|
|
|
|
length 225 |
|
|
ENDIF |
|
|
ENDIF |
|
|
// ThisPh + gooup #e or group #@ |
|
|
|
|
|
|
|
|
// ThisPh + V or group #@ |
|
|
// "ae", "aer" vowel + vowel: extra length |
|
|
// "ae", "aer" vowel + vowel: extra length |
|
|
IF nextPhW(#@) OR nextPhW(#e) THEN |
|
|
|
|
|
length 220 |
|
|
|
|
|
|
|
|
IF nextPhW(@-) OR nextPhW(V) THEN |
|
|
|
|
|
length 260 |
|
|
ENDIF |
|
|
ENDIF |
|
|
// This vowel is word end - longer because it sounds too short |
|
|
// This vowel is word end - longer because it sounds too short |
|
|
// "ja", "Omaha" |
|
|
// "ja", "Omaha" |
|
|
|
|
|
|
|
|
ENDIF |
|
|
ENDIF |
|
|
// Only this vowel (in this case [&]) |
|
|
// Only this vowel (in this case [&]) |
|
|
IF thisPh(isFinalVowel) AND thisPh(isWordEnd) AND thisPh(isWordStart) OR prevPhW(_) THEN |
|
|
IF thisPh(isFinalVowel) AND thisPh(isWordEnd) AND thisPh(isWordStart) OR prevPhW(_) THEN |
|
|
length 150 |
|
|
|
|
|
|
|
|
length 225 |
|
|
ENDIF |
|
|
ENDIF |
|
|
// "stadig" [st&Di], "stadigt" [st&Dit] |
|
|
// "stadig" [st&Di], "stadigt" [st&Dit] |
|
|
IF nextPhW(isNotVowel) AND next2PhW(i) THEN |
|
|
IF nextPhW(isNotVowel) AND next2PhW(i) THEN |
|
|
|
|
|
|
|
|
ENDIF |
|
|
ENDIF |
|
|
// "Alfie", "alfer" - short before 2 consonants |
|
|
// "Alfie", "alfer" - short before 2 consonants |
|
|
IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN |
|
|
IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN |
|
|
length 90 |
|
|
|
|
|
|
|
|
length 140 |
|
|
ENDIF |
|
|
ENDIF |
|
|
FMT(vowel/ee_2) |
|
|
FMT(vowel/ee_2) |
|
|
endphoneme |
|
|
endphoneme |
|
|
|
|
|
|
|
|
phoneme ?& |
|
|
phoneme ?& |
|
|
ipa a |
|
|
ipa a |
|
|
vowel starttype #e endtype #e |
|
|
vowel starttype #e endtype #e |
|
|
length 90 |
|
|
|
|
|
|
|
|
length 140 |
|
|
FMT(vowel/ee_2) |
|
|
FMT(vowel/ee_2) |
|
|
endphoneme |
|
|
endphoneme |
|
|
|
|
|
|
|
|
// PB added for the æ in "dræbt" |
|
|
// PB added for the æ in "dræbt" |
|
|
phoneme &# |
|
|
phoneme &# |
|
|
vowel starttype #e endtype #e |
|
|
vowel starttype #e endtype #e |
|
|
length 120 |
|
|
|
|
|
IF NOT next2Ph(3) AND NOT next2Ph(V) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN |
|
|
|
|
|
glstop |
|
|
|
|
|
length 90 |
|
|
|
|
|
|
|
|
length 140 //120 |
|
|
|
|
|
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@-) THEN |
|
|
|
|
|
length 120 |
|
|
ENDIF |
|
|
ENDIF |
|
|
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) THEN |
|
|
|
|
|
length 150 |
|
|
|
|
|
|
|
|
// "drenge" |
|
|
|
|
|
IF nextPhW(N) THEN |
|
|
|
|
|
length 140 |
|
|
ENDIF |
|
|
ENDIF |
|
|
FMT(vowel/&) |
|
|
FMT(vowel/&) |
|
|
endphoneme |
|
|
endphoneme |
|
|
|
|
|
|
|
|
// "revl" vs. "tremme" |
|
|
// "revl" vs. "tremme" |
|
|
phoneme ?&# |
|
|
phoneme ?&# |
|
|
vowel starttype #e endtype #e |
|
|
vowel starttype #e endtype #e |
|
|
length 90 |
|
|
|
|
|
|
|
|
length 140 |
|
|
FMT(vowel/&) |
|
|
FMT(vowel/&) |
|
|
endphoneme |
|
|
endphoneme |
|
|
|
|
|
|
|
|
//phoneme a |
|
|
|
|
|
// vowel starttype #a endtype #a |
|
|
|
|
|
// length 90 //150 |
|
|
|
|
|
//IF nextPhW(#@) OR nextPhW(#e) 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) |
|
|
|
|
|
//endphoneme |
|
|
|
|
|
|
|
|
|
|
|
phoneme A // PB changed to a_8 |
|
|
phoneme A // PB changed to a_8 |
|
|
vowel starttype #a endtype #a |
|
|
vowel starttype #a endtype #a |
|
|
length 90 //150 |
|
|
|
|
|
|
|
|
length 140 //225 |
|
|
// PB long vowel followed by consonant and certain vowels - "drabelig" |
|
|
// PB long vowel followed by consonant and certain vowels - "drabelig" |
|
|
IF nextPhW(isNotVowel) AND next2PhW(#@) OR next2PhW(#e) THEN |
|
|
|
|
|
length 150 |
|
|
|
|
|
|
|
|
IF nextPhW(isNotVowel) AND next2PhW(#@) OR next2PhW(V) THEN |
|
|
|
|
|
length 225 |
|
|
ENDIF |
|
|
ENDIF |
|
|
// "far", "bastard" - a bit longer followed by [r] |
|
|
// "far", "bastard" - a bit longer followed by [r] |
|
|
IF nextPhW(r) AND nextPhW(isWordEnd) THEN |
|
|
IF nextPhW(r) AND nextPhW(isWordEnd) THEN |
|
|
|
|
|
|
|
|
ENDIF |
|
|
ENDIF |
|
|
// "bange" [bAN@-] - [N] = 2 consonants (ng) => short |
|
|
// "bange" [bAN@-] - [N] = 2 consonants (ng) => short |
|
|
IF nextPhW(N) THEN |
|
|
IF nextPhW(N) THEN |
|
|
length 90 |
|
|
|
|
|
|
|
|
length 140 |
|
|
ENDIF |
|
|
ENDIF |
|
|
// "fare" [f'A:A] |
|
|
// "fare" [f'A:A] |
|
|
IF nextPhW(A) THEN |
|
|
IF nextPhW(A) THEN |
|
|
length 150 |
|
|
|
|
|
|
|
|
length 225 |
|
|
|
|
|
ENDIF |
|
|
|
|
|
// "av" [Au] - a bit longer |
|
|
|
|
|
IF nextPhW(isWordEnd) THEN |
|
|
|
|
|
length 120 |
|
|
|
|
|
ENDIF |
|
|
|
|
|
// "magnat" [mAun&d] - sounds too short |
|
|
|
|
|
IF nextPhW(u) OR nextPhW(w) THEN |
|
|
|
|
|
length 130 |
|
|
ENDIF |
|
|
ENDIF |
|
|
FMT(vowel/a_8) |
|
|
FMT(vowel/a_8) |
|
|
endphoneme |
|
|
endphoneme |
|
|
|
|
|
|
|
|
// "drab" vs. "drabelig" |
|
|
// "drab" vs. "drabelig" |
|
|
phoneme ?A |
|
|
phoneme ?A |
|
|
vowel starttype #a endtype #a |
|
|
vowel starttype #a endtype #a |
|
|
length 90 |
|
|
|
|
|
|
|
|
length 140 |
|
|
// "straffeattest", "straffe", "rapid" - a bit longer after R |
|
|
// "straffeattest", "straffe", "rapid" - a bit longer after R |
|
|
IF prevPhW(R) AND nextPhW(isNotVowel) AND next2PhW(isVowel) THEN |
|
|
IF prevPhW(R) AND nextPhW(isNotVowel) AND next2PhW(isVowel) THEN |
|
|
length 110 |
|
|
length 110 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
phoneme u |
|
|
phoneme u |
|
|
vowel starttype #u endtype #u |
|
|
vowel starttype #u endtype #u |
|
|
length 90 //150 |
|
|
|
|
|
|
|
|
length 140 //225 |
|
|
|
|
|
// "fugl" [ful] - a bit longer |
|
|
|
|
|
IF nextPhW(isWordEnd) THEN |
|
|
|
|
|
length 120 |
|
|
|
|
|
ENDIF |
|
|
// "suge", "uge", "bluse", "julegave" |
|
|
// "suge", "uge", "bluse", "julegave" |
|
|
IF nextPhW(#e) OR nextPhW(#@) OR next2PhW(#e) OR next2PhW(#@)THEN |
|
|
|
|
|
length 150 |
|
|
|
|
|
|
|
|
IF nextPhW(@-) OR nextPhW(V) OR next2PhW(@-) OR next2PhW(V)THEN |
|
|
|
|
|
length 225 |
|
|
ENDIF |
|
|
ENDIF |
|
|
// "umulig" [u:m'uli] |
|
|
// "umulig" [u:m'uli] |
|
|
IF nextVowel(i) AND nextVowel(isFinalVowel) AND nextVowel(isWordEnd) THEN |
|
|
IF nextVowel(i) AND nextVowel(isFinalVowel) AND nextVowel(isWordEnd) THEN |
|
|
|
|
|
|
|
|
ENDIF |
|
|
ENDIF |
|
|
// Only "u" |
|
|
// Only "u" |
|
|
IF thisPh(isWordEnd) AND thisPh(isWordStart) THEN |
|
|
IF thisPh(isWordEnd) AND thisPh(isWordStart) THEN |
|
|
length 150 |
|
|
|
|
|
ENDIF |
|
|
|
|
|
// "fugl" [ful] - a bit longer |
|
|
|
|
|
IF nextPhW(isWordEnd) THEN |
|
|
|
|
|
length 120 |
|
|
|
|
|
|
|
|
length 225 |
|
|
ENDIF |
|
|
ENDIF |
|
|
FMT(vowel/u_bck) |
|
|
FMT(vowel/u_bck) |
|
|
endphoneme |
|
|
endphoneme |
|
|
|
|
|
|
|
|
// "tude" vs. "tuden" - [tuD3] [t?uD@n] |
|
|
// "tude" vs. "tuden" - [tuD3] [t?uD@n] |
|
|
phoneme ?u |
|
|
phoneme ?u |
|
|
vowel starttype #u endtype #u |
|
|
vowel starttype #u endtype #u |
|
|
length 90 |
|
|
|
|
|
|
|
|
length 140 |
|
|
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 90 //150 |
|
|
|
|
|
|
|
|
length 140 //225 |
|
|
// "bore", "borer" |
|
|
// "bore", "borer" |
|
|
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@-) THEN |
|
|
|
|
|
length 150 |
|
|
|
|
|
|
|
|
IF nextPhW(V) OR nextPhW(#@) THEN |
|
|
|
|
|
length 225 |
|
|
|
|
|
ENDIF |
|
|
|
|
|
// "kone", "koner" |
|
|
|
|
|
IF next2PhW(V) OR next2PhW(#@) THEN |
|
|
|
|
|
length 225 |
|
|
ENDIF |
|
|
ENDIF |
|
|
// "modig" - long vowel after consonant + [i] |
|
|
// "modig" - long vowel after consonant + [i] |
|
|
IF nextPhW(D) AND next2PhW(i) THEN |
|
|
IF nextPhW(D) AND next2PhW(i) THEN |
|
|
length 150 |
|
|
|
|
|
|
|
|
length 225 |
|
|
|
|
|
ENDIF |
|
|
|
|
|
// Only "o" |
|
|
|
|
|
IF thisPh(isWordEnd) AND thisPh(isWordStart) THEN |
|
|
|
|
|
length 120 |
|
|
|
|
|
ENDIF |
|
|
|
|
|
// This vowel is word end - longer because it sounds too short |
|
|
|
|
|
// "ko" |
|
|
|
|
|
IF thisPh(isWordEnd) THEN |
|
|
|
|
|
length 120 |
|
|
ENDIF |
|
|
ENDIF |
|
|
FMT(vowel/o_2) |
|
|
FMT(vowel/o_2) |
|
|
endphoneme |
|
|
endphoneme |
|
|
|
|
|
|
|
|
// "patron" vs. "kone" |
|
|
// "patron" vs. "kone" |
|
|
phoneme ?o |
|
|
phoneme ?o |
|
|
vowel starttype #o endtype #o |
|
|
vowel starttype #o endtype #o |
|
|
length 95 |
|
|
|
|
|
|
|
|
length 140 |
|
|
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 90 // 150 |
|
|
|
|
|
|
|
|
length 140 // 150 |
|
|
// "sove", "sover" - consonant + #e or #@: long |
|
|
// "sove", "sover" - consonant + #e or #@: long |
|
|
IF next2PhW(#@) OR next2PhW(#e) THEN |
|
|
|
|
|
length 150 |
|
|
|
|
|
|
|
|
IF next2PhW(@-) OR next2PhW(V) THEN |
|
|
|
|
|
length 225 |
|
|
ENDIF |
|
|
ENDIF |
|
|
// PB "gået" - ThisPh + #e or #@ |
|
|
|
|
|
IF nextPhW(#e) OR nextPhW(#@) THEN |
|
|
|
|
|
length 150 |
|
|
|
|
|
|
|
|
// PB "gået" - ThisPh + V or @- |
|
|
|
|
|
IF nextPhW(V) OR nextPhW(@-) THEN |
|
|
|
|
|
length 225 |
|
|
ENDIF |
|
|
ENDIF |
|
|
// "rådig" |
|
|
// "rådig" |
|
|
IF nextVowel(i) AND nextVowel(isFinalVowel) THEN |
|
|
IF nextVowel(i) AND nextVowel(isFinalVowel) THEN |
|
|
length 180 |
|
|
length 180 |
|
|
|
|
|
ENDIF |
|
|
|
|
|
// This vowel is word end - longer because it sounds too short |
|
|
|
|
|
// "på", "gå" |
|
|
|
|
|
IF thisPh(isWordEnd) THEN |
|
|
|
|
|
length 120 |
|
|
|
|
|
ENDIF |
|
|
|
|
|
// "såre", "sårede" [s'O:?OD@-] |
|
|
|
|
|
IF nextPhW(O) OR nextPhW(?O) THEN |
|
|
|
|
|
length 225 |
|
|
ENDIF |
|
|
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 90 |
|
|
|
|
|
|
|
|
length 140 |
|
|
|
|
|
// "hoven" |
|
|
|
|
|
IF nextPhW(w) OR nextPhW(?u) AND next2PhW(@-) THEN |
|
|
|
|
|
length 120 |
|
|
|
|
|
ENDIF |
|
|
FMT(vowel/o_5) |
|
|
FMT(vowel/o_5) |
|
|
endphoneme |
|
|
endphoneme |
|
|
|
|
|
|
|
|
phoneme V |
|
|
phoneme V |
|
|
vowel starttype #@ endtype #@ |
|
|
vowel starttype #@ endtype #@ |
|
|
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 |
|
|
|
|
|
// "snorke", "snorker", årlig |
|
|
|
|
|
IF next2PhW(3) OR next2PhW(V) OR next2PhW(@) OR next2PhW(i) THEN |
|
|
|
|
|
|
|
|
length 140 //225 |
|
|
|
|
|
// "forlig" |
|
|
|
|
|
IF nextPhW(isNotVowel) AND next2PhW(i) THEN |
|
|
length 180 |
|
|
length 180 |
|
|
ENDIF |
|
|
ENDIF |
|
|
// "sove" [sVw3] - longer followed by w + 3 |
|
|
|
|
|
IF nextPhW(w) AND next2PhW(3) THEN |
|
|
|
|
|
length 220 |
|
|
|
|
|
ENDIF |
|
|
|
|
|
// PB "konge" |
|
|
|
|
|
|
|
|
// PB "konge" - ng=>n |
|
|
IF nextPhW(N) THEN |
|
|
IF nextPhW(N) THEN |
|
|
length 95 |
|
|
|
|
|
|
|
|
length 100 |
|
|
|
|
|
ENDIF |
|
|
|
|
|
// Only [V] - "og" |
|
|
|
|
|
IF thisPh(isWordEnd) AND thisPh(isWordStart) THEN |
|
|
|
|
|
length 120 |
|
|
|
|
|
ENDIF |
|
|
|
|
|
// This vowel is word end - longer because it sounds too short |
|
|
|
|
|
// "for" [fV] |
|
|
|
|
|
IF thisPh(isWordEnd) THEN |
|
|
|
|
|
length 120 |
|
|
ENDIF |
|
|
ENDIF |
|
|
FMT(vowel/V_4) |
|
|
FMT(vowel/V_4) |
|
|
endphoneme |
|
|
endphoneme |
|
|
|
|
|
|
|
|
// "forstår" vs. "kåre" |
|
|
// "forstår" vs. "kåre" |
|
|
phoneme ?V |
|
|
phoneme ?V |
|
|
vowel starttype #@ endtype #@ |
|
|
vowel starttype #@ endtype #@ |
|
|
length 90 |
|
|
|
|
|
|
|
|
length 140 |
|
|
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 |
|
|
|
|
|
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 |
|
|
|
|
|
|
|
|
length 140 //225 |
|
|
|
|
|
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@-) THEN |
|
|
|
|
|
length 225 |
|
|
ENDIF |
|
|
ENDIF |
|
|
FMT(vowel/oo_2) |
|
|
FMT(vowel/oo_2) |
|
|
endphoneme |
|
|
endphoneme |
|
|
|
|
|
|
|
|
// Short 0 "sukker" |
|
|
// Short 0 "sukker" |
|
|
phoneme ?0 |
|
|
phoneme ?0 |
|
|
vowel starttype #o endtype #o |
|
|
vowel starttype #o endtype #o |
|
|
length 90 |
|
|
|
|
|
|
|
|
length 140 |
|
|
FMT(vowel/oo_2) |
|
|
FMT(vowel/oo_2) |
|
|
endphoneme |
|
|
endphoneme |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vowel starttype #i endtype #i |
|
|
vowel starttype #i endtype #i |
|
|
// Length changed to short since most vowels are short. |
|
|
// Length changed to short since most vowels are short. |
|
|
// It's probably easier only to make rules for long vowels. |
|
|
// It's probably easier only to make rules for long vowels. |
|
|
length 90 //150 |
|
|
|
|
|
|
|
|
length 140 //225 |
|
|
|
|
|
|
|
|
// PB long vowel followed by consonant and certain vowels |
|
|
// PB long vowel followed by consonant and certain vowels |
|
|
// "lyde", "lyder" |
|
|
|
|
|
IF nextPhW(isNotVowel) AND next2PhW(#@) OR next2PhW(#e) THEN |
|
|
|
|
|
length 150 |
|
|
|
|
|
|
|
|
// "gyde", "gyder" |
|
|
|
|
|
IF nextPhW(isNotVowel) AND next2PhW(@-) OR next2PhW(V) THEN |
|
|
|
|
|
length 225 |
|
|
ENDIF |
|
|
ENDIF |
|
|
// Only this vowel (in this case [y]) |
|
|
// Only this vowel (in this case [y]) |
|
|
IF thisPh(isFinalVowel) AND thisPh(isWordEnd) AND thisPh(isWordStart) THEN |
|
|
IF thisPh(isFinalVowel) AND thisPh(isWordEnd) AND thisPh(isWordStart) THEN |
|
|
length 150 |
|
|
|
|
|
|
|
|
length 225 |
|
|
ENDIF |
|
|
ENDIF |
|
|
// "dydig" [dyDi] |
|
|
// "dydig" [dyDi] |
|
|
IF nextPhW(isNotVowel) AND next2PhW(i) THEN |
|
|
IF nextPhW(isNotVowel) AND next2PhW(i) THEN |
|
|
length 150 |
|
|
|
|
|
|
|
|
length 225 |
|
|
ENDIF |
|
|
ENDIF |
|
|
// "syge" [sy3] vowel + vowel: extra length, but NOT "fyret" [fyVD] |
|
|
|
|
|
IF nextPhW(#e) OR nextPhW(#@) AND NOT next2PhW(D) THEN |
|
|
|
|
|
|
|
|
// "syge" [sy@-] vowel + vowel: extra length, but NOT "fyret" [fyVD] |
|
|
|
|
|
IF nextPhW(@-) OR nextPhW(3) AND NOT next2PhW(D) THEN |
|
|
length 200 |
|
|
length 200 |
|
|
ENDIF |
|
|
ENDIF |
|
|
// "tyve" |
|
|
// "tyve" |
|
|
IF nextPhW(?u) AND next2PhW(@-) THEN |
|
|
IF nextPhW(?u) AND next2PhW(@-) THEN |
|
|
length 150 |
|
|
|
|
|
|
|
|
length 225 |
|
|
ENDIF |
|
|
ENDIF |
|
|
FMT(vowel/y) |
|
|
FMT(vowel/y) |
|
|
endphoneme |
|
|
endphoneme |
|
|
|
|
|
|
|
|
// "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 90 |
|
|
|
|
|
|
|
|
length 140 |
|
|
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 225 |
|
|
IF NOT next2Ph(3) AND NOT next2Ph(V) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN |
|
|
IF NOT next2Ph(3) AND NOT next2Ph(V) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN |
|
|
glstop |
|
|
glstop |
|
|
length 90 |
|
|
|
|
|
|
|
|
length 140 |
|
|
ENDIF |
|
|
ENDIF |
|
|
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) THEN |
|
|
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) THEN |
|
|
length 150 |
|
|
|
|
|
|
|
|
length 225 |
|
|
ENDIF |
|
|
ENDIF |
|
|
FMT(vowel/yy) |
|
|
FMT(vowel/yy) |
|
|
endphoneme |
|
|
endphoneme |
|
|
|
|
|
|
|
|
phoneme W |
|
|
phoneme W |
|
|
vowel starttype #@ endtype #@ |
|
|
vowel starttype #@ endtype #@ |
|
|
length 90 //160 |
|
|
|
|
|
|
|
|
length 140 //160 |
|
|
// "kløe" vowel + vowel: extra length |
|
|
// "kløe" vowel + vowel: extra length |
|
|
IF nextPhW(#@) OR nextPhW(#e) THEN |
|
|
IF nextPhW(#@) OR nextPhW(#e) THEN |
|
|
length 220 |
|
|
length 220 |
|
|
|
|
|
|
|
|
ENDIF |
|
|
ENDIF |
|
|
// "røveri" but NOT "surfer" [sWf?V] TEST |
|
|
// "røveri" but NOT "surfer" [sWf?V] TEST |
|
|
IF next2PhW(V) OR next2PhW(?V) AND NOT next2PhW(isFinalVowel) THEN |
|
|
IF next2PhW(V) OR next2PhW(?V) AND NOT next2PhW(isFinalVowel) THEN |
|
|
length 90 |
|
|
|
|
|
|
|
|
length 140 |
|
|
ENDIF |
|
|
ENDIF |
|
|
// PB "nødig", "nødigt", "kølige" |
|
|
// PB "nødig", "nødigt", "kølige" |
|
|
IF nextVowel(i) THEN |
|
|
IF nextVowel(i) THEN |
|
|
|
|
|
|
|
|
ENDIF |
|
|
ENDIF |
|
|
// "børnebog" |
|
|
// "børnebog" |
|
|
IF nextPhW(r) AND next2PhW(n) AND nextVowel(@-) THEN |
|
|
IF nextPhW(r) AND next2PhW(n) AND nextVowel(@-) THEN |
|
|
length 150 |
|
|
|
|
|
|
|
|
length 225 |
|
|
|
|
|
ENDIF |
|
|
|
|
|
// This vowel is word end - longer because it sounds too short |
|
|
|
|
|
// "dø" [dW] |
|
|
|
|
|
IF thisPh(isWordEnd) THEN |
|
|
|
|
|
length 120 |
|
|
|
|
|
ENDIF |
|
|
|
|
|
// PB "synge" |
|
|
|
|
|
IF nextPhW(N) THEN |
|
|
|
|
|
length 140 |
|
|
ENDIF |
|
|
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 95 |
|
|
|
|
|
|
|
|
length 140 |
|
|
FMT(vowel/oe) |
|
|
FMT(vowel/oe) |
|
|
endphoneme |
|
|
endphoneme |
|
|
|
|
|
|
|
|
// Added for the ø in "røv", "røg", "øje" instead of [V3] |
|
|
// Added for the ø in "røv", "røg", "øje" instead of [V3] |
|
|
phoneme W# |
|
|
phoneme W# |
|
|
vowel starttype #@ endtype #@ |
|
|
vowel starttype #@ endtype #@ |
|
|
length 90 //150 |
|
|
|
|
|
IF NOT next2Ph(3) AND NOT next2Ph(V) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN |
|
|
|
|
|
glstop |
|
|
|
|
|
// length 90 |
|
|
|
|
|
ENDIF |
|
|
|
|
|
|
|
|
length 140 //225 |
|
|
// PB long vowel followed by consonant and certain vowels |
|
|
// PB long vowel followed by consonant and certain vowels |
|
|
IF nextPhW(isNotVowel) AND next2PhW(@-) OR next2PhW(@) OR next2PhW(3) OR next2PhW(V) OR next2PhW(?V) THEN |
|
|
IF nextPhW(isNotVowel) AND next2PhW(@-) OR next2PhW(@) OR next2PhW(3) OR next2PhW(V) OR next2PhW(?V) THEN |
|
|
length 150 |
|
|
|
|
|
|
|
|
length 225 |
|
|
ENDIF |
|
|
ENDIF |
|
|
FMT(vowel/V) |
|
|
FMT(vowel/V) |
|
|
endphoneme |
|
|
endphoneme |
|
|
|
|
|
|
|
|
// "rømme" |
|
|
// "rømme" |
|
|
phoneme ?W# |
|
|
phoneme ?W# |
|
|
vowel starttype #@ endtype #@ |
|
|
vowel starttype #@ endtype #@ |
|
|
length 90 |
|
|
|
|
|
|
|
|
length 140 |
|
|
FMT(vowel/V) |
|
|
FMT(vowel/V) |
|
|
endphoneme |
|
|
endphoneme |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
length 300 |
|
|
length 300 |
|
|
IF NOT next2Ph(3) AND NOT next2Ph(V) AND NOT next2Ph(@-) AND nextPhW(isNotVowel) THEN |
|
|
IF NOT next2Ph(3) AND NOT next2Ph(V) AND NOT next2Ph(@-) AND nextPhW(isNotVowel) THEN |
|
|
glstop |
|
|
glstop |
|
|
length 150 |
|
|
|
|
|
|
|
|
length 225 |
|
|
ENDIF |
|
|
ENDIF |
|
|
// "dreje" [dR'aI@-_!] |
|
|
// "dreje" [dR'aI@-_!] |
|
|
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) OR nextPhW(@-) THEN |
|
|
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) OR nextPhW(@-) THEN |
|
|
|
|
|
|
|
|
phoneme l |
|
|
phoneme l |
|
|
liquid |
|
|
liquid |
|
|
lengthmod 7 |
|
|
lengthmod 7 |
|
|
|
|
|
// [ll] => [-l] - avoid double l |
|
|
|
|
|
IF nextPhW(l) THEN |
|
|
|
|
|
// ChangePhoneme(-) |
|
|
|
|
|
ENDIF |
|
|
ChangePhoneme(l/3) |
|
|
ChangePhoneme(l/3) |
|
|
// CALL base/l |
|
|
// CALL base/l |
|
|
endphoneme |
|
|
endphoneme |
|
|
|
|
|
|
|
|
liquid |
|
|
liquid |
|
|
lengthmod 7 |
|
|
lengthmod 7 |
|
|
|
|
|
|
|
|
IF nextPh(isVowel) THEN |
|
|
|
|
|
|
|
|
IF nextPhW(isVowel) THEN |
|
|
// ChangePhoneme(l) |
|
|
// ChangePhoneme(l) |
|
|
ENDIF |
|
|
ENDIF |
|
|
|
|
|
|
|
|
PrevVowelEndings |
|
|
PrevVowelEndings |
|
|
VowelEnding(l/l_@) |
|
|
VowelEnding(l/l_@) |
|
|
VowelEnding(l/l_a,-70) // kvalt, kapital |
|
|
|
|
|
VowelEnding(l/l_e, -40) |
|
|
|
|
|
VowelEnding(l/l_i, -70) |
|
|
|
|
|
VowelEnding(l/l_o,-70) // stole, skole, pistol |
|
|
|
|
|
|
|
|
VowelEnding(l/l_a) |
|
|
|
|
|
VowelEnding(l/l_e, -50) // hjælpe |
|
|
|
|
|
VowelEnding(l/l_i, -70) // flygte? |
|
|
|
|
|
VowelEnding(l/l_o,-35) // stole, skole, pistol |
|
|
VowelEnding(l/l_u, -70) |
|
|
VowelEnding(l/l_u, -70) |
|
|
EndSwitch |
|
|
EndSwitch |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
phoneme j |
|
|
phoneme j |
|
|
liquid palatal |
|
|
liquid palatal |
|
|
lengthmod 7 |
|
|
lengthmod 7 |
|
|
|
|
|
|
|
|
|
|
|
// no link with next vowel |
|
|
|
|
|
IF thisPh(isWordEnd) THEN |
|
|
|
|
|
IfNextVowelAppend(_!) |
|
|
|
|
|
ENDIF |
|
|
IF nextPhW(isVowel) THEN |
|
|
IF nextPhW(isVowel) THEN |
|
|
NextVowelStarts |
|
|
NextVowelStarts |
|
|
VowelStart(j/j@) |
|
|
VowelStart(j/j@) |
|
|
|
|
|
|
|
|
Vowelout len=70 |
|
|
Vowelout len=70 |
|
|
FMT(j/j_) |
|
|
FMT(j/j_) |
|
|
ENDIF |
|
|
ENDIF |
|
|
endphoneme |
|
|
|
|
|
|
|
|
endphoneme |