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_cmn 8.7KB

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