123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693 |
-
- phoneme @
- vowel starttype #@ endtype #@
- unstressed
- length 60
- FMT(vowel/@_3)
- 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]
- phoneme 3
- vowel starttype #a endtype #a
- unstressed
- length 40
- FMT(vowel/a#_3)
- 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
- vowel starttype #i endtype #i
- length 150
- // 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)
- endphoneme
-
- // PB Experimental glottal i
- // sviret vs. svirret
- phoneme ?i
- vowel starttype #i endtype #i
- length 90
- IfNextVowelAppend(;)
- FMT(vowel/i_4)
- endphoneme
-
- // PB English i - Tim
- phoneme I
- vowel starttype #i endtype #i
- length 130
- IfNextVowelAppend(;)
- FMT(vowel/ii_2)
- endphoneme
-
- phoneme e
- vowel starttype #e endtype #e
- 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)
- endphoneme
-
- // PB glottal e
- // "skille" vs. "skele", "pille" vs. "pile"
- phoneme ?e
- vowel starttype #e endtype #e
- length 90
- FMT(vowel/e)
- endphoneme
-
- phoneme E
- vowel starttype #e endtype #e
- 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)
- endphoneme
-
- // PB Experimental glottal E
- // "læsse" vs. "læse"
- phoneme ?E
- vowel starttype #e endtype #e
- 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)
- endphoneme
-
- phoneme &
- vowel starttype #e endtype #e
- 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)
- endphoneme
-
- // PB Experimental glottal a
- // e.g. the last a in "staldkarl"
- // "sale" vs. "sal"
- phoneme ?&
- vowel starttype #e endtype #e
- length 90
- FMT(vowel/ee_2)
- endphoneme
-
- // PB added for the æ in "dræbt"
- phoneme &#
- 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
- ENDIF
- IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) THEN
- length 150
- ENDIF
- FMT(vowel/&)
- endphoneme
-
- // PB short &#
- // "revl" vs. "tremme"
- phoneme ?&#
- vowel starttype #e endtype #e
- length 90
- FMT(vowel/&)
- endphoneme
-
- phoneme a
- vowel starttype #a endtype #a
- 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)
- endphoneme
-
- phoneme A
- vowel starttype #a endtype #a
- 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)
- endphoneme
-
- phoneme u
- vowel starttype #u endtype #u
- 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)
- endphoneme
-
- // PB glottal u
- // "tude" vs. "tuden" - [tuD3] [t?uD@n]
- phoneme ?u
- vowel starttype #u endtype #u
- length 90
- FMT(vowel/u_bck)
- endphoneme
-
- phoneme o
- vowel starttype #o endtype #o
- 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)
- endphoneme
-
- phoneme O
- vowel starttype #o endtype #o
- 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)
- endphoneme
-
- // PB Experimental glottal O
- // "toget" vs. "tåget"
- phoneme ?O
- vowel starttype #o endtype #o
- length 90
- FMT(vowel/o_5)
- endphoneme
-
- phoneme V
- 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
- // 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)
- endphoneme
-
- phoneme 0
- 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
- ENDIF
- FMT(vowel/oo_2)
- endphoneme
-
- // ?B short 0 "sukker"
- phoneme ?0
- vowel starttype #o endtype #o
- length 90
- FMT(vowel/oo_2)
- endphoneme
-
- phoneme y
- vowel starttype #i endtype #i
- // experiment: changed to short from 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)
- endphoneme
-
- // PB Short y
- // "kylling" vs. "kyle", "krybbe" vs. "krybe"
- phoneme ?y
- vowel starttype #i endtype #i
- length 70
- FMT(vowel/y)
- endphoneme
-
- phoneme Y
- vowel starttype #i endtype #i
- 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)
- endphoneme
-
- phoneme W
- vowel starttype #@ endtype #@
- 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)
- endphoneme
-
- // PB glottal W
- // "prøv" vs. "prøve"
- phoneme ?W
- vowel starttype #@ endtype #@
- length 95
- FMT(vowel/oe)
- endphoneme
-
- // PB added for the ø in "røv", "røg", "øje" instead of [V3]
- phoneme W#
- vowel starttype #@ endtype #@
- 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)
- endphoneme
-
- // PB short W#
- // "rømme"
- phoneme ?W#
- vowel starttype #@ endtype #@
- length 90
- FMT(vowel/V)
- endphoneme
-
- phoneme aI
- vowel starttype #a endtype #i
- 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)
- endphoneme
-
-
- // CONSONANTS
-
- // PB added l/3
- phoneme l
- liquid
- lengthmod 7
- ChangePhoneme(l/3)
- CALL base/l
- endphoneme
-
- phoneme v // approximant, not fricative
- import_phoneme base/v#
- voicingswitch f
- endphoneme
-
- // PB Actually a kind of schwa = [ɐ]? - "byder" [bˈyðɐʌ]
- phoneme r // used for 'r' after a vowel (to create a diphthong)
- liquid
- lengthmod 7
- ipa ɐ̯
- IF nextPhW(isVowel) AND NOT nextPhW(?V) AND NOT nextPhW(V) THEN
- ChangePhoneme(R)
- ENDIF
- FMT(r/a_)
- endphoneme
-
- phoneme R
- lengthmod 6
- liquid
- ipa ʁ
- FMT(r/aa)
- endphoneme
-
- // don't weaken consonants at end of word or before a stop
-
- phoneme s
- vls alv frc sibilant
- voicingswitch z
- lengthmod 3
- Vowelin f1=0 f2=1700 -300 300 f3=-100 80
- Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
-
- IF nextPh(p) OR nextPh(t) OR nextPh(k) THEN
- WAV(ufric/s!)
- ENDIF
- WAV(ufric/s)
- endphoneme
-
- phoneme p
- vls blb stop
- voicingswitch b
- lengthmod 7
- Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 amp=11
- Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=22
-
- IF nextPh(isPause2) THEN
- WAV(ustop/p_unasp)
- ELIF nextPh(r) THEN
- WAV(ustop/pr, 70)
- ELIF nextPh(R) OR nextPh(R2) THEN
- WAV(ustop/pr)
- ELIF nextPh(@-) THEN
- WAV(ustop/p_unasp)
- ELIF nextPh(l) THEN
- WAV(ustop/pl)
- ENDIF
- WAV(ustop/p)
- endphoneme
-
- phoneme t
- vls alv stop
- voicingswitch d
- lengthmod 7
- Vowelin f1=0 f2=1700 -300 300 f3=-100 80
- Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
-
- IF nextPh(r) OR nextPh(R) OR nextPh(R2) THEN
- WAV(ustop/tr)
- ENDIF
- WAV(ustop/t, 90)
- endphoneme
-
- phoneme j
- liquid palatal
- lengthmod 7
-
- IF nextPhW(isVowel) THEN
- NextVowelStarts
- VowelStart(j/j@)
- VowelStart(j/ja)
- VowelStart(j/je,-40)
- 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
|