lang=de: Fix important pronunciation error, "sage". Change handling of unrecognized phoneme names. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@260 d46cf337-b52f-0410-862d-fd96e6ae7743master
| durch $u+ $pause | durch $u+ $pause | ||||
| für fy:r $u+ $pause $only | für fy:r $u+ $pause $only | ||||
| gegen ge:g@n $u+ $pause | gegen ge:g@n $u+ $pause | ||||
| gegend ge:g@nt | |||||
| hin hIn | hin hIn | ||||
| in In $u+ $brk | in In $u+ $brk | ||||
| //(in die) %Ind%i: | //(in die) %Ind%i: |
| // ***************************************************************************/ | // ***************************************************************************/ | ||||
| .L01 l r | .L01 l r | ||||
| .L02 c f h k p q s t z // unvoiced, except s+vowel | |||||
| .L02 c f h k p q s t z // unvoiced, except s+vowel | |||||
| // This file is UTF-8 encoded | // This file is UTF-8 encoded | ||||
| _) abb (a %ab | _) abb (a %ab | ||||
| _) abb (rev ab | _) abb (rev ab | ||||
| _) abd (+ apd | _) abd (+ apd | ||||
| _) abend A:b@nt | |||||
| _) aben (d A:b@n | |||||
| _) aberr ab_|Er | _) aberr ab_|Er | ||||
| _) ab (er@P2 'ap | _) ab (er@P2 'ap | ||||
| _) ab (i ap | _) ab (i ap | ||||
| b) b | b) b | ||||
| b (_N p | b (_N p | ||||
| b (L02 p | b (L02 p | ||||
| blich plIC | |||||
| b (sA b | b (sA b | ||||
| bt (_N pt | bt (_N pt | ||||
| ck k | ck k | ||||
| _) c (el S | _) c (el S | ||||
| fa) c (et ts | |||||
| _) cey tsaI | _) cey tsaI | ||||
| chef (_ SEf | chef (_ SEf | ||||
| _) c (ent ts | _) c (ent ts | ||||
| chip (_ tSIp // English | chip (_ tSIp // English | ||||
| bre) ch (en x | bre) ch (en x | ||||
| ch (ord k | |||||
| ch (or_ k | |||||
| ch (ör k | |||||
| chro kro: | chro kro: | ||||
| nä) chs (t Cs | nä) chs (t Cs | ||||
| wa) chstu (m kstu: | wa) chstu (m kstu: | ||||
| d) d | d) d | ||||
| d (_N t | d (_N t | ||||
| d (L02 t | d (L02 t | ||||
| dlich tlIC | |||||
| d (sA d | d (sA d | ||||
| ds (_ ts | ds (_ ts | ||||
| dt t | dt t | ||||
| g (g | g (g | ||||
| g (_N k | g (_N k | ||||
| g (L02 k | g (L02 k | ||||
| glich klIC | |||||
| g (sA g | g (sA g | ||||
| gd (_N kt | gd (_N kt | ||||
| _) gh (A g | _) gh (A g | ||||
| r) ien (@ IEn | r) ien (@ IEn | ||||
| &) ien (_ =I@n | &) ien (_ =I@n | ||||
| &b) ien (_ =i:@n | &b) ien (_ =i:@n | ||||
| g) ien (_ 'i:@n | |||||
| m) ien (_ 'i:@n | |||||
| @g) ien (_ 'i:@n | |||||
| @m) ien (_ 'i:@n | |||||
| ph) ien (_ 'i:@n | ph) ien (_ 'i:@n | ||||
| &n) ien (_ I@n | &n) ien (_ I@n | ||||
| p) ien (_ 'i:@n | |||||
| @p) ien (_ 'i:@n | |||||
| &r) ien (_ =i:@n | &r) ien (_ =i:@n | ||||
| ser) ien (_ 'i:@n | ser) ien (_ 'i:@n | ||||
| tter) ien (_ 'i:@n | tter) ien (_ 'i:@n | ||||
| gor) ien (_ 'i:@n | gor) ien (_ 'i:@n | ||||
| etr) ien (_ 'i:@n | etr) ien (_ 'i:@n | ||||
| dustr) ien (_ 'i:@n | dustr) ien (_ 'i:@n | ||||
| s) ien (_ 'i:@n | |||||
| t) ien (_ 'i:@n | |||||
| @s) ien (_ 'i:@n | |||||
| @t) ien (_ 'i:@n | |||||
| &) iens (_ =I;@ns | &) iens (_ =I;@ns | ||||
| ient (_ I'Ent | ient (_ I'Ent | ||||
| &) ienz (_ I'Ents | &) ienz (_ I'Ents | ||||
| m m | m m | ||||
| m) m | m) m | ||||
| manager manEdZ3r | |||||
| _) manch manC // for 'manchen' | _) manch manC // for 'manchen' | ||||
| marine mA:r'i:n@ | marine mA:r'i:n@ | ||||
| _) meß (@P3 m'Es | _) meß (@P3 m'Es | ||||
| r) oo (m u: | r) oo (m u: | ||||
| z) oo (m u: | z) oo (m u: | ||||
| &t) or (_ =o:r | &t) or (_ =o:r | ||||
| orches OrkEs | |||||
| &) oren (_ 'o:r@n | &) oren (_ 'o:r@n | ||||
| _) orts (@P4 'Orts | _) orts (@P4 'Orts | ||||
| oso (_ 'o:zo: | oso (_ 'o:zo: | ||||
| philie f'i:li: | philie f'i:li: | ||||
| _) photo f,o:to: | _) photo f,o:to: | ||||
| _) pro (@ %pro: | _) pro (@ %pro: | ||||
| _) probe pro:b@ | |||||
| po (em p%o: | po (em p%o: | ||||
| po (et p%o: | po (et p%o: |
| s2 t t2 tS ts v z Z | s2 t t2 tS ts v z Z | ||||
| Dictionary de_dict 2011-03-31 | |||||
| Dictionary de_dict 2011-04-01 | |||||
| 3 3: @ @- a A A: aI | 3 3: @ @- a A A: aI | ||||
| aU A~ E E2 E: e: EI i | aU A~ E E2 E: e: EI i | ||||
| z Z | z Z | ||||
| Dictionary eo_dict 2010-08-27 | |||||
| Dictionary eo_dict 2011-04-01 | |||||
| @- a aI aU e eI eU i | @- a aI aU e eI eU i | ||||
| o oI u uI | o oI u uI | ||||
| t. th th. v w x z | t. th th. v w x z | ||||
| Dictionary ta_dict 2011-03-30 | |||||
| Dictionary ta_dict 2011-03-31 | |||||
| a a: aI aU e E e: i | a a: aI aU e E e: i | ||||
| I i: o o: u U u2 u: | I i: o o: u U u2 u: | ||||
| z Z | z Z | ||||
| Dictionary ml_dict 2011-03-26 | |||||
| Dictionary ml_dict 2011-04-01 | |||||
| @ a a: aI aU e E e: | @ a a: aI aU e E e: | ||||
| i I i: o o: r- u u: | i I i: o o: r- u u: | ||||
| V y | V y | ||||
| #X1 #X2 : b bh c ch d | |||||
| d. dh dh. dZ f g gh h | |||||
| j J Jh k kh l l. m | |||||
| n N n. n^ p ph r R | |||||
| r. R2 s s. S; t t. th | |||||
| th. tS v w z | |||||
| #X1 #X2 : ; b bh c ch | |||||
| d d# d. dh dh. dZ f g | |||||
| gh h j J Jh k kh l | |||||
| l. m n N n. n^ p ph | |||||
| r R r. R2 s s. S; t | |||||
| t. th th. tS v w z | |||||
| Dictionary ne_dict 2008-12-16 | Dictionary ne_dict 2008-12-16 |
| _10 pattU | _10 pattU | ||||
| _1X padin | _1X padin | ||||
| _11 patinonRU | _11 patinonRU | ||||
| _12 pVnniren.d.U | |||||
| _12 pVnnirVn.d.U | |||||
| _19 pattonbVdU | _19 pattonbVdU | ||||
| _20 irUbVdU | _20 irUbVdU |
| _) க (ிரிதர g | _) க (ிரிதர g | ||||
| _) கிரிஸ்டோப (ர krist.o:fV | _) கிரிஸ்டோப (ர krist.o:fV | ||||
| _) கி (ரீட k | _) கி (ரீட k | ||||
| _) கி (ரீன g | |||||
| _) கி (ரீன்லாந்த g | _) கி (ரீன்லாந்த g | ||||
| _) கி (ரீம k | _) கி (ரீம k | ||||
| _) க (ிரீஷ g | _) க (ிரீஷ g | ||||
| _) க (ுருபூஜை g | _) க (ுருபூஜை g | ||||
| _) க (ுருப்பெயர g | _) க (ுருப்பெயர g | ||||
| _) க (ுருமார g | _) க (ுருமார g | ||||
| _) க (ுருமூர்த்தி g | |||||
| _) க (ுருரா g | _) க (ுருரா g | ||||
| _) க (ுருவா g | _) க (ுருவா g | ||||
| _) க (ுருவாய g | _) க (ுருவாய g | ||||
| _) க் (ரவுண்ட g | _) க் (ரவுண்ட g | ||||
| _) க் (ரிகோரிய g | _) க் (ரிகோரிய g | ||||
| _) க்ரிஸ்டோப (ர krist.o:fV | _) க்ரிஸ்டோப (ர krist.o:fV | ||||
| _) க் (ரீன g | |||||
| _) க் (ரூப g | _) க் (ரூப g | ||||
| _) க் (ரௌண்ட g | _) க் (ரௌண்ட g | ||||
| _) க்வ (A kw | _) க்வ (A kw | ||||
| அ) க்க (ினி gg | அ) க்க (ினி gg | ||||
| கோபா) க்க (ினி gg | கோபா) க்க (ினி gg | ||||
| _கவிதா) க்க (ினி gg | _கவிதா) க்க (ினி gg | ||||
| _வேதா) க்க (ினி gg | |||||
| _யோ) க்க (ிய gg | _யோ) க்க (ிய gg | ||||
| அயோ) க்க (ிய gg | அயோ) க்க (ிய gg | ||||
| ஆரோ) க்க (ிய gg | ஆரோ) க்க (ிய gg | ||||
| _) சாக்லேட் tSa:kle:t. | _) சாக்லேட் tSa:kle:t. | ||||
| _) ச (ாணக்கிய tS | _) ச (ாணக்கிய tS | ||||
| ச (ாந்தி s. | ச (ாந்தி s. | ||||
| _) ச (ாந்தின tS | |||||
| _) சாந்த (ின tSa:nd | |||||
| _தே) ச (ாந்திர s | _தே) ச (ாந்திர s | ||||
| _) ச (ாந்தில tS | |||||
| _) சாந்த (ில tSa:nd | |||||
| _) ச (ான்ஸ tS | _) ச (ான்ஸ tS | ||||
| _) சாப் (ளின tSa:p | _) சாப் (ளின tSa:p | ||||
| _) ச (ாமுண்ட tS | _) ச (ாமுண்ட tS | ||||
| இராவணே) சு (வர s | இராவணே) சு (வர s | ||||
| ராவணே) சு (வர s | ராவணே) சு (வர s | ||||
| _) சுவர்க்க svVrggV# | _) சுவர்க்க svVrggV# | ||||
| _) சுவர்க்க (ோழி suvVrgg | |||||
| _) சுவர்க்க (ோழி suvVrkk | |||||
| _) சு (வாச s | _) சு (வாச s | ||||
| சு (வாதீன s | சு (வாதீன s | ||||
| சு (வாமி s | சு (வாமி s | ||||
| _) டாங்க (ர t.a:NkV | _) டாங்க (ர t.a:NkV | ||||
| _) டாங்க (ி t.a:Nk | _) டாங்க (ி t.a:Nk | ||||
| _) டாட (ா t.a:t. | _) டாட (ா t.a:t. | ||||
| _) டானிக் t.a:nik | |||||
| _) ட (ான்சானிய t. | _) ட (ான்சானிய t. | ||||
| _) ட (ான்ஜானிய t. | _) ட (ான்ஜானிய t. | ||||
| _) டாபிக் t.a:pik | _) டாபிக் t.a:pik | ||||
| _) ட (ாஸ்மாக் t. | _) ட (ாஸ்மாக் t. | ||||
| _டியூ) ட (ி t. | _டியூ) ட (ி t. | ||||
| _ட்யூ) ட (ி t. | _ட்யூ) ட (ி t. | ||||
| _சேஃப்) ட (ி t. | |||||
| _ராயல்) ட (ி t. | _ராயல்) ட (ி t. | ||||
| _க்வாலி) ட (ி t. | _க்வாலி) ட (ி t. | ||||
| _நாவல்) ட (ி t. | _நாவல்) ட (ி t. | ||||
| _) த (ாதா d | _) த (ாதா d | ||||
| _) த (ானங் d | _) த (ானங் d | ||||
| _) த (ானத் d | _) த (ானத் d | ||||
| _) த (ானப் d | |||||
| _) த (ானமா d | _) த (ானமா d | ||||
| _) த (ானிய d | _) த (ானிய d | ||||
| _) த (ானியங்கி t | _) த (ானியங்கி t | ||||
| _) ப (ாரிஸ்டர b | _) ப (ாரிஸ்டர b | ||||
| _) ப (ார்L04லோனா b | _) ப (ார்L04லோனா b | ||||
| _) ப (ார்கவி b | _) ப (ார்கவி b | ||||
| _) ப (ார்டர b | |||||
| _) ப (ார்ம f | _) ப (ார்ம f | ||||
| _) ப (ாலக b | _) ப (ாலக b | ||||
| _) ப (ாலக் p | _) ப (ாலக் p | ||||
| பிரக (ாஷ prVk | பிரக (ாஷ prVk | ||||
| மதப்) பிரச (ார prVtS | மதப்) பிரச (ார prVtS | ||||
| பி (ரத p | பி (ரத p | ||||
| _தர்மப்) பி (ரப p | |||||
| _தானப்) பி (ரப p | |||||
| _மL06ாப்) பி (ரப p | |||||
| வீண்) பி (ரமை b | வீண்) பி (ரமை b | ||||
| துஷ்) பி (ரயோக p | துஷ்) பி (ரயோக p | ||||
| L03ந்தப்) பி (ரளய p | |||||
| ஆ) பி (ரஹாம b | ஆ) பி (ரஹாம b | ||||
| பயப்) பி (ராந்தி b | பயப்) பி (ராந்தி b | ||||
| மனப்) பி (ராந்தி b | மனப்) பி (ராந்தி b | ||||
| பி (ராய p | பி (ராய p | ||||
| L03ந்தப்) பி (ராய p | |||||
| ஆ) ப (ிரிக்க f | ஆ) ப (ிரிக்க f | ||||
| போஜனப்) பி (ரியர p | போஜனப்) பி (ரியர p | ||||
| _மறு) ப (ிற p | _மறு) ப (ிற p | ||||
| ஈ i: | ஈ i: | ||||
| உ u | உ u | ||||
| உருத்த (ிரா rUdd | |||||
| ஊ u: | ஊ u: | ||||
| da 27 120 | da 27 120 | ||||
| ka 19 112 | ka 19 112 | ||||
| rw 15 130 | rw 15 130 | ||||
| ml 18 151 | |||||
| ml 19 152 | |||||
| ne 18 157 | ne 18 157 | ||||
| pa 14 151 | pa 14 151 | ||||
| prs 8 111 | prs 8 111 | ||||
| [l/] fr | [l/] fr | ||||
| l/l_@ [l/3] base | l/l_@ [l/3] base | ||||
| [l/] fr | [l/] fr | ||||
| l/l@ [hF|] base | |||||
| l/l@ [h–u] base | |||||
| [l#] base | [l#] base | ||||
| [l] fr | [l] fr | ||||
| [l/2] fr | [l/2] fr | ||||
| l/L2_uL [l/2] base | l/L2_uL [l/2] base | ||||
| l/l_3 [l/] de | l/l_3 [l/] de | ||||
| l/l_4 [ll] sq | l/l_4 [ll] sq | ||||
| l/la [hF|] base | |||||
| l/la [h–u] base | |||||
| [l#] base | [l#] base | ||||
| [l] fr | [l] fr | ||||
| [l/2] fr | [l/2] fr | ||||
| [K] tn | [K] tn | ||||
| l/l_a [l/3] base | l/l_a [l/3] base | ||||
| [l/] fr | [l/] fr | ||||
| l/le [hF|] base | |||||
| l/le [h–u] base | |||||
| [l#] base | [l#] base | ||||
| [l] fr | [l] fr | ||||
| [l/2] fr | [l/2] fr | ||||
| [&:] af | [&:] af | ||||
| l/l_front [L] sq | l/l_front [L] sq | ||||
| l/l_front_ [l/4] sq | l/l_front_ [l/4] sq | ||||
| l/li [hF|] base | |||||
| l/li [h–u] base | |||||
| [l#] base | [l#] base | ||||
| [l] fr | [l] fr | ||||
| [l/2] fr | [l/2] fr | ||||
| ll/_ll [L] bg | ll/_ll [L] bg | ||||
| l/l_long [l] base | l/l_long [l] base | ||||
| [l] fr | [l] fr | ||||
| l/lo [hF|] base | |||||
| l/lo [h–u] base | |||||
| [l#] base | [l#] base | ||||
| [l/2] fr | [l/2] fr | ||||
| [K] nso | [K] nso | ||||
| l^/l_rfx [l.] base | l^/l_rfx [l.] base | ||||
| [l] ru | [l] ru | ||||
| [l^] ru | [l^] ru | ||||
| l/lu [hF|] base | |||||
| l/lu [h–u] base | |||||
| [l#] base | [l#] base | ||||
| [l] fr | [l] fr | ||||
| [l/2] fr | [l/2] fr |
| IF prevPhW(isVowel) THEN | IF prevPhW(isVowel) THEN | ||||
| ChangePhoneme(R) | ChangePhoneme(R) | ||||
| ELSE | ELSE | ||||
| IF prevPhW(isUStop) THEN | |||||
| ChangePhoneme(R) | |||||
| IF prevPhW(t) THEN | |||||
| ELSE | ELSE | ||||
| InsertPhoneme(@-) | InsertPhoneme(@-) | ||||
| ENDIF | ENDIF | ||||
| endphoneme | endphoneme | ||||
| // This version of [r] was used in eSpeak 1.44, but received complaints | // This version of [r] was used in eSpeak 1.44, but received complaints | ||||
| phoneme r2 // uvular trill or fricative | phoneme r2 // uvular trill or fricative | ||||
| vcd uvl frc | vcd uvl frc |
| static MNEM_TAB reserved_phonemes[] = { | static MNEM_TAB reserved_phonemes[] = { | ||||
| {"<", phonCONTROL}, // NOT USED | |||||
| {"_\001", phonCONTROL}, // NOT USED | |||||
| {"%", phonSTRESS_U}, | {"%", phonSTRESS_U}, | ||||
| {"%%", phonSTRESS_D}, | {"%%", phonSTRESS_D}, | ||||
| {",", phonSTRESS_2}, | {",", phonSTRESS_2}, |
| } | } | ||||
| // check for errors in the phonemes codes | // check for errors in the phonemes codes | ||||
| for(ix=0; ix<sizeof(encoded_ph); ix++) | |||||
| if(bad_phoneme[0] != 0) | |||||
| { | { | ||||
| c = encoded_ph[ix]; | |||||
| if(c == 0) break; | |||||
| if(c == 255) | |||||
| { | |||||
| /* unrecognised phoneme, report error */ | |||||
| fprintf(f_log,"%5d: Bad phoneme [%c] (0x%x) in: %s %s\n",linenum,bad_phoneme[0],bad_phoneme[0],word,phonetic); | |||||
| error_count++; | |||||
| } | |||||
| // unrecognised phoneme, report error | |||||
| fprintf(f_log,"%5d: Bad phoneme [%c] (0x%x) in: %s %s\n",linenum,bad_phoneme[0],bad_phoneme[0],word,phonetic); | |||||
| error_count++; | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| EncodePhonemes(rule_phonemes,buf,bad_phoneme); | EncodePhonemes(rule_phonemes,buf,bad_phoneme); | ||||
| for(ix=0;; ix++) | |||||
| if(bad_phoneme[0] != 0) | |||||
| { | { | ||||
| if((c = buf[ix])==0) break; | |||||
| if(c==255) | |||||
| { | |||||
| fprintf(f_log,"%5d: Bad phoneme [%c] in %s\n",linenum,bad_phoneme[0],input); | |||||
| error_count++; | |||||
| break; | |||||
| } | |||||
| fprintf(f_log,"%5d: Bad phoneme [%c] in %s\n",linenum,bad_phoneme[0],input); | |||||
| error_count++; | |||||
| } | } | ||||
| strcpy(output,buf); | strcpy(output,buf); | ||||
| len = strlen(buf)+1; | len = strlen(buf)+1; |
| /* Translate a phoneme string from ascii mnemonics to internal phoneme numbers, | /* Translate a phoneme string from ascii mnemonics to internal phoneme numbers, | ||||
| from 'p' up to next blank . | from 'p' up to next blank . | ||||
| Returns advanced 'p' | Returns advanced 'p' | ||||
| outptr contains encoded phonemes, unrecognised phonemes are encoded as 255 | |||||
| outptr contains encoded phonemes, unrecognized phoneme stops the encoding | |||||
| bad_phoneme must point to char array of length 2 of more | bad_phoneme must point to char array of length 2 of more | ||||
| */ | */ | ||||
| { | { | ||||
| if(max_ph == 0) | if(max_ph == 0) | ||||
| { | { | ||||
| max_ph = 255; /* not recognised */ | |||||
| // not recognised, report and ignore | |||||
| bad_phoneme[0] = *p; | bad_phoneme[0] = *p; | ||||
| bad_phoneme[1] = 0; | bad_phoneme[1] = 0; | ||||
| *outptr++ = 0; | |||||
| return(p+1); | |||||
| } | } | ||||
| if(max <= 0) | if(max <= 0) |
| #include "translate.h" | #include "translate.h" | ||||
| #include "wave.h" | #include "wave.h" | ||||
| const char *version_string = "1.45.11 31.Mar.11"; | |||||
| const char *version_string = "1.45.12 01.Apr.11"; | |||||
| const int version_phdata = 0x014500; | const int version_phdata = 0x014500; | ||||
| int option_device_number = -1; | int option_device_number = -1; |
| wordx[-1] = c_temp; | wordx[-1] = c_temp; | ||||
| found = LookupDictList(tr, &word1, phonemes, dictionary_flags2, end_flags, wtab); // include prefix, but not suffix | found = LookupDictList(tr, &word1, phonemes, dictionary_flags2, end_flags, wtab); // include prefix, but not suffix | ||||
| wordx[-1] = ' '; | wordx[-1] = ' '; | ||||
| if(phonemes[0] == phonSWITCH) | |||||
| { | |||||
| // change to another language in order to translate this word | |||||
| memcpy(wordx,word_copy,strlen(word_copy)); | |||||
| strcpy(word_phonemes,phonemes); | |||||
| return(0); | |||||
| } | |||||
| if(dictionary_flags[0]==0) | if(dictionary_flags[0]==0) | ||||
| { | { | ||||
| dictionary_flags[0] = dictionary_flags2[0]; | dictionary_flags[0] = dictionary_flags2[0]; |