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_hindi 7.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488
  1. //====================================================
  2. // Hindi
  3. //====================================================
  4. phoneme : // Lengthen the previous vowel by "length"
  5. virtual
  6. length 100
  7. endphoneme
  8. phoneme @
  9. vowel starttype #@ endtype #@
  10. length 130
  11. ChangeIfDiminished(@-)
  12. IF nextPh(H) THEN
  13. FMT(vowel/@_low)
  14. ENDIF
  15. FMT(vowel/@_bck)
  16. endphoneme
  17. phoneme @/
  18. vowel starttype #@ endtype #@
  19. length 130
  20. FMT(vowel/@_bck)
  21. endphoneme
  22. phoneme V
  23. vowel starttype #@ endtype #@
  24. length 130
  25. ChangeIfNotStressed(@)
  26. IF nextPh(H) THEN
  27. FMT(vowel/@_low)
  28. ENDIF
  29. FMT(vowel/V_3)
  30. endphoneme
  31. phoneme @2
  32. vowel starttype #@ endtype #@
  33. length 130
  34. FMT(vowel/@_low)
  35. endphoneme
  36. phoneme @3
  37. vowel starttype #@ endtype #@
  38. length 130
  39. ChangeIfDiminished(@-)
  40. FMT(vowel/@_3)
  41. endphoneme
  42. phoneme @4
  43. vowel starttype #@ endtype #@
  44. length 130
  45. FMT(vowel/@)
  46. endphoneme
  47. phoneme i:
  48. vowel long starttype #i endtype #i
  49. length 230
  50. IfNextVowelAppend(;)
  51. FMT(vowel/i_fnt)
  52. endphoneme
  53. phoneme i // as [i:] but not marked as 'long'
  54. vowel starttype #i endtype #i
  55. length 230
  56. IfNextVowelAppend(;)
  57. FMT(vowel/i_6)
  58. endphoneme
  59. phoneme I
  60. vowel starttype #i endtype #i
  61. length 100
  62. IfNextVowelAppend(;)
  63. FMT(vowel/ii_3)
  64. endphoneme
  65. phoneme e:
  66. vowel long starttype #e endtype #e
  67. length 220
  68. FMT(vowel/e_2)
  69. endphoneme
  70. phoneme e
  71. vowel starttype #e endtype #e
  72. length 130
  73. FMT(vowel/e_2)
  74. endphoneme
  75. phoneme E:
  76. vowel long starttype #e endtype #e
  77. length 220
  78. FMT(vdiph/ee-e)
  79. endphoneme
  80. phoneme E
  81. vowel starttype #e endtype #e
  82. length 130
  83. FMT(vowel/e_mid)
  84. endphoneme
  85. phoneme &:
  86. vowel long starttype #a endtype #a
  87. length 220
  88. FMT(vowel/&)
  89. endphoneme
  90. phoneme a:
  91. vowel long starttype #a endtype #a
  92. length 230
  93. FMT(vowel/aa_9)
  94. endphoneme
  95. phoneme a
  96. vowel long starttype #a endtype #a
  97. length 130
  98. FMT(vowel/a#_3)
  99. endphoneme
  100. phoneme o:
  101. vowel long starttype #o endtype #o
  102. length 220
  103. FMT(vowel/o_2)
  104. endphoneme
  105. phoneme o
  106. vowel starttype #o endtype #o
  107. length 130
  108. FMT(vowel/o)
  109. endphoneme
  110. phoneme O:
  111. vowel long starttype #o endtype #o
  112. length 210
  113. FMT(vowel/oo_4)
  114. endphoneme
  115. phoneme O
  116. vowel starttype #o endtype #o
  117. length 130
  118. FMT(vowel/0)
  119. endphoneme
  120. phoneme U
  121. vowel starttype #u endtype #u
  122. length 120
  123. FMT(vowel/uu_bck)
  124. endphoneme
  125. phoneme u:
  126. vowel long starttype #u endtype #u
  127. length 230
  128. FMT(vowel/u_bck)
  129. endphoneme
  130. // Nasal vowels
  131. //=============
  132. phoneme i~
  133. vowel long starttype #i endtype #i
  134. length 220
  135. FMT(vnasal/i_n2)
  136. endphoneme
  137. phoneme I~
  138. vowel long starttype #i endtype #i
  139. length 170
  140. FMT(vnasal/ii_n)
  141. endphoneme
  142. phoneme e~
  143. vowel long starttype #e endtype #e
  144. length 220
  145. FMT(vnasal/e_n)
  146. endphoneme
  147. phoneme E~
  148. vowel long starttype #e endtype #e
  149. length 230
  150. FMT(vnasal/ee_n2)
  151. endphoneme
  152. phoneme a~
  153. vowel long starttype #a endtype #a
  154. length 250
  155. FMT(vnasal/aa_n)
  156. endphoneme
  157. phoneme V~
  158. vowel long starttype #@ endtype #@
  159. length 250
  160. FMT(vnasal/V_n)
  161. endphoneme
  162. phoneme O~
  163. vowel long starttype #o endtype #o
  164. length 230
  165. FMT(vnasal/oo_n2)
  166. endphoneme
  167. phoneme o~
  168. vowel long starttype #o endtype #o
  169. length 220
  170. FMT(vnasal/o_n)
  171. endphoneme
  172. phoneme U~
  173. vowel starttype #u endtype #u
  174. length 170
  175. FMT(vnasal/u_n)
  176. endphoneme
  177. phoneme u~
  178. vowel long starttype #u endtype #u
  179. length 230
  180. FMT(vnasal/u_n)
  181. endphoneme
  182. // Diphthongs
  183. //===========
  184. phoneme aI
  185. vowel long starttype #@ endtype #i
  186. length 240
  187. long
  188. FMT(vdiph/&i)
  189. endphoneme
  190. phoneme aU
  191. vowel long starttype #a endtype #u
  192. length 240
  193. long
  194. FMT(vdiph/aau_3)
  195. endphoneme
  196. // CONSONANTS
  197. //===========
  198. phoneme v // approximant, not fricative
  199. import_phoneme base/v#
  200. voicingswitch f
  201. endphoneme
  202. phoneme H // use for full "h"
  203. import_phoneme base/h
  204. endphoneme
  205. // bilabial plosives
  206. //==================
  207. phoneme p
  208. import_phoneme consonants/p-
  209. endphoneme
  210. phoneme ph
  211. import_phoneme consonants/ph
  212. endphoneme
  213. phoneme b // this is [b]
  214. import_phoneme base/b
  215. endphoneme
  216. phoneme bh
  217. vcd blb stop
  218. lengthmod 5
  219. voicingswitch ph
  220. Vowelin f1=0 f2=1000 -50 -100 f3=-200 80
  221. Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=30
  222. IF PreVoicing THEN
  223. FMT(b/xb)
  224. ENDIF
  225. FMT( b/xb) addWav(ustop/p_asp, 70)
  226. endphoneme
  227. // dental plosives
  228. //==================
  229. phoneme t // dental variant of /t/
  230. import_phoneme base/t[
  231. voicingswitch d
  232. endphoneme
  233. phoneme th // dental variant of /t/
  234. vls dnt stop
  235. lengthmod 2
  236. voicingswitch d
  237. Vowelin f1=0 f2=1500 -300 300 f3=-100 80 amp=16
  238. Vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20
  239. IF nextPh(isPause2) THEN
  240. WAV(ustop/t_dnt, 35)
  241. ENDIF
  242. WAV(ustop/t_dnt, 50)
  243. endphoneme
  244. phoneme d // dental variant of /d/
  245. import_phoneme base/d[
  246. voicingswitch t
  247. endphoneme
  248. phoneme dh
  249. vcd dnt stop
  250. lengthmod 5
  251. voicingswitch th
  252. Vowelin f1=0 f2=1500 -300 300 f3=-100 80
  253. Vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20
  254. IF PreVoicing THEN
  255. FMT(d/xd)
  256. ENDIF
  257. FMT(d/xd3) addWav(ustop/t_dnt, 40)
  258. endphoneme
  259. // retroflex plosives
  260. //===================
  261. phoneme t.
  262. vls rfx stop
  263. lengthmod 2
  264. ipa ʈ
  265. voicingswitch d.
  266. Vowelin f1=0 f2=1800 -300 300 f3=-400 80
  267. Vowelout f1=0 f2=1800 -300 250 f3=-400 80 rms=20 colr=2
  268. WAV(ustop/t_short)
  269. endphoneme
  270. phoneme th.
  271. vls rfx stop
  272. lengthmod 2
  273. ipa ʈh
  274. voicingswitch dh.
  275. Vowelin f1=0 f2=1800 -300 300 f3=-400 80
  276. Vowelout f1=0 f2=1800 -300 250 f3=-400 80 rms=20 colr=2
  277. // WAV(ustop/th_rfx)
  278. WAV(ustop/t)
  279. endphoneme
  280. phoneme d.
  281. vcd rfx stop
  282. lengthmod 5
  283. voicingswitch t.
  284. ipa ɖ
  285. Vowelin f1=1 f2=1800 -300 300 f3=-400 80
  286. Vowelout f1=1 f2=1800 -300 300 f3=-400 80 colr=2
  287. IF PreVoicing THEN
  288. FMT(d/xd)
  289. ENDIF
  290. IF nextPh(isPause2) THEN
  291. FMT(d/d_) addWav(x/d_)
  292. ENDIF
  293. FMT(d/dr) addWav(x/d)
  294. endphoneme
  295. phoneme dh.
  296. vcd rfx stop
  297. lengthmod 5
  298. ipa ɖh
  299. voicingswitch th.
  300. Vowelin f1=1 f2=1800 -300 300 f3=-400 80
  301. Vowelout f1=1 f2=1800 -300 300 f3=-400 80 colr=2
  302. IF PreVoicing THEN
  303. FMT(d/xd)
  304. ENDIF
  305. FMT(d/dr) addWav(ustop/t)
  306. // FMT(d/dr) addWav(ustop/th_rfx)
  307. endphoneme
  308. // palatal plosives
  309. //=================
  310. // also try [tS] and [dZ]
  311. phoneme c
  312. import_phoneme base/c
  313. endphoneme
  314. phoneme ch
  315. CALL base/tS;
  316. ipa ch
  317. endphoneme
  318. phoneme J
  319. import_phoneme base/J
  320. endphoneme
  321. phoneme Jh
  322. vcd pal afr sibilant
  323. lengthmod 5
  324. voicingswitch ch
  325. Vowelin f1=0 f2=2700 400 600 f3=300 80 rate len=70
  326. Vowelout f1=0 f2=2700 400 600 f3=300 80 colr=1
  327. IF PreVoicing THEN
  328. FMT(dzh/xdz_pzd)
  329. ENDIF
  330. FMT(dzh/xdz_pzd) addWav(ustop/ts_pzd)
  331. endphoneme
  332. // velar plosives
  333. //==================
  334. phoneme k
  335. import_phoneme consonants/k-
  336. voicingswitch g
  337. endphoneme
  338. phoneme kh
  339. import_phoneme consonants/kh
  340. voicingswitch gh
  341. endphoneme
  342. phoneme g
  343. import_phoneme base/g
  344. voicingswitch k
  345. endphoneme
  346. phoneme gh
  347. vcd dnt stop
  348. lengthmod 5
  349. voicingswitch kh
  350. Vowelin f1=1 f2=2300 200 300 f3=-150 80 rms=20
  351. Vowelout f1=0 f2=2300 300 400 f3=-150 80 rms=20
  352. IF PreVoicing THEN
  353. FMT(g2/xg)
  354. ENDIF
  355. FMT(g2/xg) addWav(ustop/k_asp, 70)
  356. endphoneme
  357. //================
  358. phoneme #X2 // click, use for indicating combining long vowels
  359. vls alv frc sibilant
  360. lengthmod 3
  361. WAV(ustop/percus02)
  362. endphoneme