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]; |