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.

phonemes 31KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824
  1. // This is the master phoneme file.
  2. // The base phoneme table contains the utility phonemes, the consonants,
  3. // and a schwa. The vowels are defined in the language specific phoneme
  4. // tables, which can also redefine consonants if they wish.
  5. //*******************************************************************
  6. // UTILITY PHONEMES
  7. //*******************************************************************
  8. phoneme % // Unstressed
  9. stress
  10. stress_type 1
  11. endphoneme
  12. phoneme %% // Diminished stress
  13. stress
  14. stress_type 0
  15. endphoneme
  16. phoneme \, // [,] Secondary stress
  17. stress
  18. stress_type 2
  19. endphoneme
  20. phoneme \,\, // [,,] Secondary stress
  21. stress
  22. stress_type 3
  23. endphoneme
  24. phoneme ' // Primary stress
  25. stress
  26. stress_type 4
  27. endphoneme
  28. phoneme '' // Primary stress (priority)
  29. stress
  30. stress_type 5
  31. endphoneme
  32. phoneme '! // Primary stress (emphasized)
  33. stress
  34. stress_type 6
  35. endphoneme
  36. phoneme = // Place stress on previous vowel
  37. stress
  38. stress_type 2
  39. endphoneme
  40. phoneme || // End Word
  41. pause
  42. lengthmod 1
  43. endphoneme
  44. phoneme _ // Short pause
  45. pause
  46. starttype _ endtype _
  47. lengthmod 1
  48. length 25
  49. endphoneme
  50. phoneme _! // Short pause, don't replace by linking
  51. pause
  52. starttype _ endtype _
  53. lengthmod 1
  54. nolink
  55. length 35
  56. endphoneme
  57. phoneme _| // Very short pause
  58. pause
  59. starttype _ endtype _
  60. lengthmod 5
  61. length 1
  62. endphoneme
  63. phoneme _: // Standard pause
  64. pause
  65. starttype _ endtype _
  66. lengthmod 1
  67. length 75
  68. endphoneme
  69. phoneme _:: // Long pause
  70. pause
  71. starttype _ endtype _
  72. lengthmod 1
  73. length 150
  74. endphoneme
  75. phoneme _;_ // clause pause
  76. pause
  77. starttype _ endtype _
  78. lengthmod 1
  79. length 200
  80. endphoneme
  81. phoneme _^_ // Change dictionary (followed by language-code in ascii
  82. pause
  83. starttype _ endtype _
  84. lengthmod 1
  85. length 10
  86. endphoneme
  87. phoneme _X1 // a language specific action
  88. pause
  89. starttype _ endtype _
  90. lengthmod 1
  91. length 10
  92. endphoneme
  93. phoneme ? // glottal stop
  94. vls glt stop
  95. lengthmod 2 // ??
  96. nolink
  97. Vowelin glstop
  98. Vowelout glstop
  99. WAV(ustop/null)
  100. endphoneme
  101. phoneme : // lengthen previous vowel by "length"
  102. virtual
  103. length 70
  104. endphoneme
  105. phoneme - // Indicates the previous phoneme is a syllabic consonant
  106. virtual
  107. endphoneme
  108. // Some default vowel definitions
  109. phoneme @ // Schwa
  110. vowel starttype #@ endtype #@
  111. unstressed
  112. length 140
  113. FMT(vowel/@)
  114. endphoneme
  115. phoneme @- // very short schwa
  116. vowel starttype #@ endtype #@
  117. unstressed nonsyllabic
  118. ipa ə
  119. IF nextPhW(*) THEN
  120. ipa NULL
  121. ENDIF
  122. length 50
  123. FMT(vowel/@-)
  124. endphoneme
  125. phoneme a
  126. vowel starttype #a endtype #a
  127. length 180
  128. FMT(vowel/a)
  129. endphoneme
  130. phoneme e
  131. vowel starttype #e endtype #e
  132. length 170
  133. FMT(vowel/e)
  134. endphoneme
  135. phoneme i
  136. vowel starttype #i endtype #i
  137. length 170
  138. IfNextVowelAppend(;)
  139. FMT(vowel/i)
  140. endphoneme
  141. phoneme o
  142. vowel starttype #o endtype #o
  143. length 170
  144. FMT(vowel/oo)
  145. endphoneme
  146. phoneme u
  147. vowel starttype #u endtype #u
  148. length 170
  149. FMT(vowel/u)
  150. endphoneme
  151. // Syllablic consonants
  152. //=====================
  153. phoneme m-
  154. vowel starttype #@ endtype #@
  155. ipa mU+0329
  156. length 170
  157. IF thisPh(isWordStart) THEN
  158. length 190
  159. ENDIF
  160. IF KlattSynth THEN
  161. FMT(klatt/m-syl)
  162. ENDIF
  163. FMT(m/m-syl)
  164. endphoneme
  165. phoneme n-
  166. vowel starttype #@ endtype #@
  167. ipa nU+0329
  168. length 170
  169. IF thisPh(isWordStart) THEN
  170. length 190
  171. ENDIF
  172. IF KlattSynth THEN
  173. FMT(klatt/n-syl)
  174. ENDIF
  175. FMT(n/n-syl)
  176. endphoneme
  177. phoneme N-
  178. vowel starttype #e endtype #e
  179. ipa ŋU+0329
  180. length 190
  181. FMT(nn/nn-syl)
  182. endphoneme
  183. //*******************************************************************
  184. // Other sounds
  185. //*******************************************************************
  186. phoneme #X1 // click, use for indicating capital letters
  187. vls alv frc sibilant
  188. lengthmod 3
  189. WAV(ustop/percus10)
  190. endphoneme
  191. //*******************************************************************
  192. // VIRTUAL - referred to in vowels' vowel starttype and endtype
  193. // These each apply to a class of vowels
  194. //*******************************************************************
  195. phoneme #@ virtual
  196. endphoneme
  197. phoneme #a virtual
  198. endphoneme
  199. phoneme #e virtual
  200. endphoneme
  201. phoneme #i virtual
  202. endphoneme
  203. phoneme #o virtual
  204. endphoneme
  205. phoneme #u virtual
  206. endphoneme
  207. //*******************************************************************
  208. // SONORANTS
  209. //*******************************************************************
  210. phoneme r- // syllabic r
  211. vowel starttype #@ endtype #@
  212. ipa rU+0329
  213. unstressed
  214. length 220
  215. FMT(vowelr/r-voc)
  216. endphoneme
  217. phoneme l- // syllabic l
  218. vowel starttype #@ endtype #@
  219. ipa lU+0329
  220. unstressed
  221. length 200
  222. FMT(vwl_hi/l-voc)
  223. endphoneme
  224. phoneme r
  225. liquid rhotic
  226. ipa ɹ
  227. lengthmod 7
  228. IF nextPh(isNotVowel) THEN
  229. ChangePhoneme(r/)
  230. ENDIF
  231. NextVowelStarts
  232. VowelStart(r/r@, -15)
  233. VowelStart(r/ra, -15)
  234. VowelStart(r/re, -15)
  235. VowelStart(r/ri, -15)
  236. VowelStart(r/ro, -15)
  237. VowelStart(r/ru, -15)
  238. EndSwitch
  239. IF prevPh(isVowel) THEN
  240. VowelEnding(r/xr, -50)
  241. ENDIF
  242. IF prevPh(isPause) THEN
  243. FMT(r/_r)
  244. ELIF prevPh(t) OR prevPh(p) OR prevPh(k) THEN
  245. FMT(r/tr)
  246. ENDIF
  247. FMT(r/r)
  248. endphoneme
  249. phoneme r/ // used for [r] when not preceding a vowel
  250. liquid rhotic
  251. lengthmod 2
  252. IF nextPh(n) THEN
  253. FMT(r3/r_n) addWav(r3/rx)
  254. ENDIF
  255. IF prevPh(t) OR prevPh(p) OR prevPh(k) THEN
  256. FMT(r/trr)
  257. ENDIF
  258. IF prevPh(isNotVowel) THEN
  259. FMT(r/rr)
  260. ENDIF
  261. FMT(r3/r_) addWav(r3/rx)
  262. endphoneme
  263. phoneme R
  264. liquid
  265. trill
  266. lengthmod 6
  267. ipa r
  268. IF nextPhW(R2) THEN
  269. ipa NULL
  270. ENDIF
  271. Vowelin f1=0 f2=1600 -300 300 f3=-200 80
  272. Vowelout f1=2 f2=1600 -300 300 f3=-200 80 brk
  273. FMT(r3/r_trill2) addWav(r3/r_trill2.wav, 65)
  274. endphoneme
  275. phoneme R2 // this is [R] from Slovak/Czech
  276. liquid
  277. trill
  278. lengthmod 6
  279. ipa r
  280. Vowelin f1=0 f2=1700 -300 300 f3=-300 80
  281. Vowelout f1=2 f2=1700 -300 300 f3=-300 80 brk
  282. FMT(r3/r_trill) addWav(r3/r_trill.wav, 50)
  283. endphoneme
  284. phoneme R3 // Afrikaans
  285. liquid
  286. trill
  287. lengthmod 6
  288. length 60
  289. ipa r
  290. Vowelin f1=2 f2=2700 -300 -200 f3=-1300 80
  291. Vowelout f1=2 f2=1700 -300 -200 f3=-1300 80
  292. // vowel modifier is the same as for [r]
  293. NextVowelStarts
  294. VowelStart(r/r@, -15)
  295. VowelStart(r/ra, -15)
  296. VowelStart(r/re, -15)
  297. VowelStart(r/ri, -15)
  298. VowelStart(r/ro, -15)
  299. VowelStart(r/ru, -15)
  300. EndSwitch
  301. IF prevPh(isVowel) THEN
  302. VowelEnding(r/xr, -50)
  303. ENDIF
  304. FMT(r3/r_trill) addWav(r3/r_trill3.wav)
  305. endphoneme
  306. phoneme r" // uvular trill
  307. vcd uvl frc
  308. ipa ʀ
  309. lengthmod 6
  310. IF nextPh(isNotVowel) THEN
  311. FMT(r3/r_uvl) addWav(r3/r_uvl.wav, 50)
  312. ENDIF
  313. FMT(r3/r_uvl) addWav(r3/r_uvl.wav, 75)
  314. endphoneme
  315. procedure vowelstart_l
  316. NextVowelStarts
  317. VowelStart(l/l@)
  318. VowelStart(l/la)
  319. VowelStart(l/le)
  320. VowelStart(l/li, -10)
  321. VowelStart(l/lo)
  322. VowelStart(l/lu)
  323. EndSwitch
  324. endprocedure
  325. phoneme l
  326. liquid
  327. lengthmod 7
  328. IF nextPh(isNotVowel) THEN
  329. ChangePhoneme(l/)
  330. ENDIF
  331. CALL vowelstart_l
  332. IF prevPh(#@) THEN
  333. VowelEnding(l/xl, -50)
  334. ELIF prevPh(isVowel) THEN
  335. VowelEnding(l/xl, -40)
  336. ENDIF
  337. IF prevPh(isPause) THEN
  338. FMT(l/_l)
  339. ENDIF
  340. IF prevPh(t) THEN
  341. FMT(l/tl)
  342. ENDIF
  343. IF prevPh(l/) THEN
  344. FMT(l/l_long) // double l, make it longer
  345. ENDIF
  346. FMT(l/l)
  347. endphoneme
  348. phoneme l/ // used for [l] when not before a vowel
  349. liquid
  350. lengthmod 7
  351. IF nextPh(isVowel) THEN
  352. ChangePhoneme(l)
  353. ENDIF
  354. PrevVowelEndings
  355. VowelEnding(l/L1_@L, -60)
  356. VowelEnding(l/L1_aL, -40)
  357. VowelEnding(l/L1_eL, -30)
  358. VowelEnding(l/L1_iL, -30)
  359. VowelEnding(l/L1_oL, -40)
  360. VowelEnding(l/L1_uL, -40)
  361. EndSwitch
  362. FMT(l/l_)
  363. endphoneme
  364. phoneme l/2 // 'dark' [l] after a vowel
  365. liquid
  366. lengthmod 7
  367. IF nextPh(isVowel) THEN
  368. ChangePhoneme(l)
  369. ENDIF
  370. CALL vowelstart_l
  371. PrevVowelEndings
  372. VowelEnding(l/L2_@L, -60)
  373. VowelEnding(l/L2_aL, -50)
  374. VowelEnding(l/L2_eL, -40)
  375. VowelEnding(l/L2_iL, -30)
  376. VowelEnding(l/L2_oL, -50)
  377. VowelEnding(l/L2_uL, -40)
  378. EndSwitch
  379. endphoneme
  380. phoneme l/3 // Replacement for [l/]
  381. liquid
  382. lengthmod 7
  383. IF nextPh(isVowel) THEN
  384. ChangePhoneme(l)
  385. ENDIF
  386. PrevVowelEndings
  387. VowelEnding(l/l_@)
  388. VowelEnding(l/l_a)
  389. VowelEnding(l/l_e)
  390. VowelEnding(l/l_i)
  391. VowelEnding(l/l_o)
  392. VowelEnding(l/l_u, -20)
  393. EndSwitch
  394. // IF nextPh(isLiquid) THEN
  395. // FMT(l/_l)
  396. // ENDIF
  397. FMT(l/l_)
  398. endphoneme
  399. phoneme l^ // palatal l
  400. liquid
  401. ipa ʎ
  402. lengthmod 7
  403. Vowelout len=60 lenadd rate
  404. length 100
  405. NextVowelStarts
  406. VowelStart(l^/j2@)
  407. VowelStart(l^/j2a)
  408. VowelStart(l^/j2e)
  409. VowelStart(l^/j2i)
  410. VowelStart(l^/j2o)
  411. VowelStart(l^/j2u)
  412. EndSwitch
  413. IF prevPh(isPause) THEN
  414. FMT(l^/_l^)
  415. ENDIF
  416. FMT(l^/l^)
  417. endphoneme
  418. phoneme l.
  419. liquid rfx
  420. ipa ɭ
  421. lengthmod 7
  422. FMT(l^/l_rfx)
  423. endphoneme
  424. phoneme w
  425. liquid
  426. lengthmod 7
  427. IF nextPh(isVowel) THEN
  428. NextVowelStarts
  429. VowelStart(w/w@)
  430. VowelStart(w/wa)
  431. VowelStart(w/we)
  432. VowelStart(w/wi)
  433. VowelStart(w/wo)
  434. VowelStart(w/wu)
  435. EndSwitch
  436. VowelEnding(w/xw, -30)
  437. IF prevPh(isPause) THEN
  438. FMT(w/_w)
  439. ELSE
  440. FMT(w/_w)
  441. ENDIF
  442. ELSE
  443. // no vowel follows
  444. Vowelout len=50
  445. IF prevPh(#i) THEN
  446. FMT(w/iw_)
  447. ENDIF
  448. FMT(w/w_)
  449. ENDIF
  450. endphoneme
  451. phoneme j
  452. liquid palatal
  453. lengthmod 7
  454. IF nextPhW(isVowel) THEN
  455. NextVowelStarts
  456. VowelStart(j/j@)
  457. VowelStart(j/ja)
  458. VowelStart(j/je)
  459. VowelStart(j/ji)
  460. VowelStart(j/jo)
  461. VowelStart(j/ju)
  462. EndSwitch
  463. VowelEnding(j/xj, -30)
  464. IF prevPh(isPause) THEN
  465. FMT(j/_j)
  466. ENDIF
  467. ELSE
  468. // no vowel follows
  469. Vowelout len=70
  470. FMT(j/j_)
  471. ENDIF
  472. endphoneme
  473. phoneme ; // linking j, used between (i) vowels and a following vowel
  474. // also to palatalize consonants
  475. liquid palatal
  476. lengthmod 0
  477. IF prevPh(#i) THEN
  478. ipa NULL // linking after i vowel, don't show in ipa
  479. ENDIF
  480. IF nextPh(isNotVowel) THEN
  481. ChangePhoneme(NULL) // this is to ignore this phoneme if not before a vowel
  482. ENDIF
  483. NextVowelStarts
  484. VowelStart(j2/j2@)
  485. VowelStart(j2/j2a)
  486. VowelStart(j2/j2e)
  487. VowelStart(j2/j2i)
  488. VowelStart(j2/j2o)
  489. VowelStart(j2/j2u)
  490. EndSwitch
  491. IF prevPh(#i) THEN
  492. VowelEnding(j2/xj2, -40)
  493. ENDIF
  494. IF prevPh(isPause) THEN
  495. FMT(j2/_j2)
  496. ENDIF
  497. endphoneme
  498. //*******************************************************************
  499. // NASAL CONSONANTS
  500. //*******************************************************************
  501. phoneme m
  502. vcd blb nasal
  503. Vowelout f1=2 f2=1000 -500 -350 f3=-200 80 brk
  504. lengthmod 4
  505. IF KlattSynth THEN
  506. Vowelin f1=0 f2=1000 -50 -200 f3=-200 80
  507. IF nextPh(isPause2) THEN
  508. FMT(klatt/m_)
  509. ENDIF
  510. FMT(klatt/m)
  511. ENDIF
  512. NextVowelStarts
  513. VowelStart(m/m@)
  514. VowelStart(m/ma)
  515. VowelStart(m/me)
  516. VowelStart(m/mi)
  517. VowelStart(m/mo)
  518. VowelStart(m/mu)
  519. EndSwitch
  520. IF prevPh(isNotVowel) AND nextPhW(isLiquid) THEN
  521. FMT(m/mj)
  522. ELIF prevPh(isPause) THEN
  523. FMT(m/_m)
  524. ELIF nextPh(isNotVowel) THEN
  525. FMT(m/m_)
  526. ENDIF
  527. endphoneme
  528. phoneme n
  529. vcd alv nasal
  530. Vowelout f1=2 f2=1700 -300 250 f3=-100 80 rms=20 brk
  531. lengthmod 4
  532. IF KlattSynth THEN
  533. Vowelin f1=0 f2=1500 -200 200 f3=0 80
  534. FMT(klatt/n)
  535. ENDIF
  536. NextVowelStarts
  537. VowelStart(n/n@)
  538. VowelStart(n/na)
  539. VowelStart(n/ne)
  540. VowelStart(n/ni)
  541. VowelStart(n/no)
  542. VowelStart(n/nu)
  543. EndSwitch
  544. IF prevPh(isNotVowel) AND nextPhW(isLiquid) THEN
  545. FMT(n/nj)
  546. ELIF prevPh(isPause) OR prevPh(n) THEN
  547. FMT(n/_n)
  548. ELIF nextPh(isNotVowel) THEN
  549. FMT(n/n_)
  550. ENDIF
  551. endphoneme
  552. phoneme n.
  553. vcd rfx nasal
  554. ipa ɳ
  555. starttype n endtype n
  556. Vowelin f1=2 f2=1200 -300 250 f3=-500 80 rms=20 colr=2
  557. Vowelout f1=2 f2=1200 -300 250 f3=-500 80 rms=20 brk colr=2
  558. lengthmod 4
  559. IF KlattSynth THEN
  560. FMT(klatt/nr)
  561. ENDIF
  562. NextVowelStarts
  563. VowelStart(n/n@)
  564. VowelStart(n/na)
  565. VowelStart(n/ne)
  566. VowelStart(n/ni)
  567. VowelStart(n/no)
  568. VowelStart(n/nu)
  569. EndSwitch
  570. IF prevPh(isNotVowel) AND nextPhW(isLiquid) THEN
  571. FMT(n/nj)
  572. ELIF prevPh(isPause) OR prevPh(n.) THEN
  573. FMT(n/_nr)
  574. ELIF nextPh(isNotVowel) THEN
  575. FMT(n/nr_)
  576. ENDIF
  577. endphoneme
  578. phoneme n^
  579. vcd pal nasal palatal
  580. ipa ɲ
  581. Vowelout f1=3 f2=2500 300 500 f3=100 80 len=45 brk rate
  582. lengthmod 4
  583. IF KlattSynth THEN
  584. VowelStart(klatt/n^@)
  585. FMT(klatt/n^)
  586. ENDIF
  587. NextVowelStarts
  588. VowelStart(n^/n^@)
  589. VowelStart(n^/n^a)
  590. VowelStart(n^/n^e)
  591. VowelStart(n^/n^i)
  592. VowelStart(n^/n^o)
  593. VowelStart(n^/n^u)
  594. EndSwitch
  595. IF prevPh(isPause) THEN
  596. FMT(n^/_n^)
  597. ELIF nextPh(isNotVowel) THEN
  598. IF nextPhW(n^) THEN
  599. Length 75
  600. ELIF prevPhW(n^) THEN
  601. Length 100
  602. ENDIF
  603. FMT(n^/n^_)
  604. ENDIF
  605. endphoneme
  606. phoneme N
  607. vcd vel nasal
  608. Vowelout f1=3 f2=2300 300 400 f3=-200 80 len=40 rms=20 brk
  609. lengthmod 8 // longer than 'n'
  610. IF KlattSynth THEN
  611. Vowelin f1=0 f2=2100 50 300 f3=0 80
  612. FMT(klatt/nn)
  613. ENDIF
  614. NextVowelStarts
  615. VowelStart(nn/nn@)
  616. VowelStart(nn/nna)
  617. VowelStart(nn/nne)
  618. VowelStart(nn/nni)
  619. VowelStart(nn/nno)
  620. VowelStart(nn/nnu)
  621. EndSwitch
  622. IF prevPh(#i) THEN
  623. VowelEnding(nn/inn, -40)
  624. ENDIF
  625. IF prevPh(isNotVowel) AND nextPhW(isLiquid) THEN
  626. FMT(nn/nnj)
  627. ELIF prevPh(isPause) THEN
  628. FMT(nn/_nn)
  629. ELIF nextPh(isNotVowel) THEN
  630. FMT(nn/nn_)
  631. ENDIF
  632. endphoneme
  633. phoneme ** // TEST flap
  634. liquid alv
  635. ipa ɾ
  636. lengthmod 3
  637. Vowelout f1=3 f2=1600 -300 300 f3=-300 80 rms=35 len=15
  638. Vowelin f1=2 f2=1600 -300 300 f3=-100 80 len=20
  639. IF prevPh(#i) OR prevPh(#e) THEN
  640. FMT(r3/@tap2)
  641. ENDIF
  642. FMT(r3/@tap)
  643. endphoneme
  644. phoneme * // flap
  645. vcd alv flp
  646. brkafter
  647. ipa ɾ
  648. lengthmod 3
  649. IF prevPhW(@-) THEN
  650. ipa r // @-* sequence for [r]
  651. ENDIF
  652. IF nextPh(#e) OR nextPh(#i) THEN
  653. Vowelin f1=0 f2=1500 -300 300 f3=-200 80
  654. FMT(d/tap1) addWav(r3/rx, 150)
  655. FMT(d/tap1) addWav(r3/rx, 150)
  656. ENDIF
  657. Vowelin f1=2 f2=1500 -300 300 f3=-200 80
  658. IF nextPh(#a) THEN
  659. FMT(d/tap3) addWav(r3/rx, 200)
  660. ENDIF
  661. IF nextPh(r) THEN
  662. FMT(d/dr)
  663. ENDIF
  664. Vowelout f1=3 f2=1500 -400 300 f3=-200 80 rms=35 len=50
  665. Vowelin f1=0 f2=1500 -300 300 f3=-200 80
  666. FMT(d/tap3) addWav(r3/rx, 200)
  667. endphoneme
  668. phoneme r. // retroflex
  669. liquid rfx
  670. lengthmod 3
  671. Vowelout f1=3 f2=1400 -400 300 f3=-400 80 rms=35 len=15 colr=2
  672. Vowelin f1=2 f2=1400 -400 300 f3=-400 80 len=20
  673. FMT(r3/@tap_rfx)
  674. endphoneme
  675. //*******************************************************************
  676. // VOICED STOPS
  677. //*******************************************************************
  678. phoneme b
  679. vcd blb stop
  680. voicingswitch p
  681. Vowelout f1=2 f2=1000 -500 -300 f3=-300 80 brk
  682. lengthmod 5
  683. IF PreVoicing THEN
  684. FMT(b/xb)
  685. ENDIF
  686. IF KlattSynth THEN
  687. Vowelin f1=1 f2=1000 -500 -300 f3=-300 80
  688. IF nextPh(isPause2) THEN
  689. FMT(klatt/b) addWav(x/b_)
  690. ENDIF
  691. FMT(klatt/b) addWav(x/b)
  692. ENDIF
  693. IF nextPh(isPause2) THEN
  694. FMT(b/b_) addWav(x/b_)
  695. ELIF nextPh(@-) THEN
  696. FMT(b/b@2) addWav(x/b)
  697. ELIF nextPh(#@) THEN
  698. FMT(b/b@) addWav(x/b)
  699. ELIF nextPh(#a) THEN
  700. FMT(b/ba) addWav(x/b)
  701. ELIF nextPh(#e) THEN
  702. FMT(b/be) addWav(x/b)
  703. ELIF nextPh(#i) THEN
  704. FMT(b/bi) addWav(x/b)
  705. ELIF nextPh(#o) THEN
  706. FMT(b/bo) addWav(x/b)
  707. ELIF nextPh(#u) THEN
  708. FMT(b/bu) addWav(x/b)
  709. ENDIF
  710. FMT(b/b) addWav(x/b)
  711. endphoneme
  712. phoneme d
  713. vcd alv stop
  714. voicingswitch t
  715. lengthmod 5
  716. Vowelin f1=1 f2=1700 -300 300 f3=-100 80
  717. Vowelout f1=2 f2=1700 -300 300 f3=-100 80 brk
  718. IF PreVoicing THEN
  719. FMT(d/xd)
  720. ENDIF
  721. IF nextPh(isPause2) THEN
  722. FMT(d/d_) addWav(x/d_)
  723. // ELIF nextPh(r) THEN
  724. // FMT(d/dr) addWav(x/d)
  725. ENDIF
  726. FMT(d/d) addWav(x/d)
  727. endphoneme
  728. phoneme d[
  729. vcd dnt stop
  730. voicingswitch t[
  731. lengthmod 5
  732. Vowelin f1=2 f2=1500 -300 300 f3=-150 80
  733. Vowelout f1=2 f2=1500 -300 300 f3=-150 80
  734. IF PreVoicing THEN
  735. FMT(d/xd)
  736. ENDIF
  737. IF nextPh(isPause2) THEN
  738. FMT(d/d_) addWav(x/d_)
  739. ELIF nextPh(r) THEN
  740. FMT(d/dr) addWav(x/d_dnt, 110)
  741. ENDIF
  742. FMT(d/d) addWav(x/d_dnt, 110)
  743. endphoneme
  744. phoneme dZ
  745. vcd pla afr sibilant
  746. voicingswitch tS
  747. lengthmod 5
  748. Vowelin f1=2 f2=2300 200 400 f3=100 80
  749. Vowelout f1=2 f2=2300 250 300 f3=100 80 brk
  750. IF PreVoicing THEN
  751. FMT(dzh/xdzh)
  752. ENDIF
  753. IF nextPh(isPause2) THEN
  754. FMT(dzh/dzh_) addWav(x/dzh_)
  755. ENDIF
  756. FMT(dzh/dzh) addWav(x/dzh)
  757. endphoneme
  758. phoneme dZ;
  759. vcd pla afr sibilant palatal
  760. voicingswitch tS;
  761. ipa dʑ
  762. lengthmod 5
  763. Vowelin f1=2 f2=2700 400 600 f3=300 80 rate len=70
  764. Vowelout f1=2 f2=2700 400 600 f3=300 80
  765. IF PreVoicing THEN
  766. FMT(dzh/xdzh)
  767. ENDIF
  768. IF KlattSynth THEN
  769. IF nextPh(isPause2) THEN
  770. FMT(dzh/dzh_) addWav(x/dzh_)
  771. ENDIF
  772. FMT(dzh/dzh) addWav(x/dz_pzd)
  773. ENDIF
  774. IF nextPh(isPause2) THEN
  775. FMT(dzh/dzh_) addWav(x/dzh_)
  776. ENDIF
  777. FMT(dzh/dzh) addWav(x/dz_pzd)
  778. endphoneme
  779. phoneme J
  780. vcd pal afr sibilant
  781. voicingswitch c
  782. lengthmod 5
  783. Vowelin f1=2 f2=2700 400 600 f3=300 80 rate len=70
  784. Vowelout f1=2 f2=2700 400 600 f3=300 80 colr=1
  785. IF PreVoicing THEN
  786. FMT(dzh/xdz_pzd)
  787. ENDIF
  788. IF KlattSynth THEN
  789. IF nextPh(isPause2) THEN
  790. FMT(klatt/dz_pzd_) addWav(x/dzh, 35)
  791. ENDIF
  792. FMT(klatt/dz_pzd) addWav(x/dzh, 45)
  793. ENDIF
  794. IF nextPh(isPause2) THEN
  795. FMT(dzh/dz_pzd_) addWav(x/dzh, 35)
  796. ENDIF
  797. FMT(dzh/dz_pzd) addWav(x/dzh, 45)
  798. endphoneme
  799. phoneme g
  800. vcd vel stop
  801. voicingswitch k
  802. lengthmod 5
  803. Vowelin f1=2 f2=2300 200 300 f3=-300 80
  804. Vowelout f1=2 f2=2300 250 300 f3=-300 80 brk
  805. IF PreVoicing THEN
  806. FMT(g/xg)
  807. ENDIF
  808. IF nextPh(isPause2) THEN
  809. FMT(g/g_) addWav(x/g_)
  810. ENDIF
  811. FMT(g/g) addWav(x/g2, 150)
  812. endphoneme
  813. //*******************************************************************
  814. // VOICED fricatives
  815. //*******************************************************************
  816. phoneme B
  817. vcd blb frc
  818. voicingswitch f
  819. lengthmod 6
  820. Vowelin f1=2 f2=1000 -300 -200 f3=-100 100
  821. Vowelout f1=2 f2=1000 -500 -300 f3=-100 60 len=50
  822. IF KlattSynth THEN
  823. IF nextPh(isPause2) THEN
  824. FMT(klatt/v_) addWav(vocw/v)
  825. ENDIF
  826. FMT(klatt/bh) addWav(vocw/v)
  827. ENDIF
  828. IF nextPh(isPause2) THEN
  829. FMT(voc/v_) addWav(vocw/v)
  830. ENDIF
  831. FMT(voc/bh) addWav(vocw/v)
  832. endphoneme
  833. phoneme v
  834. vcd lbd frc
  835. voicingswitch f
  836. lengthmod 6
  837. Vowelin f1=0 f2=1000 -300 -200 f3=-300 100
  838. Vowelout f1=0 f2=1000 -500 -300 f3=-300 60 len=50
  839. IF KlattSynth THEN
  840. Vowelout f1=1 f2=1000 -500 -300 f3=-300 60 len=50 brk
  841. IF nextPh(isPause2) THEN
  842. FMT(klatt/v_) addWav(vocw/v)
  843. ENDIF
  844. FMT(klatt/v) addWav(vocw/v, 150)
  845. ENDIF
  846. IF nextPh(isPause2) THEN
  847. FMT(voc/v_) addWav(vocw/v)
  848. ENDIF
  849. IF thisPh(isWordStart) AND nextPhW(isLiquid) THEN
  850. Length 70
  851. ENDIF
  852. FMT(voc/v) addWav(vocw/v)
  853. endphoneme
  854. phoneme v# // approximant, not fricative
  855. vcd lbd frc
  856. ipa ʋ
  857. lengthmod 6
  858. voicingswitch f
  859. Vowelin f1=0 f2=1000 -300 -200 f3=-300 100
  860. Vowelout f1=0 f2=1000 -500 -300 f3=-300 60 len=50
  861. IF nextPh(isPause2) THEN
  862. FMT(voc/v#_)
  863. ENDIF
  864. FMT(voc/v#)
  865. endphoneme
  866. phoneme D
  867. vcd dnt frc
  868. voicingswitch T
  869. lengthmod 6
  870. Vowelout f1=0 f2=1700 -300 300 f3=-100 60 len=50
  871. IF KlattSynth THEN
  872. Vowelin f1=0 f2=1290 -300 300 f3=0 0
  873. ENDIF
  874. IF nextPh(isPause2) THEN
  875. FMT(voc/dh_) addWav(vocw/dh)
  876. ENDIF
  877. FMT(voc/dh) addWav(vocw/dh)
  878. endphoneme
  879. phoneme z
  880. vcd alv frc sibilant
  881. voicingswitch s
  882. lengthmod 6
  883. Vowelout f1=0 f2=1700 -300 300 f3=-100 60 len=50
  884. IF KlattSynth THEN
  885. Vowelin f1=0 f2=1390 -300 300 f3=0 0
  886. Vowelout f1=1 f2=1390 -300 300 f3=-100 60 len=50 brk
  887. ENDIF
  888. IF nextPh(isPause2) THEN
  889. FMT(voc/z_) addWav(ufric/s_, 85)
  890. ENDIF
  891. FMT(voc/z) addWav(ufric/s_)
  892. endphoneme
  893. phoneme Z
  894. vcd pla frc sibilant
  895. voicingswitch S
  896. lengthmod 6
  897. Vowelin f1=0 f2=2000 0 300 f3=-200 80
  898. Vowelout f1=2 f2=2000 0 300 f3=-200 80 brk
  899. IF KlattSynth THEN
  900. IF nextPh(isPause2) THEN
  901. FMT(klatt/zh_) addWav(vocw/zh)
  902. ENDIF
  903. FMT(klatt/zh) addWav(vocw/zh, 130)
  904. ENDIF
  905. IF nextPh(isPause2) THEN
  906. FMT(voc/zh_) addWav(vocw/zh)
  907. ENDIF
  908. FMT(voc/zh) addWav(vocw/zh, 130)
  909. endphoneme
  910. phoneme z.
  911. vcd pla frc sibilant
  912. ipa ʐ
  913. voicingswitch s.
  914. lengthmod 6
  915. Vowelin f1=0 f2=1800 -100 300 f3=-300 80
  916. Vowelout f1=2 f2=1800 -100 300 f3=-300 80 brk
  917. IF KlattSynth THEN
  918. IF nextPh(isPause2) THEN
  919. FMT(klatt/zh_) addWav(vocw/zh_rfx)
  920. ENDIF
  921. FMT(klatt/zh) addWav(vocw/zh_rfx)
  922. ENDIF
  923. IF nextPh(isPause2) THEN
  924. FMT(voc/zh_) addWav(vocw/zh_rfx)
  925. ENDIF
  926. FMT(voc/zh) addWav(vocw/zh_rfx)
  927. endphoneme
  928. phoneme z;
  929. vcd pal frc sibilant palatal
  930. ipa ʑ
  931. voicingswitch s;
  932. lengthmod 6
  933. Vowelin f1=2 f2=2700 400 600 f3=300 80 rate len=70
  934. Vowelout f1=2 f2=2300 250 300 f3=-300 80 brk
  935. IF nextPh(isPause2) THEN
  936. FMT(voc/z_pzd_) addWav(ufric/s_pzd_, 80)
  937. ENDIF
  938. FMT(voc/z_pzd) addWav(ufric/s_pzd, 80)
  939. endphoneme
  940. phoneme Z;
  941. vcd pal frc sibilant palatal
  942. voicingswitch S;
  943. ipa ʑ
  944. lengthmod 6
  945. Vowelin f1=2 f2=2700 400 600 f3=300 80 rate len=70
  946. Vowelout f1=2 f2=2300 250 300 f3=-300 80 brk
  947. IF nextPh(isPause2) THEN
  948. FMT(voc/z_pzd_) addWav(ufric/sh_pzd_)
  949. ENDIF
  950. FMT(voc/z_pzd) addWav(ufric/sh_pzd, 80)
  951. endphoneme
  952. phoneme J^ // palatal fricative (Kirshenbaum C<vcd>)
  953. vcd pal frc palatal
  954. ipa ʝ
  955. voicingswitch C
  956. lengthmod 6
  957. Vowelin f1=1 f2=2700 400 600 f3=200 70
  958. Vowelout f1=1 f2=2700 400 600 f3=200 70 len=100
  959. FMT(voc/j) addWav(ufric/ch, 25)
  960. endphoneme
  961. phoneme Q
  962. vcd vel frc
  963. voicingswitch x
  964. lengthmod 6
  965. Vowelin f1=2 f2=2300 200 400 f3=-100 80
  966. Vowelout f1=2 f2=2300 250 300 f3=-300 80 brk
  967. IF KlattSynth THEN
  968. IF nextPh(isPause2) THEN
  969. FMT(klatt/qqh_) addWav(vocw/Q_)
  970. ENDIF
  971. FMT(klatt/qqh) addWav(vocw/Q)
  972. ENDIF
  973. IF nextPh(isPause2) THEN
  974. FMT(voc/Q_) addWav(vocw/Q_)
  975. ENDIF
  976. FMT(voc/Q) addWav(vocw/Q)
  977. endphoneme
  978. phoneme Q^
  979. vcd vel frc
  980. lengthmod 6
  981. Vowelin f1=2 f2=2700 400 600 f3=200 80
  982. Vowelout f1=2 f2=2700 40 600 f3=200 80 brk
  983. IF nextPh(isPause2) THEN
  984. FMT(voc/Q_) addWav(vocw/Q_)
  985. ENDIF
  986. FMT(voc/Q) addWav(vocw/Q)
  987. endphoneme
  988. phoneme Q"
  989. vcd uvl frc
  990. ipa ʁ
  991. lengthmod 6
  992. IF nextPh(isPause2) THEN
  993. FMT(voc/Q_ulv) addWav(ufric/xx, 60)
  994. ENDIF
  995. FMT(voc/Q_ulv) addWav(ufric/xx, 80)
  996. endphoneme
  997. //*******************************************************************
  998. // UNVOICED STOPS
  999. //*******************************************************************
  1000. phoneme p
  1001. vls blb stop
  1002. voicingswitch b
  1003. lengthmod 2
  1004. Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 amp=11
  1005. Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=22
  1006. IF nextPh(isPause2) THEN
  1007. WAV(ustop/p_)
  1008. ELIF nextPh(r) THEN
  1009. WAV(ustop/pr, 70)
  1010. ELIF nextPh(R) OR nextPh(R2) THEN
  1011. WAV(ustop/pr)
  1012. ELIF nextPh(@-) THEN
  1013. WAV(ustop/p_unasp)
  1014. ELIF nextPh(l) THEN
  1015. WAV(ustop/pl)
  1016. ENDIF
  1017. WAV(ustop/p)
  1018. endphoneme
  1019. phoneme t
  1020. vls alv stop
  1021. voicingswitch d
  1022. lengthmod 2
  1023. Vowelin f1=0 f2=1700 -300 300 f3=-100 80
  1024. Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
  1025. IF nextPh(isPause2) THEN
  1026. WAV(ustop/t_)
  1027. ELIF nextPh(r) OR nextPh(R) OR nextPh(R2) THEN
  1028. WAV(ustop/tr)
  1029. ELIF nextPh(@-) THEN
  1030. WAV(ustop/t_dnt, 50)
  1031. ENDIF
  1032. WAV(ustop/t, 90)
  1033. endphoneme
  1034. phoneme t[ // dental variant of /t/
  1035. vls dnt stop
  1036. voicingswitch d[
  1037. lengthmod 2
  1038. Vowelin f1=1 f2=1500 -250 250 f3=-100 80 amp=16
  1039. Vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20
  1040. IF nextPh(isPause2) THEN
  1041. WAV(ustop/t_dnt, 35)
  1042. ENDIF
  1043. WAV(ustop/t_hi, 70)
  1044. endphoneme
  1045. phoneme tS
  1046. vls pla afr sibilant
  1047. voicingswitch dZ
  1048. lengthmod 2
  1049. Vowelin f1=0 f2=2300 200 400 f3=-100 80
  1050. IF nextPh(isPause2) THEN
  1051. WAV(ustop/tsh_)
  1052. ENDIF
  1053. WAV(ustop/tsh)
  1054. endphoneme
  1055. phoneme tS;
  1056. vls pal afr sibilant palatal
  1057. voicingswitch dZ;
  1058. ipa tɕ
  1059. lengthmod 2
  1060. Vowelin f1=0 f2=2700 400 600 f3=300 80 rate len=70
  1061. IF nextPh(isPause2) THEN
  1062. WAV(ustop/ts_pzd)
  1063. ENDIF
  1064. WAV(ustop/ts_pzd)
  1065. endphoneme
  1066. phoneme c
  1067. vls pal stop palatal
  1068. voicingswitch J
  1069. lengthmod 2
  1070. Vowelin f1=0 f2=2700 400 600 f3=300 80 rate len=70
  1071. Vowelout f1=1 f2=2700 400 600 f3=200 70 len=50 colr=1
  1072. IF nextPh(isPause2) THEN
  1073. WAV(ustop/t_pzd, 30)
  1074. ENDIF
  1075. WAV(ustop/c, 130)
  1076. endphoneme
  1077. phoneme k
  1078. vls vel stop
  1079. voicingswitch g
  1080. lengthmod 2
  1081. Vowelin f1=0 f2=2300 200 300 f3=-200 80
  1082. Vowelout f1=0 f2=2300 300 400 f3=-200 80 rms=20
  1083. IF KlattSynth THEN
  1084. Vowelout f1=0 f2=2300 200 300 f3=-200 80 rms=20
  1085. ENDIF
  1086. IF nextPh(isPause2) THEN
  1087. WAV(ustop/k_)
  1088. ELIF nextPh(r) OR nextPh(R) OR nextPh(R2) THEN
  1089. WAV(ustop/kr)
  1090. ELIF nextPh(#i) OR nextPh(;) THEN
  1091. WAV(ustop/ki)
  1092. ELIF nextPh(l) THEN
  1093. WAV(ustop/kl)
  1094. ELIF nextPh(@-) THEN
  1095. WAV(ustop/k_unasp, 70)
  1096. ENDIF
  1097. WAV(ustop/k)
  1098. endphoneme
  1099. phoneme q
  1100. vls uvl stop
  1101. lengthmod 2
  1102. Vowelin f1=1 f2=1700 0 200 f3=-300 80 paus f4 rms=30
  1103. Vowelout f1=1 f2=1700 -100 200 f3=-300 80 f4 rms=35
  1104. IF nextPh(isPause2) THEN
  1105. WAV(ustop/q, 40)
  1106. ELIF nextPh(#u) THEN
  1107. WAV(ustop/q_u, 80)
  1108. ENDIF
  1109. WAV(ustop/q, 48)
  1110. endphoneme
  1111. //*******************************************************************
  1112. // UNVOICED fricatives
  1113. //*******************************************************************
  1114. phoneme f
  1115. vls lbd frc
  1116. voicingswitch v
  1117. lengthmod 3
  1118. Vowelout f1=0 f2=1000 -500 -350 f3=-200 80
  1119. IF nextPh(isPause) THEN
  1120. WAV(ufric/f_)
  1121. ENDIF
  1122. WAV(ufric/f)
  1123. endphoneme
  1124. phoneme T
  1125. vls dnt frc
  1126. voicingswitch D
  1127. lengthmod 3
  1128. Vowelin f1=0 f2=1700 -300 300 f3=-100 80
  1129. Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
  1130. IF nextPh(isPause) THEN
  1131. WAV(ufric/th_)
  1132. ENDIF
  1133. WAV(ufric/th)
  1134. endphoneme
  1135. phoneme s
  1136. vls alv frc sibilant
  1137. voicingswitch z
  1138. lengthmod 3
  1139. Vowelin f1=0 f2=1700 -300 300 f3=-100 80
  1140. Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
  1141. IF nextPh(isPause) THEN
  1142. WAV(ufric/s_)
  1143. ELIF nextPh(p) OR nextPh(t) OR nextPh(k) THEN
  1144. WAV(ufric/s!)
  1145. ENDIF
  1146. WAV(ufric/s)
  1147. endphoneme
  1148. phoneme S
  1149. vls pla frc sibilant
  1150. voicingswitch Z
  1151. lengthmod 3
  1152. Vowelin f1=0 f2=2100 100 300 f3=-100 80
  1153. Vowelout f1=0 f2=2100 100 300 f3=-100 80
  1154. IF nextPh(isPause) THEN
  1155. WAV(ufric/sh_)
  1156. ENDIF
  1157. WAV(ufric/sh)
  1158. endphoneme
  1159. phoneme s.
  1160. vls pla frc sibilant
  1161. ipa ʂ
  1162. voicingswitch z.
  1163. lengthmod 3
  1164. Vowelin f1=0 f2=1800 -100 300 f3=-300 80
  1165. Vowelout f1=0 f2=1800 -100 300 f3=-300 80
  1166. IF nextPh(isPause) THEN
  1167. WAV(ufric/sh_rfx, 60)
  1168. ENDIF
  1169. WAV(ufric/sh_rfx, 90)
  1170. endphoneme
  1171. phoneme s;
  1172. vls pal frc sibilant palatal
  1173. ipa ʂ
  1174. voicingswitch z;
  1175. lengthmod 3
  1176. Vowelin f1=1 f2=2700 400 600 f3=200 70 rate len=70
  1177. Vowelout f1=1 f2=2700 400 600 f3=200 70 rate len=70
  1178. IF nextPh(isPause) THEN
  1179. WAV(ufric/s_pzd_)
  1180. ENDIF
  1181. WAV(ufric/s_pzd)
  1182. endphoneme
  1183. phoneme S;
  1184. vls pal frc sibilant palatal
  1185. voicingswitch Z;
  1186. ipa ɕ
  1187. lengthmod 3
  1188. Vowelin f1=1 f2=2700 400 600 f3=200 70 rate len=70
  1189. Vowelout f1=1 f2=2700 400 600 f3=200 70 rate
  1190. IF nextPh(isPause) THEN
  1191. WAV(ufric/sh_pzd_)
  1192. ENDIF
  1193. WAV(ufric/sh_pzd)
  1194. endphoneme
  1195. phoneme l# // Lateral fricative (eg. Welsh "ll")
  1196. vls alv frc
  1197. ipa ɬ
  1198. lengthmod 3
  1199. NextVowelStarts
  1200. VowelStart(l/l@)
  1201. VowelStart(l/la)
  1202. VowelStart(l/le)
  1203. VowelStart(l/li, -10)
  1204. VowelStart(l/lo)
  1205. VowelStart(l/lu)
  1206. EndSwitch
  1207. IF prevPh(isVowel) THEN
  1208. VowelEnding(l/xl, -40)
  1209. ENDIF
  1210. WAV(ufric/l#, 60)
  1211. endphoneme
  1212. phoneme C
  1213. vls pal frc palatal
  1214. lengthmod 3
  1215. Vowelin f1=0 f2=2700 400 600 f3=200 70
  1216. Vowelout f1=0 f2=2700 400 600 f3=200 70 rms=20
  1217. IF nextPh(isPause) THEN
  1218. WAV(ufric/ch_)
  1219. ENDIF
  1220. WAV(ufric/ch)
  1221. endphoneme
  1222. phoneme x
  1223. vls vel frc
  1224. voicingswitch Q
  1225. lengthmod 3
  1226. Vowelin f1=0 f2=2300 200 400 f3=-100 80
  1227. Vowelout f1=0 f2=2300 300 400 f3=-100 80 rms=20
  1228. IF nextPh(isPause) THEN
  1229. WAV(ufric/x, 120)
  1230. ENDIF
  1231. WAV(ufric/x_hr, 30)
  1232. endphoneme
  1233. phoneme X
  1234. vls uvl frc
  1235. voicingswitch Q"
  1236. lengthmod 3
  1237. IF nextPh(isPause) THEN
  1238. WAV(ufric/xx, 70)
  1239. ENDIF
  1240. WAV(ufric/xx)
  1241. endphoneme
  1242. phoneme h
  1243. vls glt apr
  1244. lengthmod 3
  1245. ipa h
  1246. IF nextPh(#@) THEN
  1247. WAV(h/h@)
  1248. ELIF nextPh(#a) THEN
  1249. WAV(h/ha)
  1250. ELIF nextPh(#e) THEN
  1251. WAV(h/he)
  1252. ELIF nextPh(#i) THEN
  1253. WAV(h/hi)
  1254. ELIF nextPh(#o) THEN
  1255. WAV(h/ho)
  1256. ELIF nextPh(#u) THEN
  1257. WAV(h/hu)
  1258. ENDIF
  1259. WAV(h/h_, 70) // no vowel following
  1260. endphoneme
  1261. //*******************************************************************
  1262. // ADDITIONAL PHONEME TABLES
  1263. //*******************************************************************
  1264. phonemetable consonants base
  1265. include ph_consonants
  1266. phonemetable base2 base
  1267. include ph_base2
  1268. phonemetable en base
  1269. include ph_english
  1270. phonemetable en-n en
  1271. include ph_english_n
  1272. phonemetable en-us en
  1273. include ph_english_us
  1274. phonemetable en-sc en
  1275. include ph_english_sc
  1276. phonemetable en-rp en
  1277. include ph_english_rp
  1278. phonemetable en-wm en
  1279. include ph_english_wm
  1280. phonemetable en-wi en
  1281. include ph_english_wi
  1282. phonemetable af base
  1283. include ph_afrikaans
  1284. phonemetable cy base
  1285. include ph_welsh
  1286. phonemetable de base
  1287. include ph_german
  1288. phonemetable eo base
  1289. include ph_esperanto
  1290. phonemetable jbo eo
  1291. include ph_lojban
  1292. phonemetable nci base2
  1293. include ph_nahuatl
  1294. phonemetable fi base
  1295. include ph_finnish
  1296. phonemetable fr base
  1297. include ph_french
  1298. phonemetable fr-ca fr
  1299. include ph_french_ca
  1300. phonemetable hi base
  1301. include ph_hindi
  1302. phonemetable ta hi
  1303. include ph_tamil
  1304. phonemetable hu base
  1305. include ph_hungarian
  1306. phonemetable lv base
  1307. include ph_latvian
  1308. phonemetable nl base
  1309. include ph_dutch
  1310. phonemetable pl base
  1311. include ph_polish
  1312. phonemetable sk pl
  1313. include ph_slovak
  1314. phonemetable cs sk
  1315. include ph_czech
  1316. phonemetable hr sk
  1317. include ph_croatian
  1318. phonemetable mk hr
  1319. include ph_macedonian
  1320. phonemetable sr hr
  1321. include ph_serbian
  1322. phonemetable it base2
  1323. include ph_italian
  1324. phonemetable la base
  1325. include ph_latin
  1326. phonemetable es base2
  1327. include ph_spanish
  1328. phonemetable es-la es
  1329. include ph_spanish_la
  1330. phonemetable ca es
  1331. include ph_catalan
  1332. phonemetable pt base2
  1333. include ph_pt_brazil
  1334. phonemetable pt-pt pt
  1335. include ph_portugal
  1336. phonemetable ro base2
  1337. include ph_romanian
  1338. phonemetable el base2
  1339. include ph_greek
  1340. phonemetable grc base2
  1341. include ph_greek_ancient
  1342. phonemetable sv base
  1343. include ph_swedish
  1344. phonemetable no base
  1345. include ph_norwegian
  1346. phonemetable is base
  1347. include ph_icelandic
  1348. phonemetable ru base
  1349. include ph_russian
  1350. phonemetable vi base
  1351. include ph_vi
  1352. phonemetable zhy base
  1353. include ph_zh_yue
  1354. phonemetable zh base
  1355. include ph_zh
  1356. phonemetable sw base
  1357. include ph_swahili
  1358. phonemetable tr base2
  1359. include ph_turkish
  1360. phonemetable ku base2
  1361. include ph_kurdish
  1362. phonemetable id base2
  1363. include ph_indonesian
  1364. phonemetable sq base
  1365. include ph_albanian
  1366. phonemetable hy base
  1367. include ph_armenian
  1368. phonemetable da base
  1369. include ph_danish
  1370. // The following lines are experimental, for future additions.
  1371. // These langauges are not in a usable state.
  1372. // These lines can be deleted.
  1373. phonemetable rw base2
  1374. include ph_kinyarwanda
  1375. phonemetable ml hi
  1376. include ph_malayalam
  1377. //phonemetable kn hi
  1378. //include ph_kannada
  1379. //phonemetable bn hi
  1380. //include ph_bengali
  1381. phonemetable ne hi
  1382. include ph_nepali
  1383. //phonemetable mr hi
  1384. //include ph_marathi
  1385. //phonemetable eu base2
  1386. //include ph_basque
  1387. //phonemetable mn base
  1388. //include ph_mongolian
  1389. phonemetable pa hi
  1390. include ph_punjabi
  1391. phonemetable prs base
  1392. include ph_dari
  1393. phonemetable sl sk
  1394. include ph_slovenian
  1395. phonemetable gd base
  1396. include ph_s_gaelic
  1397. phonemetable bg pl
  1398. include ph_bulgarian
  1399. phonemetable nso base
  1400. include ph_northern-sotho
  1401. phonemetable ht fr
  1402. include ph_haitian
  1403. phonemetable az tr
  1404. include ph_azerbaijani
  1405. phonemetable ak base
  1406. include ph_akan