eSpeak NG is an open source speech synthesizer that supports more than hundred languages and accents.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

ph_cherokee 5.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. //*******************************************************************
  2. // TONES
  3. //*******************************************************************
  4. //*******************************************************************
  5. // REFERENCE MATERIALS
  6. //*******************************************************************
  7. // Collaborative Documentation and Revitalization of Cherokee Tone
  8. // https://scholarspace.manoa.hawaii.edu/bitstream/handle/10125/24630/herrick.pdf
  9. // Tones fall within a range of 80–140 H (pg 21, footnote)
  10. // the mid tone (2) starts at 104 Hz (P1) and falls approximately 2 Hz at of the next four points ending at 96 Hz at P5.
  11. //
  12. // Building Tone Resources for Second Language Learners from Phonetic Documentation
  13. // https://scholarspace.manoa.hawaii.edu/bitstream/10125/24737/hirata-edds_herrick.pdf
  14. //
  15. // Pitch contours taken from Praat chart, pg 295
  16. //
  17. // (¹) low fall: 106, 102, 97, 92, 88
  18. // (²) low/mid: 104, 100, 98, 97, 96
  19. // (³) high: 108, 109, 110, 111, 112
  20. // (⁴) super high: 109, 113, 118, 122, 127
  21. // (²³) rising: 97, 98, 101, 104, 109
  22. // (³²) falling: 122, 120, 115, 106, 97
  23. // A REFERENCE GRAMMAR OF OKLAHOMA CHEROKEE (2008)
  24. // Short vowels preceding /h/ are devoiced, pg 45 (how to do this espeak-ng?)
  25. // Word final vowels are nasalized
  26. // Vowels are nasalized after a nasal consonant
  27. // Vowels are either long or short; a long vowel takes
  28. // approximately twice as long to pronounce as its
  29. // short counterpart., pg 46
  30. //int pitch1 = 0;
  31. //int pitch2 = 0;
  32. //int pitch_env = 0;
  33. //int amp_env = 0;
  34. //IF (pitch1 >= pitch2) the pitch values get swapped (???)
  35. phoneme 1 // low fall (¹), long vowels only
  36. stress
  37. ipa ˨˩
  38. Tone(28, 7, envelope/p_fall, NULL) //need a pitch contour of 106-88 for a
  39. endphoneme
  40. phoneme 2 // low (²)
  41. stress
  42. ipa ˨
  43. Tone(26, 16, envelope/p_fall, NULL) //need a pitch contour of 104-96 for a
  44. endphoneme
  45. phoneme 23 // rising (²³)
  46. stress
  47. ipa ˨˧
  48. Tone(15, 29, envelope/p_rise, NULL) //need a pitch contour of 97-109 for a
  49. endphoneme
  50. phoneme 32 // falling (³²)
  51. stress
  52. ipa ˧˨
  53. Tone(46, 16, envelope/p_fall, NULL) //need a pitch contour of 122-97 for a
  54. endphoneme
  55. phoneme 3 // high (³)
  56. stress
  57. ipa ˧
  58. //Tone(109, 116, envelope/p_rise, NULL) //need a pitch contour of 108-112 for a
  59. Tone(29, 34, envelope/p_rise, NULL) //need a pitch contour of 108-112 for a
  60. endphoneme
  61. phoneme 4 // extra high rise (⁴)
  62. stress
  63. ipa ˧˦
  64. Tone(29, 50, envelope/p_rise, NULL) //need a pitch contour of 109-127 for a
  65. endphoneme
  66. phoneme 43 // extra high fall (⁴³) - end of word tone
  67. stress
  68. ipa ˦˧
  69. //need a pitch contour of 122-75 for a~
  70. Tone(45, 0, envelope/p_fall, NULL)
  71. endphoneme
  72. //*******************************************************************
  73. // LANGUAGE SPECIFIC CONSONANTS (PLOSIVES/STOPS)
  74. //*******************************************************************
  75. //none.
  76. //*******************************************************************
  77. // LANGUAGE SPECIFIC VOWELS
  78. //*******************************************************************
  79. //from phonemes
  80. phoneme : // lengthen previous vowel by "length"
  81. virtual
  82. length 175
  83. endphoneme
  84. // ạ, a
  85. //from ph_en
  86. phoneme A:
  87. vwl starttype #a endtype #a
  88. length 175
  89. FMT(vowel/aa_2)
  90. endphoneme
  91. // ạ, a, end of word vowel
  92. //from ph_english
  93. phoneme A~
  94. vwl starttype #a endtype #a
  95. length 175
  96. FMT(vnasal/aa_n2)
  97. endphoneme
  98. // e, ẹ
  99. //from ph_base2
  100. phoneme E
  101. vwl starttype #e endtype #e
  102. length 175
  103. FMT(vowel/ee_1)
  104. endphoneme
  105. // e, ẹ, final word vowel
  106. //from ph_konkani
  107. phoneme E~
  108. vwl starttype #e endtype #e
  109. length 175
  110. FMT(vnasal/ee_n2)
  111. endphoneme
  112. // i, ị
  113. //from ph_en
  114. phoneme I
  115. vwl starttype #i endtype #i
  116. length 175
  117. FMT(vowel/ii_2)
  118. endphoneme
  119. // i, ị, final word vowel
  120. //from ph_konkani
  121. phoneme I~
  122. vwl starttype #i endtype #i
  123. length 175
  124. FMT(vnasal/ii_n)
  125. endphoneme
  126. // o, ọ
  127. //from ph_base2
  128. phoneme o
  129. vwl starttype #o endtype #o
  130. length 175
  131. FMT(vowel/o)
  132. endphoneme
  133. // o, ọ, final word vowel
  134. phoneme o~
  135. vwl starttype #o endtype #o
  136. length 175
  137. FMT(vnasal/o_n)
  138. endphoneme
  139. // u, ụ
  140. //from ph_base2
  141. phoneme u
  142. vwl starttype #u endtype #u
  143. length 175
  144. FMT(vowel/u_bck)
  145. endphoneme
  146. // u, ụ, final word vowel
  147. phoneme u~
  148. vwl starttype #u endtype #u
  149. length 175
  150. FMT(vnasal/u_n)
  151. endphoneme
  152. //ṿ, v
  153. //from ph_french
  154. phoneme W~
  155. vwl starttype #@ endtype #@
  156. length 175
  157. FMT(vnasal/W_n)
  158. endphoneme
  159. // fix specific consonents to last long enough to be heard
  160. phoneme lxx
  161. import_phoneme base2/l
  162. length 75
  163. Tone(105, 93, envelope/p_fall, NULL)
  164. endphoneme
  165. phoneme mxx
  166. import_phoneme base2/m
  167. length 75
  168. Tone(105, 93, envelope/p_fall, NULL)
  169. endphoneme
  170. phoneme nxx
  171. import_phoneme base2/n
  172. length 75
  173. Tone(105, 93, envelope/p_fall, NULL)
  174. endphoneme
  175. phoneme wxx
  176. import_phoneme base2/w
  177. length 175
  178. Tone(105, 93, envelope/p_fall, NULL)
  179. endphoneme
  180. phoneme jxx
  181. import_phoneme base1/j
  182. length 75
  183. Tone(105, 93, envelope/p_fall, NULL)
  184. endphoneme
  185. phoneme hxx
  186. import_phoneme base1/h
  187. length 75
  188. Tone(105, 93, envelope/p_fall, NULL)
  189. //lengthmod 1
  190. endphoneme