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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317
  1. // This is the master phoneme file.
  2. //*******************************************************************
  3. // Stress Phonemes
  4. //*******************************************************************
  5. phoneme % // Unstressed
  6. stress
  7. stress_type 1
  8. endphoneme
  9. phoneme %% // Diminished stress
  10. stress
  11. stress_type 0
  12. endphoneme
  13. phoneme \, // [,] Secondary stress
  14. stress
  15. stress_type 2
  16. endphoneme
  17. phoneme \,\, // [,,] Secondary stress
  18. stress
  19. stress_type 3
  20. endphoneme
  21. phoneme ' // Primary stress
  22. stress
  23. stress_type 4
  24. endphoneme
  25. phoneme '' // Primary stress (priority)
  26. stress
  27. stress_type 5
  28. endphoneme
  29. phoneme '! // Primary stress (emphasized)
  30. stress
  31. stress_type 6
  32. endphoneme
  33. phoneme = // Place stress on previous vowel
  34. stress
  35. stress_type 2
  36. endphoneme
  37. //*******************************************************************
  38. // IPA Phonemes
  39. //*******************************************************************
  40. phonemetable ipa base
  41. include ph_ipa
  42. phonemetable base1 base
  43. // The base phoneme table contains the utility phonemes, the consonants,
  44. // and a schwa. The vowels are defined in the language specific phoneme
  45. // tables, which can also redefine consonants if they wish.
  46. //*******************************************************************
  47. // UTILITY PHONEMES
  48. //*******************************************************************
  49. phoneme || // End Word
  50. pause
  51. lengthmod 9 // no effect
  52. endphoneme
  53. phoneme _ // Short pause
  54. pause
  55. starttype _ endtype _
  56. lengthmod 1
  57. length 25
  58. endphoneme
  59. phoneme _! // Short pause, don't replace by linking
  60. pause
  61. starttype _ endtype _
  62. lengthmod 1
  63. nolink
  64. length 35
  65. endphoneme
  66. phoneme _| // Very short pause
  67. pause
  68. starttype _ endtype _
  69. lengthmod 5
  70. length 1
  71. endphoneme
  72. phoneme _: // Standard pause
  73. pause
  74. starttype _ endtype _
  75. lengthmod 1
  76. length 75
  77. endphoneme
  78. phoneme _:: // Long pause
  79. pause
  80. starttype _ endtype _
  81. lengthmod 1
  82. length 150
  83. endphoneme
  84. phoneme _;_ // clause pause
  85. pause
  86. starttype _ endtype _
  87. lengthmod 1
  88. length 200
  89. endphoneme
  90. phoneme _^_ // Change dictionary (followed by language-code in ascii
  91. pause
  92. starttype _ endtype _
  93. lengthmod 1
  94. length 10
  95. endphoneme
  96. phoneme _X1 // a language specific action
  97. pause
  98. starttype _ endtype _
  99. lengthmod 1
  100. length 10
  101. endphoneme
  102. phoneme ? // glottal stp
  103. vls glt stp
  104. lengthmod 3 // ??
  105. nolink
  106. Vowelin glstop
  107. Vowelout glstop
  108. WAV(ustop/null)
  109. endphoneme
  110. phoneme : // lengthen previous vowel by "length"
  111. virtual
  112. length 70
  113. endphoneme
  114. phoneme - // Indicates the previous phoneme is a syllabic consonant
  115. virtual
  116. endphoneme
  117. // Some default vowel definitions
  118. phoneme @ // Schwa, e.g. alph**a**
  119. vwl starttype #@ endtype #@
  120. unstressed
  121. length 140
  122. FMT(vowel/@)
  123. endphoneme
  124. phoneme @- // very short schwa
  125. vwl starttype #@ endtype #@
  126. unstressed nsy
  127. ipa ə
  128. IF nextPhW(*) OR nextPhW(r) THEN
  129. ipa NULL // @-* is used to make 'r'
  130. ENDIF
  131. length 50
  132. FMT(vowel/@-)
  133. endphoneme
  134. phoneme a // tr**a**p
  135. vwl starttype #a endtype #a
  136. length 180
  137. FMT(vowel/a)
  138. endphoneme
  139. phoneme e // German **eh**, French **é**
  140. vwl starttype #e endtype #e
  141. length 170
  142. FMT(vowel/e)
  143. endphoneme
  144. phoneme i
  145. vwl starttype #i endtype #i
  146. length 170
  147. IfNextVowelAppend(;)
  148. FMT(vowel/i)
  149. endphoneme
  150. phoneme o // German **oo**, French **o**
  151. vwl starttype #o endtype #o
  152. length 170
  153. FMT(vowel/oo)
  154. endphoneme
  155. phoneme u
  156. vwl starttype #u endtype #u
  157. length 170
  158. FMT(vowel/u)
  159. endphoneme
  160. // Syllablic consonants
  161. //=====================
  162. phoneme m-
  163. vwl starttype #@ endtype #@
  164. ipa mU+0329
  165. lengthmod 4
  166. length 170
  167. IF thisPh(isWordStart) THEN
  168. length 190
  169. ENDIF
  170. IF KlattSynth THEN
  171. FMT(klatt/m-syl)
  172. ENDIF
  173. FMT(m/m-syl)
  174. endphoneme
  175. phoneme n-
  176. vwl starttype #@ endtype #@
  177. ipa nU+0329
  178. lengthmod 4
  179. length 170
  180. IF thisPh(isWordStart) THEN
  181. length 190
  182. ENDIF
  183. IF KlattSynth THEN
  184. FMT(klatt/n-syl)
  185. ENDIF
  186. FMT(n/n-syl)
  187. endphoneme
  188. phoneme N-
  189. vwl starttype #e endtype #e
  190. ipa ŋU+0329
  191. lengthmod 4
  192. length 190
  193. FMT(nn/nn-syl)
  194. endphoneme
  195. //*******************************************************************
  196. // Other sounds
  197. //*******************************************************************
  198. phoneme #X1 // click, use for indicating capital letters
  199. vls alv frc sib
  200. lengthmod 3
  201. WAV(ustop/percus10, 60)
  202. endphoneme
  203. //*******************************************************************
  204. // VIRTUAL - referred to in vowels' vwl starttype and endtype
  205. // These each apply to a class of vowels
  206. //*******************************************************************
  207. phoneme #@ virtual
  208. endphoneme
  209. phoneme #a virtual
  210. endphoneme
  211. phoneme #e virtual
  212. endphoneme
  213. phoneme #i virtual
  214. endphoneme
  215. phoneme #o virtual
  216. endphoneme
  217. phoneme #u virtual
  218. endphoneme
  219. //*******************************************************************
  220. // SONORANTS
  221. //*******************************************************************
  222. phoneme r- // syllabic r
  223. vwl starttype #@ endtype #@
  224. ipa rU+0329
  225. unstressed
  226. length 220
  227. FMT(vowelr/r-voc)
  228. endphoneme
  229. phoneme l- // syllabic l
  230. vwl starttype #@ endtype #@
  231. ipa lU+0329
  232. unstressed
  233. length 200
  234. FMT(vwl_hi/l-voc)
  235. endphoneme
  236. phoneme r // **r**ed (Omitted if not immediately followed by a vowel)
  237. import_phoneme ipa/r\\
  238. endphoneme
  239. phoneme r/ // used for [r] when not preceding a vowel
  240. import_phoneme ipa/r\\
  241. endphoneme
  242. phoneme R
  243. liquid trl
  244. lengthmod 6
  245. ipa r
  246. IF nextPhW(R2) THEN
  247. ipa NULL
  248. ENDIF
  249. Vowelin f1=0 f2=1600 -300 300 f3=-200 80
  250. Vowelout f1=2 f2=1600 -300 300 f3=-200 80 brk
  251. FMT(r3/r_trill2) addWav(r3/r_trill2.wav, 65)
  252. endphoneme
  253. phoneme R2 // this is [R] from Slovak/Czech
  254. liquid trl
  255. lengthmod 6
  256. ipa r
  257. Vowelin f1=0 f2=1700 -300 300 f3=-300 80
  258. Vowelout f1=2 f2=1700 -300 300 f3=-300 80 brk
  259. FMT(r3/r_trill) addWav(r3/r_trill.wav, 50)
  260. endphoneme
  261. phoneme R3 // Afrikaans
  262. liquid trl
  263. lengthmod 6
  264. length 60
  265. ipa r
  266. Vowelin f1=2 f2=2700 -300 -200 f3=-1300 80
  267. Vowelout f1=2 f2=1700 -300 -200 f3=-1300 80
  268. // vowel modifier is the same as for [r]
  269. NextVowelStarts
  270. VowelStart(r/r@, -15)
  271. VowelStart(r/ra, -15)
  272. VowelStart(r/re, -15)
  273. VowelStart(r/ri, -15)
  274. VowelStart(r/ro, -15)
  275. VowelStart(r/ru, -15)
  276. EndSwitch
  277. IF prevPh(isVowel) THEN
  278. VowelEnding(r/xr, -50)
  279. ENDIF
  280. FMT(r3/r_trill) addWav(r3/r_trill3.wav)
  281. endphoneme
  282. phoneme r" // uvular trill
  283. vcd uvl frc
  284. ipa ʀ
  285. lengthmod 6
  286. IF nextPh(isNotVowel) THEN
  287. FMT(r3/r_uvl) addWav(r3/r_uvl.wav, 50)
  288. ENDIF
  289. FMT(r3/r_uvl) addWav(r3/r_uvl.wav, 75)
  290. endphoneme
  291. procedure vowelstart_l
  292. NextVowelStarts
  293. VowelStart(l/l@)
  294. VowelStart(l/la)
  295. VowelStart(l/le)
  296. VowelStart(l/li, -10)
  297. VowelStart(l/lo)
  298. VowelStart(l/lu)
  299. EndSwitch
  300. endprocedure
  301. phoneme l
  302. import_phoneme ipa/l
  303. endphoneme
  304. phoneme l/ // used for [l] when not before a vowel
  305. import_phoneme ipa/l
  306. endphoneme
  307. phoneme l/2 // 'dark' [l] after a vowel
  308. liquid
  309. lengthmod 7
  310. IF nextPh(isVowel) THEN
  311. ChangePhoneme(l)
  312. ENDIF
  313. CALL vowelstart_l
  314. IF prevPhW(j) THEN
  315. FMT(l/L2_eL)
  316. ENDIF
  317. IF prevPhW(w) THEN
  318. FMT(l/L2_uL)
  319. ENDIF
  320. PrevVowelEndings
  321. VowelEnding(l/L2_@L, -60)
  322. VowelEnding(l/L2_aL, -50)
  323. VowelEnding(l/L2_eL, -40)
  324. VowelEnding(l/L2_iL, -30)
  325. VowelEnding(l/L2_oL, -50)
  326. VowelEnding(l/L2_uL, -40)
  327. EndSwitch
  328. endphoneme
  329. phoneme l/3 // Replacement for [l/]
  330. liquid
  331. lengthmod 7
  332. IF nextPh(isVowel) THEN
  333. ChangePhoneme(l)
  334. ENDIF
  335. PrevVowelEndings
  336. VowelEnding(l/l_@)
  337. VowelEnding(l/l_a)
  338. VowelEnding(l/l_e)
  339. VowelEnding(l/l_i)
  340. VowelEnding(l/l_o)
  341. VowelEnding(l/l_u, -20)
  342. EndSwitch
  343. // IF nextPh(isLiquid) THEN
  344. // FMT(l/_l)
  345. // ENDIF
  346. FMT(l/l_)
  347. endphoneme
  348. phoneme l^ // palatal l, e.g. Italian **g**li
  349. liquid
  350. ipa ʎ
  351. lengthmod 7
  352. Vowelout len=60 lenadd rate
  353. length 100
  354. NextVowelStarts
  355. VowelStart(l^/j2@)
  356. VowelStart(l^/j2a)
  357. VowelStart(l^/j2e)
  358. VowelStart(l^/j2i)
  359. VowelStart(l^/j2o)
  360. VowelStart(l^/j2u)
  361. EndSwitch
  362. IF prevPh(isPause) THEN
  363. FMT(l^/_l^)
  364. ENDIF
  365. FMT(l^/l^)
  366. endphoneme
  367. phoneme l.
  368. liquid rfx
  369. ipa ɭ
  370. lengthmod 7
  371. FMT(l^/l_rfx)
  372. endphoneme
  373. phoneme L/
  374. import_phoneme base1/l/2
  375. endphoneme
  376. phoneme L // velar L
  377. liquid
  378. lengthmod 7
  379. IF nextPh(isNotVowel) THEN
  380. ChangePhoneme(L/) // use 'dark' [l] after a vowel
  381. ENDIF
  382. VowelEnding(ll/xll, -40)
  383. IF prevPh(isPause) THEN
  384. FMT(ll/_ll)
  385. ENDIF
  386. FMT(ll/ll)
  387. endphoneme
  388. phoneme w
  389. import_phoneme ipa/w
  390. endphoneme
  391. phoneme j // **y**es
  392. import_phoneme ipa/j
  393. endphoneme
  394. phoneme ; // linking j, used between (i) vowels and a following vowel
  395. // also to palatalize consonants
  396. liquid pzd
  397. lengthmod 0
  398. IF prevPh(#i) THEN
  399. ipa NULL // linking after i vowel, don't show in ipa
  400. ENDIF
  401. IF nextPh(isNotVowel) THEN
  402. ChangePhoneme(NULL) // this is to ignore this phoneme if not before a vowel
  403. ENDIF
  404. NextVowelStarts
  405. VowelStart(j2/j2@)
  406. VowelStart(j2/j2a)
  407. VowelStart(j2/j2e)
  408. VowelStart(j2/j2i)
  409. VowelStart(j2/j2o)
  410. VowelStart(j2/j2u)
  411. EndSwitch
  412. IF prevPh(#i) THEN
  413. VowelEnding(j2/xj2, -40)
  414. ENDIF
  415. IF prevPh(isPause) THEN
  416. FMT(j2/_j2)
  417. ENDIF
  418. endphoneme
  419. //*******************************************************************
  420. // NASAL CONSONANTS
  421. //*******************************************************************
  422. phoneme m
  423. import_phoneme ipa/m
  424. endphoneme
  425. phoneme n
  426. import_phoneme ipa/n
  427. endphoneme
  428. phoneme n.
  429. import_phoneme ipa/n`
  430. endphoneme
  431. phoneme n^ // Spanish **ñ**
  432. import_phoneme ipa/J
  433. endphoneme
  434. phoneme N // si**ng**
  435. import_phoneme ipa/N
  436. endphoneme
  437. phoneme ** // TEST flap
  438. liquid alv rhotic
  439. ipa ɾ
  440. lengthmod 3
  441. Vowelout f1=3 f2=1600 -300 300 f3=-300 80 rms=35 len=15
  442. Vowelin f1=2 f2=1600 -300 300 f3=-100 80 len=20
  443. IF prevPh(#i) OR prevPh(#e) THEN
  444. FMT(r3/@tap2)
  445. ENDIF
  446. FMT(r3/@tap)
  447. endphoneme
  448. phoneme * // flap
  449. vcd alv flp rhotic
  450. brkafter
  451. ipa ɾ
  452. lengthmod 3
  453. IF prevPhW(@-) THEN
  454. ipa r // @-* sequence for [r]
  455. ENDIF
  456. IF nextPh(#e) OR nextPh(#i) THEN
  457. Vowelin f1=0 f2=1500 -300 300 f3=-200 80
  458. FMT(d/tap1) addWav(r3/rx, 150)
  459. FMT(d/tap1) addWav(r3/rx, 150)
  460. ENDIF
  461. Vowelin f1=2 f2=1500 -300 300 f3=-200 80
  462. IF nextPh(#a) THEN
  463. FMT(d/tap3) addWav(r3/rx, 200)
  464. ENDIF
  465. IF nextPh(r) THEN
  466. FMT(d/dr)
  467. ENDIF
  468. Vowelout f1=3 f2=1500 -400 300 f3=-200 80 rms=35 len=50
  469. Vowelin f1=0 f2=1500 -300 300 f3=-200 80
  470. FMT(d/tap3) addWav(r3/rx, 200)
  471. endphoneme
  472. phoneme r. // retroflex
  473. liquid rfx
  474. lengthmod 3
  475. Vowelout f1=3 f2=1400 -400 300 f3=-400 80 rms=35 len=15 colr=2
  476. Vowelin f1=2 f2=1400 -400 300 f3=-400 80 len=20
  477. IF nextPh(isNotVowel) THEN
  478. FMT(r3/@tap_rfx_)
  479. ENDIF
  480. FMT(r3/@tap_rfx)
  481. endphoneme
  482. //*******************************************************************
  483. // VOICED STOPS
  484. //*******************************************************************
  485. phoneme b
  486. import_phoneme ipa/b
  487. voicingswitch p
  488. endphoneme
  489. phoneme d
  490. import_phoneme ipa/d
  491. voicingswitch t
  492. endphoneme
  493. phoneme d[
  494. import_phoneme ipa/d_d
  495. voicingswitch t[
  496. endphoneme
  497. phoneme dZ // **j**udge
  498. import_phoneme ipa/dZ\)
  499. voicingswitch tS
  500. endphoneme
  501. phoneme dZ;
  502. import_phoneme ipa/dz\\\)
  503. voicingswitch tS;
  504. endphoneme
  505. phoneme J
  506. import_phoneme ipa/J\\
  507. voicingswitch c
  508. endphoneme
  509. phoneme g
  510. import_phoneme ipa/g
  511. voicingswitch k
  512. endphoneme
  513. //*******************************************************************
  514. // VOICED fricatives
  515. //*******************************************************************
  516. phoneme B
  517. import_phoneme ipa/B
  518. voicingswitch f
  519. endphoneme
  520. phoneme v
  521. import_phoneme ipa/v
  522. voicingswitch f
  523. endphoneme
  524. phoneme v#
  525. import_phoneme ipa/P
  526. voicingswitch f
  527. endphoneme
  528. phoneme D // **th**is
  529. import_phoneme ipa/D
  530. voicingswitch T
  531. endphoneme
  532. phoneme z
  533. import_phoneme ipa/z
  534. voicingswitch s
  535. endphoneme
  536. phoneme Z // plea**s**ure
  537. import_phoneme ipa/Z
  538. voicingswitch S
  539. endphoneme
  540. phoneme z.
  541. import_phoneme ipa/z`
  542. voicingswitch s.
  543. endphoneme
  544. phoneme z;
  545. import_phoneme ipa/z\\
  546. voicingswitch s;
  547. endphoneme
  548. phoneme Z;
  549. import_phoneme ipa/z\\
  550. voicingswitch S;
  551. endphoneme
  552. phoneme J^ // palatal fricative (Kirshenbaum C<vcd>)
  553. import_phoneme ipa/j\\
  554. ipa ʝ
  555. endphoneme
  556. phoneme Q
  557. import_phoneme ipa/G
  558. voicingswitch x
  559. endphoneme
  560. phoneme Q"
  561. import_phoneme ipa/R
  562. endphoneme
  563. //*******************************************************************
  564. // UNVOICED STOPS
  565. //*******************************************************************
  566. phoneme p
  567. vls blb stp
  568. voicingswitch b
  569. lengthmod 2
  570. Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 amp=11
  571. Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=22
  572. IF nextPh(isPause2) THEN
  573. WAV(ustop/p_)
  574. ELIF nextPh(r) THEN
  575. WAV(ustop/pr, 70)
  576. ELIF nextPh(R) OR nextPh(R2) THEN
  577. WAV(ustop/pr)
  578. ELIF nextPh(@-) THEN
  579. WAV(ustop/p_unasp)
  580. ELIF nextPh(l) THEN
  581. WAV(ustop/pl)
  582. ENDIF
  583. WAV(ustop/p)
  584. endphoneme
  585. phoneme t
  586. import_phoneme ipa/t
  587. voicingswitch d
  588. endphoneme
  589. phoneme t[ // dental variant of /t/
  590. import_phoneme ipa/t_d
  591. voicingswitch d[
  592. endphoneme
  593. phoneme tS // **ch**urch
  594. import_phoneme ipa/tS\)
  595. voicingswitch dZ
  596. endphoneme
  597. phoneme tS;
  598. import_phoneme ipa/ts\\\)
  599. voicingswitch dZ;
  600. endphoneme
  601. phoneme c
  602. import_phoneme ipa/c
  603. voicingswitch J
  604. endphoneme
  605. phoneme k
  606. vls vel stp
  607. voicingswitch g
  608. lengthmod 2
  609. Vowelin f1=0 f2=2300 200 300 f3=-200 80
  610. Vowelout f1=0 f2=2300 300 400 f3=-200 80 rms=20
  611. IF KlattSynth THEN
  612. Vowelout f1=0 f2=2300 200 300 f3=-200 80 rms=20
  613. ENDIF
  614. IF nextPh(isPause2) THEN
  615. WAV(ustop/k_)
  616. ELIF nextPh(r) OR nextPh(R) OR nextPh(R2) THEN
  617. WAV(ustop/kr)
  618. ELIF nextPh(#i) OR nextPh(;) THEN
  619. WAV(ustop/ki)
  620. ELIF nextPh(l) THEN
  621. WAV(ustop/kl)
  622. ELIF nextPh(@-) THEN
  623. WAV(ustop/k_unasp, 70)
  624. ENDIF
  625. WAV(ustop/k)
  626. endphoneme
  627. phoneme q
  628. import_phoneme ipa/q
  629. endphoneme
  630. //*******************************************************************
  631. // UNVOICED fricatives
  632. //*******************************************************************
  633. phoneme f
  634. vls lbd frc
  635. voicingswitch v
  636. lengthmod 3
  637. Vowelout f1=0 f2=1000 -500 -350 f3=-200 80
  638. IF nextPh(isPause) THEN
  639. WAV(ufric/f_)
  640. ENDIF
  641. WAV(ufric/f)
  642. endphoneme
  643. phoneme T // **th**in
  644. vls dnt frc
  645. voicingswitch D
  646. lengthmod 3
  647. Vowelin f1=0 f2=1700 -300 300 f3=-100 80
  648. Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
  649. IF nextPh(isPause) THEN
  650. WAV(ufric/th_)
  651. ENDIF
  652. WAV(ufric/th)
  653. endphoneme
  654. phoneme s
  655. vls alv frc sib
  656. voicingswitch z
  657. lengthmod 3
  658. Vowelin f1=0 f2=1700 -300 300 f3=-100 80
  659. Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
  660. IF nextPh(isPause) THEN
  661. WAV(ufric/s_)
  662. ELIF nextPh(p) OR nextPh(t) OR nextPh(k) THEN
  663. WAV(ufric/s!)
  664. ENDIF
  665. WAV(ufric/s)
  666. endphoneme
  667. phoneme S // **sh**op
  668. vls pla frc sib
  669. voicingswitch Z
  670. lengthmod 3
  671. Vowelin f1=0 f2=2100 100 300 f3=-100 80
  672. Vowelout f1=0 f2=2100 100 300 f3=-100 80
  673. IF nextPh(isPause) THEN
  674. WAV(ufric/sh_)
  675. ENDIF
  676. WAV(ufric/sh)
  677. endphoneme
  678. phoneme s.
  679. vls pla frc sib
  680. ipa ʂ
  681. voicingswitch z.
  682. lengthmod 3
  683. Vowelin f1=0 f2=1800 -100 300 f3=-300 80
  684. Vowelout f1=0 f2=1800 -100 300 f3=-300 80
  685. IF nextPh(isPause) THEN
  686. WAV(ufric/sh_rfx, 60)
  687. ENDIF
  688. WAV(ufric/sh_rfx, 90)
  689. endphoneme
  690. phoneme s;
  691. vls pal frc sib pzd
  692. ipa ʂ
  693. voicingswitch z;
  694. lengthmod 3
  695. Vowelin f1=1 f2=2700 400 600 f3=200 70 rate len=70
  696. Vowelout f1=1 f2=2700 400 600 f3=200 70 rate len=70
  697. IF nextPh(isPause) THEN
  698. WAV(ufric/s_pzd_)
  699. ENDIF
  700. WAV(ufric/s_pzd)
  701. endphoneme
  702. phoneme S;
  703. vls alp sib frc
  704. voicingswitch Z;
  705. ipa ɕ
  706. lengthmod 3
  707. Vowelin f1=1 f2=2700 400 600 f3=200 70 rate len=70
  708. Vowelout f1=1 f2=2700 400 600 f3=200 70 rate
  709. IF nextPh(isPause) THEN
  710. WAV(ufric/sh_pzd_)
  711. ENDIF
  712. WAV(ufric/sh_pzd)
  713. endphoneme
  714. phoneme l# // Lateral fricative (eg. Welsh "ll")
  715. vls alv frc
  716. ipa ɬ
  717. lengthmod 3
  718. NextVowelStarts
  719. VowelStart(l/l@)
  720. VowelStart(l/la)
  721. VowelStart(l/le)
  722. VowelStart(l/li, -10)
  723. VowelStart(l/lo)
  724. VowelStart(l/lu)
  725. EndSwitch
  726. IF prevPh(isVowel) THEN
  727. VowelEnding(l/xl, -40)
  728. ENDIF
  729. WAV(ufric/l#, 60)
  730. endphoneme
  731. phoneme C // German i**ch**
  732. vls pal frc
  733. lengthmod 3
  734. Vowelin f1=0 f2=2700 400 600 f3=200 70
  735. Vowelout f1=0 f2=2700 400 600 f3=200 70 rms=20
  736. IF nextPh(isPause) THEN
  737. WAV(ufric/ch_)
  738. ENDIF
  739. WAV(ufric/ch)
  740. endphoneme
  741. phoneme x // German bu**ch**
  742. vls vel frc
  743. voicingswitch Q
  744. lengthmod 3
  745. Vowelin f1=0 f2=2300 200 400 f3=-100 80
  746. Vowelout f1=0 f2=2300 300 400 f3=-100 80 rms=20
  747. IF nextPh(isPause) THEN
  748. WAV(ufric/x_, 60)
  749. ENDIF
  750. WAV(ufric/x_hr, 20)
  751. endphoneme
  752. phoneme X
  753. vls uvl frc
  754. voicingswitch Q"
  755. lengthmod 3
  756. IF nextPh(isPause) THEN
  757. WAV(ufric/xx, 70)
  758. ENDIF
  759. WAV(ufric/xx,80)
  760. endphoneme
  761. phoneme h
  762. vls glt apr
  763. lengthmod 3
  764. ipa h
  765. IF nextPh(#@) THEN
  766. WAV(h/h@)
  767. ELIF nextPh(#a) THEN
  768. WAV(h/ha)
  769. ELIF nextPh(#e) THEN
  770. WAV(h/he)
  771. ELIF nextPh(#i) THEN
  772. WAV(h/hi)
  773. ELIF nextPh(#o) THEN
  774. WAV(h/ho)
  775. ELIF nextPh(#u) THEN
  776. WAV(h/hu)
  777. ENDIF
  778. WAV(h/h_, 70) // no vowel following
  779. endphoneme
  780. //*******************************************************************
  781. // ADDITIONAL PHONEME TABLES
  782. //*******************************************************************
  783. phonemetable jp base1
  784. include ph_japanese
  785. phonemetable consonants base1
  786. include ph_consonants
  787. phonemetable base2 base1
  788. include ph_base2
  789. phonemetable en base1
  790. include ph_english
  791. phonemetable en-n en
  792. include ph_english_n
  793. phonemetable en-us en
  794. include ph_english_us
  795. phonemetable en-sc en
  796. include ph_english_sc
  797. phonemetable en-rp en
  798. include ph_english_rp
  799. phonemetable en-wm en
  800. include ph_english_wm
  801. phonemetable en-wi en
  802. include ph_english_wi
  803. phonemetable af base1
  804. include ph_afrikaans
  805. phonemetable cy base1
  806. include ph_welsh
  807. phonemetable ga base1
  808. include ph_irish
  809. phonemetable de base1
  810. include ph_german
  811. phonemetable eo base1
  812. include ph_esperanto
  813. phonemetable ia eo
  814. include ph_interlingua
  815. phonemetable jbo eo
  816. include ph_lojban
  817. phonemetable nci base2
  818. include ph_nahuatl
  819. phonemetable fi base1
  820. include ph_finnish
  821. phonemetable et base1
  822. include ph_estonian
  823. phonemetable fr base1
  824. include ph_french
  825. phonemetable fr-ca fr
  826. include ph_french_ca
  827. phonemetable nl base1
  828. include ph_dutch
  829. phonemetable hi_base base1
  830. include ph_hindi_base
  831. phonemetable hi hi_base
  832. include ph_hindi
  833. phonemetable bn hi_base
  834. include ph_bengali
  835. phonemetable ne hi_base
  836. include ph_nepali
  837. phonemetable ur hi_base
  838. include ph_urdu
  839. phonemetable pa hi_base
  840. include ph_punjabi
  841. phonemetable ta hi_base
  842. include ph_tamil
  843. phonemetable kn hi_base
  844. include ph_kannada
  845. phonemetable ml hi_base
  846. include ph_malayalam
  847. phonemetable gu hi_base
  848. include ph_gujarati
  849. phonemetable mr hi_base
  850. include ph_marathi
  851. phonemetable hu base1
  852. include ph_hungarian
  853. phonemetable lt base1
  854. include ph_lithuanian
  855. phonemetable lv base1
  856. include ph_latvian
  857. phonemetable pl base1
  858. include ph_polish
  859. phonemetable sk pl
  860. include ph_slovak
  861. phonemetable cs sk
  862. include ph_czech
  863. phonemetable hr sk
  864. include ph_croatian
  865. phonemetable mk hr
  866. include ph_macedonian
  867. phonemetable sr hr
  868. include ph_serbian
  869. phonemetable ru base1
  870. include ph_russian
  871. phonemetable bg pl
  872. include ph_bulgarian
  873. phonemetable it base2
  874. include ph_italian
  875. phonemetable la base1
  876. include ph_latin
  877. phonemetable es base2
  878. include ph_spanish
  879. phonemetable es-la es
  880. include ph_spanish_la
  881. phonemetable ca es
  882. include ph_catalan
  883. phonemetable an es
  884. include ph_aragon
  885. phonemetable eu base2
  886. include ph_basque
  887. phonemetable pt base2
  888. include ph_pt_brazil
  889. phonemetable pt-pt pt
  890. include ph_portugal
  891. phonemetable ro base2
  892. include ph_romanian
  893. phonemetable el base2
  894. include ph_greek
  895. phonemetable grc base2
  896. include ph_greek_ancient
  897. phonemetable sv base1
  898. include ph_swedish
  899. phonemetable no base1
  900. include ph_norwegian
  901. phonemetable is base1
  902. include ph_icelandic
  903. phonemetable vi base1
  904. include ph_vietnam
  905. phonemetable vi-hue vi
  906. include ph_vietnam_hue
  907. phonemetable vi-sgn vi
  908. include ph_vietnam_sgn
  909. phonemetable zhy base1
  910. include ph_zh_yue
  911. phonemetable zh base1
  912. include ph_zh
  913. phonemetable sw base1
  914. include ph_swahili
  915. phonemetable tr base2
  916. include ph_turkish
  917. phonemetable ku base2
  918. include ph_kurdish
  919. phonemetable id base2
  920. include ph_indonesian
  921. phonemetable sq base1
  922. include ph_albanian
  923. phonemetable hy base1
  924. include ph_armenian
  925. phonemetable da base1
  926. include ph_danish
  927. phonemetable ka base1
  928. include ph_georgian
  929. phonemetable fa base1
  930. include ph_farsi
  931. phonemetable ar base1
  932. include ph_arabic
  933. phonemetable rw base2
  934. include ph_kinyarwanda
  935. phonemetable prs base1
  936. include ph_dari
  937. phonemetable sl pl
  938. include ph_slovenian
  939. phonemetable gd base1
  940. include ph_s_gaelic
  941. phonemetable nso base1
  942. include ph_northern-sotho
  943. phonemetable ht fr
  944. include ph_haitian
  945. phonemetable az tr
  946. include ph_azerbaijani
  947. phonemetable ak base1
  948. include ph_akan
  949. phonemetable am base1
  950. include ph_amhari
  951. phonemetable wo base1
  952. include ph_wolof
  953. phonemetable dv hi_base
  954. include ph_divehi
  955. phonemetable te hi_base
  956. include ph_telugu
  957. phonemetable si hi_base
  958. include ph_sinhala
  959. phonemetable as bn
  960. include ph_assamese
  961. phonemetable or bn
  962. include ph_oriya
  963. phonemetable mni bn
  964. include ph_manipuri
  965. phonemetable tn base1
  966. include ph_setswana
  967. phonemetable mt base1
  968. include ph_maltese
  969. phonemetable bo hi
  970. include ph_tibetan
  971. phonemetable kk base1
  972. include ph_kazakh
  973. phonemetable tt base1
  974. include ph_tatar
  975. phonemetable ko base1
  976. include ph_korean
  977. phonemetable kl base1
  978. include ph_greenlandic
  979. phonemetable om base1
  980. include ph_oromo
  981. phonemetable my base1
  982. include ph_burmese
  983. phonemetable gn base1
  984. include ph_guarani
  985. phonemetable ky base1
  986. include ph_kyrgyz