ph_setswana 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300
  1. //====================================================
  2. // Setswana phoneme file
  3. // maitained by: Sternly K Simon
  4. // email: sternly_simon@yahoo.com
  5. //====================================================
  6. phoneme l // use dark [l/2] before not-vowel
  7. liquid
  8. lengthmod 7
  9. IF nextPhW(isVowel) THEN
  10. ELSE
  11. IF prevPh(isNotVowel) THEN
  12. ChangePhoneme(l/)
  13. ELSE
  14. ChangePhoneme(l/2)
  15. ENDIF
  16. ENDIF
  17. CALL base1/l
  18. endphoneme
  19. phoneme r- // linking r, used in Setswana between certain vowels and a following vowel
  20. liquid rhotic
  21. ipa ɹ
  22. lengthmod 0
  23. NextVowelStarts
  24. VowelStart(r2/r2@)
  25. VowelStart(r2/r2a)
  26. VowelStart(r2/r2e)
  27. VowelStart(r2/r2i)
  28. VowelStart(r2/r2o)
  29. VowelStart(r2/r2u)
  30. EndSwitch
  31. IF prevPh(isVowel) THEN
  32. VowelEnding(r/xr, -60)
  33. ENDIF
  34. FMT(r/r)
  35. endphoneme
  36. // Default vowel definitions
  37. phoneme @
  38. vwl starttype #@ endtype #@
  39. unstressed
  40. length 140
  41. IF nextPh(r/) THEN
  42. length 190
  43. FMT(vwl_tn/r@)
  44. ENDIF
  45. FMT(vwl_tn/@)
  46. endphoneme // Vowels
  47. // VOWELS
  48. //****************************************************************
  49. phoneme i
  50. vwl starttype #i endtype #i
  51. length 170
  52. FMT(vowel/ii)
  53. endphoneme
  54. phoneme I
  55. vwl starttype #i endtype #i
  56. length 130
  57. IfNextVowelAppend(;)
  58. FMT(vwl_tn/I)
  59. endphoneme
  60. phoneme I2
  61. vwl starttype #i endtype #i
  62. unstressed
  63. length 130
  64. IfNextVowelAppend(;)
  65. FMT(vowel/ii_4)
  66. endphoneme
  67. phoneme e
  68. vwl starttype #e endtype #e
  69. length 180
  70. ChangeIfUnstressed(l)
  71. FMT(vowel/ee#_2)
  72. endphoneme
  73. phoneme e@ // long E
  74. vwl starttype #i endtype #@
  75. ipa iə
  76. length 230
  77. IfNextVowelAppend(r-)
  78. FMT(vdiph/i@_2)
  79. endphoneme
  80. phoneme E
  81. vwl starttype #e endtype #e
  82. unstressed
  83. length 140
  84. ChangeIfDiminished(I2)
  85. FMT(vowel/ee_5)
  86. endphoneme
  87. phoneme a
  88. vwl starttype #a endtype #a
  89. ipa a
  90. length 180
  91. FMT(vowel/a_5)
  92. endphoneme
  93. phoneme A@ // Used for [A:] when followed by 'r'
  94. vwl starttype #a endtype #a
  95. ipa ɑː
  96. length 230
  97. IfNextVowelAppend(r-)
  98. FMT(vowel/aa_2)
  99. endphoneme
  100. phoneme O // short O
  101. vwl starttype #o endtype #o
  102. length 140
  103. FMT(vowel/oo_1)
  104. endphoneme
  105. phoneme o
  106. vwl starttype #o endtype #o
  107. length 180
  108. ChangeIfUnstressed(U)
  109. FMT(vowel/0_2)
  110. endphoneme
  111. phoneme u
  112. vwl starttype #u endtype #u
  113. length 170
  114. FMT(vowel/u_5)
  115. endphoneme
  116. phoneme U
  117. vwl starttype #o endtype #o
  118. length 150
  119. FMT(vowel/uu)
  120. endphoneme
  121. // Consonants
  122. //=================================================
  123. phoneme l
  124. import_phoneme en/l
  125. endphoneme
  126. phoneme ts
  127. vls alv afr sib
  128. // voicingswitch dz
  129. lengthmod 2
  130. Vowelin f1=0 f2=1700 -300 300 f3=-100 80
  131. Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
  132. IF nextPh(isPause2) THEN
  133. WAV(ustop/ts_)
  134. ENDIF
  135. WAV(ustop/ts)
  136. endphoneme
  137. phoneme d // dental variant of /d/
  138. import_phoneme base2/d
  139. endphoneme
  140. phoneme kh
  141. vls vel stp
  142. lengthmod 2
  143. voicingswitch g
  144. Vowelin f1=0 f2=2300 200 300 f3=-150 80
  145. Vowelout f1=0 f2=2300 300 400 f3=-150 80 rms=20
  146. IF nextPh(isPause2) THEN
  147. WAV(ustop/k_asp, 50)
  148. ENDIF
  149. IF nextPh(l) THEN
  150. WAV(ustop/kl)
  151. ENDIF
  152. WAV(ustop/k_asp, 90)
  153. endphoneme
  154. phoneme k- // unaspirated
  155. vls vel stp
  156. lengthmod 2
  157. voicingswitch g
  158. Vowelin f1=0 f2=2300 200 300 f3=-150 80
  159. Vowelout f1=0 f2=2300 300 400 f3=-150 80 rms=20
  160. IF nextPh(isPause2) THEN
  161. WAV(ustop/k_unasp, 50)
  162. ENDIF
  163. WAV(ustop/k_unasp, 60) // weaker
  164. endphoneme
  165. phoneme K // Setswna tlh sound
  166. vls alv frc
  167. lengthmod 3
  168. NextVowelStarts
  169. VowelStart(l/l@)
  170. VowelStart(l/la)
  171. VowelStart(l/le)
  172. VowelStart(l/li, -10)
  173. VowelStart(l/lo)
  174. VowelStart(l/lu)
  175. EndSwitch
  176. IF prevPh(isVowel) THEN
  177. VowelEnding(l/xl, -40)
  178. ENDIF
  179. WAV(ufric/tlh, 80)
  180. endphoneme
  181. phoneme ph // aspirated
  182. vls blb stp
  183. lengthmod 2
  184. voicingswitch b
  185. Vowelin f1=0 f2=1000 -50 -100 f3=-200 80
  186. Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=30
  187. IF nextPh(isPause2) THEN
  188. WAV(ustop/p_)
  189. ENDIF
  190. IF nextPh(r) THEN
  191. WAV(ustop/pr)
  192. ENDIF
  193. IF nextPh(l) THEN
  194. WAV(ustop/pl)
  195. ENDIF
  196. WAV(ustop/p_asp)
  197. endphoneme
  198. phoneme r
  199. liquid rhotic trl
  200. lengthmod 6
  201. Vowelin f1=2 f2=2700 -300 -200 f3=-1300 80
  202. Vowelout f1=2 f2=1700 -300 -200 f3=-1300 80
  203. NextVowelStarts
  204. VowelStart(r/r@, -15)
  205. VowelStart(r/ra, -15)
  206. VowelStart(r/re, -15)
  207. VowelStart(r/ri, -15)
  208. VowelStart(r/ro, -15)
  209. VowelStart(r/ru, -15)
  210. EndSwitch
  211. IF prevPh(isVowel) THEN
  212. VowelEnding(r/xr, -50)
  213. ENDIF
  214. FMT(r3/r_trill) addWav(r3/r_trill3.wav, 100)
  215. endphoneme
  216. phoneme r/ // used for [r] when not preceding a vowel
  217. liquid
  218. lengthmod 7
  219. IF prevPh(@) OR prevPh(I) THEN
  220. ELSE
  221. FMT(r3/r_) addWav(r3/rx)
  222. ENDIF
  223. endphoneme
  224. phoneme t // dental variant of /t/
  225. import_phoneme base2/t
  226. endphoneme
  227. phoneme tS
  228. vls pla afr sib
  229. voicingswitch dZ
  230. lengthmod 2
  231. Vowelin f1=0 f2=2300 200 400 f3=-100 80
  232. IF nextPh(isPause2) THEN
  233. WAV(ustop/tsh_)
  234. ENDIF
  235. WAV(ustop/tsh)
  236. endphoneme
  237. phoneme tS;
  238. vls alp sib afr
  239. voicingswitch dZ;
  240. ipa tɕ
  241. lengthmod 2
  242. Vowelin f1=0 f2=2700 400 600 f3=300 80 rate len=70
  243. IF nextPh(isPause2) THEN
  244. WAV(ustop/ts_pzd)
  245. ENDIF
  246. WAV(ustop/ts_pzd)
  247. endphoneme