From 3bf61040b9fb3fe1eb550a42aa5213a522d57743 Mon Sep 17 00:00:00 2001 From: jonsd Date: Mon, 5 Jul 2010 09:01:28 +0000 Subject: [PATCH] [1.43.52] espeakedit --compile also compiles the intonation data Added feature to produce phonemes as International Phonetic Alphabet. phoneme definitions: Added "ipa" instruction to specify IPA phoneme name. When spelling as individual characters, calculate the stress position for each character name. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@249 d46cf337-b52f-0410-862d-fd96e6ae7743 --- dictsource/cs_list | 2 +- dictsource/da_rules | 4 +- dictsource/de_rules | 9 +- dictsource/dict_phonemes | 22 ++- dictsource/en_list | 4 + dictsource/fr_list | 3 +- dictsource/fr_rules | 4 +- dictsource/hu_list | 4 + dictsource/hu_rules | 5 + dictsource/nl_list | 51 +++--- dictsource/nl_rules | 45 +++++- dictsource/ta_list | 2 +- dictsource/ta_rules | 53 ++++-- phsource/compile_report | 105 ++++++------ phsource/l/L1_@L | Bin 5387 -> 5387 bytes phsource/l/L1_aL | Bin 4977 -> 4977 bytes phsource/l/L1_iL | Bin 4935 -> 4935 bytes phsource/l/L1_oL | Bin 4931 -> 4931 bytes phsource/l/L1_uL | Bin 3945 -> 3945 bytes phsource/ph_croatian | 1 + phsource/ph_danish | 1 + phsource/ph_dutch | 3 + phsource/ph_english | 33 +++- phsource/ph_english_n | 10 ++ phsource/ph_english_rp | 16 +- phsource/ph_english_sc | 18 +++ phsource/ph_english_us | 44 ++++- phsource/ph_english_wm | 17 +- phsource/ph_finnish | 1 + phsource/ph_french | 12 +- phsource/ph_german | 73 +++++---- phsource/ph_hindi | 4 + phsource/ph_icelandic | 7 + phsource/ph_latin | 1 + phsource/ph_latvian | 1 + phsource/ph_norwegian | 3 + phsource/ph_polish | 3 + phsource/ph_portugal | 15 +- phsource/ph_pt_brazil | 10 +- phsource/ph_romanian | 2 + phsource/ph_serbian | 2 + phsource/ph_slovak | 6 + phsource/ph_spanish | 1 + phsource/ph_tamil | 11 +- phsource/ph_welsh | 8 + phsource/phonemes | 50 +++++- phsource/vowel/V_4 | Bin 5945 -> 6461 bytes phsource/vowel/aa_7 | Bin 12456 -> 9000 bytes phsource/vowel/o_5 | Bin 65291 -> 70709 bytes phsource/vowel/o_6 | Bin 4690 -> 5287 bytes phsource/vowel/oo | Bin 1248 -> 1592 bytes platforms/windows/windows_dll/src/speak_lib.h | 72 +++++---- src/compiledata.cpp | 61 +++++++ src/dictionary.cpp | 124 +++++++++++--- src/espeak.cpp | 33 ++-- src/espeakedit.cpp | 21 ++- src/intonation.cpp | 2 +- src/klatt.cpp | 18 +-- src/main.h | 7 +- src/mbrowrap.cpp | 151 +++++++++++------- src/menus.cpp | 5 +- src/numbers.cpp | 52 +++--- src/prosodydisplay.cpp | 5 +- src/readclause.cpp | 12 +- src/setlengths.cpp | 14 +- src/speak.cpp | 29 ++-- src/speak_lib.cpp | 12 +- src/speak_lib.h | 1 + src/synth_mbrola.cpp | 38 +++-- src/synthdata.cpp | 29 +++- src/synthesize.cpp | 35 ++-- src/synthesize.h | 11 +- src/tr_languages.cpp | 19 ++- src/translate.cpp | 36 +++-- src/translate.h | 8 +- src/transldlg.cpp | 96 ++++++----- 76 files changed, 1085 insertions(+), 472 deletions(-) diff --git a/dictsource/cs_list b/dictsource/cs_list index 47ec618c..c300cdfe 100644 --- a/dictsource/cs_list +++ b/dictsource/cs_list @@ -229,7 +229,7 @@ místo $pause // instead of i $u $brk // ??? // Conjunctions -a $u $pause // and +a $u $brk $pause // and nebo $u $pause // or však $pause // but krom $pause // except diff --git a/dictsource/da_rules b/dictsource/da_rules index ee77a918..e0bea91a 100755 --- a/dictsource/da_rules +++ b/dictsource/da_rules @@ -1,4 +1,4 @@ - + // This file is UTF8 encoded // Spelling-to-phoneme rules for Danish @@ -1537,7 +1537,7 @@ L06L06) er V // PB klipper år) ede (_+ 3D@ // PB sårede odr) ede (_+ 3D@ // PB fodrede obr) ede (_ 3D@ // PB erobrede - tr) ede (_+ 3D-@ // PB splintrede + tr) ede (_+ 3D@ // PB splintrede hundr) ed (+ @:D // PB hundred rn) ed (e eD // PB dernede &k) ede (+ eD@ // PB dødkede diff --git a/dictsource/de_rules b/dictsource/de_rules index 2b9778d9..328011fd 100644 --- a/dictsource/de_rules +++ b/dictsource/de_rules @@ -115,6 +115,7 @@ r) al (_ 'A:l t) al (_ 'A:l m) a (lt_ A:l + ker) am (ik 'A:m @) an (_ 'A:n ein) an (der 'an @) ant (_ 'ant @@ -444,6 +445,7 @@ _) farb (C@P4 f'arp _) farb (l@P4 f'arb _) fein (@P4 f'aIn + _) fertig (CP6 f'ErtiC _) fest (@P4 f'Est _) flug fl'u:g foto fo:to: @@ -577,7 +579,7 @@ i (d_ 'i: i (dee %i: i (erin =i: - ig (+ Ig# // [ig] or [iC] + &) ig (+ Ig# // [ig] or [iC] igh aI i (i i:_! @@ -685,6 +687,7 @@ formal) ie =I@ // @) keit (_S4 kaIt // @) keiten (_S6 kaIt@n + ka (rtoff k%a ko (e@ ko: kolleg k%Ole:g _) komme (C@ k%OmE @@ -818,6 +821,9 @@ formal) ie =I@ o (lsam o: o (m_ 'o: @A) o (n_ 'o: + one (_ 'o:n@ + onen (_ 'o:n@n + zitr) on 'on @) oo (_ u: r) oo (m u: z) oo (m u: @@ -858,6 +864,7 @@ formal) ie =I@ pool _^_EN power paU@r _) preß (@P4 pr'Es + _) primär (P6 pri:m'E:r _) prinzipien (@P9 prInts'i:pI@ _) privat (@P6 pri:v'A:t problem pr%o:ble:m diff --git a/dictsource/dict_phonemes b/dictsource/dict_phonemes index e4ed037f..6516b056 100644 --- a/dictsource/dict_phonemes +++ b/dictsource/dict_phonemes @@ -79,9 +79,9 @@ t tS ts v z Z Dictionary de_dict 3 3: @ @- a A A: aI -aU E E2 E: e: EI I i2 -i: n- O o: OY U u: W -y y: Y: +aU E E2 E: e: EI i I +i2 i: n- o O o: OY U +u: W y y: Y: * : ; b C d D dZ f g g# h j k l m @@ -507,9 +507,9 @@ uei uo y y& y@ yE yi yu ; C f h j k kh l l# m n N p ph Q q -Q" Q^ r R r" R2 R3 s -s. S; t th ts ts. ts. tS; -tS; tsh v w x X z. +Q" Q^ r R R2 R3 s s. +S; t th ts ts. ts. tS; tS; +tsh v w x X z. Dictionary zhy_dict @@ -626,3 +626,13 @@ u h j J k l l# m n N n^ p Q r R R3 s S t T tS v w x z + + +Dictionary ht_dict + +a A~ e E E~ i o O +O~ u w y + +; b d f g j k l +m n N p r s S t +tS v z Z diff --git a/dictsource/en_list b/dictsource/en_list index cf40be9e..ca61ca4f 100644 --- a/dictsource/en_list +++ b/dictsource/en_list @@ -2307,6 +2307,7 @@ workstation w'3:kst,eIS@n ?5 workstation w'VRkst,eIS@n wound wu:nd wound waUnd $past +(wound down) w,aUnd||'daUn (wound up) w,aUnd||'Vp wounded wu:ndI2d wretched rEtSI2d @@ -2554,6 +2555,7 @@ Taipei t,aIp'eI Taiwan taI'wan (tel aviv) t,El||a#v'i:v Tenerife tEn3r'i:f +Texas tEks@s Toronto t@r0ntoU Timor ti:mo@ Tokyo toUkIoU @@ -3154,6 +3156,8 @@ while w,aIl $pause $strend whilst w,aIlst $pause +(do so) du:||soU $atend + //some adverbs just $verbf never $verbf diff --git a/dictsource/fr_list b/dictsource/fr_list index a017f035..d6678484 100755 --- a/dictsource/fr_list +++ b/dictsource/fr_list @@ -24,7 +24,7 @@ // 2006-11-18 Gilles Casse // -// Updated 2010-06-15 Michel Such +// Updated 2010-06-22 Michel Such // // * Numbers, a few abbreviations and exceptions. // @@ -667,6 +667,7 @@ couscous kuskus delete _^_en dernier dErnjer2 doppler doplEr +dot dOt éloquent elokA~t2 enfer A~fEr fahrenheit far@najt diff --git a/dictsource/fr_rules b/dictsource/fr_rules index ee26f30c..6252585b 100755 --- a/dictsource/fr_rules +++ b/dictsource/fr_rules @@ -23,7 +23,7 @@ // 2006-11-18 Gilles Casse // -// Updated: 2010-06-18 Michel Such +// Updated: 2010-06-29 Michel Such // // Letter classes: @@ -77,6 +77,7 @@ an (n_ a _h) an (_ an _) anti (@@P4 A~ti + _) anti (CAXP4 A~ti _) arché (@P5 arke // archéologue _) archéo (@P6 arkeo // archéologue _) arch (aP4 ark // archange @@ -1087,6 +1088,7 @@ _quatrevin) gts (_ z2 ss s // assez ai) s (em s // vraisemblable + _al) s (ac z // Alsace aCè) s (_ s nè) s (_ s kansa) s (_ s // Kansas, Arkansas diff --git a/dictsource/hu_list b/dictsource/hu_list index 3d82521b..c82a0b4b 100755 --- a/dictsource/hu_list +++ b/dictsource/hu_list @@ -990,6 +990,10 @@ kulcs $unstressend nyit $unstressend lő $unstressend támad $unstressend +halt $unstressend +ész $unstressend +kapta $unstressend +kaptak $unstressend // word pairs diff --git a/dictsource/hu_rules b/dictsource/hu_rules index b4b3cde6..366a7119 100644 --- a/dictsource/hu_rules +++ b/dictsource/hu_rules @@ -207,6 +207,7 @@ menetren) dsz (erű d|s honvé) d (sereg d va) d (szeder d twee) d (sapk d + fe) dd (hetetlen d .group dz fogó) dz (kod ts @@ -399,6 +400,7 @@ tizene) gy (en J: _e) gy (oldal J: _e) gy (év J: _e) gy (órá J: + _e) gy (se J .group h h h @@ -424,6 +426,7 @@ tizene) gy (en J: sz) í (ve i t) í (zes i sz) í (vel i: + _t) í (zük i .group j j j @@ -582,6 +585,8 @@ tulajdo) n (jog n teljesítmé) ny (javu n^ törvé) ny (java n^ ajá) nl l: +_feddhetetle) n (jelle n +állomá) ny (jel n^ .group o o o diff --git a/dictsource/nl_list b/dictsource/nl_list index a2124f36..09fca342 100644 --- a/dictsource/nl_list +++ b/dictsource/nl_list @@ -100,7 +100,7 @@ _17 z'e:f@ntin _18 'Axtin _19 n'e:x@ntin _2X tv#'Int@x -_3X d'e:rt@x +_3X d'Ert@x _4X f'e:rt@x _5X f'EIft@x _6X z'Est@x @@ -183,27 +183,27 @@ er $u waar $pause // prepositions -in $u+ $brk // in -op $u+ $brk // in -aan $u+ $brk // at, on -bij $u+ $pause // at, near -om $u+ $brk // at -met $u+ $brk // with, by -over $u+ $pause // about -na $u+ $pause // after -naar $u+ // to -door $u+ $brk // through, by -te $u+ $brk // to -tot $u+ $pause // until -uit $u+ $brk // from, out of -voor $u+ $pause // for, in front of -van $u+ // from, of -zonder $u+ $pause // without +in $only $u+ $brk // in +op $only $u+ $brk // in +aan $only $u+ $brk // at, on +bij $only $u+ $pause // at, near +om $only $u+ $brk // at +met $only $u+ $brk // with, by +over $only $u+ $pause // about +na $only $u+ $pause // after +naar $only $u+ // to +door $only $u+ $brk // through, by +te $only $u+ $brk // to +tot $only $u+ $pause // until +uit $only $u+ $brk // from, out of +voor $only $u+ $pause // for, in front of +van $only $u+ // from, of +zonder $only $u+ $pause // without // adverbs, etc. -ook $u+ // any -zo $u+ -sommige $u+ // some +ook $only $u+ // any +zo $only $u+ +sommige $only $u+ // some // conjunctions @@ -308,10 +308,11 @@ the _^_EN up _^_EN -// words where -eren is not a verb ending +// words where -eren is not a stressed verb ending ander $alt kinder $alt ouder $alt +sputter $alt // pronunciation exceptions aangrijpend $2 @@ -327,6 +328,7 @@ ingevolge $3 ingrediënt $4 ingenieur Inzj@nj'Y:r journaal Surn'a:l +natuur na:t'yr ongastvrij OnQAstv@-*'EI ongelooflijk $3 ongemakkelijk $3 @@ -335,6 +337,13 @@ ongerieflijk $3 ongrondwettig $3 proces $2 renaissance rEne:s'A~s@ +tegenaan $3 +tegenin $3 +tegenover $3 +tegendraads $3 +tegennatuur $4 +tegenstrijdig $3 +tegenwoordig $3 waarschijnlijk $2 diff --git a/dictsource/nl_rules b/dictsource/nl_rules index b0c78b95..11c1759c 100644 --- a/dictsource/nl_rules +++ b/dictsource/nl_rules @@ -25,6 +25,7 @@ _) be (ren bI: _) be (ter be: _) beu bY: + &) baar (_ =ba:r .group c @@ -88,7 +89,7 @@ .group g - g Q // ph_dutch changes this to [x] before unvoiced + g Q // ph_dutch changes to [x] before unvoiced, NULL after [x] gg Q _) ge (@P2 Q@ @@ -114,9 +115,17 @@ ie i ieuw iw + d) ie (_ 'i + g) ie (_ 'i + m) ie (_ 'i + p) ie (_ 'i + + ie (r_ 'i ie (rd_ 'i @) ig (_ @x _) in (gP2 'In + @) isch (_ =is + @) ische (_ =is@ .group j @@ -133,6 +142,7 @@ ll l @) lijk (_S4 l@k &) laan (_S4 la:n + @) loog (_ lo:x .group m @@ -159,9 +169,14 @@ oei uj ou VU + telef) oo (n 'o: + + +.group on _) onaan (@P5 On'a:n _) onge (@P4 ,OnQ@ _) ont (@P3 Ont + _) on (te@P2 On // ontegecht _) onder Ond@r _) ong (aarn ,OnQ' @@ -214,6 +229,34 @@ c) tie (_ si tj t; tsj tS + _) th t + th t + t (haar t // th is not [t] + t (hav t + +.group te + _) tegen (P5 t'e:Q@n + _) terug (P5 t@r'8x + _) te (gelijk t@ + _) te (gemoetP2 t@ + _) te (goed t@ + _) te (hui t@ // tehuis + _) te (keer t@ + _) te (kort t@ + _) te (leur t@ + _) te (loor t@ + _) te (meer t@ + _) te (midd t@ // temidden + _) te (na t@ + _) te (neer t@ + _) te (recht t@ + _) te (sam t@ // tesamen + _) te (veel t@ + _) te (vergreefP2 t@ + _) te (voorschijn t@ + _) te (vor t@ // tevoren + _) te (vred t@ // tevreden + _) teweeg (P6 t@v#'e:x .group u diff --git a/dictsource/ta_list b/dictsource/ta_list index 85cb8bd4..e2c1ad5f 100644 --- a/dictsource/ta_list +++ b/dictsource/ta_list @@ -356,4 +356,4 @@ tamil தமிழ் $text ஆகா a:Ha: ஓகோ o:Ho: கப் kVp - +செட் set. diff --git a/dictsource/ta_rules b/dictsource/ta_rules index b0ddd3fc..3e3b4e86 100644 --- a/dictsource/ta_rules +++ b/dictsource/ta_rules @@ -191,6 +191,7 @@ //sort அலை) க (டல kV +சமையல்) க (ட் kV _கல்) க (ண்ட kV _நற்) க (தி gV வீண்) க (தை kV @@ -248,8 +249,11 @@ க (ுல k _அங்) க (ுல g _) குல்க (ந்த gulkV + நீல) க (ேசி k + புலி) க (ேசி k குண்டல) க (ேசி k ம) க (ேசுவர H // need to restrict to _ம) and _வீரம) ?? + சீர்) க (ேட k ம) க (ேந்திர H ம) க (ேஷ்வ H ம) க (ேஸ்வர H @@ -269,6 +273,7 @@ ஆரோ) க்க (ிய gg வைரா) க்க (ிய gg _வி) க்க (ிரக gg + கு) க்கி (ராம gg ஜன) க்க (ும்பல gg வி) க்ட (ோரியா kt. // victoria வி) க (்ரம k @@ -394,6 +399,7 @@ _) ட (வர t.V _) ட (ேப t. _) டாக (்ஸி t.a:k + _ல) ட்ட d.d.V# .group ண ண n.V @@ -552,6 +558,7 @@ _) த (ுச்சம d _) த (ுச்சாதனன d _) த (ுட்ட d + _) த (ுபாய d _) த (ுரதிர்ஷ்ட d _) த (ுராசை d _) த (ுரியோதனன d @@ -597,12 +604,12 @@ _) த (ொம் d _) த (ோசை d _) த (ோஷ d - _) த (ுபாய d //endsort //sort _வசந்) த tV# + _ப) த (ஞ்சலி tV _கீழ்) த (ட்ட tV _மேல்) த (ட்ட tV முட்டாள்) த (ன tV @@ -672,7 +679,6 @@ _பார்வ) த (ி t ச) த (்ரு t த) த (்ரூப t பா) த (்ரூம t - _ப) த (ஞ்சலி tV //endsort @@ -854,6 +860,7 @@ _முகத்தின்_) ப (ாவ b _) ப (ிக்கு b _) ப (ிக்ஷு b _) ப (ிக்ஷூ b + _) ப (ிம்ப b _) ப (ிரகதீ b _) ப (ிரகஸ்பதி b _) ப (ிரம்ம b @@ -947,6 +954,7 @@ _முகத்தின்_) ப (ாவ b சீதா) பதி pVti சேது) பதி pVti தரணி) பதி pVti + திரௌ) ப (தி pV பிரஜா) பத (ி pVt மகுட) பதி pVti பிரகஸ்) பதி pVti @@ -965,6 +973,7 @@ _முகத்தின்_) ப (ாவ b அனு) ப (மா pV _க) ப (ம்_ bV _ஊடு) ப (யிர pV + நாகா) ப (ரண bV கரம்) ப (ற் pV ப (ற்றி_ pV பல) ப (ல pV @@ -986,8 +995,11 @@ _முகத்தின்_) ப (ாவ b அடி) ப (ாவி p கோ) ப (ி p _முன்) ப (ின்_ p + _) ப (ிப்ரவரி f உடன்) ப (ிற p ப (ிறகு+ p + தேய்) ப (ிறை p + வளர்) ப (ிறை p சிறு) ப (ிள்ளை p ஆண்) ப (ிள்ளை p பெண்) ப (ிள்ளை p @@ -1146,9 +1158,10 @@ _முகத்தின்_) ப (ாவ b _) பி (ரே p _) பி (ரோகிதர p _) பி (ளாட்பார p - _) பி (ளாஸ்க் f + _) பி (ளாஸ்க் f // flask _) பீ (ராமண b அதிக) ப்பி (ரசங்க pp + _பர) ப்பி (ரம்ம pb //endsort // musical notes @@ -1273,6 +1286,25 @@ _முகத்தின்_) ப (ாவ b // vowel letters +.group இ +//sort + இ i + _) இ (ரகசிய // silent + _) இ (ரசாயன + _) இ (ரத்த + _) இ (ராஜ + _) இ (ராணி + _) இ (ராணுவ + _) இ (ராத்த + _) இ (ராம + _) இ (ராவண + _) இ (லகுவாக + _) இ (லட்சண + _) இ (லட்சிய // silent + _) இ (லவங்க + _) இ (லேச // silent +//endsort + .group 0xe0ae // characters which start with UTF-8 bytes: [e0 ae] ஂ // anusvara @@ -1281,20 +1313,6 @@ _முகத்தின்_) ப (ாவ b ஆ a: - இ i - _) இ (லட்சிய // silent - _) இ (ரகசிய // silent - _) இ (லேச // silent - _) இ (ரத்த - _) இ (ராம - _) இ (ராவண - _) இ (ராத்த - _) இ (ராஜ - _) இ (ராணுவ - _) இ (லகுவாக - _) இ (ராணி - _) இ (லட்சண - ஈ i: உ u @@ -1303,6 +1321,7 @@ _முகத்தின்_) ப (ாவ b எ e _) எ ;e // add a short [j] sound at start of word ? + எப (்ரல ;e:p ஏ e: _) ஏ ;e: // add a short [j] sound at start of word ? diff --git a/phsource/compile_report b/phsource/compile_report index 71bfc9d3..ba490dfa 100644 --- a/phsource/compile_report +++ b/phsource/compile_report @@ -1,4 +1,4 @@ -63 phoneme tables +64 phoneme tables new total base 107 107 consonants 9 115 @@ -20,7 +20,7 @@ consonants 9 115 fr 56 138 fr-ca 11 138 hi 58 149 - ta 21 152 + ta 20 151 hu 24 121 lv 29 125 nl 24 125 @@ -63,6 +63,7 @@ consonants 9 115 gd 6 107 bg 10 119 nso 8 107 + ht 11 138 Data file Used by b/b [b] base @@ -340,8 +341,8 @@ l/l_ [l/] base [l/] fr l/l_@ [l/3] base [l/] fr -l/l@ [l#] base - [߸ ] base +l/l@ [á3m] base + [l#] base [l] fr [l/2] fr l/L1_aL [l/] base @@ -366,14 +367,14 @@ l/L2_oL [l/2] base l/L2_uL [l/2] base l/l_3 [l/] de l/l_4 [ll] sq -l/la [l#] base - [߸ ] base +l/la [á3m] base + [l#] base [l] fr [l/2] fr l/l_a [l/3] base [l/] fr -l/le [l#] base - [߸ ] base +l/le [á3m] base + [l#] base [l] fr [l/2] fr l/l_e [l/3] base @@ -382,8 +383,8 @@ l/L_eL_af [&] af [&:] af l/l_front [L] sq l/l_front_ [l/4] sq -l/li [l#] base - [߸ ] base +l/li [á3m] base + [l#] base [l] fr [l/2] fr [l] zh @@ -394,15 +395,15 @@ ll/ll [L] bg ll/_ll [L] bg l/l_long [l] base [l] fr -l/lo [l#] base - [߸ ] base +l/lo [á3m] base + [l#] base [l] fr [l/2] fr l/l_o [l/3] base [l/] fr l^/l_rfx [l.] base -l/lu [l#] base - [߸ ] base +l/lu [á3m] base + [l#] base [l] fr [l/2] fr l/l_u [l/3] base @@ -1083,6 +1084,7 @@ vnasal/aa_n [a~] hi vnasal/aa_n2 [A~] en vnasal/aa_n3 [A~] af vnasal/aa_n4 [A~] fr + [A~] ht vnasal/a#_n [&~] pt vnasal/a#u_n [&U~] pt [&U~] pt-pt @@ -1100,6 +1102,7 @@ vnasal/i_n2 [i~] hi vnasal/oi_n [oI~] pt vnasal/o_n [o~] hi [o~] pt + [O~] ht vnasal/o_n2 [o~] af [O~] fr vnasal/oo_n2 [O~] en @@ -1113,6 +1116,7 @@ vnasal/u_n [U~] hi vnasal/V_n [V~] hi vnasal/W_n [E~] fr [W~] fr + [E~] ht voc/bh [B] base voc/dh [D] base voc/dh_ [D] base @@ -1180,7 +1184,6 @@ voc/z_pzd [Z;] base voc/z_pzd_ [Z;] base [z;] base vowel/@ [@] base - [3] en [@] en [@2] en [@5] en @@ -1233,8 +1236,7 @@ vowel/@_4 [@] en-us [@] de [@] nl [@] no -vowel/@_6 [3] en - [@] en +vowel/@_6 [@] en [W] fr vowel/8 [o-] zh vowel/8_2 [U] en-us @@ -1335,6 +1337,7 @@ vowel/a_6 [a] ca [a:] vi vowel/a_7 [a] en [a] fr + [a] ht vowel/aa [A] fr-ca [A] no [A:] no @@ -1416,7 +1419,9 @@ vowel/e_3 [i] en-n [e:] hu [e] ku vowel/e_5 [i] en-sc -vowel/e_8 [e] fr +vowel/e_6 [e] ht +vowel/e_8 [E:] de + [e] fr vowel/e_9 [E2] fr vowel/ee [E] en-n [E] sv @@ -1474,10 +1479,10 @@ vowel/e_mid [E] en-rp [e] hy [E] prs [e] bg + [E] ht vowel/e_mid2 [E] af [E] de [E2] de - [E:] de [e] jbo [e] nci [e] fi @@ -1557,6 +1562,7 @@ vowel/i_7 [i] pl [i] sq vowel/i#_7 [i[] zh vowel/i_8 [i] fr + [i] ht vowel/i_en [i:] en [i:] en-us vowel/i_fnt [i:] en-wi @@ -1671,6 +1677,7 @@ vowel/o_6 [O:] nl vowel/o_7 [o] ku vowel/o_8 [o] fr [o2] fr + [o] ht vowel/oe [W] af [W] de [W] hy @@ -1684,6 +1691,7 @@ vowel/o_mid [U@] en-rp [o] bg vowel/o_mid2 [O] fr [o] fr + [O] ht vowel/oo [o] base [O:] en-sc [O] en-wi @@ -1772,8 +1780,7 @@ vowel/u_2 [u1] fi [u] is [u] tr [u] bg -vowel/u#_2 [u-] ta - [u-] sv +vowel/u#_2 [u-] sv vowel/u#_3 [U] ta [U:] ta vowel/u#_4 [U] en-sc @@ -1818,7 +1825,10 @@ vowel/u_bck [u] base2 [u] bg vowel/u_bck2 [u] fr [u:] fr + [u] ta + [u:] ta [u:] la + [u] ht vowel/uu [U] en [U] en-n [U] en-wm @@ -1937,57 +1947,56 @@ vwl_en_us/aU@ [aU@] en-us vwl_en_us/ee [E] en-us vwl_en_us/er [e@] en-us vwl_en_us/ir [i@3] en-us -vwl_en_us/oor [0] en-us - [O:] en-us +vwl_en_us/oor [O:] en-us [O@] en-us vwl_en_us/or [o@] en-us [O:] en-sc vwl_en_us/ur [U@] en-us -vwl_fr/@2r [߸ ] fr -vwl_fr/a2r [߸ ] fr -vwl_fr/aa2r [߸ ] fr +vwl_fr/@2r [�æ] fr +vwl_fr/a2r [�æ] fr +vwl_fr/aa2r [�æ] fr vwl_fr/br [r/2] fr -vwl_fr/e2r [߸ ] fr -vwl_fr/e_2r [߸ ] fr -vwl_fr/ee2r [߸ ] fr -vwl_fr/i2r [߸ ] fr +vwl_fr/e2r [�æ] fr +vwl_fr/e_2r [�æ] fr +vwl_fr/ee2r [�æ] fr +vwl_fr/i2r [�æ] fr vwl_fr/j [j/] fr -vwl_fr/o2r [߸ ] fr -vwl_fr/oo2r [߸ ] fr +vwl_fr/o2r [�æ] fr +vwl_fr/oo2r [�æ] fr vwl_fr/r [r] fr [r/2] fr vwl_fr/r_ [r/] fr vwl_fr/r_@ [r/] fr -vwl_fr/r@ [߸ ] fr +vwl_fr/r@ [�æ] fr vwl_fr/@R [x] pt-pt -vwl_fr/r@2 [߸ ] fr +vwl_fr/r@2 [�æ] fr vwl_fr/@R2 [R] fr-ca -vwl_fr/ra [߸ ] fr +vwl_fr/ra [�æ] fr vwl_fr/r_a [r/] fr -vwl_fr/raa [߸ ] fr -vwl_fr/re [߸ ] fr +vwl_fr/raa [�æ] fr +vwl_fr/re [�æ] fr vwl_fr/r_e [r/] fr -vwl_fr/re2 [߸ ] fr -vwl_fr/ree [߸ ] fr -vwl_fr/ri [߸ ] fr +vwl_fr/re2 [�æ] fr +vwl_fr/ree [�æ] fr +vwl_fr/ri [�æ] fr vwl_fr/r_i [r/] fr -vwl_fr/rj [߸ ] fr +vwl_fr/rj [�æ] fr vwl_fr/r_n [r/] fr -vwl_fr/ro [߸ ] fr +vwl_fr/ro [�æ] fr vwl_fr/r_o [r/] fr -vwl_fr/roo [߸ ] fr +vwl_fr/roo [�æ] fr vwl_fr/rr [r/] fr -vwl_fr/ru [߸ ] fr +vwl_fr/ru [�æ] fr vwl_fr/r_u [r/] fr -vwl_fr/rw [߸ ] fr -vwl_fr/ry [߸ ] fr +vwl_fr/rw [�æ] fr +vwl_fr/ry [�æ] fr vwl_fr/r_y [r/] fr vwl_fr/tr [r/2] fr vwl_fr/trr [r/] fr -vwl_fr/u2r [߸ ] fr +vwl_fr/u2r [�æ] fr vwl_fr/wa [w] fr [w/] fr -vwl_fr/y2r [߸ ] fr +vwl_fr/y2r [�æ] fr vwl_hi/l-voc [l-] base [l-] sk [l:] sk diff --git a/phsource/l/L1_@L b/phsource/l/L1_@L index 146aa52bd6bbd0de917769eb965e0129940637d0..c135ee01c711ad8a43562397c84c8d66c202ad3b 100644 GIT binary patch delta 21 bcmeCy>ekv2%gV^GIga%^8;}a)*~$R`N!12q delta 21 bcmeCy>ekv2%gV^IIga%^8;}a)*~$R`N+AYp diff --git a/phsource/l/L1_aL b/phsource/l/L1_aL index f7d4be92024b9c11dc86839984d9cd5f5adf9555..4f004f8e1f12437f07ba4c16e93f3edacc995c63 100644 GIT binary patch delta 25 hcmeyU_EBxaa}Gv^$!oY|H?wjsV`OC5yoT#22LORZ2-E-o delta 25 hcmeyU_EBxaa}Gw9$!oY|H?wjsV`OC6yoT#22LOSg2;2Yw diff --git a/phsource/l/L1_iL b/phsource/l/L1_iL index 1789adcbebc1bf4eed88b7119180a45cf5d25ab8..8a9375da2540d474f6e0e34c673f41a0b19cf1ba 100644 GIT binary patch delta 21 dcmX@Ec3f?PDm$aXW;OO^W=4k1tGMQJ002vM21@_{ delta 21 dcmX@Ec3f?PDm$afW;OO^W=59HtGMQJ002wD22%h4 diff --git a/phsource/l/L1_oL b/phsource/l/L1_oL index e84496a940d4a69ce790d5603c88bf03a8afce76..f3ae3dcb2794c9447d63a715be67d65be75376b0 100644 GIT binary patch delta 21 bcmX@Cc35qLGb!BxPK5@E delta 21 bcmX@Cc35qLGb!BxPSFOD diff --git a/phsource/l/L1_uL b/phsource/l/L1_uL index 590255fc34f5e95f0521911abf72b77319f43d28..6762f27b1e01e5999fca093d64ecea861522e854 100644 GIT binary patch delta 21 bcmaDU_fl@dXEsKL&0pArS%DM>Pa-n_T(<_Q delta 21 bcmaDU_fl@dXEsKb&0pArS%DM>Pa-n_T>}QP diff --git a/phsource/ph_croatian b/phsource/ph_croatian index 5c292ca2..9dd0fbea 100644 --- a/phsource/ph_croatian +++ b/phsource/ph_croatian @@ -243,6 +243,7 @@ endphoneme phoneme r* vowel nonsyllabic unstressed + ipa r length 50 starttype #@ endtype #@ AppendPhoneme(*) diff --git a/phsource/ph_danish b/phsource/ph_danish index 7f7e54d3..bd503d38 100644 --- a/phsource/ph_danish +++ b/phsource/ph_danish @@ -149,6 +149,7 @@ endphoneme phoneme R lengthmod 7 liquid + ipa ʁ FMT(r/aa) endphoneme diff --git a/phsource/ph_dutch b/phsource/ph_dutch index e5e56ce0..f836e154 100644 --- a/phsource/ph_dutch +++ b/phsource/ph_dutch @@ -169,6 +169,9 @@ phoneme Q Vowelin f1=2 f2=2300 200 300 f3=-300 80 Vowelout f1=2 f2=2300 250 300 f3=-300 80 brk + IF prevPhW(x) THEN + ChangePhoneme(NULL) + ENDIF IF nextPhW(isVoiced) THEN ELSE ChangePhoneme(x) diff --git a/phsource/ph_english b/phsource/ph_english index 03fd06e3..15dcdea1 100644 --- a/phsource/ph_english +++ b/phsource/ph_english @@ -6,6 +6,7 @@ endphoneme phoneme t# // reduced [t] as in "city" vcd alv stop + ipa ɾ lengthmod 5 Vowelin f1=1 f2=1700 -300 300 f3=-100 80 Vowelout f1=2 f2=1700 -300 300 f3=-100 80 @@ -28,7 +29,8 @@ phoneme l // use dark [l/2] before not-vowel liquid lengthmod 7 - IF nextPh(isNotVowel) THEN + IF nextPhW(isVowel) THEN + ELSE IF prevPh(isNotVowel) THEN ChangePhoneme(l/) ELSE @@ -59,6 +61,7 @@ endphoneme phoneme r- // linking r, used in English between certain vowels and a following vowel liquid rhotic + ipa ɹ lengthmod 0 NextVowelStarts @@ -113,11 +116,8 @@ phoneme 3 // Schwa, used for rhotic schwa in American vowel starttype #@ endtype #@ unstressed length 140 - IfNextVowelAppend(r-) - IF thisPh(isWordEnd) THEN - FMT(vowel/@_6) - ENDIF - FMT(vowel/@) + ipa ə + CALL @ endphoneme @@ -165,6 +165,7 @@ endphoneme phoneme a# vowel starttype #@ endtype #@ + ipa ɐ unstressed length 150 FMT(vowel/a#_3) @@ -173,7 +174,8 @@ endphoneme phoneme aa // 'bath' etc. vowel starttype #a endtype #a - length 190 + ipa a + length 185 IfNextVowelAppend(r-) FMT(vowel/a) endphoneme @@ -246,6 +248,7 @@ endphoneme phoneme A@ // Used for [A:] when followed by 'r' vowel starttype #a endtype #a + ipa ɑː length 230 IfNextVowelAppend(r-) FMT(vowel/aa_2) @@ -263,7 +266,7 @@ endphoneme phoneme i: vowel starttype #i endtype #i - length 175 long + length 175 IfNextVowelAppend(;) IF prevPh(w) THEN VowelStart(w/wi2) @@ -290,6 +293,7 @@ endphoneme phoneme O@ vowel starttype #o endtype #o + ipa ɔː length 240 IfNextVowelAppend(r-) FMT(vowel/oo_en) @@ -298,6 +302,7 @@ endphoneme phoneme o@ vowel starttype #o endtype #o + ipa ɔː length 250 IfNextVowelAppend(r-) FMT(vowel/oo_en) @@ -323,6 +328,7 @@ endphoneme phoneme oU vowel starttype #@ endtype #u + ipa əʊ length 220 FMT(vdiph/@u_en) endphoneme @@ -331,6 +337,9 @@ endphoneme phoneme aI vowel starttype #a endtype #i length 240 + IF nextPh(#a) OR nextPh(#o) THEN + AppendPhoneme(;) + ENDIF FMT(vdiph/ai_2) endphoneme @@ -402,6 +411,10 @@ endphoneme phoneme IR // used for "ir" when [3:] is split (Scottish) vowel starttype #@ endtype #@ length 190 + ipa əɹ + IF nextPhW(r-) THEN + ipa ə + ENDIF IfNextVowelAppend(r-) FMT(vowelr/V_r) endphoneme @@ -410,6 +423,10 @@ endphoneme phoneme VR // used for "or"/"ur" when [3:] is split (Scottish) vowel starttype #@ endtype #@ length 210 + ipa ʌɹ + IF nextPhW(r-) THEN + ipa ʌ + ENDIF IfNextVowelAppend(r-) FMT(vowelr/V3_r) endphoneme diff --git a/phsource/ph_english_n b/phsource/ph_english_n index 6bd8c21c..24a3e127 100644 --- a/phsource/ph_english_n +++ b/phsource/ph_english_n @@ -14,6 +14,7 @@ endphoneme phoneme 3 // Schwa, used for rhotic schwa in American vowel starttype #@ endtype #@ + ipa ə unstressed length 140 IfNextVowelAppend(r-) @@ -72,6 +73,7 @@ endphoneme phoneme V vowel starttype #o endtype #o + ipa ʊ length 140 ChangeIfDiminished(@) FMT(vowel/o-_2) @@ -88,6 +90,7 @@ endphoneme phoneme a# vowel starttype #@ endtype #@ + ipa ɐ unstressed length 140 IfNextVowelAppend(r-) @@ -105,6 +108,7 @@ endphoneme phoneme A@ vowel starttype #a endtype #@ + ipa ɑː length 250 IfNextVowelAppend(r-) FMT(vowel/aa_5) @@ -113,6 +117,7 @@ endphoneme phoneme aa // 'bath' etc. vowel starttype #a endtype #a + ipa a length 150 FMT(vowel/a) endphoneme @@ -149,6 +154,7 @@ endphoneme phoneme O@ vowel starttype #o endtype #@ + ipa ɔː length 240 IfNextVowelAppend(r-) FMT(vwl_en_n/O@) @@ -157,6 +163,7 @@ endphoneme phoneme o@ vowel starttype #o endtype #@ + ipa ɔː length 240 IfNextVowelAppend(r-) FMT(vwl_en_n/O@) @@ -180,6 +187,7 @@ endphoneme phoneme aU vowel starttype #e endtype #u + ipa æʊ length 230 FMT(vdiph/eeu_3) endphoneme @@ -187,6 +195,7 @@ endphoneme phoneme oU vowel starttype #o endtype #o + ipa oː length 220 FMT(vowel/o) endphoneme @@ -201,6 +210,7 @@ endphoneme phoneme eI vowel starttype #i endtype #i + ipa eː length 210 FMT(vowel/e) endphoneme diff --git a/phsource/ph_english_rp b/phsource/ph_english_rp index 35c6d5eb..97606e47 100644 --- a/phsource/ph_english_rp +++ b/phsource/ph_english_rp @@ -17,7 +17,11 @@ endphoneme phoneme 3 // Schwa, used for rhotic schwa in American - import_phoneme @ + vowel starttype #@ endtype #@ + unstressed + length 140 + ipa ə + CALL @ endphoneme @@ -45,6 +49,7 @@ endphoneme phoneme a vowel starttype #a endtype #a + ipa æ length 175 ChangeIfDiminished(a#) FMT(vowel/&) @@ -109,6 +114,7 @@ endphoneme phoneme a# vowel starttype #@ endtype #@ + ipa ɐ unstressed length 150 IfNextVowelAppend(r-) @@ -126,6 +132,7 @@ endphoneme phoneme A@ vowel starttype #a endtype #a + ipa ɑː length 240 IfNextVowelAppend(r-) FMT(vwl_en_rp/aa) @@ -134,6 +141,7 @@ endphoneme phoneme aa // 'bath' etc. vowel starttype #a endtype #a + ipa ɑː length 200 FMT(vwl_en_rp/aa) endphoneme @@ -170,6 +178,7 @@ endphoneme phoneme O@ vowel starttype #o endtype #@ + ipa ɔː length 230 IfNextVowelAppend(r-) FMT(vowel/oo_1) @@ -200,6 +209,7 @@ endphoneme phoneme oU vowel starttype #@ endtype #u + ipa əʊ length 220 FMT(vdiph/@u_2) endphoneme @@ -208,6 +218,9 @@ endphoneme phoneme aI vowel starttype #a endtype #i length 230 + IF nextPh(#a) OR nextPh(#o) THEN + AppendPhoneme(;) + ENDIF FMT(vdiph/ai_6) endphoneme @@ -244,6 +257,7 @@ endphoneme phoneme U@ vowel starttype #u endtype #@ + ipa ɔː length 230 IfNextVowelAppend(r-) FMT(vowel/o_mid) diff --git a/phsource/ph_english_sc b/phsource/ph_english_sc index b4fcacad..59a3cc93 100644 --- a/phsource/ph_english_sc +++ b/phsource/ph_english_sc @@ -79,6 +79,7 @@ endphoneme phoneme aa // 'bath' etc. vowel starttype #a endtype #a + ipa a: length 220 IfNextVowelAppend(r-) FMT(vowel/a_3) @@ -114,6 +115,7 @@ endphoneme phoneme i // optional variant of [I] for end of words vowel starttype #i endtype #e + ipa e length 150 IfNextVowelAppend(;) FMT(vowel/e_5) @@ -138,6 +140,7 @@ endphoneme phoneme U vowel starttype #u endtype #u + ipa ʉ length 140 FMT(vowel/u#_4) endphoneme @@ -146,6 +149,7 @@ endphoneme phoneme A: vowel starttype #a endtype #a length 220 + ipa a: IfNextVowelAppend(r-) IF nextPh(r) THEN FMT(vowelr/aa_r, 30) @@ -157,6 +161,7 @@ endphoneme phoneme A@ // Used for [A:] when followed by 'r', becomes [A:]+[r] in American vowel starttype #a endtype #@ length 250 + ipa aː AppendPhoneme(r) FMT(vowelr/aa_r) endphoneme @@ -166,6 +171,7 @@ phoneme 3: vowel starttype #e endtype #@ length 210 ChangeIfNotStressed(VR) // also need "replace 02 3: VR" in voice file + ipa e AppendPhoneme(r) FMT(vdiph2/e@) endphoneme @@ -199,6 +205,7 @@ endphoneme phoneme O@ vowel starttype #o endtype #@ length 230 + ipa ɔ AppendPhoneme(r) FMT(vowelr/oo_r) endphoneme @@ -206,6 +213,7 @@ endphoneme phoneme o@ vowel starttype #o endtype #@ length 230 + ipa o AppendPhoneme(r) FMT(vowelr/o_r) endphoneme @@ -221,6 +229,7 @@ endphoneme phoneme u: vowel starttype #u endtype #u + ipa ʉː length 160 IF nextPh(isVFricative) THEN Length 200 @@ -234,6 +243,7 @@ endphoneme phoneme aU vowel starttype #a endtype #u + ipa ʌʉ length 200 FMT(vdiph/au#) endphoneme @@ -241,6 +251,7 @@ endphoneme phoneme oU vowel starttype #o endtype #u + ipa oː length 190 FMT(vowel/o_3) endphoneme @@ -271,6 +282,7 @@ endphoneme phoneme eI vowel starttype #e endtype #i + ipa eː length 190 FMT(vowel/e_2) endphoneme @@ -286,6 +298,7 @@ endphoneme phoneme e@ vowel starttype #e endtype #@ length 220 + ipa e AppendPhoneme(r) FMT(vdiph2/e@) endphoneme @@ -293,6 +306,7 @@ endphoneme phoneme i@3 vowel starttype #i endtype #@ + ipa ɪ length 220 AppendPhoneme(r) FMT(vowelr/i_r) @@ -301,6 +315,10 @@ endphoneme phoneme U@ vowel starttype #u endtype #@ + ipa ʉɹ + IF nextPh(r-) THEN + ipa ʉ + ENDIF length 240 IfNextVowelAppend(r-) FMT(vdiph2/u#@) diff --git a/phsource/ph_english_us b/phsource/ph_english_us index 1c885245..c8dda910 100644 --- a/phsource/ph_english_us +++ b/phsource/ph_english_us @@ -6,6 +6,7 @@ phoneme 3 // Schwa, used for rhotic schwa in American vowel starttype #@ endtype #@ + ipa ɚ unstressed length 210 IfNextVowelAppend(r-) @@ -50,6 +51,7 @@ endphoneme phoneme a vowel starttype #e endtype #@ + ipa æ length 210 ChangeIfDiminished(a#) @@ -68,6 +70,7 @@ endphoneme phoneme a# vowel starttype #@ endtype #@ + ipa ɐ unstressed length 150 FMT(vowel/a#_3) @@ -112,9 +115,11 @@ endphoneme phoneme 0 vowel starttype #a endtype #a length 200 + ipa ɑː ChangeIfDiminished(@) IF nextPh(r) THEN - FMT(vwl_en_us/oor) + ChangePhoneme(O:) +// FMT(vwl_en_us/oor) ENDIF FMT(vowel/aa_8) endphoneme @@ -147,6 +152,10 @@ endphoneme phoneme A@ // Used for [A:] when followed by 'r', becomes [A:]+[r] in American vowel starttype #a endtype #a + ipa ɑːɹ + IF nextPh(r-) THEN + ipa ɑː + ENDIF length 260 IfNextVowelAppend(r-) FMT(vwl_en_us/ar) @@ -183,6 +192,10 @@ endphoneme phoneme O@ vowel starttype #o endtype #@ length 250 + ipa ɔːɹ + IF nextPhW(r) THEN + ipa ɔː + ENDIF IfNextVowelAppend(r) FMT(vwl_en_us/oor) endphoneme @@ -191,6 +204,10 @@ endphoneme phoneme o@ vowel starttype #o endtype #@ length 250 + ipa oːɹ + IF nextPhW(r) THEN + ipa oː + ENDIF IfNextVowelAppend(r) FMT(vwl_en_us/or) endphoneme @@ -228,6 +245,9 @@ endphoneme phoneme aI vowel starttype #a endtype #i length 250 + IF nextPh(#a) OR nextPh(#o) THEN + AppendPhoneme(;) + ENDIF FMT(vdiph/aae) endphoneme @@ -249,6 +269,10 @@ endphoneme phoneme e@ vowel starttype #e endtype #@ length 280 + ipa ɛɹ + IF nextPhW(r) THEN + ipa ɛ + ENDIF IfNextVowelAppend(r) FMT(vwl_en_us/er) endphoneme @@ -257,6 +281,10 @@ endphoneme phoneme i@3 vowel starttype #i endtype #@ length 280 + ipa ɪɹ + IF nextPhW(r) THEN + ipa ɪ + ENDIF IfNextVowelAppend(r) FMT(vwl_en_us/ir) endphoneme @@ -265,6 +293,10 @@ endphoneme phoneme U@ vowel starttype #@ endtype #@ length 250 + ipa ʊɹ + IF nextPhW(r-) THEN + ipa ʊ + ENDIF IfNextVowelAppend(r-) FMT(vwl_en_us/ur) endphoneme @@ -273,6 +305,10 @@ endphoneme phoneme aI@ vowel starttype #a endtype #@ length 300 + ipa aɪəɹ + IF nextPhW(r-) THEN + ipa aɪə + ENDIF IfNextVowelAppend(r-) FMT(vwl_en_us/ai@) endphoneme @@ -281,7 +317,11 @@ endphoneme phoneme aU@ vowel starttype #a endtype #@ length 300 - IfNextVowelAppend(r-) + ipa aɪʊɹ + IF nextPhW(r) THEN + ipa aɪʊ + ENDIF + IfNextVowelAppend(r) FMT(vwl_en_us/aU@) endphoneme diff --git a/phsource/ph_english_wm b/phsource/ph_english_wm index 68bfd4a0..342b06cb 100644 --- a/phsource/ph_english_wm +++ b/phsource/ph_english_wm @@ -18,7 +18,7 @@ endphoneme phoneme a vowel starttype #a endtype #a - length 170 + length 160 ChangeIfDiminished(a#) FMT(vowel/a) endphoneme @@ -67,6 +67,7 @@ endphoneme phoneme V vowel starttype #o endtype #o + ipa ʊ length 140 ChangeIfDiminished(@) FMT(vowel/o-_2) @@ -83,6 +84,7 @@ endphoneme phoneme a# vowel starttype #@ endtype #@ + ipa ɐ unstressed length 140 FMT(vowel/a#_3) @@ -99,6 +101,7 @@ endphoneme phoneme A@ vowel starttype #a endtype #a + ipa ɑː length 240 IfNextVowelAppend(r-) FMT(vowel/aa_5) @@ -107,7 +110,8 @@ endphoneme phoneme aa // 'bath' etc. vowel starttype #a endtype #a - length 150 + ipa a + length 160 FMT(vowel/a) endphoneme @@ -123,6 +127,7 @@ endphoneme phoneme i: vowel starttype #e endtype #i + ipa ei length 220 IfNextVowelAppend(;) FMT(vdiph2/ei_3) @@ -140,6 +145,7 @@ endphoneme phoneme O@ vowel starttype #o endtype #@ + ipa ɔː length 240 IfNextVowelAppend(r-) FMT(vowel/oo_1) @@ -156,6 +162,7 @@ endphoneme phoneme u: vowel starttype #u endtype #u + ipa əu length 200 FMT(vdiph/@u) endphoneme @@ -163,6 +170,7 @@ endphoneme phoneme aU vowel starttype #a endtype #u + ipa æʊ length 230 FMT(vdiph/eeu_3) endphoneme @@ -170,6 +178,7 @@ endphoneme phoneme oU vowel starttype #@ endtype #u + ipa ʌʊ length 220 FMT(vdiph/Vu_2) endphoneme @@ -177,6 +186,7 @@ endphoneme phoneme aI vowel starttype #o endtype #i + ipa ɔɪ length 240 FMT(vdiph/ooi_3) endphoneme @@ -184,6 +194,7 @@ endphoneme phoneme eI vowel starttype #@ endtype #i + ipa eː length 240 FMT(vdiph/@i_3) endphoneme @@ -191,6 +202,7 @@ endphoneme phoneme OI vowel starttype #o endtype #i + ipa oɪ length 230 FMT(vdiph/oi) endphoneme @@ -198,6 +210,7 @@ endphoneme phoneme e@ vowel starttype #@ endtype #@ + ipa ɜː length 240 IfNextVowelAppend(r-) FMT(vowel/3_en) diff --git a/phsource/ph_finnish b/phsource/ph_finnish index c9aad720..e5840197 100644 --- a/phsource/ph_finnish +++ b/phsource/ph_finnish @@ -241,6 +241,7 @@ phoneme R2 // this is [R2], but shorter liquid trill lengthmod 6 + ipa r Vowelin f1=0 f2=1700 -300 300 f3=-300 80 Vowelout f1=2 f2=1700 -300 300 f3=-300 80 brk FMT(r3/r_trill_short) addWav(r3/r_trill.wav, 50) diff --git a/phsource/ph_french b/phsource/ph_french index 83088f52..e1eb8796 100644 --- a/phsource/ph_french +++ b/phsource/ph_french @@ -1,7 +1,7 @@ //==================================================== // French //==================================================== -// Updated 2010-06-16 Michel Such +// Updated 2010-06-22 Michel Such phoneme #l virtual // Used for l and l/ @@ -82,6 +82,7 @@ phoneme r starttype #r endtype #r Vowelin f1=0 f2=1500 -400 400 f3=-400 80 lengthmod 7 + ipa U+0281 IF nextPh(isNotVowel) THEN ChangePhoneme(r/) @@ -100,6 +101,7 @@ phoneme r2 // silent unless followed by vowel vcd uvl frc rhotic starttype #r endtype #r + ipa U+0281 IF nextPh(isNotVowel) THEN ChangePhoneme(NULL) @@ -115,6 +117,7 @@ phoneme r/ // variant of [r] when not preceding a vowel starttype #r endtype #r Vowelout f1=1 f2=1200 -400 800 f3=200 100 len=30 lengthmod 7 + ipa U+0281 IF prevPhW(t) OR prevPhW(p) OR prevPhW(k) THEN FMT(vwl_fr/trr) addWav(r3/rx, 15) @@ -148,6 +151,7 @@ phoneme r/2 liquid rhotic uvl nopause starttype #r endtype #r Vowelin f1=0 f2=1500 -400 400 f3=-400 80 + ipa U+0281 CALL post_r IF prevPhW(f) OR prevPhW(k) OR prevPhW(p) OR prevPhW(s) OR prevPhW(t) OR prevPhW(S) THEN @@ -349,6 +353,7 @@ phoneme I // longer than i vowel starttype #i endtype #i palatal length 240 + ipa i IfNextVowelAppend(;) @@ -470,12 +475,13 @@ endphoneme phoneme y vowel starttype #u endtype #u - length 170 IF nextPhW(E~) OR nextPhW(#i) THEN - FMT(vowel/y, -40) + length 110 + FMT(vowel/y) ENDIF + length 180 FMT(vowel/y) endphoneme diff --git a/phsource/ph_german b/phsource/ph_german index a6abe4cd..4f6ee98f 100755 --- a/phsource/ph_german +++ b/phsource/ph_german @@ -175,7 +175,7 @@ endphoneme phoneme E: vowel starttype #e endtype #e length 200 - FMT(vowel/e_mid2) + FMT(vowel/e_8) endphoneme @@ -202,6 +202,7 @@ endphoneme phoneme y vowel starttype #u endtype #u + ipa ʏ length 110 FMT(vowel/yy_4) endphoneme @@ -232,6 +233,7 @@ endphoneme phoneme pF vls blb afr + ipa pf Vowelout f1=0 f2=1000 -500 -350 f3=-200 80 lengthmod 2 WAV(ufric/f) // could replace this with a [pf] wav file @@ -300,10 +302,9 @@ endphoneme -// TESTING - -phoneme r // uvular trill +phoneme r // uvular trill or fricative vcd uvl frc + ipa ʀ lengthmod 6 length 110 IF nextPhW(isVowel) THEN @@ -318,14 +319,36 @@ phoneme r // uvular trill endphoneme -phoneme UR - vowel starttype #u endtype #@ - flag1 - length 180 - FMT(vwl_de/uu_@) + + +phoneme V# // used for 'r' after a vowel (to create a diphthong) + liquid + lengthmod 7 + IF nextPhW(isVowel) THEN + ChangePhoneme(r) + ENDIF + + ipa ɐ + IF prevPh(#a) OR prevPh(E) THEN + FMT(r/V_2_) + ENDIF + IF prevPh(#u) THEN + FMT(r/@_) + ENDIF + FMT(r/V_) endphoneme +// TESTING + +phoneme V1# + liquid + lengthmod 7 + IF nextPhW(isVowel) THEN + ChangePhoneme(r") + ENDIF + FMT(r/V_) +endphoneme phoneme V2# // used for 'r' after a vowel (to create a diphthong) liquid @@ -336,23 +359,6 @@ phoneme V2# // used for 'r' after a vowel (to create a diphthong) FMT(r/V_2_) endphoneme - -phoneme V# // used for 'r' after a vowel (to create a diphthong) - liquid - lengthmod 7 - IF nextPhW(isVowel) THEN - ChangePhoneme(r") - ENDIF - - IF prevPh(#a) OR prevPh(E) THEN - FMT(r/V_2_) - ENDIF - IF prevPh(#u) THEN - FMT(r/@_) - ENDIF - FMT(r/V_) -endphoneme - phoneme V3# liquid lengthmod 7 @@ -362,11 +368,12 @@ phoneme V3# FMT(r/@_) endphoneme -phoneme V1# - liquid - lengthmod 7 - IF nextPhW(isVowel) THEN - ChangePhoneme(r") - ENDIF - FMT(r/V_) +phoneme UR + vowel starttype #u endtype #@ + ipa ʊɐ + flag1 + length 180 + FMT(vwl_de/uu_@) endphoneme + + diff --git a/phsource/ph_hindi b/phsource/ph_hindi index d94a1d4d..59b92c63 100644 --- a/phsource/ph_hindi +++ b/phsource/ph_hindi @@ -346,6 +346,7 @@ endphoneme phoneme t. vls rfx stop lengthmod 2 + ipa ʈ voicingswitch d. Vowelin f1=0 f2=1800 -300 300 f3=-400 80 Vowelout f1=0 f2=1800 -300 250 f3=-400 80 rms=20 colr=2 @@ -355,6 +356,7 @@ endphoneme phoneme th. vls rfx stop lengthmod 2 + ipa ʈh voicingswitch dh. Vowelin f1=0 f2=1800 -300 300 f3=-400 80 Vowelout f1=0 f2=1800 -300 250 f3=-400 80 rms=20 colr=2 @@ -366,6 +368,7 @@ phoneme d. vcd rfx stop lengthmod 5 voicingswitch t. + ipa ɖ Vowelin f1=1 f2=1800 -300 300 f3=-400 80 Vowelout f1=1 f2=1800 -300 300 f3=-400 80 colr=2 @@ -384,6 +387,7 @@ endphoneme phoneme dh. vcd rfx stop lengthmod 5 + ipa ɖh voicingswitch th. Vowelin f1=1 f2=1800 -300 300 f3=-400 80 Vowelout f1=1 f2=1800 -300 300 f3=-400 80 colr=2 diff --git a/phsource/ph_icelandic b/phsource/ph_icelandic index 19d340c1..83393b6d 100644 --- a/phsource/ph_icelandic +++ b/phsource/ph_icelandic @@ -223,6 +223,7 @@ endphoneme phoneme m# vcd blb nasal lengthmod 6 + ipa m# Vowelout f1=2 f2=1000 -500 -350 f3=-200 80 brk FMT(m/m#_) endphoneme @@ -231,6 +232,7 @@ endphoneme phoneme n# vcd alv nasal lengthmod 6 + ipa n# Vowelout f1=2 f2=1700 -300 250 f3=-100 80 rms=20 brk NextVowelStarts @@ -249,6 +251,7 @@ endphoneme phoneme n^# vcd pal nasal palatal lengthmod 6 + ipa ɲ# Vowelout f1=3 f2=2300 300 400 f3=100 80 brk rate FMT(n^/n^#_) endphoneme @@ -258,6 +261,7 @@ endphoneme phoneme N# vcd vel nasal lengthmod 6 + ipa ŋ# Vowelout f1=3 f2=2300 300 400 f3=-200 80 len=40 rms=20 brk NextVowelStarts @@ -276,6 +280,7 @@ endphoneme phoneme l# vls alv frc lengthmod 3 + ipa l# WAV(ufric/l#, 25) endphoneme @@ -283,6 +288,7 @@ endphoneme phoneme tl# vls alv stop lengthmod 2 + ipa tl# Vowelin f1=0 f2=1700 -300 300 f3=-100 80 Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20 WAV(ufric/tl#, 50) @@ -292,6 +298,7 @@ endphoneme phoneme r# // used for [r] when not preceding a vowel liquid lengthmod 2 // + ipa r# FMT(r3/r#_) addWav(r3/rx) // before n r3/r_n+r3/rx endphoneme diff --git a/phsource/ph_latin b/phsource/ph_latin index 665a4d14..006b93c9 100644 --- a/phsource/ph_latin +++ b/phsource/ph_latin @@ -141,6 +141,7 @@ phoneme vls glt apr length 50 lengthmod 3 + ipa ʰ IF nextPh(#@) THEN WAV(h/h@) diff --git a/phsource/ph_latvian b/phsource/ph_latvian index 2aa29d2e..fb1a4039 100644 --- a/phsource/ph_latvian +++ b/phsource/ph_latvian @@ -61,6 +61,7 @@ endphoneme phoneme a# vowel starttype #a endtype #a + ipa ɐ length 120 FMT(vowel/V_6) endphoneme diff --git a/phsource/ph_norwegian b/phsource/ph_norwegian index 48483215..3f0848b6 100644 --- a/phsource/ph_norwegian +++ b/phsource/ph_norwegian @@ -135,12 +135,14 @@ endphoneme phoneme u- vowel starttype #u endtype #u + ipa ʉ length 120 FMT(vwl_no/u#) endphoneme phoneme u-: vowel starttype #u endtype #u + ipa ʉː length 260 FMT(vwl_no/u#2) endphoneme @@ -171,6 +173,7 @@ endphoneme phoneme u-I vowel starttype #u endtype #i + ipa ʉɪ length 270 IfNextVowelAppend(;) FMT(vdiph/yi) diff --git a/phsource/ph_polish b/phsource/ph_polish index 6114ee0a..1f30cb3c 100644 --- a/phsource/ph_polish +++ b/phsource/ph_polish @@ -13,6 +13,7 @@ endphoneme phoneme a# vowel starttype #a endtype #a + ipa ɐ length 170 FMT(vowel/a#_2) endphoneme @@ -60,6 +61,7 @@ endphoneme phoneme y // close central unrounded (i-bar) vowel starttype #i endtype #i + ipa ɨ length 180 FMT(vowel/ii#_2) endphoneme @@ -85,6 +87,7 @@ endphoneme phoneme R liquid trill + ipa r lengthmod 6 Vowelin f1=0 f2=1700 -300 300 f3=-300 80 Vowelout f1=2 f2=1700 -300 300 f3=-300 80 brk diff --git a/phsource/ph_portugal b/phsource/ph_portugal index db9f7d14..47f2ded2 100644 --- a/phsource/ph_portugal +++ b/phsource/ph_portugal @@ -8,6 +8,7 @@ phoneme & vowel starttype #@ endtype #@ length 180 + ipa ɐ FMT(vowel/a#_3) unstressed endphoneme @@ -15,6 +16,7 @@ endphoneme phoneme &/ // Used for final "a" when next word starts with "a" vowel starttype #@ endtype #@ length 180 + ipa ɐ IF nextPh(isVowel) THEN ChangePhoneme(NULL) ENDIF @@ -30,12 +32,14 @@ endphoneme phoneme &~ vowel starttype #e endtype #@ + ipa ɐU+0303 length 240 FMT(vnasal/ee_n2) endphoneme phoneme &U~ vowel starttype #@ endtype #u + ipa ɐU+0303ʊU+0303 length 240 FMT(vnasal/a#u_n) endphoneme @@ -59,6 +63,7 @@ endphoneme phoneme y vowel starttype #@ endtype #@ length 110 + ipa ɨ FMT(vowel/i#_5) endphoneme @@ -74,6 +79,7 @@ endphoneme phoneme i/ // changes to NULL before a vowel vowel starttype #i endtype #i length 100 + ipa ɨ IF nextPh(isVowel) THEN ChangePhoneme(NULL) ENDIF @@ -131,6 +137,7 @@ endphoneme phoneme x // [r] for Portugal liquid trill + ipa ʁ lengthmod 7 Vowelin f1=0 f2=1500 -400 400 f3=-400 80 IF nextPh(isNotVowel) THEN @@ -145,8 +152,12 @@ phoneme R // for Portugal this is same the as [r] endphoneme -phoneme s# // This is [s] for Brazi;, [S] for Portugal - import_phoneme base/S +phoneme s# // This is [s] for Brazil, [S] for Portugal + vls pla frc sibilant + lengthmod 3 + ipa ʃ + CALL base/S +// import_phoneme base/S endphoneme diff --git a/phsource/ph_pt_brazil b/phsource/ph_pt_brazil index 03dc5916..e17286ae 100644 --- a/phsource/ph_pt_brazil +++ b/phsource/ph_pt_brazil @@ -37,6 +37,7 @@ endphoneme phoneme &~ vowel starttype #@ endtype #@ + ipa ɐU+0303 length 180 // ChangeIfNotStressed(&) FMT(vnasal/a#_n) @@ -44,12 +45,14 @@ endphoneme phoneme &U~ vowel starttype #@ endtype #u + ipa ɐU+0303ʊU+0303 length 240 FMT(vnasal/a#u_n) endphoneme phoneme oI~ vowel starttype #o endtype #i + ipa oU+0303ɪU+0303 length 260 FMT(vnasal/oi_n) endphoneme @@ -183,6 +186,7 @@ endphoneme phoneme x // this is [R] from Slovak/Czech liquid trill + ipa r lengthmod 6 Vowelin f1=0 f2=1700 -300 300 f3=-300 80 Vowelout f1=2 f2=1700 -300 300 f3=-300 80 brk @@ -196,13 +200,17 @@ endphoneme phoneme s# // This is [s] for Brazi;, [S] for Portugal - import_phoneme base/s + vls alv frc sibilant + lengthmod 3 + ipa s + CALL base/s endphoneme phoneme * vcd alv stop lengthmod 6 + ipa ɾ Vowelin f1=1 f2=1700 -300 300 f3=0 80 Vowelout f1=2 f2=1700 -300 300 f3=0 80 IF PreVoicing THEN diff --git a/phsource/ph_romanian b/phsource/ph_romanian index b1c0c8a1..fffaeccf 100644 --- a/phsource/ph_romanian +++ b/phsource/ph_romanian @@ -9,6 +9,7 @@ phoneme I^ // "silent i", palatilizes the preceding consonant vowel starttype #i endtype #i unstressed + ipa ʲ length 70 IF nextPh(isVowel) THEN ChangePhoneme(;) @@ -41,6 +42,7 @@ endphoneme phoneme y vowel starttype #@ endtype #@ + ipa ɨ length 180 FMT(vowel/i#_5) endphoneme diff --git a/phsource/ph_serbian b/phsource/ph_serbian index df49d7c4..2aad5963 100644 --- a/phsource/ph_serbian +++ b/phsource/ph_serbian @@ -13,6 +13,7 @@ endphoneme phoneme & vowel starttype #a endtype #a + ipa ɐ length 140 FMT(vowel/a#) endphoneme @@ -21,6 +22,7 @@ endphoneme phoneme r* // this is [R] from Slovak/Czech liquid trill + ipa r lengthmod 6 Vowelin f1=0 f2=1700 -300 300 f3=-300 80 Vowelout f1=2 f2=1700 -300 300 f3=-300 80 brk diff --git a/phsource/ph_slovak b/phsource/ph_slovak index 2737e9d6..8226d5fd 100644 --- a/phsource/ph_slovak +++ b/phsource/ph_slovak @@ -104,12 +104,14 @@ endphoneme phoneme r- vowel starttype #@ endtype #@ + ipa rU+0329 length 220 FMT(vowelr/r-voc) endphoneme phoneme r: vowel starttype #@ endtype #@ + ipa rU+0329ː length 300 FMT(vowelr/r-voc) endphoneme @@ -118,6 +120,7 @@ endphoneme phoneme R^ // Czech r-caron vcd pla frc sibilant + ipa rU+031d lengthmod 6 Vowelin f1=0 f2=1700 -300 300 f3=-300 80 Vowelout f1=2 f2=1700 -300 300 f3=-300 80 brk @@ -126,6 +129,7 @@ endphoneme phoneme R^/ // Czech r-caron (weaker, for after p,f,t,k) vcd pla frc sibilant + ipa rU+031dU+030a lengthmod 6 Vowelin f1=0 f2=1700 -300 300 f3=-300 80 Vowelout f1=2 f2=1700 -300 300 f3=-300 80 brk @@ -135,6 +139,7 @@ endphoneme phoneme l- vowel starttype #@ endtype #@ + ipa lU+0329 length 140 FMT(vwl_hi/l-voc) endphoneme @@ -142,6 +147,7 @@ endphoneme phoneme l: vowel starttype #@ endtype #@ + ipa lU+0329ː length 250 FMT(vwl_hi/l-voc) endphoneme diff --git a/phsource/ph_spanish b/phsource/ph_spanish index 0e51d0fd..8505aa40 100644 --- a/phsource/ph_spanish +++ b/phsource/ph_spanish @@ -71,6 +71,7 @@ endphoneme phoneme v# // a shorter [v], a little towards [b] vcd lbd frc + ipa v lengthmod 6 voicingswitch f Vowelin f1=1 f2=1000 -300 -200 f3=-300 100 diff --git a/phsource/ph_tamil b/phsource/ph_tamil index fc527e51..e26801fa 100644 --- a/phsource/ph_tamil +++ b/phsource/ph_tamil @@ -13,6 +13,7 @@ endphoneme phoneme V vowel starttype #@ endtype #@ + ipa ɐ length 130 FMT(vowel/V_3) endphoneme @@ -81,6 +82,7 @@ phoneme u vowel starttype #u endtype #u length 110 IF prevPhW(isVel) THEN + FMT(vowel/u_bck2) ELSE ChangeIfNotStressed(U) ENDIF @@ -90,6 +92,7 @@ endphoneme phoneme U vowel starttype #u endtype #u length 110 + ipa ʉ FMT(vowel/u#_3) endphoneme @@ -97,6 +100,7 @@ phoneme u: vowel starttype #u endtype #u length 260 IF prevPhW(isVel) THEN + FMT(vowel/u_bck2) ELSE ChangeIfNotStressed(U:) ENDIF @@ -105,16 +109,11 @@ endphoneme phoneme U: vowel starttype #u endtype #u + ipa ʉː length 240 FMT(vowel/u#_3) endphoneme -phoneme u- - vowel starttype #u endtype #u - length 130 - FMT(vowel/u#_2) -endphoneme - phoneme aI vowel starttype #a endtype #i diff --git a/phsource/ph_welsh b/phsource/ph_welsh index d323dcf5..67a61be3 100644 --- a/phsource/ph_welsh +++ b/phsource/ph_welsh @@ -23,6 +23,7 @@ endphoneme phoneme I vowel starttype #i endtype #i + ipa ɨ length 150 FMT(vowel/ii_3) endphoneme @@ -69,6 +70,7 @@ endphoneme phoneme y: // symbol used in place of i" (i bar) vowel starttype #i endtype #i + ipa ɨː length 180 ChangeIfNotStressed(Y) FMT(vowel/i#) @@ -112,6 +114,7 @@ endphoneme phoneme AY vowel starttype #a endtype #i + ipa ɑɨ length 250 FMT(vdiph/aai_2) endphoneme @@ -126,6 +129,7 @@ endphoneme phoneme aY vowel starttype #a endtype #i + ipa aɨ length 210 FMT(vdiph/ai_2) endphoneme @@ -147,6 +151,7 @@ endphoneme phoneme @Y vowel starttype #@ endtype #i + ipa əɨ length 210 FMT(vdiph/@i_2) endphoneme @@ -168,6 +173,7 @@ endphoneme phoneme Yu vowel starttype #i endtype #u + ipa ɨu length 210 FMT(vdiph2/iu_4) endphoneme @@ -182,6 +188,7 @@ endphoneme phoneme OY vowel starttype #o endtype #i + ipa ɔɨ length 210 FMT(vdiph/ooi) endphoneme @@ -196,6 +203,7 @@ endphoneme phoneme uY vowel starttype #u endtype #i + ipa uɨ length 210 FMT(vdiph/ui_3) endphoneme diff --git a/phsource/phonemes b/phsource/phonemes index 4b282afa..f72e5f23 100644 --- a/phsource/phonemes +++ b/phsource/phonemes @@ -145,9 +145,13 @@ endphoneme phoneme @- // very short schwa - vowel nonsyllabic - starttype #@ endtype #@ - unstressed + vowel starttype #@ endtype #@ + unstressed nonsyllabic + + ipa ə + IF nextPhW(*) THEN + ipa NULL + ENDIF length 50 FMT(vowel/@-) endphoneme @@ -267,6 +271,7 @@ endphoneme phoneme r- // syllabic r vowel starttype #@ endtype #@ + ipa rU+0329 unstressed length 220 FMT(vowelr/r-voc) @@ -274,6 +279,7 @@ endphoneme phoneme l- // syllabic l vowel starttype #@ endtype #@ + ipa lU+0329 unstressed length 200 FMT(vwl_hi/l-voc) @@ -282,6 +288,7 @@ endphoneme phoneme r liquid rhotic + ipa ɹ lengthmod 7 IF nextPh(isNotVowel) THEN @@ -337,6 +344,10 @@ phoneme R liquid trill lengthmod 6 + ipa r + IF nextPhW(R2) THEN + ipa NULL + ENDIF Vowelin f1=0 f2=1600 -300 300 f3=-200 80 Vowelout f1=2 f2=1600 -300 300 f3=-200 80 brk FMT(r3/r_trill2) addWav(r3/r_trill2.wav, 65) @@ -346,6 +357,7 @@ phoneme R2 // this is [R] from Slovak/Czech liquid trill lengthmod 6 + ipa r Vowelin f1=0 f2=1700 -300 300 f3=-300 80 Vowelout f1=2 f2=1700 -300 300 f3=-300 80 brk FMT(r3/r_trill) addWav(r3/r_trill.wav, 50) @@ -356,6 +368,7 @@ phoneme R3 // Afrikaans trill lengthmod 6 length 60 + ipa r Vowelin f1=2 f2=2700 -300 -200 f3=-1300 80 Vowelout f1=2 f2=1700 -300 -200 f3=-1300 80 @@ -379,6 +392,7 @@ endphoneme phoneme r" // uvular trill vcd uvl frc + ipa ʀ lengthmod 6 IF nextPh(isNotVowel) THEN FMT(r3/r_uvl) addWav(r3/r_uvl.wav, 50) @@ -497,6 +511,7 @@ endphoneme phoneme l^ // palatal l liquid + ipa ʎ lengthmod 7 Vowelout len=60 lenadd rate length 100 @@ -520,6 +535,7 @@ endphoneme phoneme l. liquid rfx + ipa ɭ lengthmod 7 FMT(l^/l_rfx) endphoneme @@ -563,7 +579,7 @@ phoneme j liquid palatal lengthmod 7 - IF nextPh(isVowel) THEN + IF nextPhW(isVowel) THEN NextVowelStarts VowelStart(j/j@) VowelStart(j/ja) @@ -591,6 +607,10 @@ phoneme ; // linking j, used between (i) vowels and a following vowel liquid palatal lengthmod 0 + IF prevPh(#i) THEN + ipa NULL // linking after i vowel, don't show in ipa + ENDIF + IF nextPh(isNotVowel) THEN ChangePhoneme(NULL) // this is to ignore this phoneme if not before a vowel ENDIF @@ -682,6 +702,7 @@ endphoneme phoneme n. vcd rfx nasal + ipa ɳ starttype n endtype n Vowelin f1=2 f2=1200 -300 250 f3=-500 80 rms=20 colr=2 Vowelout f1=2 f2=1200 -300 250 f3=-500 80 rms=20 brk colr=2 @@ -712,6 +733,7 @@ endphoneme phoneme n^ vcd pal nasal palatal + ipa ɲ Vowelout f1=3 f2=2500 300 500 f3=100 80 len=45 brk rate lengthmod 4 @@ -777,6 +799,7 @@ endphoneme phoneme ** // TEST flap liquid alv + ipa ɾ lengthmod 3 Vowelout f1=3 f2=1600 -300 300 f3=-300 80 rms=35 len=15 Vowelin f1=2 f2=1600 -300 300 f3=-100 80 len=20 @@ -792,8 +815,13 @@ endphoneme phoneme * // flap vcd alv flp brkafter + ipa ɾ lengthmod 3 + IF prevPhW(@-) THEN + ipa r // @-* sequence for [r] + ENDIF + IF nextPh(#e) OR nextPh(#i) THEN Vowelin f1=0 f2=1500 -300 300 f3=-200 80 FMT(d/tap1) addWav(r3/rx, 150) @@ -1052,6 +1080,7 @@ endphoneme phoneme v# // approximant, not fricative vcd lbd frc + ipa ʋ lengthmod 6 voicingswitch f Vowelin f1=0 f2=1000 -300 -200 f3=-300 100 @@ -1121,6 +1150,7 @@ endphoneme phoneme z. vcd pla frc sibilant + ipa ʐ voicingswitch s. lengthmod 6 Vowelin f1=0 f2=1800 -100 300 f3=-300 80 @@ -1142,6 +1172,7 @@ endphoneme phoneme z; vcd pal frc sibilant palatal + ipa ʑ voicingswitch s; lengthmod 6 Vowelin f1=2 f2=2700 400 600 f3=300 80 rate len=70 @@ -1170,6 +1201,7 @@ endphoneme phoneme J^ // palatal fricative (Kirshenbaum C) vcd pal frc palatal + ipa ʝ voicingswitch C lengthmod 6 Vowelin f1=1 f2=2700 400 600 f3=200 70 @@ -1213,8 +1245,9 @@ phoneme Q^ endphoneme -phoneme Q" // voiced velar fricative +phoneme Q" vcd uvl frc + ipa ʁ lengthmod 6 IF nextPh(isPause2) THEN @@ -1430,6 +1463,7 @@ endphoneme phoneme s. vls pla frc sibilant + ipa ʂ voicingswitch z. lengthmod 3 Vowelin f1=0 f2=1800 -100 300 f3=-300 80 @@ -1444,6 +1478,7 @@ endphoneme phoneme s; vls pal frc sibilant palatal + ipa ʂ voicingswitch z; lengthmod 3 Vowelin f1=1 f2=2700 400 600 f3=200 70 rate len=70 @@ -1472,6 +1507,7 @@ endphoneme phoneme l# // Lateral fricative (eg. Welsh "ll") vls alv frc + ipa ɬ lengthmod 3 NextVowelStarts @@ -1533,6 +1569,7 @@ endphoneme phoneme h vls glt apr lengthmod 3 + ipa h IF nextPh(#@) THEN WAV(h/h@) @@ -1767,3 +1804,6 @@ include ph_bulgarian phonemetable nso base include ph_northern-sotho + +phonemetable ht fr +include ph_haitian diff --git a/phsource/vowel/V_4 b/phsource/vowel/V_4 index faf96f2966d5d529fd825b10e5d7b2982c29f530..4a6f22164629f543f2ec45d0ef74289365a8270d 100644 GIT binary patch delta 1249 zcmdUvO(+FX6vzK_=E}VB^`0k$EWFZNAib=7WROr4d5Y&FD;ukqjfHy3*1}g-$ihZZ zq(qS|8%xRY^9gJls+hiJkMJ?fT8ZSq^FQo=*zuCaqf0%t+6g8-NO*g>yFz4Qq@EZE!t delta 803 zcmdmMv{R2GIKb68B-k}@B8OxB2?hp+cTDe?fE2?QMi2&(3=A7s7#P%;)WG69xDo6% zybKHxOc7x51^f&Qdzkh>^hzPv6>LnoF1w=7_so=U8BlXclB5!V!fI zFh^(z1Pk*?+>vgV<55Uc=#{V9Y{!?xJlT#{yFO~b9a757Z2xZGq9Ehli;y^@=39&bK#2I$afR99wj{uZW84a;y2>R$t zb^?TO2+y))7F6*xJDr3g0E*($Yluq#X`IGRQjlA5K?az|^KQakg>r|Jl-XP51iJuC zb~QvS8P~$yjmZJ)A^QlgENb_sU;Gn+5JiBGklOhswZ>u4379gtS0~?LNEZ-N@^ZmU>;nH zY+<-N)Q}9+cE5(F*v>plm3?z&Ug#O4V@xOz&Dhqal|*IiFZ7jYtnO%W>edF z;%#Voxu$V2aklrrYN)Bx(tICzVqOmR7=vy@0K936Z1Xe}qx(IkgW^?>$&kKzOb_Mo zDwAIS>i$tfZQGftdaEU9Ufyz8M#~?Jtja=_H19&V}eZK%7ev z^Pq69X{iHEb1q#@V*S6ncJH!UdiCI}`6%Mdx(kPRk4o}LN^{@zREH&9C~Bme*a delta 5223 zcmb7|2UHZ-_s3`6v^TR;cbDz6yOgDOq)8Q|gAEl>B8o90m`K7;gR!i{3YK6{e* zv9}NtBN~kDhhmM18Vl;t7>&Ou#zK@t|3gH~`Jdl8IoWr1=bkzH-u=v-d%y3_tWRA( z%qzD~N^<|)l)gBEAj5_gMY6~s#ro?fkvO%hU!A0LcQz@f?}EDkLt7CHMUaQ+LzKZ8 z<%=Mmz!S){1(oR+_H1q~GMht?e2@>yq-L~CLXbUR59nC=q3M-fX?cdS#kA5Q9SSMf2$#~n%zMmz=A7yZJA)g;m9iC#51a?rG4AXI_7S_1#n>oSHj_g8 zK{XXks>tc2H?@g+N=fhmwSv-9g=8i10nX!@xN|>lB)Ste;y-vO{x8gqUBsI4#Y7~z zhP*=lm;6pSzDdTDHc}!vk|G}w$B8*aH{ujN885+C;{q|AXeCm}Y2+628}b18CAo^6 zN)9C>NrwD^_>`z1dJrOU1>b^?$5U_@{2ulL_C0nLYsH>pIQ~2KlM_3JHDFEHA6OrJ zE6xyuiIv0!LLigKcgbz!Ez&|IQT?eLDv)|kHj^vJDzcm`CbLNo^11@zN$kVR@Nitl zEw}^khNt7h@%Qm%_y&9>J_XOh34AB^7S?5oQ>xRW*;}xGg9*;W< z@KFj|9li(u6%Qna6E(yVVi7T($RHS^5iiH>_*rZrHUtaAo`Hj4EFi!z^xw!_lmdOh zL{JA-f(>9N*bh#Cv&uNBSlhwJpbESWQkCo>!EN+g^pG-+qi4|;^tv)GqD|;JbQ~Il z9zkY0kv1d}%}0l#1JGF14Yi{&XfZk)-HBd91rP&(M>1>{Xh-a3L2I18CVXcgEG(ugaQ^^L_b1%pIH>C0M7iz1T9W0!zg#SUdO`+y)N-zywT> zX)qMK3O)yOz*MkNshx0a4E7=RF*Xw$q^$N3U|2t8t`A;~pTi|0lE@2orAcbQH&^t;fThMdL*$rp~>VdW({^&gP0?Gn+U;_8h?dUetTZu=)Z%fu*?Wj;B zk@(@!fj_NRKXrDU+8GL8s=!;Q6@9By1y11KAtyRjU>>bQ=XI*US*|B~wo?WCr6;KW zKTv_xpyq%K-=W@>eusiHBapcAl=ph|a}Jo0*KL5dZ$OSYb6~oEx*>zhoSXSe=DMuL z?2|dpUSIe6wAbKXKj&oUyqo=Y)}YK`84J?)rY%UdrW{K)CqGL%mt;xWpJ+{(AJ-%H zN%yy+r$y$3KM8FN-W7Pp|DNyf-ff;O9*u6B?VGIIEZa=zrI>>e_XI`q}y?`hkXJhMx^N#udiZ#-7FAQBV>mT-IcE&!+cEaju?IlNB zSo3qExA9HGmwJakblIZ)OtVG3Noo{vagLBJ=!8Z-mS4s_V6)kEs$UtJ zX@Yhtm{^QA5q0E2vVuIUWZMC33)Y*sNVZdp;b(9VbgrSck@ZSOULu~5CWzA?)8Es3 z>0uA6PF=plzJ&NY(Tacs2 z(0A$4%(sl7vZ_$kL8hE>VH)X)bS|Av7toXFb#xPbo<2!$r>D^U=qM-Mo$gPMrRUSj z71!0u^n5yt?n#HxIK2;6!X)SiW8j;x9{vU$vVw9$ohZ~7+~0pF(1ksm19ucB5_-Qf;+58j6d;CSc;zos&%Z^>$M8QD&jQAa2W zx7Ez>JtI~7OGAR+mf7)naiVQK)}43EH_a2707uC_m% z1Fypbdb;9d13isSps&JrAPKip6RAoiD(5L&Sz#6RD+$Op+yh^VCp>A%jQX?e6N$E{ zey;>TvFfZkT~{A42_&JDlpVdJ4|t3nK^|i-_WpKyB+}lg0FcW>V5b5!NM}I9KTv>E zQB3!^xQZT^Ql4bgE!nQ#h3g+gY&-*G*lV6yBEN|C<=Dy+C zH&c!#G6@?K=O+J>BBfnOeKSRs{5)Y{Vwq7z# z);lY-52PY7OWZFp+DW>@hDKAarAp4XKC)KXZ1$`6eXiTwmby>!$Z)hf7J8b!7JF&D zYrKE)cKDclc6qmXUGl7TjP(fi$ad`XI^~N6-U}WPmL5Jmf{6SqVq*B9u-?HV{p-E5 z-O4Qv{l_j@hKc6Wvcpzu3%4a(+bo|t&D%}=P2)^onf98}Oc}=S^&Yxv?NH5Lb*wsC z5`}fD!Q4_!h7q^!buICD=9uXzdDeT>xP4<=Zdq?^(3j~QhT8@=;|fE8ez?m`b&j}| zw+k!9o6;n8w)%C65?lEk!CNZVOm=b6TMdg0)drJchTc~{NFQvdG&--FLM`3p8?u*G zW&K3vxzXHYW-O(aCJQB-WFQ~6)LIHHF%}<-%_3Run|GKq%nc^3sl<5P(9h7O zuh);)$La6us&#+3Tq4(p zE9cfbxi)S9znyPWsQm?ZK@w2mIj<3tgc-sa!6^0;M~macF=DWczYoa0nm8 zm-1`)JAAY-Q#dL-7o47Af|wzuh>@bFXcp~alvpIr6ZeRh#UI6HagOLKZWX+Qb$kNf z&RyYdaP1t=bNpRy8<)#nVGG#9szB9ZhG!Pi0rYveS{c`17JZP8Vm@MSFnU#lDqWSQ zdRw(v)uei?GO__|Bpb^nvpMWwb~NjBvh&zQ?0nYA4rdctGy6bwSXHMgQ0Y`nOc~Rz zsKPav26t1L)F0$AaxFQQ^e6WcZbUv_j$Hw9N;emXPsg9)n}{0nT}7%5^ji7>-KOXR zK||O=jwchI){Z{bsQ^#^p8_Zv(9s8!b@c%);33k|sRCj6Z6vI-4**PG1TZfYA%dHR zM0BdaS*aC0`?o4k-23Izz`6L#2@{j{rJPRp%$k(llx@jgnOWsbznHQo$tyt@QyXz9 zBsB1&z}wx9#GlI`2V5w6Hp;7loRC-5GJV3VfNJfmis{>`GAG@s95^Q#>r%sESQu1DLMOB$*c=n*UzBkfR;}>f__z77!40 zJ199gJD3fw4muimDqxkrGtqC0&mFIJ$0hdOL1|ITz*XbjBZSY{+d~J8l ziH0O?ja04iF`Ty;U9WpYdCPva0rP^S5Orv6=-g0EXjljqyfn}lu)xpm+w8s2tI~6n zqsXJceTdrx*9N}xA=BmQp6)o7$M9O zwh9*nR_rNG6`Mps%9mD3*Co4ppnAG`v-+6&mKrDv#%PK(HJaU;dm4wfKwGWdu05f> zroFAbrM;{@qTQ;Us~x3H(#qN=n)8|l%}UKoO}VB(lce$0I7Q6^^=b76^?T|RHLE@) zEszQ%yL40Bq==8FctMehVBsu3k$2?}ac^)qx10@Un^nV9e=sYV9Oa>TAMK=L=|^y# zvO)h&t)&J~TB?<7C3Q-tw1eW|NcaVO0t4whx|04-*|_)7=adeCVr)z}lg<>BFe8}? zX0r0ETgR+mwlaH}Y~cQzQZ=K&)8_Lj9bX<;=bqZaX7Ez z9ejwQYB7AYa&+f;{tt6 z^a1IQ(YMKp{% z*+ulBH2yC{2=a;uLH-v}m|JhpB>~oM>gbWN-Qy3%zfpggF2?Zo>5q5UC368KFC#M; z`we*+nGtvb`jR7&S=hxfjce%QpwuPUtH?Zm{&yVpfqaGHwyxe@w^s6cEB?>D;-&NP zn5`=ak$6;>^EhT|mvbj~r_1>Y$@?$POaF3P{&x`SYtYx&5mq%@mA`IpECf4v~>F|^84tR?&|0v z5t*U60bA;6eW60Lb^7kQQKnZkrC20d+DU`r-y&!yje!|~7&>XDa3*w0Crzo80!se@ z%^72W>mlFN(1VfXF{N?MaXVx4x}%Yv^=0M`nueP<>zb{8&M`?ZE7ypPK#iR|tynG6 zs@NUx>}aM6p*wjFaA%MMojg6HAJ86u%ToqlMkgq8byR%p`otf5R;25*_GFLB3Cl^S JZ??UL{T~>0exCpU diff --git a/phsource/vowel/o_5 b/phsource/vowel/o_5 index 5d0b03b814c003c2776b9cb54228f18bd2f8af17..04b111ff1ac84f3728ee56237f32e3d0cdd902d0 100644 GIT binary patch delta 12478 zcmcKA4OCTC76`!6;HVzgi~&SyXY=zdlG5B zgpnq|0XpD&Vtp$#UETJi>Ecg-+pI@RBH1JB$$+T9C&Rtpck$1FAOG>w-@AAJNs$<; z@HwbrhDy4IDw(0wH3v(X0rmBOdZ6J$V-J34aD$O>8HOG<4EaT>50L}l$fX=#5LLLr zi--uLLSGPH(;#Xlh*&@lUl5J1r*M<2Fsurzud&)oeGhY@Q@g+V5UoylAdXi2s#H7%fI4Lx+$DVU< zhI6dPMw!1*qJ$oMatuSDw8z@&Pg*Z2;xzsaPBTO?l~XZ8=%KSvX9%ah7Mv^z%?wvG z0TJ|#BHz=;S5U)*f@;7O(7+h`NKy7NMx*NnY-9yx>NCM)j2F!z>WdvSyam;MzZ>Pa z{QWM!*R|3tDli)=7@~&iv4$bub5+B84AJEN4K%TW$}?9ec^xC<1!ZT`&L22XiYUf~ zP|Ogul!&zqk>e_Y9EPZKXF(l9B%8e{`Ts!-vy;S->!papxCjn2L=8<4lE`+|LN-IR zy5~YGLll|UP?3PRk@qKW5;tC1e~OQmB8qW=kVFIBhYc)=^{!-G&k*O_j|u%L$J8iC zKm>njj~n7cJa4To|NQheW?UQs!>pmEZIC@jz0sPV;19INH$Oe-O2E%7gnu@waIdpA zyuc@!W)a?JEp`9bcvrEv$p#EdKMt}1kE}29E^Pmk4(F$oVbUZHT1gya<elcM8SU#cvaQjDn9jqXcuIgfV`g+4uuv#JPTnag1@h{xsaq82RCuYQDf2#ygakF|1vO zvejl+j+K^F8E%I%hR~HKQMV4a{!{8G*CHIn5VQ0Yn8gs@rTnrm2F}Z9H$g3KcS^N| z$Q>s|)Z=leX9&0QZ*((6gzHU=V2D&b4pKWs1b+!qSCpaDj8y=J_klJ z#G&v|}Ajeiz)&5LbJ~s8^FhrFnSFIAV5Ei%mWMQk()@J&$5KnnG({*?= zW8_mRl&=e0j5Ar%EJo1)9K{d^Xn}RT8o22# z40}Uc$O>wn)oACjENV^cRx1pH!QU@%;U%&dPCaorV|+l_RuZ9woWjoSPtcLJhBiJVkddsXLbCOn_wU`g z#sbRilo8kdkktNG&=zCrI%yW8X%mcQh;&D#mhK2d%+SYOEFVAOBZKIpP7(D%pQF+? zUZO|E(Q^>T7@I@lwaqMx+1AwLJx%x-apu<;XDw!1CFR{Ou4;GIvz0~GCTSM2v=w3* z;_Z+O^=*cjVO=VFm$Dx**sRCFb`kP9$`<00EmA}@?SyECh;=MiVp&1muHSO;qQH-s zX98KTPLgN|dO;qWO2t_SwTIU z=VOR7?Ev};1~A5jkn_p~R#F-IqmaQEndZls*(pP4wLzGpwr-P_)XxdfdIek_Jns04 z9%m)BU7rNo8REP-iOzS5xGCu8?j5iCvbahpDZ<}t#P;rZ`WMDqFz-58W9?>ZV3*@O z?ef9e&U#1n6>!vo`Fm7~=K!S$d$+8lZn&bo`;FIqjDf;9m|%U1Ab~NyRSqiOvKy&~ z9Mk9_#yF%G!6C+o^*oHR0wee(b#RZgqO~^t(1Yz5&`KuJ+#6oZ~ zM4oEBPs$MM9N*$PhN#wSpqe43d3M4y0igxGM>YJ-S5Wc7;#P38kVUn6jH(&qEyv^d z7Gs1MhaiNFgLioL!W{xbcxzI=U)Ub^5|%}}=PeKqNx?5D=ijA>R+tB^46#U?O^XwUm3{kAlg<^(KJrAHNBym}T zdHon0?R1K_^4B=*ysmWdWWu1VR?UFR1H3ks_KQ4VoF^740>8 zg(2Q?ynyepf;wwmZ=Pj{NuH-@QkNr!eJVwK56j?thImYiqQ@9wtg|nUWl0!D3K*=M zl0927xyum=pGy%9PzenTu~OSZD;Xl%IRT>?LNgLUV~8lva*XP7#KbS8i0@!1e#a1_ zwU1~tLqs?~#R!H7H|~dUhKTTtq=+s@O#81Cfv6#}T{}|iMUf0K)!Bkm86wVD1#t|q z%WP71b=;kTFnVOxNfG1d0FGnFqw(DmX?(Z9?e5Odzu=wheT(_VUYySmtwuSuT2DG? zu|YsQcv^}`qiK}J5Zk(qplu9M5Sl;*3~`;&pRQwwEHhKd>hdI(HA)d~>%-D+R!)^_ z4py@1X}xnbt!L%bp!cN))?$wsHz-HCJc+eurHJkrLfsjnOfAJShM41g9p^Aar11(y SvLqUfR;97a5zn_QRQ?A84uYTn delta 7713 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 diff --git a/phsource/vowel/o_6 b/phsource/vowel/o_6 index 6ac26a18d786324f0b9c1ca3de53ea039ea785a9..b1253a2c4ba1f2ea39003679a1ed1276660c8ad5 100644 GIT binary patch delta 1530 zcmbui$Bn_vf+qmq+gTM8V7G)k<6o43wQ9GGcGjvu3n5NTCf{#LVyPZ_6H^4EB zQUNByBowSqj+)O|S7?2+aWA|i)U%R%IG24*|AZ+cq0C@1*fLJXodSI#qfjB>mubl< z&^}=db_-ftn2Jt;2Bm|LmNcb8D#R|wRi&AHl{LARJW+R%lnQ7dwi?%q&PuS@<_pyGm;(6-e(&o5gV&HHL(#NK(9vPAS7wSHukU&sSa=@-s( z%9GMLPU%x7fK|R#+g(bmEUz@%kX0tdO(;i2Q<+cCILawT*^0+3YJFpVu+9bYh;wce zPI1ng(s$08muEO{i%&BF_aYH02GDAei*Zki^e0oNuzX9Zy8y)}v delta 1052 zcmZvbTS!xJ9LInE|8Z`f&e_g3E%UOR%Dham%*5OBt_7M6E2bDh0lsnC<=P$ zVK$|r#CnPZadtHKFruK9frWO#D2fGAVPJ+nh!<*SJC~>)4(I!SIegCd^Z(w>dX;W$ z-d|gNpt;tn0)Vd0_G8^=oem`&51jzYS7&_by-B(3WazMf7w|MX3eyN+87(7<_yrUJ zV8SNcNM3+OGLm)l2hh;~Hf+N)j63uI_^}`JA6!n5v&$go%(O^8vMH#0tAC=qo?4oh zQK%|8MQW|yH7M{-_GW?Ce#8y=)M)1$M;@*kF+tBq~Yb1Tt{h+P}bm3XGq8SI`goLI_N z#7PqMgjFiVM;??)QPTlQVk_hRPbq(Q!ZSrA4sN+;wC0@Nxl(ww(2{@CJjYFHej;Mw zh0^2Kn%Vw3ac>(a3T+7GEa3rI3ayCW+bDSgMul=J=~PrH>}{9{z_3(~LnW8P%lUV2 dZAPW(NA6%jQ!y@!v+T26w$Qt~Ilt~Z`VG}d4e$T} diff --git a/phsource/vowel/oo b/phsource/vowel/oo index 53744173a052ff660d37a0efeff3de9b13fa000a..b124db02a7ea9789baa82f129afcb798b2453a0f 100644 GIT binary patch literal 1592 zcmb_cOKVd>6#jCP+q}~xO&XKjq-paoVokIGUtQ#)R1{mVHiasprBh(UmLzfUo=n7cO)oerJ*B%J>M5=b zI{iVOZUL`x7Z>pqPhesXGDsta5W#R2JfUfN?@ZgG2-D{qWGEpK;UNnPD?9#N8=c5`+9^lxq=Gf8J}{R;M)eubI|y zO~-erA4V6Ogoee=-~3$%JN`w7(gqz$uC3LfinF+acesV~c!Rg7p@b}1H^@g=u@Waw zL)eZn9H-|#T)-@fL_{qEJ26W3f{1e-C!ap(aME1xl5s!hUYZYma1-t0NU#uf&Z`K+ z)Ke6dXlW`DR|+Li{dNCHL-A|sUslxsz4@?)Nj}WBmigX{4p;4n{(nA{w_Jxg)bSoS z$?+>HQ6t|4#gW`@VKG2OV$^07$FNKtF5@Is$tm_y)M1CZ^FjLf*c@crLvv9Nx7sgr zJIA7f;1V-Pwk4->jGAY(6yK6_gNzWNx}wA9%5}xBsefvAh;9$M*c1`7v)sT-_lpg6 z>42p!i4LiCb?LXI3Q1jBUWd#FK3eKhkviBcb*b!HN%vMEIn?Is(jm;@8uQ@>mhc$Q za1^`9aEg3{SUu$4CTS_MU7-$3I7clOFi!3g9(123ZcN`XjmERTU_# fGQdRzoU9?bQdaV3gnP3z>2s>js?3Wss=@XLv7^Es delta 498 zcmdnN^MI2hIKb68B-k}@B8Nl$0ftSS8=2-YF#v%E6N9)VlMI+0!^|Kl3uUKp{o{SW z_<#|lW(jv8l&#N^z;})vCO%)9krl?SkW*uVu{D$-Y%7K+h9rjV4807Q3~L!yGB_|8 zGAJ;}O_pWcoPpg9%nXFxpoioJJq|){nB2#73WtZ8848#gM2YvXK0(Xu86p_+84fYj tG2}9AVc5kG!eGRp#-KV`mj#!H8HjKL0|O$^HIUq(&w(w_C(mP@1ppmQYM}rC diff --git a/platforms/windows/windows_dll/src/speak_lib.h b/platforms/windows/windows_dll/src/speak_lib.h index 5d253c9b..82d67f8d 100644 --- a/platforms/windows/windows_dll/src/speak_lib.h +++ b/platforms/windows/windows_dll/src/speak_lib.h @@ -50,12 +50,13 @@ Revision 5 typedef enum { espeakEVENT_LIST_TERMINATED = 0, // Retrieval mode: terminates the event list. espeakEVENT_WORD = 1, // Start of word - espeakEVENT_SENTENCE, // Start of sentence - espeakEVENT_MARK, // Mark - espeakEVENT_PLAY, // Audio element - espeakEVENT_END, // End of sentence or clause - espeakEVENT_MSG_TERMINATED, // End of message - espeakEVENT_PHONEME // Phoneme, if enabled in espeak_Initialize() + espeakEVENT_SENTENCE = 2, // Start of sentence + espeakEVENT_MARK = 3, // Mark + espeakEVENT_PLAY = 4, // Audio element + espeakEVENT_END = 5, // End of sentence or clause + espeakEVENT_MSG_TERMINATED = 6, // End of message + espeakEVENT_PHONEME = 7, // Phoneme, if enabled in espeak_Initialize() + espeakEVENT_SAMPLERATE = 8 // internal use, set sample rate } espeak_EVENT_TYPE; @@ -73,7 +74,7 @@ typedef struct { const char *name; // used for MARK and PLAY events. UTF8 string } id; } espeak_EVENT; -/* +/* When a message is supplied to espeak_synth, the request is buffered and espeak_synth returns. When the message is really processed, the callback function will be repetedly called. @@ -81,16 +82,16 @@ typedef struct { In PLAYBACK mode, the callback function is called as soon as an event happens. - For example suppose that the following message is supplied to espeak_Synth: + For example suppose that the following message is supplied to espeak_Synth: "hello, hello." * Once processed in RETRIEVAL mode, it could lead to 3 calls of the callback function : ** Block 1: -