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 8.4KB

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