git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@245 d46cf337-b52f-0410-862d-fd96e6ae7743master
| @@ -1,4 +1,4 @@ | |||
| // PB = Peter Bjarkov - [email protected] | |||
| // PB = Peter Bjarkov - [email protected] | |||
| // This file is UTF8 encoded | |||
| // Spelling-to-phoneme words for Danish | |||
| @@ -111,7 +111,7 @@ _19 n'ed@-n | |||
| _2X t'y:w | |||
| _3X tR'&#Dv@ //PB [tR'ADv@] changed to [tR'&#Dv@] | |||
| _4X f'WRV //PB [f'W:*3] changed to [ f'WRV] | |||
| _5X hal't*es | |||
| _5X h&l't*es // PB [a] changed to [&] | |||
| _6X t*'es | |||
| _7X halfj'&rs | |||
| _8X f'irs | |||
| @@ -163,6 +163,7 @@ en e:n $u | |||
| et ed $u | |||
| her $u | |||
| kun $u | |||
| vel $u+ | |||
| // conjunctions | |||
| og V $u+ $pause // and | |||
| @@ -187,6 +188,7 @@ med $u+ // with | |||
| af & // PB changed from [a?] to [&] - sound too short in a sentence | |||
| // Also removed $u from 'af' and other words. They disappeared. | |||
| ad &: // PB added 'ad' | |||
| ad &D $atend $sentence // PB "Det må ikke skille os ad." | |||
| at &: $u // PB changed from [at] to [&:] | |||
| hos // at - PB: removed [$u+] | |||
| som sVm // which / that - PB: removed [$u+] | |||
| @@ -202,7 +204,7 @@ dét de | |||
| vi $u | |||
| i _i $u+ | |||
| mig maj $u // me | |||
| dig daj $u | |||
| dig daj_| $u | |||
| dem $u | |||
| ham $u | |||
| hende $u | |||
| @@ -335,13 +337,11 @@ password _^_EN | |||
| penthouse _^_EN | |||
| pickup _^_EN | |||
| pidgin _^_EN | |||
| producer _^_EN | |||
| ranger _^_EN | |||
| receiver _^_EN | |||
| research _^_EN | |||
| remake _^_EN | |||
| roadie _^_EN | |||
| roastbeef _^_EN | |||
| run _^_EN | |||
| scanner _^_EN | |||
| science _^_EN | |||
| @@ -356,7 +356,6 @@ small _^_EN | |||
| snob _^_EN | |||
| song _^_EN | |||
| source _^_EN | |||
| spam _^_EN | |||
| spirit _^_EN | |||
| squaw _^_EN | |||
| sweatshirt _^_EN | |||
| @@ -2398,7 +2397,6 @@ lupin $alt | |||
| magasin $alt | |||
| mandarin $alt | |||
| mandolin $alt | |||
| mannequin m&n@k'EN $alt | |||
| margin $alt | |||
| marin $alt | |||
| marocain mAro'kEN $alt | |||
| @@ -5046,6 +5044,7 @@ adstringer $alt | |||
| adviser $alt | |||
| advoker $alt | |||
| afficer $alt | |||
| aflever $alt | |||
| afmarcher $alt | |||
| afrikaniser $alt | |||
| agere $alt | |||
| @@ -5188,7 +5187,7 @@ bronzere $alt | |||
| brunere $alt | |||
| brutaliser $alt | |||
| bruyere bryj'E:r $alt | |||
| budgetter $alt | |||
| budgettere $alt | |||
| bugser $alt | |||
| bureaukratiser $alt | |||
| cadmier $alt | |||
| @@ -5274,7 +5273,7 @@ deputer $alt | |||
| dereguler $alt | |||
| deriver $alt | |||
| desarmer $alt | |||
| deserter $alt | |||
| desertere $alt | |||
| designere $alt | |||
| desinficer $alt | |||
| destiller $alt | |||
| @@ -5434,7 +5433,7 @@ farser $alt | |||
| fasciner $alt | |||
| favoriser $alt | |||
| feminiser $alt | |||
| ferier $alt | |||
| feriere $alt | |||
| fermenter $alt | |||
| ferniser $alt | |||
| fertiliser $alt | |||
| @@ -5890,7 +5889,6 @@ laminer $alt | |||
| lancer $alt | |||
| lasere $alt | |||
| latiniser $alt | |||
| //lavere $alt | |||
| lavpasteuriser $alt | |||
| legaliser $alt | |||
| leger $alt | |||
| @@ -6119,7 +6117,7 @@ plakater $alt | |||
| planere $alt | |||
| plastificer $alt | |||
| platiner $alt | |||
| pletter $alt | |||
| plettere $alt | |||
| plisser $alt | |||
| plomber $alt | |||
| plæder $alt | |||
| @@ -6153,7 +6151,7 @@ privileger $alt | |||
| prober $alt | |||
| problematiser $alt | |||
| proceder $alt | |||
| producer $alt | |||
| producere $alt | |||
| profaner $alt | |||
| professionaliser $alt | |||
| profeter $alt | |||
| @@ -6218,7 +6216,7 @@ ramponer $alt | |||
| ranger $alt | |||
| rappeller $alt | |||
| rapportere $alt | |||
| raser $alt | |||
| rasere $alt | |||
| ratificer $alt | |||
| ratihaber $alt | |||
| rationaliser $alt | |||
| @@ -6256,7 +6254,7 @@ reimporter $alt | |||
| reinvester $alt | |||
| rejicer $alt | |||
| rekapituler $alt | |||
| reklamer $alt | |||
| reklamere $alt | |||
| rekognoscer $alt | |||
| rekommander $alt | |||
| rekompenser $alt | |||
| @@ -6418,7 +6416,7 @@ stabiliser $alt | |||
| staffer $alt | |||
| stagner $alt | |||
| standardiser $alt | |||
| stationer $alt | |||
| stationere $alt | |||
| statuere $alt | |||
| stenciler $alt | |||
| stenografer $alt | |||
| @@ -6494,7 +6492,7 @@ teoretiser $alt | |||
| termografer $alt | |||
| terrasser $alt | |||
| terroriser $alt | |||
| testamenter $alt | |||
| testamentere $alt | |||
| testere $alt | |||
| tiere $alt | |||
| titrer $alt | |||
| @@ -6565,7 +6563,7 @@ verbaliser $alt | |||
| verificer $alt | |||
| verser $alt | |||
| versificer $alt | |||
| versioner $alt | |||
| versionere $alt | |||
| vibrer $alt | |||
| vidimer $alt | |||
| vikarier $alt | |||
| @@ -10439,6 +10437,7 @@ sig si $capital //PB Sig = si with capital S - Sig det med blom | |||
| (vi steg) vi||st'e | |||
| (de steg) di||st'e | |||
| (alle steg) &l3||st'e | |||
| steg sdaj $atend $sentence | |||
| steget ste@d | |||
| // PB problem with noun "hav" = ocean and verb "hav(e)" = to have [hAu]/[h&v] | |||
| (et hav) ed||h'Au // PB "et hav" = an ocean - not "hav en god dag" - have a nice day | |||
| @@ -56,13 +56,13 @@ x z | |||
| Dictionary da_dict | |||
| & &# 0 3 @ @- a A | |||
| e E i o O u V W | |||
| W# y Y | |||
| aI e E i o O u V | |||
| W W# y Y | |||
| * - : ? b B d D | |||
| dZ f g h j J k l | |||
| l/2 l/3 m n N p r R | |||
| s S t T tS v w | |||
| s S t T tS v w z | |||
| Dictionary hu_dict | |||
| @@ -1003,6 +1003,7 @@ dose doUs | |||
| dosage doUsI2dZ | |||
| dramatic dr@matIk | |||
| drawer drO@ | |||
| dreamt drEmpt | |||
| drier draI3 | |||
| driest draI|@st | |||
| duet dju:'Et | |||
| @@ -1221,6 +1222,7 @@ havoc hav@k | |||
| hasty heIstI | |||
| hatred heItrI2d | |||
| hazardous haz3d@s | |||
| headfirst $2 | |||
| heh hEh | |||
| hehe hi:h'i: | |||
| heifer hEf@ | |||
| @@ -1759,6 +1761,7 @@ preset pri:sEt | |||
| prestige prEst'i:Z | |||
| ?3 pretense pri:tEns | |||
| pretext pri:tEkst | |||
| pretrial pri:tr'aI|@L | |||
| pretty prItI | |||
| privation praIv'eIS@n | |||
| privilege prIvI2lI2dZ | |||
| @@ -3096,6 +3099,7 @@ thy ,DaI | |||
| thine ,DaIn | |||
| me ,mi: $only | |||
| me mi: $atstart $atend | |||
| him ,hIm $only | |||
| us ,Vz $only | |||
| us $abbrev $allcaps | |||
| @@ -24,7 +24,7 @@ | |||
| // 2006-11-18 Gilles Casse <[email protected]> | |||
| // | |||
| // Updated 2010-06-11 Michel Such <[email protected]> | |||
| // Updated 2010-06-15 Michel Such <[email protected]> | |||
| // | |||
| // * Numbers, a few abbreviations and exceptions. | |||
| // | |||
| @@ -778,7 +778,7 @@ zut zyt | |||
| exocet E2gzosEt | |||
| fret fr'Et | |||
| budget bydZE2 | |||
| hamlet hamlEt | |||
| hamlet _|amlEt | |||
| knesset knesEt | |||
| lazaret lazarE2 | |||
| margaret margarEt | |||
| @@ -884,7 +884,7 @@ contentions kO~tA~tjO~z2 | |||
| dations datjO~z2 | |||
| désertions dezErtjO~z2 $verb | |||
| exploitions EksplwatjO~z2 | |||
| heurtions hYrtjO~z2 | |||
| heurtions _|WrtjO~z2 | |||
| partions partjO~z2 | |||
| rations ratjO~z2 $verb | |||
| tentions tA~tjO~z2 | |||
| @@ -393,7 +393,7 @@ | |||
| _) ட (வல t.V | |||
| _) ட (வர t.V | |||
| _) ட (ேப t. | |||
| _) ட (ாக்ஸி t. | |||
| _) டாக (்ஸி t.a:k | |||
| .group ண | |||
| ண n.V | |||
| @@ -597,6 +597,7 @@ | |||
| _) த (ொம் d | |||
| _) த (ோசை d | |||
| _) த (ோஷ d | |||
| _) த (ுபாய d | |||
| //endsort | |||
| //sort | |||
| @@ -671,6 +672,7 @@ _பார்வ) த (ி t | |||
| ச) த (்ரு t | |||
| த) த (்ரூப t | |||
| பா) த (்ரூம t | |||
| _ப) த (ஞ்சலி tV | |||
| //endsort | |||
| @@ -53,7 +53,7 @@ consonants 9 115 | |||
| id 15 125 | |||
| sq 33 126 | |||
| hy 23 117 | |||
| da 23 119 | |||
| da 24 120 | |||
| rw 15 130 | |||
| ml 13 150 | |||
| ne 18 156 | |||
| @@ -82,6 +82,7 @@ b/bu [b] base | |||
| b/xb [b] base | |||
| [b] fr | |||
| [bh] hi | |||
| b/xbr [b] fr | |||
| d/d [d] base | |||
| [d[] base | |||
| [d] base2 | |||
| @@ -139,6 +140,7 @@ d/xd [d] base | |||
| [d] sq | |||
| d/xd3 [dh] hi | |||
| d/xd_pzd [d;] pl | |||
| d/xdr [d] fr | |||
| d/xdz [dz] consonants | |||
| d/x_tap [t#] en | |||
| [*] pt | |||
| @@ -220,6 +222,7 @@ g/xg [g] base | |||
| [g] cy | |||
| [g] fr | |||
| [g] es | |||
| g/xgr [g] fr | |||
| h/h_ [h] base | |||
| [h] fi | |||
| [<h>] la | |||
| @@ -923,6 +926,7 @@ vdiph/ai [aI] base2 | |||
| [a:I] vi | |||
| [aI] id | |||
| [aI] hy | |||
| [aI] da | |||
| vdiph/ai_2 [aI] en | |||
| [aI] cy | |||
| [aY] cy | |||
| @@ -0,0 +1,11 @@ | |||
| ENVELOPE | |||
| 0 60 | |||
| 5 63 | |||
| 22 92 | |||
| 31 100 | |||
| 41 95 | |||
| 85 12 | |||
| 90 5 | |||
| 100 0 | |||
| @@ -0,0 +1,6 @@ | |||
| ENVELOPE | |||
| 0 0 | |||
| 45 95 | |||
| 100 0 | |||
| @@ -0,0 +1,124 @@ | |||
| tune s1 | |||
| prehead 46 57 | |||
| headenv fall 16 | |||
| head 4 80 50 -8 -5 | |||
| headextend 0 63 38 13 0 | |||
| nucleus0 fall 64 8 | |||
| nucleus fall 70 18 24 12 | |||
| endtune | |||
| tune c1 | |||
| prehead 46 57 | |||
| headenv fall 16 | |||
| head 4 80 46 -8 -5 | |||
| headextend 0 63 38 13 0 | |||
| nucleus0 fall-rise 80 18 | |||
| nucleus fall-rise2 78 22 34 52 | |||
| endtune | |||
| tune q1 | |||
| prehead 46 57 | |||
| headenv fall 16 | |||
| head 4 75 43 -7 0 | |||
| headextend 25 63 38 13 0 | |||
| nucleus0 fall-rise 88 22 | |||
| nucleus fall-rise2 82 22 34 66 | |||
| endtune | |||
| tune e1 | |||
| prehead 46 57 | |||
| headenv fall 16 | |||
| head 3 90 50 -9 0 | |||
| headextend 16 82 50 32 16 | |||
| nucleus0 fall 92 8 | |||
| nucleus fall 92 80 76 8 | |||
| endtune | |||
| // PB Tunes for the Danish intonation | |||
| // full-stop "." - punktum | |||
| tune s2 | |||
| prehead 46 57 | |||
| headenv fall 16 | |||
| head 4 65 60 -8 -5 | |||
| headextend 0 53 38 13 0 | |||
| nucleus0 fall 44 28 | |||
| nucleus fall 50 42 34 28 // sidste ord før punktu | |||
| onset 75 -5 -5 | |||
| endtune | |||
| // comma "," - komma | |||
| tune c2 | |||
| prehead 46 57 | |||
| headenv fall 16 | |||
| head 4 65 50 -8 -5 | |||
| headextend 0 63 38 13 0 | |||
| nucleus0 rise 60 42 | |||
| nucleus rise 55 42 34 52 // sidste tal: slutniveau | |||
| endtune | |||
| // question mark "?" - spørgsmålste | |||
| tune q2 | |||
| prehead 40 75 | |||
| headenv fall 16 | |||
| head 4 75 43 -7 0 //head 4 35 43 -7 0 | |||
| headextend 25 63 38 13 0 | |||
| nucleus0 rise 70 50 // første tal: slutniveaue | |||
| nucleus rise 35 45 60 70 // sidste tal: slutniveau | |||
| endtune | |||
| // exclamation mark "!" - udråbsteg | |||
| tune e2 | |||
| prehead 46 57 | |||
| headenv fall 16 | |||
| head 3 90 50 -9 0 | |||
| headextend 16 82 50 32 16 | |||
| nucleus0 fall 92 8 | |||
| nucleus fall 92 80 76 8 | |||
| endtune | |||
| // Tunes for the French intonation | |||
| // full-stop "." - point | |||
| tune s3 | |||
| prehead 46 57 | |||
| headenv fall 16 | |||
| head 4 80 50 -8 -5 | |||
| headextend 0 63 38 13 0 | |||
| nucleus0 fall 64 8 | |||
| nucleus fall 70 18 24 12 | |||
| endtune | |||
| // comma "," - virgule | |||
| tune c3 | |||
| prehead 46 57 | |||
| headenv fall 16 | |||
| head 4 80 30 -5 -15 | |||
| headextend 25 63 38 13 0 | |||
| nucleus0 fall-rise 75 40 | |||
| endtune | |||
| // question mark "?" - point d'interrogation | |||
| tune q3 | |||
| prehead 46 57 | |||
| headenv fall 16 | |||
| head 4 75 43 -7 0 | |||
| headextend 25 63 38 13 0 | |||
| nucleus0 fall-rise 88 22 | |||
| nucleus fall-rise2 82 22 34 66 | |||
| endtune | |||
| // exclamation mark "!" - point d'exclamation | |||
| tune e3 | |||
| prehead 46 57 | |||
| headenv fall 16 | |||
| head 3 90 50 -9 0 | |||
| headextend 16 82 50 32 16 | |||
| nucleus0 fall 92 8 | |||
| nucleus fall 92 80 76 8 | |||
| endtune | |||
| @@ -114,6 +114,13 @@ phoneme W# | |||
| FMT(vowel/V) | |||
| endphoneme | |||
| phoneme aI | |||
| vowel starttype #a endtype #i | |||
| length 250 | |||
| FMT(vdiph/ai) | |||
| endphoneme | |||
| // CONSONANTS | |||
| // PB added l/3 | |||
| @@ -383,7 +383,7 @@ endphoneme | |||
| phoneme aI@ | |||
| vowel starttype #a endtype #@ | |||
| length 270 | |||
| length 280 | |||
| IfNextVowelAppend(r-) | |||
| FMT(vwl_en/aI@) | |||
| endphoneme | |||
| @@ -391,7 +391,7 @@ endphoneme | |||
| phoneme aU@ | |||
| vowel starttype #a endtype #@ | |||
| length 270 | |||
| length 280 | |||
| IfNextVowelAppend(r-) | |||
| FMT(vwl_en/aU@) | |||
| endphoneme | |||
| @@ -239,7 +239,7 @@ endphoneme | |||
| phoneme aI@ | |||
| vowel starttype #a endtype #@ | |||
| length 270 | |||
| length 280 | |||
| IfNextVowelAppend(r-) | |||
| FMT(vwl_en/aI@) | |||
| endphoneme | |||
| @@ -247,7 +247,7 @@ endphoneme | |||
| phoneme aU@ | |||
| vowel starttype #a endtype #@ | |||
| length 270 | |||
| length 280 | |||
| IfNextVowelAppend(r-) | |||
| FMT(vwl_en/aU@) | |||
| endphoneme | |||
| @@ -222,7 +222,7 @@ endphoneme | |||
| phoneme aI@ | |||
| vowel starttype #a endtype #@ | |||
| length 270 | |||
| length 280 | |||
| IfNextVowelAppend(r-) | |||
| FMT(vwl_en/ooi@) | |||
| endphoneme | |||
| @@ -230,7 +230,7 @@ endphoneme | |||
| phoneme aU@ | |||
| vowel starttype #a endtype #@ | |||
| length 270 | |||
| length 280 | |||
| IfNextVowelAppend(r-) | |||
| FMT(vwl_en/aU@) | |||
| endphoneme | |||
| @@ -1,7 +1,7 @@ | |||
| //==================================================== | |||
| // French | |||
| //==================================================== | |||
| // Updated 2010-06-12 Michel Such <[email protected]> | |||
| // Updated 2010-06-16 Michel Such <[email protected]> | |||
| phoneme #l virtual | |||
| // Used for l and l/ | |||
| @@ -80,8 +80,7 @@ phoneme r | |||
| vcd uvl frc nopause | |||
| rhotic | |||
| starttype #r endtype #r | |||
| Vowelin f1=1 f2=1600 -500 500 f3=-200 100 len=65 | |||
| Vowelout f1=1 f2=1200 -400 800 f3=200 100 len=60 | |||
| Vowelin f1=0 f2=1500 -400 400 f3=-400 80 | |||
| lengthmod 7 | |||
| IF nextPh(isNotVowel) THEN | |||
| @@ -148,7 +147,7 @@ endphoneme | |||
| phoneme r/2 | |||
| liquid rhotic uvl nopause | |||
| starttype #r endtype #r | |||
| Vowelin f1=1 f2=1600 -500 500 f3=-200 100 len=65 amp=8 | |||
| Vowelin f1=0 f2=1500 -400 400 f3=-400 80 | |||
| CALL post_r | |||
| IF prevPhW(f) OR prevPhW(k) OR prevPhW(p) OR prevPhW(s) OR prevPhW(t) OR prevPhW(S) THEN | |||
| @@ -163,7 +162,7 @@ endphoneme | |||
| phoneme l | |||
| liquid nopause | |||
| liquid | |||
| starttype #l endtype #l | |||
| lengthmod 7 | |||
| @@ -639,7 +638,11 @@ phoneme b | |||
| ENDIF | |||
| IF PreVoicing THEN | |||
| FMT(b/xb) | |||
| IF nextPhW(#r) THEN | |||
| FMT(b/xbr) | |||
| ELSE | |||
| FMT(b/xb) | |||
| ENDIF | |||
| ENDIF | |||
| IF nextPh(isPause2) OR nextPh(l) THEN | |||
| @@ -663,7 +666,11 @@ phoneme d | |||
| Vowelout f1=2 f2=1700 -300 300 f3=-100 80 | |||
| IF PreVoicing THEN | |||
| FMT(d/xd) | |||
| IF nextPhW(#r) THEN | |||
| FMT(d/xdr) | |||
| ELSE | |||
| FMT(d/xd) | |||
| ENDIF | |||
| ENDIF | |||
| IF nextPh(isPause2) THEN | |||
| @@ -699,7 +706,11 @@ phoneme g | |||
| Vowelout f1=1 f2=2300 250 300 f3=-300 80 brk | |||
| IF PreVoicing THEN | |||
| FMT(g/xg) | |||
| IF nextPhW(#r) THEN | |||
| FMT(g/xgr) | |||
| ELSE | |||
| FMT(g/xg) | |||
| ENDIF | |||
| ENDIF | |||
| IF nextPh(isPause2) THEN | |||
| @@ -0,0 +1,16 @@ | |||
| //==================================================== | |||
| // Nahuatl (classical) | |||
| //==================================================== | |||
| phoneme : // lengthens the previous vowel by 'length' | |||
| virtual | |||
| length 300 | |||
| endphoneme | |||
| phoneme e | |||
| vowel starttype #e endtype #e | |||
| length 170 | |||
| FMT(vowel/e_mid2) | |||
| endphoneme | |||
| @@ -80,7 +80,10 @@ endphoneme | |||
| phoneme u | |||
| vowel starttype #u endtype #u | |||
| length 110 | |||
| ChangeIfNotStressed(U) | |||
| IF prevPhW(isVel) THEN | |||
| ELSE | |||
| ChangeIfNotStressed(U) | |||
| ENDIF | |||
| FMT(vowel/u_6) | |||
| endphoneme | |||
| @@ -1720,6 +1720,12 @@ phonemetable da base | |||
| include ph_danish | |||
| // The following lines are experimental, for future additions. | |||
| // These langauges are not in a usable state. | |||
| // These lines can be deleted. | |||
| phonemetable rw base2 | |||
| include ph_kinyarwanda | |||
| @@ -1738,7 +1744,6 @@ include ph_nepali | |||
| //phonemetable mr hi | |||
| //include ph_marathi | |||
| //phonemetable eu base2 | |||
| //include ph_basque | |||
| @@ -1,3 +1,5 @@ | |||
| # Makefile for 'espeak', 'speak', and 'libespeak' | |||
| # remove -fno-exceptions if it causes problems with stdio library on some platforms (ARM) | |||
| PREFIX=/usr | |||
| @@ -253,9 +253,9 @@ static int DoSample2(int index, int which, int std_length, int control, int leng | |||
| else | |||
| { | |||
| // increase consonant amplitude at high speeds, depending on the peak consonant amplitude | |||
| x = ((35 - wav_scale) * speed.loud_consonants); | |||
| if(x < 0) x = 0; | |||
| wav_scale = (wav_scale * (x+256))/256; | |||
| // x = ((35 - wav_scale) * speed.loud_consonants); | |||
| // if(x < 0) x = 0; | |||
| // wav_scale = (wav_scale * (x+256))/256; | |||
| } | |||
| if(std_length > 0) | |||
| @@ -383,32 +383,6 @@ static int DoSample2(int index, int which, int std_length, int control, int leng | |||
| } // end of DoSample2 | |||
| #ifdef deleted | |||
| int DoSample(PHONEME_TAB *ph1, PHONEME_TAB *ph2, int which, int length_mod, int amp) | |||
| {//====================== ========================================================== | |||
| int index; | |||
| int match_level; | |||
| int amp2; | |||
| int result; | |||
| EndPitch(1); | |||
| index = LookupSound(ph1,ph2,which & 0xff,&match_level,0); | |||
| if((index & 0x800000) == 0) | |||
| return(0); // not wavefile data | |||
| amp2 = wavefile_amp; | |||
| if(amp != 0) | |||
| amp2 = (amp * wavefile_amp)/20; | |||
| if(amp == -1) | |||
| amp2 = amp; | |||
| result = DoSample2(index,which,length_mod,0,amp2); | |||
| last_frame = NULL; | |||
| return(result); | |||
| } // end of DoSample | |||
| #endif | |||
| int DoSample3(PHONEME_DATA *phdata, int length_mod, int amp) | |||
| {//========================================================= | |||
| @@ -1,21 +0,0 @@ | |||
| /*************************************************************************** | |||
| * Copyright (C) 2005 to 2007 by Jonathan Duddington * | |||
| * email: [email protected] * | |||
| * * | |||
| * This program is free software; you can redistribute it and/or modify * | |||
| * it under the terms of the GNU General Public License as published by * | |||
| * the Free Software Foundation; either version 3 of the License, or * | |||
| * (at your option) any later version. * | |||
| * * | |||
| * This program is distributed in the hope that it will be useful, * | |||
| * but WITHOUT ANY WARRANTY; without even the implied warranty of * | |||
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * | |||
| * GNU General Public License for more details. * | |||
| * * | |||
| * You should have received a copy of the GNU General Public License * | |||
| * along with this program; if not, write see: * | |||
| * <http://www.gnu.org/licenses/>. * | |||
| ***************************************************************************/ | |||
| #include "StdAfx.h" | |||
| @@ -881,7 +881,6 @@ SetLengthMods(tr,3); // all equal | |||
| static const short stress_lengths_nl[8] = {160,135, 210,210, 0, 0, 260,280}; | |||
| tr->langopts.stress_rule = STRESSPOSN_1L; | |||
| tr->langopts.vowel_pause = 1; | |||
| tr->langopts.vowel_pause = 0x30; // ?? | |||
| tr->langopts.param[LOPT_DIERESES] = 1; | |||
| tr->langopts.param[LOPT_PREFIXES] = 1; | |||
| @@ -168,89 +168,89 @@ static int pa_callback(void *inputBuffer, void *outputBuffer, | |||
| PaStreamCallbackFlags flags, void *userData ) | |||
| #endif | |||
| { | |||
| int aResult=0; // paContinue | |||
| char* aWrite = myWrite; | |||
| size_t n = out_channels*sizeof(uint16_t)*framesPerBuffer; | |||
| int aResult=0; // paContinue | |||
| char* aWrite = myWrite; | |||
| size_t n = out_channels*sizeof(uint16_t)*framesPerBuffer; | |||
| myReadPosition += framesPerBuffer; | |||
| SHOW("pa_callback > myReadPosition=%u, framesPerBuffer=%lu (n=0x%x) \n",(int)myReadPosition, framesPerBuffer, n); | |||
| myReadPosition += framesPerBuffer; | |||
| SHOW("pa_callback > myReadPosition=%u, framesPerBuffer=%lu (n=0x%x) \n",(int)myReadPosition, framesPerBuffer, n); | |||
| if (aWrite >= myRead) | |||
| { | |||
| if((size_t)(aWrite - myRead) >= n) | |||
| { | |||
| memcpy(outputBuffer, myRead, n); | |||
| myRead += n; | |||
| } | |||
| else | |||
| { | |||
| SHOW_TIME("pa_callback > underflow"); | |||
| aResult=1; // paComplete; | |||
| mInCallbackFinishedState = true; | |||
| size_t aUsedMem=0; | |||
| aUsedMem = (size_t)(aWrite - myRead); | |||
| if (aUsedMem) | |||
| { | |||
| memcpy(outputBuffer, myRead, aUsedMem); | |||
| } | |||
| char* p = (char*)outputBuffer + aUsedMem; | |||
| memset(p, 0, n - aUsedMem); | |||
| // myReadPosition += aUsedMem/(out_channels*sizeof(uint16_t)); | |||
| myRead = aWrite; | |||
| } | |||
| } | |||
| else // myRead > aWrite | |||
| { | |||
| if ((size_t)(myBuffer + BUFFER_LENGTH - myRead) >= n) | |||
| if (aWrite >= myRead) | |||
| { | |||
| memcpy(outputBuffer, myRead, n); | |||
| myRead += n; | |||
| if((size_t)(aWrite - myRead) >= n) | |||
| { | |||
| memcpy(outputBuffer, myRead, n); | |||
| myRead += n; | |||
| } | |||
| else | |||
| { | |||
| SHOW_TIME("pa_callback > underflow"); | |||
| aResult=1; // paComplete; | |||
| mInCallbackFinishedState = true; | |||
| size_t aUsedMem=0; | |||
| aUsedMem = (size_t)(aWrite - myRead); | |||
| if (aUsedMem) | |||
| { | |||
| memcpy(outputBuffer, myRead, aUsedMem); | |||
| } | |||
| char* p = (char*)outputBuffer + aUsedMem; | |||
| memset(p, 0, n - aUsedMem); | |||
| // myReadPosition += aUsedMem/(out_channels*sizeof(uint16_t)); | |||
| myRead = aWrite; | |||
| } | |||
| } | |||
| else if ((size_t)(aWrite + BUFFER_LENGTH - myRead) >= n) | |||
| else // myRead > aWrite | |||
| { | |||
| int aTopMem = myBuffer + BUFFER_LENGTH - myRead; | |||
| if (aTopMem) | |||
| { | |||
| SHOW("pa_callback > myRead=0x%x, aTopMem=0x%x\n",(int)myRead, (int)aTopMem); | |||
| memcpy(outputBuffer, myRead, aTopMem); | |||
| } | |||
| int aRest = n - aTopMem; | |||
| if (aRest) | |||
| { | |||
| SHOW("pa_callback > myRead=0x%x, aRest=0x%x\n",(int)myRead, (int)aRest); | |||
| char* p = (char*)outputBuffer + aTopMem; | |||
| memcpy(p, myBuffer, aRest); | |||
| } | |||
| myRead = myBuffer + aRest; | |||
| } | |||
| else | |||
| { | |||
| SHOW_TIME("pa_callback > underflow"); | |||
| aResult=1; // paComplete; | |||
| int aTopMem = myBuffer + BUFFER_LENGTH - myRead; | |||
| if (aTopMem) | |||
| { | |||
| SHOW("pa_callback > myRead=0x%x, aTopMem=0x%x\n",(int)myRead, (int)aTopMem); | |||
| memcpy(outputBuffer, myRead, aTopMem); | |||
| } | |||
| int aRest = aWrite - myBuffer; | |||
| if (aRest) | |||
| { | |||
| SHOW("pa_callback > myRead=0x%x, aRest=0x%x\n",(int)myRead, (int)aRest); | |||
| char* p = (char*)outputBuffer + aTopMem; | |||
| memcpy(p, myBuffer, aRest); | |||
| } | |||
| size_t aUsedMem = aTopMem + aRest; | |||
| char* p = (char*)outputBuffer + aUsedMem; | |||
| memset(p, 0, n - aUsedMem); | |||
| // myReadPosition += aUsedMem/(out_channels*sizeof(uint16_t)); | |||
| myRead = aWrite; | |||
| if ((size_t)(myBuffer + BUFFER_LENGTH - myRead) >= n) | |||
| { | |||
| memcpy(outputBuffer, myRead, n); | |||
| myRead += n; | |||
| } | |||
| else if ((size_t)(aWrite + BUFFER_LENGTH - myRead) >= n) | |||
| { | |||
| int aTopMem = myBuffer + BUFFER_LENGTH - myRead; | |||
| if (aTopMem) | |||
| { | |||
| SHOW("pa_callback > myRead=0x%x, aTopMem=0x%x\n",(int)myRead, (int)aTopMem); | |||
| memcpy(outputBuffer, myRead, aTopMem); | |||
| } | |||
| int aRest = n - aTopMem; | |||
| if (aRest) | |||
| { | |||
| SHOW("pa_callback > myRead=0x%x, aRest=0x%x\n",(int)myRead, (int)aRest); | |||
| char* p = (char*)outputBuffer + aTopMem; | |||
| memcpy(p, myBuffer, aRest); | |||
| } | |||
| myRead = myBuffer + aRest; | |||
| } | |||
| else | |||
| { | |||
| SHOW_TIME("pa_callback > underflow"); | |||
| aResult=1; // paComplete; | |||
| int aTopMem = myBuffer + BUFFER_LENGTH - myRead; | |||
| if (aTopMem) | |||
| { | |||
| SHOW("pa_callback > myRead=0x%x, aTopMem=0x%x\n",(int)myRead, (int)aTopMem); | |||
| memcpy(outputBuffer, myRead, aTopMem); | |||
| } | |||
| int aRest = aWrite - myBuffer; | |||
| if (aRest) | |||
| { | |||
| SHOW("pa_callback > myRead=0x%x, aRest=0x%x\n",(int)myRead, (int)aRest); | |||
| char* p = (char*)outputBuffer + aTopMem; | |||
| memcpy(p, myBuffer, aRest); | |||
| } | |||
| size_t aUsedMem = aTopMem + aRest; | |||
| char* p = (char*)outputBuffer + aUsedMem; | |||
| memset(p, 0, n - aUsedMem); | |||
| // myReadPosition += aUsedMem/(out_channels*sizeof(uint16_t)); | |||
| myRead = aWrite; | |||
| } | |||
| } | |||
| } | |||
| SHOW("pa_callback > myRead=%x\n",(int)myRead); | |||
| SHOW("pa_callback > myRead=%x\n",(int)myRead); | |||
| // #if USE_PORTAUDIO == 18 | |||
| @@ -288,7 +288,7 @@ static int pa_callback(void *inputBuffer, void *outputBuffer, | |||
| #endif | |||
| return(aResult); | |||
| return(aResult); | |||
| //#endif | |||
| } // end of WaveCallBack | |||