Merge branch 'master' into android

This commit is contained in:
Reece H. Dunn
2013-03-14 17:08:01 +00:00
186 changed files with 16197 additions and 10825 deletions
Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+37
View File
@@ -0,0 +1,37 @@
//====================================================
// Bengali, inherits from Hindi
//====================================================
phoneme @
vowel flag1 starttype #@ endtype #@
length 65
ChangeIfDiminished(@-)
IF nextPh(H) THEN
FMT(vowel/@_low)
ENDIF
FMT(vowel/@_bck)
endphoneme
phoneme V
vowel flag1 starttype #@ endtype #@
length 180
CALL hi/V
endphoneme
phoneme a:
vowel long starttype #a endtype #a
length 230
FMT(vowel/aa_9)
endphoneme
phoneme o:
vowel long starttype #o endtype #o
length 220
FMT(vowel/o_2)
endphoneme
+17
View File
@@ -120,6 +120,23 @@ phoneme kh
WAV(ustop/k_asp, 90)
endphoneme
phoneme k#
vls vel stop
lengthmod 2
voicingswitch g
Vowelin f1=1 f2=1400 -100 100 f3=-150 80
Vowelout f1=0 f2=2300 300 400 f3=-150 80 rms=20
IF nextPh(isPause2) THEN
WAV(ustop/k_asp, 40)
ENDIF
IF nextPhW(#e) OR nextPhW(#i) THEN
WAV(ustop/k_asp_e, 40)
ELIF nextPhW(#o) OR nextPhW(#u) THEN
WAV(ustop/k_asp_a, 25)
ELSE
WAV(ustop/k_asp_a, 30)
ENDIF
endphoneme
phoneme s2 // second part of a long [s:]
vls alv frc sibilant
+475 -46
View File
@@ -1,31 +1,90 @@
// PB General rules for vowels:
// Short vowels
// ACC: Short "pille" [p?el@-]
// AC[V]: Short "piler" [p?ilV]
// A[N]: Short "bange" [b?AN@-]
// Long vowels
// A + group #@ OR group #e: Long "ae" "aer" [&:@-]
// AC + group #@ OR group #e: Long "pile" [pi:l@-]
// AC[i]: Long "smidig" [smi:Di]
phoneme @
vowel starttype #@ endtype #@
unstressed
length 110
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 110
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(;)
length 90 //150
// PB long vowel followed by consonant and certain vowels "gide"
IF nextPhW(isNotVowel) AND next2PhW(#@) OR next2PhW(#e) THEN
length 150
ENDIF
// "gider" TEST
IF nextPhW(D) AND next2PhW(V) OR next2PhW(?V) THEN
length 90
ENDIF
// PB long vowel followed by certain vowels - "pigen" [p'i@-n]
IF nextPhW(#@) OR nextPhW(#e) THEN
length 150
ENDIF
// Only this vowel (in this case [i])
IF thisPh(isFinalVowel) AND thisPh(isWordEnd) AND thisPh(isWordStart) OR prevPhW(_) THEN
length 150
ENDIF
// This vowel is word end - longer because it sounds too short
// "sig", "si"
IF thisPh(isWordEnd) THEN
length 120
ENDIF
// "vilje" - short followed by 2 consonants
IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN
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
FMT(vowel/i_4)
endphoneme
// PB Experimental glottal i
// PB short i
// sviret vs. svirret
phoneme ?i
vowel starttype #i endtype #i
length 95
length 90
IfNextVowelAppend(;)
FMT(vowel/i_4)
endphoneme
@@ -40,43 +99,129 @@ endphoneme
phoneme e
vowel starttype #e endtype #e
length 150
length 90 //150
// "delte", "mente"
IF nextPhW(#e) OR nextPhW(#@) OR next2PhW(#e) OR next2PhW(#@) THEN
length 150
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
// Only "e"
IF thisPh(isWordEnd) AND thisPh(isWordStart) THEN
length 150
ENDIF
// "nedladende" [n'eDl&D@-n@-] - before 2 consonants: short
IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN
length 90
ENDIF
FMT(vowel/e)
endphoneme
// PB glottal e
// PB short e
// "skille" vs. "skele", "pille" vs. "pile"
phoneme ?e
vowel starttype #e endtype #e
length 95
length 90
FMT(vowel/e)
endphoneme
phoneme E
vowel starttype #e endtype #e
length 150
length 90 //150
// "værelse", "breve"
IF nextVowel(3) OR nextVowel(V) OR nextVowel(@) OR nextVowel(@-) THEN
// length 150
ENDIF
// "ræve"
IF nextVowel(#@) OR nextVowel(#e) THEN
length 150
ENDIF
// "ære", "kærester", "ærefrygt" - longer E
IF nextPhW(V) THEN
length 180
ENDIF
// Only the letter "æ" - long
IF thisPh(isWordEnd) AND thisPh(isWordStart) THEN
length 150
ENDIF
// "stædig" [st'EDi] long
IF nextPhW(isNotVowel) AND next2PhW(i) THEN
length 150
ENDIF
// "længe" - short - 2 consonants => 1 consonant
IF nextPhW(N) THEN
length 90
ENDIF
// "værelse" [v'E3-Vls@_!]
IF nextPhW(3-) AND next2PhW(V) THEN
length 90
ENDIF
// "mælkebøtte" - short followed by 2 consonants
IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN
length 90
ENDIF
FMT(vowel/e_mid2)
endphoneme
// PB Experimental glottal E
// PB short E
// "læsse" vs. "læse"
phoneme ?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)
endphoneme
phoneme &
vowel starttype #e endtype #e
length 150
ipa a
length 90 //150
// "same", "sale", "bade" - consonant + gooup #e or group #@: long
IF next2PhW(#@) OR next2PhW(#e) THEN
length 150
ENDIF
// ThisPh + gooup #e or group #@
// "ae", "aer" vowel + vowel: extra length
IF nextPhW(#@) OR nextPhW(#e) THEN
length 240
ENDIF
// This vowel is word end - longer because it sounds too short
// "ja", "Omaha"
IF thisPh(isWordEnd) THEN
length 120
ENDIF
// Only this vowel (in this case [&])
IF thisPh(isFinalVowel) AND thisPh(isWordEnd) AND thisPh(isWordStart) OR prevPhW(_) THEN
length 150
ENDIF
// "stadig" [st&Di], "stadigt" [st&Dit]
IF nextPhW(isNotVowel) AND next2PhW(i) THEN
length 180
ENDIF
// "Alfie", "alfer" - short before 2 consonants
IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN
length 90
ENDIF
FMT(vowel/ee_2)
endphoneme
// PB Experimental glottal a
// PB Short &
// e.g. the last a in "staldkarl"
// "sale" vs. "sal"
phoneme ?&
ipa a
vowel starttype #e endtype #e
length 95
length 90
FMT(vowel/ee_2)
endphoneme
@@ -84,44 +229,151 @@ endphoneme
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
phoneme a
vowel starttype #a endtype #a
length 150
FMT(vowel/a_2)
// 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
// 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
vowel starttype #a endtype #a
length 150
FMT(vowel/a_3)
length 90 //150
// PB long vowel followed by consonant and certain vowels - "drabelig"
IF nextPhW(isNotVowel) AND next2PhW(#@) OR next2PhW(#e) THEN
length 150
ENDIF
// "far", "bastard" - a bit longer followed by [r]
IF nextPhW(r) AND nextPhW(isWordEnd) THEN
length 120
ENDIF
// "bange" [bAN@-] - [N] = 2 consonants (ng) => short
IF nextPhW(N) THEN
length 90
ENDIF
FMT(vowel/a_8)
endphoneme
// PB short A
// "drab" vs. "drabelig"
phoneme ?A
vowel starttype #a endtype #a
length 90
// "straffeattest", "straffe", "rapid" - a bit longer after R
IF prevPhW(R) AND nextPhW(isNotVowel) AND next2PhW(isVowel) THEN
length 110
ENDIF
FMT(vowel/a_8)
endphoneme
phoneme u
vowel starttype #u endtype #u
length 150
length 90 //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
// "suge", "uge", bluse
IF nextPhW(#e) OR nextPhW(#@) OR next2PhW(#e) OR next2PhW(#@)THEN
length 150
ENDIF
// extra length followed by 3 or V or @
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) OR nextPhW(@-) THEN
// length 240
ENDIF
// "umulig"
IF nextVowel(i) AND nextVowel(isFinalVowel) AND nextVowel(isWordEnd) THEN
length 180
ENDIF
// Only "u"
IF thisPh(isWordEnd) AND thisPh(isWordStart) THEN
length 150
ENDIF
FMT(vowel/u_bck)
endphoneme
// PB glottal u
// "gud" vs. "guden" - [guD] [g?D@n]
// "tude" vs. "tuden" - [tuD3] [t?uD@n]
phoneme ?u
vowel starttype #u endtype #u
length 95
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
length 90 // 150
// PB "sove", "sover" - consonant + #e or #@: long
IF next2PhW(#@) OR next2PhW(#e) THEN
length 150
ENDIF
// PB "gået" - ThisPh + #e or #@
IF nextPhW(#e) OR nextPhW(#@) THEN
length 150
ENDIF
// "rådig"
IF nextVowel(i) AND nextVowel(isFinalVowel) THEN
length 180
ENDIF
FMT(vowel/o_5)
endphoneme
@@ -129,67 +381,195 @@ endphoneme
// "toget" vs. "tåget"
phoneme ?O
vowel starttype #o endtype #o
length 95
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 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
length 150
// Length changed to short since most vowels are short.
// It's probably easier only to make rules for long vowels.
length 90 //150
// PB long vowel followed by consonant and certain vowels
// "lyde", "lyder"
IF nextPhW(isNotVowel) AND next2PhW(#@) OR next2PhW(#e) THEN
length 150
ENDIF
// Only this vowel (in this case [y])
IF thisPh(isFinalVowel) AND thisPh(isWordEnd) AND thisPh(isWordStart) THEN
length 150
ENDIF
// "dydig" [dyDi]
IF nextPhW(isNotVowel) AND next2PhW(i) THEN
length 150
ENDIF
// "syge" [sy3] vowel + vowel: extra length, but NOT "fyret" [fyVD]
IF nextPhW(#e) OR nextPhW(#@) AND NOT next2PhW(D) THEN
length 200
ENDIF
// "tyve"
IF nextPhW(?u) AND next2PhW(@-) THEN
length 150
ENDIF
FMT(vowel/y)
endphoneme
// PB glottal y
// PB Short y
// "kylling" vs. "kyle", "krybbe" vs. "krybe"
phoneme ?y
vowel starttype #i endtype #i
length 95
length 90
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 150
length 99 //160
// "kløe" vowel + vowel: extra length
IF nextPhW(#@) OR nextPhW(#e) THEN
length 220
ENDIF
// røde" W + 1 consonant + 3 or W or @
IF next2PhW(#@) OR next2PhW(#e) THEN
length 160
ENDIF
// "røveri" TEST
IF next2PhW(V) OR next2PhW(?V) THEN
length 90
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
// PB short W
// "prøv" vs. "prøve"
phoneme ?W
vowel starttype #@ endtype #@
length 80
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
length 90 //150
IF NOT next2Ph(3) AND NOT next2Ph(V) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN
glstop
// length 90
ENDIF
// 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
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 250
length 300
IF NOT next2Ph(3) AND NOT next2Ph(V) AND NOT next2Ph(@-) AND nextPhW(isNotVowel) THEN
glstop
length 150
ENDIF
// "dreje" [dR'aI@-_!]
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) OR nextPhW(@-) THEN
length 280
ENDIF
// PB "drej" vs. "dreje"
IF thisPh(isWordEnd) THEN
length 140
ENDIF
// "lejde" [l'aId@-_!], "lejder" [l'aIdV_!]
IF nextPhW(isNotVowel) AND next2PhW(@-) OR next2PhW(V) THEN
length 190
ENDIF
FMT(vdiph/ai)
endphoneme
@@ -201,7 +581,31 @@ phoneme l
liquid
lengthmod 7
ChangePhoneme(l/3)
CALL base/l
// CALL base/l
endphoneme
phoneme l/3 // Replacement for [l/]
liquid
lengthmod 7
IF nextPh(isVowel) THEN
// ChangePhoneme(l)
ENDIF
PrevVowelEndings
VowelEnding(l/l_@)
VowelEnding(l/l_a)
VowelEnding(l/l_e, -40)
VowelEnding(l/l_i, -70)
VowelEnding(l/l_o)
VowelEnding(l/l_u, -70)
EndSwitch
// IF nextPh(isLiquid) THEN
// FMT(l/_l)
// ENDIF
FMT(l/l_)
endphoneme
phoneme v // approximant, not fricative
@@ -209,25 +613,24 @@ phoneme v // approximant, not fricative
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
IF nextPhW(isVowel) THEN
ipa ɐ̯
IF nextPhW(isVowel) AND NOT nextPhW(?V) AND NOT nextPhW(V) AND NOT nextPhW(@-) THEN
ChangePhoneme(R)
ENDIF
FMT(r/a_)
endphoneme
phoneme R
lengthmod 7
lengthmod 6
liquid
ipa ʁ
FMT(r/aa)
endphoneme
// don't weaken consonants at end of word or before a stop
phoneme s
@@ -243,11 +646,10 @@ phoneme s
WAV(ufric/s)
endphoneme
phoneme p
vls blb stop
voicingswitch b
lengthmod 2
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
@@ -265,18 +667,45 @@ phoneme p
WAV(ustop/p)
endphoneme
phoneme t
vls alv stop
voicingswitch d
lengthmod 2
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
// "respekt" [REsp'Egd]
IF thisPh(isWordEnd) THEN
// ChangePhoneme(d)
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,-35)
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
+1 -1
View File
@@ -162,7 +162,7 @@ endphoneme
phoneme @L
vowel starttype #@ endtype l
ipa əl
ipa ə|l
unstressed
length 160
CALL vowelstart_l
+1 -2
View File
@@ -58,8 +58,7 @@ endphoneme
phoneme i // optional variant of [I] for end of words
vowel starttype #i endtype #i
length 150
IfNextVowelAppend(;)
FMT(vowel/e_3)
FMT(vowel/e_2)
endphoneme
+16 -6
View File
@@ -168,7 +168,9 @@ phoneme A@ // Used for [A:] when followed by 'r', becomes [A:]+[r] in Ameri
vowel starttype #a endtype #@
length 250
ipa aː
AppendPhoneme(r)
IF NOT nextPhW(r) THEN
AppendPhoneme(r)
ENDIF
FMT(vowelr/aa_r)
endphoneme
@@ -211,7 +213,9 @@ phoneme O@
vowel starttype #o endtype #@
length 230
ipa ɔ
AppendPhoneme(r)
IF NOT nextPhW(r) THEN
AppendPhoneme(r)
ENDIF
FMT(vowelr/oo_r)
endphoneme
@@ -219,7 +223,9 @@ phoneme o@
vowel starttype #o endtype #@
length 230
ipa o
AppendPhoneme(r)
IF NOT nextPhW(r) THEN
AppendPhoneme(r)
ENDIF
FMT(vowelr/oo_r)
endphoneme
@@ -305,7 +311,9 @@ phoneme e@
vowel starttype #e endtype #@
length 220
ipa e
AppendPhoneme(r)
IF NOT nextPhW(r) THEN
AppendPhoneme(r)
ENDIF
FMT(vdiph2/e@)
endphoneme
@@ -314,7 +322,9 @@ phoneme i@3
vowel starttype #i endtype #@
ipa ɪ
length 240
AppendPhoneme(r)
IF NOT nextPhW(r) THEN
AppendPhoneme(r)
ENDIF
FMT(vowelr/i_r)
endphoneme
@@ -380,11 +390,11 @@ phoneme r
liquid rhotic
lengthmod 7
trill
IF nextPh(isNotVowel) THEN
ChangePhoneme(r/)
ENDIF
CALL base/r
ipa r
endphoneme
+7 -6
View File
@@ -97,6 +97,7 @@ phoneme I#
vowel starttype #i endtype #i
unstressed
length 160
ipa ᵻ
// FMT(vowel/@_fnt)
FMT(vowel/ii#)
endphoneme
@@ -151,7 +152,7 @@ endphoneme
phoneme A@ // Used for [A:] when followed by 'r', becomes [A:]+[r] in American
vowel starttype #a endtype #a
ipa ɑːɹ
ipa ɑː|ɹ
IF nextPh(r-) THEN
ipa ɑː
ENDIF
@@ -192,7 +193,7 @@ endphoneme
phoneme O@
vowel starttype #o endtype #@
length 250
ipa ɔːɹ
ipa ɔː|ɹ
IF nextPhW(r) THEN
ipa ɔː
ENDIF
@@ -204,7 +205,7 @@ endphoneme
phoneme o@
vowel starttype #o endtype #@
length 250
ipa oːɹ
ipa oː|ɹ
IF nextPhW(r) THEN
ipa oː
ENDIF
@@ -269,7 +270,7 @@ endphoneme
phoneme e@
vowel starttype #e endtype #@
length 280
ipa ɛɹ
ipa ɛ|ɹ
IF nextPhW(r) THEN
ipa ɛ
ENDIF
@@ -288,7 +289,7 @@ endphoneme
phoneme i@3
vowel starttype #i endtype #@
length 280
ipa ɪɹ
ipa ɪ|ɹ
IF nextPhW(r) THEN
ipa ɪ
ENDIF
@@ -300,7 +301,7 @@ endphoneme
phoneme U@
vowel starttype #@ endtype #@
length 250
ipa ʊɹ
ipa ʊ|ɹ
IF nextPhW(r-) THEN
ipa ʊ
ENDIF
+27 -18
View File
@@ -28,7 +28,10 @@ endphoneme
phoneme a
vowel starttype #a endtype #a
length 180
FMT(vowel/a#_2)
IF thisPh(isUnstressed) THEN
FMT(vowel/a#_2)
ENDIF
FMT(vowel/a_3)
endphoneme
@@ -69,12 +72,15 @@ phoneme k#
Vowelin f1=1 f2=1400 -100 100 f3=-150 80
Vowelout f1=0 f2=2300 300 400 f3=-150 80 rms=20
IF nextPh(isPause2) THEN
WAV(ustop/k_asp2, 40)
WAV(ustop/k_asp, 40)
ENDIF
IF nextPh(l) THEN
WAV(ustop/kl)
IF nextPhW(#e) OR nextPhW(#i) THEN
WAV(ustop/k_asp_e, 40)
ELIF nextPhW(#o) OR nextPhW(#u) THEN
WAV(ustop/k_asp_u, 30)
ELSE
WAV(ustop/k_asp_a, 35)
ENDIF
WAV(ustop/k_asp2, 60)
endphoneme
@@ -113,24 +119,27 @@ phoneme k
import_phoneme consonants/k-
endphoneme
phoneme q
vls uvl stop
lengthmod 2
Vowelin f1=1 f2=1700 0 200 f3=-300 80 gpaus f4 rms=30
Vowelout f1=1 f2=1700 -100 200 f3=-300 80 f4 rms=35
IF nextPh(#i) THEN
WAV(ustop/q2_i, 40)
ENDIF
WAV(ustop/q2, 48)
endphoneme
phoneme Q
import_phoneme base/r"
vcd vel frc
voicingswitch x
lengthmod 6
Vowelin f1=2 f2=2300 200 400 f3=-100 80
Vowelout f1=2 f2=2300 250 300 f3=-300 80 brk
FMT(voc/Q) addWav(ufric/xx, 100)
endphoneme
phoneme Q2
vcd vel frc
voicingswitch x
lengthmod 6
Vowelin f1=2 f2=2300 200 400 f3=-100 80
Vowelout f1=2 f2=2300 250 300 f3=-300 80 brk
FMT(voc/Q) addWav(ufric/x2, 50)
endphoneme
phoneme r
import_phoneme base/R
endphoneme
+12 -40
View File
@@ -97,11 +97,8 @@ phoneme U
length 135
ENDIF
IF nextPh(r) THEN
IF next2Ph(isVowel) THEN
ELSE
ChangePhoneme(UR)
ENDIF
IF nextPh(r) AND next2Ph(isNotVowel) THEN
ChangePhoneme(UR)
ENDIF
FMT(vowel/uu_2)
endphoneme
@@ -128,6 +125,10 @@ phoneme i:
IF prevPh(w) THEN
VowelStart(w/wi2)
ENDIF
IF nextPh(r) AND next2Ph(isNotVowel) THEN
ChangePhoneme(iR)
ENDIF
FMT(vowel/i_2)
endphoneme
@@ -341,41 +342,12 @@ endphoneme
// This version of [r] was used in eSpeak 1.44, but received complaints
phoneme r2 // uvular trill or fricative
vcd uvl frc
ipa ʀ
lengthmod 6
length 110
IF nextPhW(isVowel) THEN
FMT(r3/r_uvl) addWav(r3/r_uvl.wav, 50)
ELSE
IF prevPh(isFlag1) THEN
ChangePhoneme(NULL) // 'r' is already included in the previous vowel
ELSE
ChangePhoneme(V#)
ENDIF
ENDIF
endphoneme
phoneme V# // used for 'r' after a vowel (to create a diphthong)
liquid
lengthmod 7
IF nextPhW(isVowel) THEN
ChangePhoneme(r)
ENDIF
ipa ɐ
IF prevPh(#a) OR prevPh(E) THEN
FMT(r/V_2_)
ENDIF
IF prevPh(#u) THEN
FMT(r/@_)
ENDIF
FMT(r/V_)
phoneme iR
vowel starttype #i endtype #@
ipa iɐ
flag1
length 180
FMT(vdiph2/i@_2)
endphoneme
+22 -22
View File
@@ -136,7 +136,7 @@ endphoneme
phoneme a:
vowel long starttype #a endtype #a
length 230
length 190
FMT(vowel/aa_9)
endphoneme
@@ -149,7 +149,7 @@ endphoneme
phoneme o:
vowel long starttype #o endtype #o
length 220
length 227
FMT(vowel/o_2)
endphoneme
@@ -294,7 +294,7 @@ phoneme p
endphoneme
phoneme ph
phoneme p#
import_phoneme consonants/ph
endphoneme
@@ -304,10 +304,10 @@ phoneme b // this is [b]
endphoneme
phoneme bh
phoneme b#
vcd blb stop
lengthmod 5
voicingswitch ph
voicingswitch p#
Vowelin f1=0 f2=1000 -50 -100 f3=-200 80
Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=30
@@ -330,7 +330,7 @@ phoneme t // dental variant of /t/
endphoneme
phoneme th // dental variant of /t/
phoneme t# // dental variant of /t/
vls dnt stop
lengthmod 2
voicingswitch d
@@ -349,10 +349,10 @@ phoneme d // dental variant of /d/
endphoneme
phoneme dh
phoneme d#
vcd dnt stop
lengthmod 5
voicingswitch th
voicingswitch t#
Vowelin f1=0 f2=1500 -300 300 f3=-100 80
Vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20
@@ -379,11 +379,11 @@ phoneme t.
WAV(ustop/t_short)
endphoneme
phoneme th.
phoneme t.#
vls rfx stop
lengthmod 2
ipa ʈh
voicingswitch dh.
ipa ʈU+02B0
voicingswitch d.#
Vowelin f1=0 f2=1800 -300 300 f3=-400 80
Vowelout f1=0 f2=1800 -300 250 f3=-400 80 rms=20 colr=2
// WAV(ustop/th_rfx)
@@ -410,11 +410,11 @@ phoneme d.
endphoneme
phoneme dh.
phoneme d.#
vcd rfx stop
lengthmod 5
ipa ɖh
voicingswitch th.
ipa ɖU+02B0
voicingswitch t.#
Vowelin f1=1 f2=1800 -300 300 f3=-400 80
Vowelout f1=1 f2=1800 -300 300 f3=-400 80 colr=2
@@ -439,7 +439,7 @@ phoneme c
endphoneme
phoneme ch
phoneme c#
CALL base/tS;
ipa ch
endphoneme
@@ -450,10 +450,10 @@ phoneme J
endphoneme
phoneme Jh
phoneme J#
vcd pal afr sibilant
lengthmod 5
voicingswitch ch
voicingswitch c#
Vowelin f1=0 f2=2700 400 600 f3=300 80 rate len=70
Vowelout f1=0 f2=2700 400 600 f3=300 80 colr=1
@@ -477,9 +477,9 @@ phoneme k
voicingswitch g
endphoneme
phoneme kh
import_phoneme consonants/kh
voicingswitch gh
phoneme k#
import_phoneme consonants/k#
voicingswitch g#
endphoneme
@@ -489,10 +489,10 @@ phoneme g
endphoneme
phoneme gh
phoneme g#
vcd dnt stop
lengthmod 5
voicingswitch kh
voicingswitch k#
Vowelin f1=1 f2=2300 200 300 f3=-150 80 rms=20
Vowelout f1=0 f2=2300 300 400 f3=-150 80 rms=20
+117 -26
View File
@@ -1,9 +1,30 @@
// Version 2.4 January 2013
// short vowels
phoneme @
vowel starttype #@ endtype #@
phoneme @ // Schwa, but always unstressed
vowel starttype #@ endtype #@
unstressed
length 100
IF nextPh(i:) THEN
Length 70
FMT(vwl_af/r@)
ENDIF
IF nextPh(I) THEN
Length 70
FMT(vwl_af/r@)
ENDIF
IF nextPh(e:) THEN
Length 70
FMT(vwl_af/r@)
ENDIF
FMT(vwl_af/@)
endphoneme
phoneme @/
vowel starttype #@ endtype #@
length 120
FMT(vowel/@)
endphoneme
@@ -11,12 +32,14 @@ endphoneme
phoneme a
vowel starttype #a endtype #a
length 200
length 150
FMT(vowel/a_4)
endphoneme
phoneme a#
vowel starttype #@ endtype #@
ipa ɐ
length 120
ChangeIfStressed(a)
FMT(vowel/a#_3)
@@ -33,38 +56,35 @@ phoneme E#
vowel starttype #@ endtype #@
length 120
ChangeIfStressed(E)
FMT(vowel/@)
ChangePhoneme(@/)
endphoneme
phoneme I
vowel starttype #i endtype #i
length 120
IfNextVowelAppend(;)
FMT(vowel/ii_2)
endphoneme
phoneme I#
vowel starttype #@ endtype #@
length 120
ChangeIfStressed(I)
IfNextVowelAppend(;)
FMT(vowel/@)
phoneme i // non syllabic i for end of words
vowel starttype #i endtype #i
ipa iU+032F
length 40
FMT(vowel/ii_7)
endphoneme
phoneme O
vowel starttype #o endtype #o
vowel starttype #a endtype #@
length 140
FMT(vowel/oo_4)
FMT(vowel/V_4)
endphoneme
phoneme O#
vowel starttype #@ endtype #@
length 120
ChangeIfStressed(O)
FMT(vowel/@)
ChangePhoneme(a#)
endphoneme
@@ -78,7 +98,35 @@ phoneme U#
vowel starttype #@ endtype #@
length 120
ChangeIfStressed(U)
FMT(vowel/@)
ChangePhoneme(@/)
endphoneme
phoneme u1
vowel starttype #u endtype #u
ipa uU+0306
length 50
FMT(vowel/u)
endphoneme
phoneme 0
vowel starttype #a endtype #a
length 180
ipa A
FMT(vowel/aa_8)
endphoneme
phoneme 0#
vowel starttype #@ endtype #@
length 120
ChangeIfStressed(0)
ChangePhoneme(a#)
endphoneme
phoneme o:
vowel starttype #o endtype #o
length 190
FMT(vowel/o)
endphoneme
@@ -105,11 +153,6 @@ phoneme i:
endphoneme
phoneme o:
vowel starttype #o endtype #o
length 190
FMT(vowel/o)
endphoneme
phoneme u:
@@ -121,11 +164,6 @@ endphoneme
// Diphthongs
phoneme @I
vowel starttype #@ endtype #i
length 240
FMT(vdiph/@i)
endphoneme
phoneme @U
vowel starttype #@ endtype #u
@@ -145,4 +183,57 @@ phoneme u@
FMT(vdiph2/u@)
endphoneme
phoneme aI
vowel starttype #a endtype #i
length 250
FMT(vdiph/ai)
endphoneme
phoneme aI#
vowel starttype #@ endtype #@
length 120
ChangeIfStressed(aI)
ChangePhoneme(a#)
endphoneme
phoneme aU
vowel starttype #a endtype #u
length 270
FMT(vdiph/au_4)
endphoneme
phoneme aU#
vowel starttype #@ endtype #@
length 120
ChangeIfStressed(aU)
FMT(vdiph/au_4)
endphoneme
phoneme ; // linking j, used between (i) vowels and a following vowel
// also to palatalize consonants
liquid palatal
lengthmod 0
IF prevPh(#i) THEN
ipa NULL // linking after i vowel, don't show in ipa
ENDIF
NextVowelStarts
VowelStart(j2/j2@)
VowelStart(j2/j2a)
VowelStart(j2/j2e)
VowelStart(j2/j2i)
VowelStart(j2/j2o)
VowelStart(j2/j2u)
EndSwitch
IF prevPh(#i) THEN
VowelEnding(j2/xj2, -40)
ENDIF
IF prevPh(isPause) THEN
FMT(j2/_j2)
ENDIF
endphoneme
+4 -2
View File
@@ -132,13 +132,15 @@ phoneme v
endphoneme
phoneme r
import_phoneme base/*
import_phoneme base/**
endphoneme
phoneme R
import_phoneme base/R2
endphoneme
phoneme d# // 'rr' sounds like English 'd'
phoneme d2 // 'rr' sounds like English 'd'
import_phoneme base/d
endphoneme
-15
View File
@@ -134,19 +134,6 @@ endphoneme
phoneme x // [r] for Portugal
liquid
trill
ipa ʁ
lengthmod 7
Vowelin f1=0 f2=1500 -400 400 f3=-400 80
IF nextPh(isNotVowel) THEN
ChangePhoneme(r/)
ENDIF
FMT(vwl_fr/@R) addWav(r3/rx, 120)
endphoneme
phoneme R // for Portugal this is same the as [r]
import_phoneme pt/r
endphoneme
@@ -157,5 +144,3 @@ phoneme s# // This is [s] for Brazil, [S] for Portugal
ipa ʃ
endphoneme
+3 -13
View File
@@ -189,18 +189,9 @@ phoneme l
endphoneme
phoneme x // this is [R] from Slovak/Czech
liquid
trill
ipa ʁ
lengthmod 6
IF thisPh(isWordStart) THEN
ChangePhoneme(h) // Change by Cleverson 22.09.2012
ENDIF
Vowelin f1=0 f2=1700 -300 300 f3=-300 80
Vowelout f1=2 f2=1700 -300 300 f3=-300 80 brk
FMT(r3/r_trill) addWav(r3/r_trill.wav, 50)
phoneme x
CALL base/h
ipa x
endphoneme
@@ -227,4 +218,3 @@ phoneme *
FMT(d/tap2) addWav(x/d, 40)
endphoneme
+1 -1
View File
@@ -9,7 +9,7 @@ phoneme b
endphoneme
phoneme t
import_phoneme hi/th
import_phoneme hi/t#
endphoneme
phoneme d
+2 -2
View File
@@ -63,7 +63,7 @@ phoneme dz
FMT(d/xdz) addWav(ustop/ts2, 140)
endphoneme
phoneme tsh
phoneme ts#
vls alv afr sibilant
voicingswitch dz
lengthmod 2
@@ -76,7 +76,7 @@ phoneme tsh
endphoneme
phoneme dzh
phoneme dz#
vcd alv afr sibilant
voicingswitch ts
lengthmod 5
+27 -26
View File
@@ -731,7 +731,7 @@ endphoneme
phoneme n
vcd alv nasal
Vowelout f1=2 f2=1700 -300 250 f3=-100 80 rms=20 brk
Vowelout f1=2 f2=1500 -300 250 f3=-100 80 rms=20 brk
lengthmod 4
IF KlattSynth THEN
@@ -762,8 +762,8 @@ phoneme n.
vcd rfx nasal
ipa ɳ
starttype n endtype n
Vowelin f1=2 f2=1200 -300 250 f3=-500 80 rms=20 colr=2
Vowelout f1=2 f2=1200 -300 250 f3=-500 80 rms=20 brk colr=2
Vowelin f1=2 f2=1700 -300 300 f3=-500 80 rms=20 colr=2
Vowelout f1=2 f2=1700 -300 300 f3=-500 80 rms=20 brk colr=2
lengthmod 4
IF KlattSynth THEN
@@ -1610,9 +1610,9 @@ phoneme x
Vowelout f1=0 f2=2300 300 400 f3=-100 80 rms=20
IF nextPh(isPause) THEN
WAV(ufric/x, 120)
WAV(ufric/x, 110)
ENDIF
WAV(ufric/x_hr, 25)
WAV(ufric/x_hr, 20)
endphoneme
@@ -1624,7 +1624,7 @@ phoneme X
IF nextPh(isPause) THEN
WAV(ufric/xx, 70)
ENDIF
WAV(ufric/xx)
WAV(ufric/xx,80)
endphoneme
@@ -1690,6 +1690,9 @@ include ph_afrikaans
phonemetable cy base
include ph_welsh
phonemetable ga base
include ph_irish
phonemetable de base
include ph_german
@@ -1714,10 +1717,25 @@ include ph_french
phonemetable fr-ca fr
include ph_french_ca
phonemetable nl base
include ph_dutch
phonemetable hi base
include ph_hindi
phonemetable bn hi
include ph_bengali
phonemetable ne hi
include ph_nepali
phonemetable ur hi
include ph_urdu
phonemetable pa hi
include ph_punjabi
phonemetable ta hi
include ph_tamil
@@ -1727,8 +1745,6 @@ include ph_kannada
phonemetable ml hi
include ph_malayalam
phonemetable ur hi
include ph_urdu
phonemetable hu base
@@ -1741,9 +1757,6 @@ include ph_lithuanian
phonemetable lv base
include ph_latvian
phonemetable nl base
include ph_dutch
phonemetable pl base
include ph_polish
@@ -1848,6 +1861,9 @@ include ph_danish
phonemetable ka base
include ph_georgian
phonemetable fa base
include ph_farsi
//**************************************************************************************
// The following lines are experimental, for future additions.
@@ -1857,12 +1873,6 @@ include ph_georgian
phonemetable rw base2
include ph_kinyarwanda
//phonemetable bn hi
//include ph_bengali
phonemetable ne hi
include ph_nepali
//phonemetable mr hi
//include ph_marathi
@@ -1872,9 +1882,6 @@ include ph_nepali
//phonemetable mn base
//include ph_mongolian
phonemetable pa hi
include ph_punjabi
phonemetable prs base
include ph_dari
@@ -1924,12 +1931,6 @@ include ph_tibetan
phonemetable kk base
include ph_kazakh
phonemetable fa base
include ph_farsi
phonemetable ga base
include ph_irish
phonemetable tt base
include ph_tatar
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.