Language changes: da. Fixed crash bug (in lang=hi), affects prevVowel(), isFirstVowel, etc in phoneme definitions. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@317 d46cf337-b52f-0410-862d-fd96e6ae7743master
| @@ -84,7 +84,7 @@ __ b'Onsdrai | |||
| ¢ s'ent | |||
| ¥ j'en: | |||
| µ my | |||
| ' apostr'Vf // PB o changed to V | |||
| ' apostr'Vf | |||
| ½ en'hal | |||
| + plus | |||
| @@ -102,27 +102,27 @@ _9 n'i | |||
| _10 t'i | |||
| _11 'Elv@ | |||
| _12 t'Vl | |||
| _13 tR'?&#d@-n // PB & changed to &# | |||
| _13 tR'?&#d@-n | |||
| _14 fj'ord@-n | |||
| _15 f'Emd@-n | |||
| _16 s'ajsd@-n | |||
| _17 s'Wd@-n // PP Y changed to W | |||
| _18 '?&d@-n // PB a changed to & | |||
| _17 s'Wd@-n | |||
| _18 '?&d@-n | |||
| _19 n'ed@-n | |||
| _2X t'y:?u | |||
| _3X tR'&#Dv@ //PB [tR'ADv@] changed to [tR'&#Dv@] | |||
| _4X f'?W:_|V //PB [f'W:*3] changed to [ f'?W:V] | |||
| _5X h&l't*Es // PB [a] changed to [&], e changed to E | |||
| _6X t*'Es // PB changed from e to E | |||
| _7X h&lfj'&rs // PV a changed to & | |||
| _3X tR'&#Dv@ | |||
| _4X f'?W:_|V | |||
| _5X h&l't*Es | |||
| _6X t*'Es | |||
| _7X h&lfj'&rs | |||
| _8X f'irs | |||
| _9X h&lf'Ems // PB a changed to & | |||
| _0C h'un*VD | |||
| _1C ed||h'unRV:D // PB added 'et hundrede' | |||
| _0M1 t'u:s@-n | |||
| _1M1 ed||t'u:s@-n // PB added 'et' to tusind | |||
| _0C h'unRVD | |||
| _1C ed||h'unRV:D | |||
| _0M1 t'?us@-n | |||
| _1M1 ed||t'?us@-n | |||
| _1M2 'e:n||milij'o:n | |||
| _0M2 milij'o:nV // PB [3] changed to [V] | |||
| _0M2 milij'o:nV | |||
| _1M3 'e:n||milij'A:d | |||
| _0M3 milij'A:d3 | |||
| _1M4 'e:n||bilij'o:n | |||
| @@ -174,7 +174,7 @@ men $pause // but | |||
| eller // or | |||
| mens $pause // while | |||
| for | |||
| fordi fVd'i $pause // because - PB: changed stress | |||
| fordi fVd'i $pause // because | |||
| når nVr $pause // while | |||
| der dEr $u+ $u // PB changed from [dA] | |||
| hvor v'O // where | |||
| @@ -187,16 +187,15 @@ fra $u+ // from | |||
| ved $u+ // at | |||
| om $u+ $brk // about, within | |||
| 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 $u // which / that - PB: removed [$u+] | |||
| af & | |||
| ad & | |||
| ad &D $atend $sentence // "Det må ikke skille os ad." | |||
| at & $u | |||
| hos | |||
| som sVm $u // which / that | |||
| // pronouns | |||
| jeg jaj $u+ // I | |||
| jeg jAj $u+ // I | |||
| du du $u | |||
| de $u | |||
| han $u | |||
| @@ -205,8 +204,8 @@ det de $u | |||
| dét de | |||
| vi vi $u | |||
| i _i $u+ | |||
| mig maj $u // me | |||
| dig daj $u+ | |||
| mig mAj $u // me | |||
| dig dAj $u+ | |||
| dem $u | |||
| ham $u | |||
| hende $u | |||
| @@ -244,7 +243,7 @@ jeres $u+ | |||
| er Er $u // is/are | |||
| var vAr $u+ // was/were | |||
| har hAr $u+ // has/have | |||
| havde h&:D@ $u+ // had | |||
| havde h&D@ $u+ // had | |||
| vil $u+ // will | |||
| skal $u+ // shall | |||
| kan $u+ // can | |||
| @@ -360,7 +359,7 @@ window _^_EN | |||
| word _^_EN | |||
| warrior _^_EN | |||
| // PB names | |||
| // Names | |||
| august OgOsd $capital | |||
| austin _^_EN | |||
| bailey _^_EN | |||
| @@ -381,7 +380,7 @@ piccadilly _^_EN | |||
| reynolds _^_EN | |||
| white _^_EN | |||
| // PB French words | |||
| // French words | |||
| croquis _^_FR | |||
| crouton _^_FR | |||
| jugement _^_FR | |||
| @@ -389,7 +388,7 @@ monsieur _^_FR | |||
| madame _^_FR | |||
| mademoiselle _^_FR | |||
| // PB (French) nouns with final -age - stressed a, "age" pronounced ['&S@] | |||
| // French) nouns with final -age - stressed a, "age" pronounced ['&S@] | |||
| affutage $alt | |||
| apanage $alt | |||
| arbitrage $alt | |||
| @@ -448,7 +447,7 @@ takkelage $alt | |||
| tonnage $alt | |||
| trikotage $alt | |||
| // PB final -abel - stressed a | |||
| // Final -abel - stressed a | |||
| // "el" has been removed in order to make rules for | |||
| // "konstabel" and the plural "konstabler" without "e" | |||
| acceptab $alt | |||
| @@ -691,7 +690,7 @@ substans $alt | |||
| tolerans $alt | |||
| varians $alt | |||
| // PB nouns with final -ade - stressed a | |||
| // Nouns with final -ade - stressed a | |||
| ambassade $alt | |||
| arkade $alt | |||
| ballade $alt | |||
| @@ -755,7 +754,7 @@ tamponade $alt | |||
| tirade $alt | |||
| triade $alt | |||
| // PB nouns and adjectives with final -al - stressed a | |||
| // Nouns and adjectives with final -al - stressed a | |||
| admiral $alt | |||
| adverbial $alt | |||
| aksial $alt | |||
| @@ -997,7 +996,7 @@ vokal $alt | |||
| ækvatorial $alt | |||
| ødipal $alt | |||
| // PB words with final -ar - stressed a | |||
| // Words with final -ar - stressed a | |||
| dokumentar $alt | |||
| aktuar $alt | |||
| proletar $alt | |||
| @@ -1067,7 +1066,7 @@ vegetar $alt | |||
| velar $alt | |||
| vokabular $alt | |||
| // PB final -agtig - stressed a | |||
| // Final -agtig - stressed a | |||
| barnagtig $alt | |||
| blødagtig $alt | |||
| delagtig $alt | |||
| @@ -1100,7 +1099,7 @@ svinagtig $alt | |||
| tvivlagtig $alt | |||
| tyvagtig $alt | |||
| // PB words with final -an - stressed a | |||
| // Words with final -an - stressed a | |||
| aeroplan $alt2 | |||
| agraman $alt2 | |||
| altan $alt2 | |||
| @@ -1128,7 +1127,6 @@ filigran $alt2 | |||
| galan $alt2 | |||
| hortulan $alt2 | |||
| human $alt2 | |||
| hvordan vVd'&n $alt | |||
| inhuman $alt2 | |||
| kapellan $alt2 | |||
| karljohan $alt2 | |||
| @@ -5778,7 +5776,6 @@ adstringer $alt | |||
| adviser $alt | |||
| advoker $alt | |||
| afficer $alt | |||
| 'aflever $alt | |||
| 'afmarcher $alt | |||
| afrikaniser $alt | |||
| agere $alt | |||
| @@ -11195,7 +11192,7 @@ skateboardet sk'eitbo@d3D // PB | |||
| (secret service) sigred||s'Wvis | |||
| (happy hour) h&pi||'AuV | |||
| chevrolet sjEvrol'e | |||
| saigon sajg3-n // PB Saigon | |||
| saigon sAjgVn // PB Saigon | |||
| managua m&n'&:gw& | |||
| (deja-vu) deSja||'vy | |||
| (il duce) il||d'u:tSj@ // PB Italian Fascist | |||
| @@ -53,7 +53,7 @@ p r s S t T v w | |||
| x z | |||
| Dictionary da_dict 2013-03-13 | |||
| Dictionary da_dict 2013-03-15 | |||
| & &# 0 3 ?& ?&# ?0 ?A | |||
| ?e ?E ?i ?o ?O ?u ?V ?W | |||
| @@ -156,7 +156,7 @@ l m n N p r R s | |||
| S s2 t v w Z | |||
| Dictionary fr_dict 2013-03-14 | |||
| Dictionary fr_dict 2013-03-15 | |||
| @ @- a a- A~ e E e- | |||
| E: E~ i I o O O~ u | |||
| @@ -206,7 +206,7 @@ q r r. s S s. t T | |||
| t# t. t.# v w x z | |||
| Dictionary ta_dict 2013-03-14 | |||
| Dictionary ta_dict 2013-03-15 | |||
| a a: aI aU e E e: i | |||
| I i: o o: u U u2 u: | |||
| @@ -3381,6 +3381,7 @@ Amy eImi | |||
| Andre 0ndreI | |||
| Andrea andri@ | |||
| Andreas A:ndr'eI@s | |||
| Angela $1 | |||
| Anita $alt3 | |||
| Anthony ant@ni | |||
| Anton ant0n | |||
| @@ -452,7 +452,7 @@ l/l_ [l] base | |||
| l/l_@ [l/3] base | |||
| [l/] fr | |||
| [l/3] da | |||
| l/l@ [¨2] base | |||
| l/l@ [¨|5] base | |||
| [l#] base | |||
| [l] fr | |||
| [l/2] fr | |||
| @@ -486,7 +486,7 @@ l/L2_oL [l/2] base | |||
| l/L2_uL [l/2] base | |||
| l/l_3 [l/] de | |||
| l/l_4 [ll] sq | |||
| l/la [¨2] base | |||
| l/la [¨|5] base | |||
| [l#] base | |||
| [l] fr | |||
| [l/2] fr | |||
| @@ -495,7 +495,7 @@ l/la [ | |||
| l/l_a [l/3] base | |||
| [l/] fr | |||
| [l/3] da | |||
| l/le [¨2] base | |||
| l/le [¨|5] base | |||
| [l#] base | |||
| [l] fr | |||
| [l/2] fr | |||
| @@ -508,7 +508,7 @@ l/L_eL_af [&] af | |||
| [&:] af | |||
| l/l_front [L] sq | |||
| l/l_front_ [l/4] sq | |||
| l/li [¨2] base | |||
| l/li [¨|5] base | |||
| [l#] base | |||
| [l] fr | |||
| [l/2] fr | |||
| @@ -523,7 +523,7 @@ ll/ll [L] base | |||
| ll/_ll [L] base | |||
| l/l_long [l] base | |||
| [l] fr | |||
| l/lo [¨2] base | |||
| l/lo [¨|5] base | |||
| [l#] base | |||
| [l/2] fr | |||
| [K] nso | |||
| @@ -535,7 +535,7 @@ l^/l_rfx [l.] base | |||
| [l;] lt | |||
| [l] ru | |||
| [l^] ru | |||
| l/lu [¨2] base | |||
| l/lu [¨|5] base | |||
| [l#] base | |||
| [l] fr | |||
| [l/2] fr | |||
| @@ -45,14 +45,14 @@ endphoneme | |||
| phoneme i | |||
| vowel starttype #i endtype #i | |||
| length 90 //150 | |||
| length 95 //150 | |||
| // PB long vowel followed by consonant and certain vowels "gide" | |||
| IF nextPhW(isNotVowel) AND next2PhW(#@) OR next2PhW(#e) THEN | |||
| IF nextPhW(isNotVowel) AND next2PhW(#@) OR next2PhW(V) THEN | |||
| length 150 | |||
| ENDIF | |||
| // "gider" TEST | |||
| // "gider", vrider" | |||
| IF nextPhW(D) AND next2PhW(V) OR next2PhW(?V) THEN | |||
| length 90 | |||
| length 95 | |||
| ENDIF | |||
| // PB long vowel followed by certain vowels - "pigen" [p'i@-n] | |||
| IF nextPhW(#@) OR nextPhW(#e) THEN | |||
| @@ -69,7 +69,7 @@ IF thisPh(isWordEnd) THEN | |||
| ENDIF | |||
| // "vilje" - short followed by 2 consonants | |||
| IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN | |||
| length 90 | |||
| length 95 | |||
| ENDIF | |||
| // PB "tie", "stige", "krige" vowel + vowel: extra length | |||
| // What is causing this very short [i] in words with final [@-]? | |||
| @@ -99,14 +99,14 @@ endphoneme | |||
| phoneme e | |||
| vowel starttype #e endtype #e | |||
| length 90 //150 | |||
| length 95 //150 | |||
| // "delte", "mente" | |||
| IF nextPhW(#e) OR nextPhW(#@) OR next2PhW(#e) OR next2PhW(#@) THEN | |||
| IF nextPhW(@-) OR nextPhW(V) OR next2PhW(@-) OR next2PhW(V) THEN | |||
| length 150 | |||
| ENDIF | |||
| // PB "ring", "ringe" | |||
| IF nextPhW(N) THEN | |||
| length 90 | |||
| length 95 | |||
| ENDIF | |||
| // PB "enig", "enige", "evig" | |||
| IF nextPhW(isNotVowel) AND next2PhW(i) THEN | |||
| @@ -118,7 +118,7 @@ IF thisPh(isWordEnd) AND thisPh(isWordStart) THEN | |||
| ENDIF | |||
| // "nedladende" [n'eDl&D@-n@-] - before 2 consonants: short | |||
| IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN | |||
| length 90 | |||
| length 95 | |||
| ENDIF | |||
| FMT(vowel/e) | |||
| endphoneme | |||
| @@ -133,14 +133,14 @@ endphoneme | |||
| phoneme E | |||
| vowel starttype #e endtype #e | |||
| length 90 //150 | |||
| length 100 //150 | |||
| // "værelse", "breve" | |||
| IF nextVowel(3) OR nextVowel(V) OR nextVowel(@) OR nextVowel(@-) THEN | |||
| // length 150 | |||
| ENDIF | |||
| // "ræve" | |||
| IF nextVowel(#@) OR nextVowel(#e) THEN | |||
| length 150 | |||
| length 160 | |||
| ENDIF | |||
| // "ære", "kærester", "ærefrygt" - longer E | |||
| IF nextPhW(V) THEN | |||
| @@ -148,23 +148,23 @@ IF nextPhW(V) THEN | |||
| ENDIF | |||
| // Only the letter "æ" - long | |||
| IF thisPh(isWordEnd) AND thisPh(isWordStart) THEN | |||
| length 150 | |||
| length 160 | |||
| ENDIF | |||
| // "stædig" [st'EDi] long | |||
| IF nextPhW(isNotVowel) AND next2PhW(i) THEN | |||
| length 150 | |||
| length 160 | |||
| ENDIF | |||
| // "længe" - short - 2 consonants => 1 consonant | |||
| IF nextPhW(N) THEN | |||
| length 90 | |||
| length 120 | |||
| ENDIF | |||
| // "værelse" [v'E3-Vls@_!] | |||
| IF nextPhW(3-) AND next2PhW(V) THEN | |||
| length 90 | |||
| length 120 | |||
| ENDIF | |||
| // "mælkebøtte" - short followed by 2 consonants | |||
| IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN | |||
| length 90 | |||
| length 120 | |||
| ENDIF | |||
| FMT(vowel/e_mid2) | |||
| endphoneme | |||
| @@ -173,12 +173,8 @@ endphoneme | |||
| // "læsse" vs. "læse" | |||
| phoneme ?E | |||
| vowel starttype #e endtype #e | |||
| length 90 | |||
| // PB "færre" [f'?EV] - a bit longer because og the missing [ɐ] [ˈfæɐ̯ʌ] | |||
| // Changed now [f'?E3-V] but it won't do any harm | |||
| IF nextPhW(V) THEN | |||
| length 120 | |||
| ENDIF | |||
| ipa ε | |||
| length 100 | |||
| FMT(vowel/e_mid2) | |||
| endphoneme | |||
| @@ -193,7 +189,7 @@ ENDIF | |||
| // ThisPh + gooup #e or group #@ | |||
| // "ae", "aer" vowel + vowel: extra length | |||
| IF nextPhW(#@) OR nextPhW(#e) THEN | |||
| length 240 | |||
| length 220 | |||
| ENDIF | |||
| // This vowel is word end - longer because it sounds too short | |||
| // "ja", "Omaha" | |||
| @@ -278,6 +274,10 @@ ENDIF | |||
| // "bange" [bAN@-] - [N] = 2 consonants (ng) => short | |||
| IF nextPhW(N) THEN | |||
| length 90 | |||
| ENDIF | |||
| // "fare" [f'A:A] | |||
| IF nextPhW(A) THEN | |||
| length 150 | |||
| ENDIF | |||
| FMT(vowel/a_8) | |||
| endphoneme | |||
| @@ -297,27 +297,21 @@ endphoneme | |||
| phoneme u | |||
| vowel starttype #u endtype #u | |||
| length 90 //150 | |||
| // Short vowel followed by consonant and NOT consonant + 3 or V or @ | |||
| // "blus" vs. "bluse" and "bluser" | |||
| IF NOT next2PhW(3) AND NOT next2PhW(V) AND NOT next2PhW(@) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN | |||
| // glstop | |||
| // length 90 | |||
| ENDIF | |||
| // "suge", "uge", bluse | |||
| // "suge", "uge", "bluse", "julegave" | |||
| IF nextPhW(#e) OR nextPhW(#@) OR next2PhW(#e) OR next2PhW(#@)THEN | |||
| length 150 | |||
| ENDIF | |||
| // extra length followed by 3 or V or @ | |||
| IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) OR nextPhW(@-) THEN | |||
| // length 240 | |||
| ENDIF | |||
| // "umulig" | |||
| // "umulig" [u:m'uli] | |||
| IF nextVowel(i) AND nextVowel(isFinalVowel) AND nextVowel(isWordEnd) THEN | |||
| length 180 | |||
| ENDIF | |||
| // Only "u" | |||
| IF thisPh(isWordEnd) AND thisPh(isWordStart) THEN | |||
| length 150 | |||
| ENDIF | |||
| // "fugl" [ful] - a bit longer | |||
| IF nextPhW(isWordEnd) THEN | |||
| length 120 | |||
| ENDIF | |||
| FMT(vowel/u_bck) | |||
| endphoneme | |||
| @@ -332,20 +326,13 @@ endphoneme | |||
| phoneme o | |||
| vowel starttype #o endtype #o | |||
| length 150 | |||
| IF NOT next2PhW(3) AND NOT next2PhW(V) AND NOT next2PhW(@) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN | |||
| glstop | |||
| length 90 | |||
| ENDIF | |||
| // "tro" | |||
| IF thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN | |||
| length 90 | |||
| ENDIF | |||
| IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) THEN | |||
| length 90 //150 | |||
| // "bore", "borer" | |||
| IF nextPhW(3) OR nextPhW(V) OR nextPhW(@-) THEN | |||
| length 150 | |||
| ENDIF | |||
| // "modig" - long vowel after consonant + [i] | |||
| IF nextVowel(3) OR nextVowel(V) OR nextVowel(@) OR nextVowel(i) THEN | |||
| IF nextPhW(D) AND next2PhW(i) THEN | |||
| length 150 | |||
| ENDIF | |||
| FMT(vowel/o_2) | |||
| @@ -362,7 +349,7 @@ endphoneme | |||
| phoneme O | |||
| vowel starttype #o endtype #o | |||
| length 90 // 150 | |||
| // PB "sove", "sover" - consonant + #e or #@: long | |||
| // "sove", "sover" - consonant + #e or #@: long | |||
| IF next2PhW(#@) OR next2PhW(#e) THEN | |||
| length 150 | |||
| ENDIF | |||
| @@ -377,7 +364,7 @@ ENDIF | |||
| FMT(vowel/o_5) | |||
| endphoneme | |||
| // PB Experimental glottal O | |||
| // Short O | |||
| // "toget" vs. "tåget" | |||
| phoneme ?O | |||
| vowel starttype #o endtype #o | |||
| @@ -400,13 +387,17 @@ ENDIF | |||
| IF nextPhW(isNotVowel) AND next2Ph(V) THEN | |||
| length 90 | |||
| ENDIF | |||
| // PB "snorke", "snorker", årlig | |||
| // "snorke", "snorker", årlig | |||
| IF next2PhW(3) OR next2PhW(V) OR next2PhW(@) OR next2PhW(i) THEN | |||
| length 180 | |||
| ENDIF | |||
| // "sove" [sVw3] - longer followed by w + 3 | |||
| IF nextPhW(w) AND next2PhW(3) THEN | |||
| length 220 | |||
| ENDIF | |||
| // PB "konge" | |||
| IF nextPhW(N) THEN | |||
| length 95 | |||
| ENDIF | |||
| FMT(vowel/V_4) | |||
| endphoneme | |||
| @@ -415,7 +406,7 @@ endphoneme | |||
| // "forstår" vs. "kåre" | |||
| phoneme ?V | |||
| vowel starttype #@ endtype #@ | |||
| length 100 | |||
| length 90 | |||
| FMT(vowel/V_4) | |||
| endphoneme | |||
| @@ -432,7 +423,7 @@ ENDIF | |||
| FMT(vowel/oo_2) | |||
| endphoneme | |||
| // ?B short 0 "sukker" | |||
| // Short 0 "sukker" | |||
| phoneme ?0 | |||
| vowel starttype #o endtype #o | |||
| length 90 | |||
| @@ -492,8 +483,8 @@ endphoneme | |||
| phoneme W | |||
| vowel starttype #@ endtype #@ | |||
| length 99 //160 | |||
| // "kløe" vowel + vowel: extra length | |||
| length 90 //160 | |||
| // "kløe" vowel + vowel: extra length | |||
| IF nextPhW(#@) OR nextPhW(#e) THEN | |||
| length 220 | |||
| ENDIF | |||
| @@ -501,8 +492,8 @@ ENDIF | |||
| IF next2PhW(#@) OR next2PhW(#e) THEN | |||
| length 160 | |||
| ENDIF | |||
| // "røveri" TEST | |||
| IF next2PhW(V) OR next2PhW(?V) THEN | |||
| // "røveri" but NOT "surfer" [sWf?V] TEST | |||
| IF next2PhW(V) OR next2PhW(?V) AND NOT next2PhW(isFinalVowel) THEN | |||
| length 90 | |||
| ENDIF | |||
| // PB "nødig", "nødigt", "kølige" | |||
| @@ -520,7 +511,7 @@ ENDIF | |||
| FMT(vowel/oe) | |||
| endphoneme | |||
| // PB short W | |||
| // Short W | |||
| // "prøv" vs. "prøve" | |||
| phoneme ?W | |||
| vowel starttype #@ endtype #@ | |||
| @@ -528,7 +519,7 @@ phoneme ?W | |||
| FMT(vowel/oe) | |||
| endphoneme | |||
| // PB added for the ø in "røv", "røg", "øje" instead of [V3] | |||
| // Added for the ø in "røv", "røg", "øje" instead of [V3] | |||
| phoneme W# | |||
| vowel starttype #@ endtype #@ | |||
| length 90 //150 | |||
| @@ -543,12 +534,12 @@ ENDIF | |||
| FMT(vowel/V) | |||
| endphoneme | |||
| // PB short W# | |||
| // Short W# | |||
| // "rømme" | |||
| phoneme ?W# | |||
| vowel starttype #@ endtype #@ | |||
| length 90 | |||
| FMT(vowel/V) | |||
| FMT(vowel/V) | |||
| endphoneme | |||
| phoneme aI | |||
| @@ -594,10 +585,10 @@ phoneme l/3 // Replacement for [l/] | |||
| PrevVowelEndings | |||
| VowelEnding(l/l_@) | |||
| VowelEnding(l/l_a) | |||
| VowelEnding(l/l_a,-70) // kvalt, kapital | |||
| VowelEnding(l/l_e, -40) | |||
| VowelEnding(l/l_i, -70) | |||
| VowelEnding(l/l_o) | |||
| VowelEnding(l/l_o,-70) // stole, skole, pistol | |||
| VowelEnding(l/l_u, -70) | |||
| EndSwitch | |||
| @@ -694,7 +685,7 @@ phoneme j | |||
| VowelStart(j/ja) | |||
| VowelStart(j/je,-35) | |||
| VowelStart(j/ji) | |||
| VowelStart(j/jo) | |||
| VowelStart(j/jo,-65) // "kjole" | |||
| VowelStart(j/ju) | |||
| EndSwitch | |||
| Vowelout len=70 | |||
| @@ -123,6 +123,7 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence) | |||
| int end_sourceix; | |||
| int alternative; | |||
| int delete_count; | |||
| int word_start; | |||
| PHONEME_DATA phdata; | |||
| int n_ph_list3; | |||
| @@ -334,23 +335,39 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence) | |||
| // transfer all the phonemes of the clause into phoneme_list | |||
| ph = phoneme_tab[phonPAUSE]; | |||
| ph_list3[0].ph = ph; | |||
| word_start = 1; | |||
| for(j=0; insert_ph || ((j < n_ph_list3) && (ix < N_PHONEME_LIST-3)); j++) | |||
| { | |||
| plist3 = &ph_list3[j]; | |||
| if(plist3->sourceix != 0) | |||
| word_start = j; | |||
| if(insert_ph != 0) | |||
| { | |||
| // we have a (linking) phoneme which we need to insert here | |||
| next = phoneme_tab[plist3->phcode]; // this phoneme, i.e. after the insert | |||
| // re-use the previous entry for the inserted phoneme. | |||
| // That's OK because we don't look backwards from plist3 *** but CountVowelPosiion() and isAfterStress does !!! | |||
| // That's OK because we don't look backwards from plist3 *** but CountVowelPosition() and isAfterStress does !!! | |||
| j--; | |||
| plist3 = plist3_inserted = &ph_list3[j]; | |||
| if(j > 0) | |||
| { | |||
| memcpy(&plist3[-1], &plist3[0], sizeof(*plist3)); | |||
| // move all previous phonemes in the word back one place | |||
| int k; | |||
| if(word_start > 0) | |||
| { | |||
| k = word_start; | |||
| word_start--; | |||
| } | |||
| else | |||
| { | |||
| k = 2; // No more space, don't loose the start of word mark at ph_list2[word_start] | |||
| } | |||
| for(; k<=j; k++) | |||
| memcpy(&ph_list3[k-1], &ph_list3[k], sizeof(*plist3)); | |||
| } | |||
| memset(&plist3[0], 0, sizeof(*plist3)); | |||
| plist3->phcode = insert_ph; | |||
| @@ -35,7 +35,7 @@ | |||
| #include "translate.h" | |||
| #include "wave.h" | |||
| const char *version_string = "1.46.50 15.Mar.13"; | |||
| const char *version_string = "1.46.51 15.Mar.13"; | |||
| const int version_phdata = 0x014640; | |||
| int option_device_number = -1; | |||