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_zh 7.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457
  1. //based on "phonemes"
  2. //====================================================
  3. // Tone Numbers
  4. //====================================================
  5. phoneme 11 // tone: low level
  6. stress
  7. Tone(12, 9, envelope/i_risefall, NULL)
  8. endphoneme
  9. phoneme 21 // tone: low fall
  10. stress
  11. Tone(20, 10, envelope/p_fall, NULL)
  12. endphoneme
  13. phoneme 214 // tone: fall rise
  14. stress
  15. Tone(18, 42, envelope/p_214, NULL)
  16. endphoneme
  17. phoneme 22 // tone: mid-low level
  18. stress
  19. Tone(22, 20, envelope/p_fall, NULL)
  20. endphoneme
  21. phoneme 33 // tone: mid level
  22. stress
  23. Tone(32, 30, envelope/p_fall, NULL)
  24. endphoneme
  25. phoneme 35 // tone: mid rise
  26. stress
  27. Tone(30, 50, envelope/p_rise, NULL)
  28. endphoneme
  29. phoneme 44 // tone: mid-high level
  30. stress
  31. Tone(38, 41, envelope/p_rise, NULL)
  32. endphoneme
  33. phoneme 51 // tone: high fall
  34. stress
  35. Tone(50, 10, envelope/p_fall, NULL)
  36. endphoneme
  37. phoneme 53 // tone: high fall
  38. stress
  39. Tone(50, 30, envelope/p_fall, NULL)
  40. endphoneme
  41. phoneme 55 // tone: high level
  42. stress
  43. Tone(55, 50, envelope/p_level, NULL)
  44. endphoneme
  45. //====================================================
  46. // Consonants
  47. //====================================================
  48. phoneme n
  49. vcd alv nasal
  50. Vowelout f1=2 f2=1700 -300 250 f3=-100 80 rms=20 brk
  51. lengthmod 2
  52. NextVowelStarts
  53. VowelStart(n/n@)
  54. VowelStart(n/na)
  55. VowelStart(n/ne)
  56. VowelStart(n/ni)
  57. VowelStart(n/no)
  58. VowelStart(n/nu)
  59. EndSwitch
  60. IF nextPh(isNotVowel) THEN
  61. FMT(n/n_long_)
  62. ENDIF
  63. FMT(n/_n)
  64. endphoneme
  65. phoneme N
  66. vcd vel nasal
  67. Vowelout f1=2 f2=1900 0 300 f3=400 80 len=50 rms=15 brk
  68. lengthmod 7
  69. NextVowelStarts
  70. VowelStart(nn/nn@)
  71. VowelStart(nn/nna)
  72. VowelStart(nn/nne)
  73. VowelStart(nn/nni)
  74. VowelStart(nn/nno)
  75. VowelStart(nn/nnu)
  76. EndSwitch
  77. IF prevPh(isPause) THEN
  78. FMT(nn/_nn)
  79. ELIF nextPh(isNotVowel) THEN
  80. FMT(nn/nn2_)
  81. ENDIF
  82. endphoneme
  83. phoneme p
  84. vls blb stop
  85. lengthmod 2
  86. Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 amp=11
  87. Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=22
  88. WAV(ustop/p_unasp)
  89. endphoneme
  90. phoneme ph
  91. vls blb stop
  92. lengthmod 2
  93. Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 amp=11
  94. Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=22
  95. WAV(ustop/p_asp)
  96. endphoneme
  97. phoneme f //not clear before some vowel
  98. vls lbd frc
  99. lengthmod 2
  100. Vowelout f1=0 f2=1000 -500 -350 f3=-200 80
  101. WAV(ufric/f)
  102. endphoneme
  103. phoneme t
  104. vls alv stop
  105. lengthmod 2
  106. Vowelin f1=0 f2=1700 -300 300 f3=-100 80 rms=40
  107. Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
  108. WAV(ustop/t_unasp2, 40)
  109. endphoneme
  110. phoneme th
  111. vls alv stop
  112. lengthmod 2
  113. Vowelin f1=0 f2=1700 -300 300 f3=-100 80
  114. Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
  115. WAV(ustop/t_)
  116. endphoneme
  117. phoneme k
  118. vls uvl stop
  119. lengthmod 2
  120. Vowelin f1=1 f2=1700 0 200 f3=-300 80 f4
  121. Vowelout f1=1 f2=1700 0 200 f3=-300 80 f4 rms=30
  122. WAV(ustop/k_unasp_, 75)
  123. endphoneme
  124. phoneme kh
  125. vls uvl stop
  126. lengthmod 2
  127. Vowelin f1=1 f2=1700 0 200 f3=-300 80 f4
  128. Vowelout f1=1 f2=1700 0 200 f3=-300 80 f4 rms=30
  129. WAV(ustop/k_asp, 80)
  130. endphoneme
  131. phoneme tS;
  132. vls pal afr sibilant palatal
  133. lengthmod 2
  134. Vowelin f1=0 f2=2700 400 600 f3=300 80
  135. WAV(ustop/tsh_pzd_unasp)
  136. endphoneme
  137. phoneme tS;h
  138. vls pal afr sibilant palatal
  139. lengthmod 2
  140. Vowelin f1=0 f2=2700 400 600 f3=300 80
  141. WAV(ustop/tsh_pzd, 80)
  142. endphoneme
  143. phoneme S;
  144. vls pla frc sibilant
  145. lengthmod 2
  146. Vowelin f1=0 f2=2700 400 600 f3=300 80
  147. WAV(ufric/sh_pzd2, 20)
  148. endphoneme
  149. phoneme s.
  150. vls pla frc sibilant
  151. lengthmod 3
  152. Vowelin f1=0 f2=1800 -100 300 f3=-300 80
  153. Vowelout f1=0 f2=1800 -100 300 f3=-300 80
  154. IF nextPh(isPause2) THEN
  155. WAV(ufric/sh_rfx, 50)
  156. ENDIF
  157. WAV(ufric/sh_rfx, 50) // quieter
  158. endphoneme
  159. phoneme ts
  160. vls alv afr sibilant
  161. lengthmod 2
  162. Vowelin f1=0 f2=1700 -300 300 f3=-100 80
  163. Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
  164. WAV(ustop/ts_unasp, 70)
  165. endphoneme
  166. phoneme tsh
  167. vls alv afr sibilant
  168. lengthmod 2
  169. Vowelin f1=0 f2=1700 -300 300 f3=-100 80
  170. Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
  171. WAV(ustop/ts, 60)
  172. endphoneme
  173. phoneme ts.
  174. vls pla frc sibilant
  175. lengthmod 3
  176. Vowelin f1=0 f2=1800 -100 300 f3=-300 80
  177. Vowelout f1=0 f2=1800 -100 300 f3=-300 80
  178. WAV(ustop/ts_rfx_unasp)
  179. endphoneme
  180. phoneme ts.h
  181. vls pla frc sibilant
  182. lengthmod 3
  183. Vowelin f1=0 f2=1800 -100 300 f3=-300 80
  184. Vowelout f1=0 f2=1800 -100 300 f3=-300 80
  185. WAV(ustop/ts_rfx)
  186. endphoneme
  187. //====================================================
  188. // Vowels and Diphtnongs
  189. //====================================================
  190. phoneme N- // syllabic N
  191. vowel starttype N endtype N
  192. length 250
  193. FMT(nn/nn2_)
  194. endphoneme
  195. phoneme a
  196. vowel starttype #a endtype #a
  197. length 250
  198. IF nextPh(N) THEN
  199. FMT(vwl_zh/a_n)
  200. ENDIF
  201. FMT(vowel/a)
  202. endphoneme
  203. phoneme A
  204. vowel starttype #a endtype #a
  205. length 250
  206. IF nextPh(N) THEN
  207. FMT(vowel/aa_2)
  208. ENDIF
  209. FMT(vowel/a_3)
  210. endphoneme
  211. phoneme ai
  212. vowel starttype #a endtype #i
  213. length 250
  214. FMT(vdiph/ai_6)
  215. endphoneme
  216. phoneme Au
  217. vowel starttype #a endtype #u
  218. length 250
  219. FMT(vwl_zh/aau)
  220. endphoneme
  221. phoneme @
  222. vowel starttype #@ endtype #@
  223. length 200
  224. IF nextPh(N) THEN
  225. FMT(vowel/@_bck)
  226. ENDIF
  227. FMT(vowel/3_2)
  228. endphoneme
  229. phoneme @r //tmp use V3_r
  230. vowel starttype #@ endtype #@
  231. length 350
  232. FMT(vowelr/V3_r)
  233. endphoneme
  234. phoneme E
  235. vowel starttype #e endtype #e
  236. length 250
  237. FMT(vowel/ee_2)
  238. endphoneme
  239. phoneme ei
  240. vowel starttype #e endtype #i
  241. length 250
  242. FMT(vdiph2/ei_4)
  243. endphoneme
  244. phoneme i
  245. vowel starttype #i endtype #i
  246. length 250
  247. IF nextPh(N) THEN
  248. FMT(vowel/ii_2)
  249. ENDIF
  250. IF nextPh(n) THEN
  251. FMT(vowel/ii_5)
  252. ENDIF
  253. FMT(vowel/i)
  254. endphoneme
  255. phoneme i[ //after ts tsh s
  256. vowel starttype #i endtype #i
  257. length 250
  258. FMT(vowel/i#_7)
  259. endphoneme
  260. phoneme i. //after ts. ts.h s. z.
  261. vowel starttype #i endtype #i
  262. length 250
  263. FMT(vowel/i#_6)
  264. endphoneme
  265. phoneme iA //try more before N
  266. vowel starttype #i endtype #a
  267. length 250
  268. FMT(vwl_zh/iaa)
  269. endphoneme
  270. phoneme iAu
  271. vowel starttype #i endtype #u
  272. length 250
  273. FMT(vwl_zh/iaau)
  274. endphoneme
  275. phoneme iE
  276. vowel starttype #i endtype #e
  277. length 250
  278. FMT(vwl_zh/ie)
  279. endphoneme
  280. phoneme io
  281. vowel starttype #i endtype #o
  282. length 250
  283. FMT(vdiph2/iioo)
  284. endphoneme
  285. phoneme iou
  286. vowel starttype #i endtype #u
  287. length 250
  288. FMT(vwl_zh/iou)
  289. endphoneme
  290. phoneme o
  291. vowel starttype #o endtype #o
  292. length 250
  293. IF nextPh(N) THEN
  294. FMT(vnasal/oo_n2)
  295. ENDIF
  296. FMT(vdiph2/o_oo)
  297. endphoneme
  298. phoneme o-
  299. vowel starttype #o endtype #o
  300. length 250
  301. FMT(vowel/8)
  302. endphoneme
  303. phoneme ou
  304. vowel starttype #o endtype #u
  305. length 250
  306. FMT(vdiph/8u)
  307. endphoneme
  308. phoneme ong
  309. vowel starttype #o endtype #o
  310. length 500
  311. FMT(vwl_zh/ong)
  312. endphoneme
  313. phoneme u //try more before N
  314. vowel starttype #u endtype #u
  315. length 250
  316. IF nextPh(N) THEN
  317. FMT(vnasal/u_n)
  318. ENDIF
  319. FMT(vowel/u_bck)
  320. endphoneme
  321. phoneme uA
  322. vowel starttype #u endtype #a
  323. length 250
  324. FMT(vwl_zh/uaa)
  325. endphoneme
  326. phoneme ua
  327. vowel starttype #u endtype #a
  328. length 250
  329. FMT(vdiph2/oa)
  330. endphoneme
  331. phoneme uai
  332. vowel starttype #u endtype #i
  333. length 250
  334. FMT(vwl_zh/uai)
  335. endphoneme
  336. phoneme u@
  337. vowel starttype #u endtype #@
  338. length 230
  339. FMT(vdiph2/o@)
  340. endphoneme
  341. phoneme uei
  342. vowel starttype #u endtype #i
  343. length 250
  344. FMT(vwl_zh/uei)
  345. endphoneme
  346. phoneme uo
  347. vowel starttype #u endtype #o
  348. length 280
  349. FMT(vwl_zh/uo)
  350. endphoneme
  351. phoneme y
  352. vowel starttype #i endtype #u
  353. length 250
  354. IF nextPh(N) THEN
  355. FMT(vowel/uu_3)
  356. ENDIF
  357. FMT(vowel/y_2)
  358. endphoneme
  359. phoneme yu //try more before N
  360. vowel starttype #i endtype #u
  361. length 250
  362. FMT(vdiph2/yu)
  363. endphoneme
  364. phoneme y&
  365. vowel starttype #i endtype #e
  366. length 250
  367. FMT(vwl_zh/y&)
  368. endphoneme
  369. phoneme yE //try more so not similar to iE
  370. vowel starttype #i endtype #e
  371. length 250
  372. FMT(vwl_zh/yee)
  373. endphoneme
  374. phoneme y@
  375. vowel starttype #i endtype #@
  376. length 250
  377. FMT(vdiph2/y@)
  378. endphoneme
  379. phoneme yi
  380. vowel starttype #i endtype #i
  381. length 250
  382. FMT(vdiph/yi)
  383. endphoneme