Browse Source

de: revert the phoneme and dictionary changes

master
Reece H. Dunn 7 years ago
parent
commit
062df03e9e
5 changed files with 269 additions and 531 deletions
  1. 0
    1
      CHANGELOG.md
  2. 107
    254
      dictsource/de_list
  3. 31
    79
      dictsource/de_rules
  4. 130
    196
      phsource/ph_german
  5. 1
    1
      tests/languages.test

+ 0
- 1
CHANGELOG.md View File

@@ -20,7 +20,6 @@ new languages:
updated languages:

* af (Afrikaans) -- Christo de Klerk
* de (German) -- Karl Eick
* fi (Finnish) -- Juho Hiltunen
* fr (French) -- Shallowmallow, Karl Eick
* hak (Hakka Chinese) -- Chen Chien-ting

+ 107
- 254
dictsource/de_list View File

@@ -1,4 +1,3 @@

// This file is UTF-8 encoded
// all words lower case

@@ -16,32 +15,32 @@
// Include a _ before a character if it's name should only be
// spoken when "speak punctuation" option is on.

_. pUNkt
_. pUnkt
* StErn $max3
% pro:ts'Ent $max3
+ plUs $max3
= glaIC $max3
# nUm3 $max3
€ OYro:
£ pFUnd
& Unt1
@ Et1
£ paUnd
& Unt
@ kl'am3_,af@
~ tIld@
\ bEkslES
\ bakslaS
° grA:t
± pl'Us||m'i:nUs

_, kOmA:
_, kOma
_| paIp
_: d'Op@lp,UNkt
_; Str'ICpUNkt
__ ,Unt3Str'IC
_- b'Ind@Str,IC
_- b'Ind@str,IC
_! 'aUs_|r,u:f@ts,aIC@n
_? fr'Ag@ts,aIC@n
_' ,apo:str'Of
_" tsi:t'A:t
_/ Sr'E:kStrIC
_/ Sr'e:gStrIC
_( kl'am3||_|'aUf
_) kl'am3||ts'u:
_{ g@Sv'aIft@kl'am3||_|'aUf
@@ -62,41 +61,33 @@ _— g@d'aNk@nStr,IC
_#9 t,abu:l'A:to:3
_#32 l'e:rts'aIC@n
_?? zymb'o:l
_?A b'u:xStA:b@
_?A b'u:xstA:b@
_cap gr'o:s
_sub t,i:fg@St,Elt
_sup h,o:xg@St,Elt
½ aInh'alp
¢ sEnt
¼ 'aInfIrt@l
¬ nICtzOrt'i:rtsaIC@n
¾ dr'aIfIrt@l
¶ paragr'A:f
¤ Int3natsjo:nA:l@sv'E:rUNstsaIC@n
¥ jEn
_sub 'Unt@R|3_!,IndEks||
_sup 'o:b@R|3_!,IndEks||


// accent names
_lig li:gat'u:r
_acu aksA~tEg'y:
_lig l'i:gat,u:3
_acu ak'u:t
_ac2 d'Op@lak,u:t
_brv br'E:v@
_brv b@-*'E:v@
_ced se:d'i:j
_cir ts'IrkUmflEks
_dia 'UmlaUt
_dot p'UNkt
_dot p'Unkt
_grv gr'A:vIs
_hac h'atSEk
_mcn m'A:krOn
_ogo 'o:gOn,Ek
_rng kr'o:wZEk
_stk Sr'E:kStrIC
_stk Sr'e:gstrIC
_tld t'Ild@

æ $accent
é $accent
ç $accent
? $accent
č $accent
š $accent
ž $accent

@@ -104,16 +95,10 @@ _tld t'Ild@
v faU
x Iks

// Character names
_braille p'UNkt|Sr,Ift

// Alphabets
_eth amh'A:rIS
_ar ar'AbIS
_cyr ky:r'IlIS
_ar aR'AbIS
_cyr ky:R'IlIS
_he hEbr'E:IS
_ja jap'A:nIS
_ko ko:re:'A:nIS
_zh Ci:n'e:zIS


@@ -140,71 +125,44 @@ _16 'zECtse:n
_17 'zi:ptse:n
_18 '_axtse:n
_19 'nOYntse:n
_2X 'tsvantsIg#
_3X 'draIsIg#
_4X 'fIrtsIg#
_5X 'fynftsIg#
_6X 'zECtsIg#
_7X 'zi:ptsIg#
_8X '_axtsIg#
_9X 'nOYntsIg#

_0C 'h,Und3t
_0M1 't,aUz@nt
_0M2 ||mIlj'o:n@n
_1M2 _'aIn@||mIlj'o:n
_0M3 ||mIlj'ard@n
_1M3 _'aIn@||mIlj'ard@
_0M4 bIlj'o:n@n
_1M4 'aIn@||bIlj'o:n
_0M5 bIlj'ard@n
_1M5 'aIn@||bIlj'ard@
_0M6 trIlj'o:n@n
_1M6 'aIn@||trIlj'o:n
_0M7 trIlj'ard@n
_1M7 'aIn@||trIlj'ard@
_0M8 kvadrIlj'o:n@n
_1M8 'aIn@||kvadrIlj'o:n
_0M9 kvadrIlj'ard@n
_1M9 'aIn@||kvadrIlj'ard@
_0M10 kvIntIlj'o:n@n
_1M10 'aIn@||kvIntIlj'o:n
_0M11 kvIntIlj'ard@n
_1M11 'aIn@||kvIntIlj'ard@
_0M12 zEkstIlj'o:n@n
_1M12 'aIn@||zEkstIlj'o:n
_0M13 zEkstIlj'ard@n
_1M13 'aIn@||zEkstIlj'ard@
_0M14 zEptIlj'o:n@n
_1M14 'aIn@||zEptIlj'o:n
_0M15 zEptIlj'ard@n
_1M15 'aIn@||zEptIlj'ard@
_0M16 _OktIlj'o:n@n
_1M16 'aIn@||OktIlj'o:n
_0M17 _OktIlj'ard@n
_1M17 'aIn@||OktIlj'ard@
_0M18 n,o:nIlj'o:n@n
_1M18 'aIn@||n,o:nIlj'o:n
_0M19 n,o:nIlj'ard@n
_1M19 'aIn@||n,o:nIlj'ard@
_0M20 de:tsIlj'o:n@n
_1M20 'aIn@||de:tsIlj'o:n
_2X 'tsvantsIC
_3X 'draIsIC
_4X 'fIrtsIC
_5X 'fynftsIC
_6X 'zECtsIC
_7X 'zi:ptsIC
_8X '_axtsIC
_9X 'nOYntsIC
_0C 'hUnd3t
_0M1 'taUz@nt
_0M2 ||mIlI'o:n@n
_1M2 _'aIn@||mIlI'o:n
_0M3 ||mIlI'ard@n
_1M3 _'aIn@||mIlI'ard@
_0M4 bIlI'o:n
_0and ||_|Unt
_roman rY:mIS
_dpt _kOmA:
_#er 3
_dpt _kOma

// ordinal numbers
_ord t@ // default ending
_ord20 st@ // 20,30,etc
_1o _'e:rst@
_3o dr'It@
_7o z'i:bt@
_8o _'axt@
_0Co 'hUnd3tst@

// Abbreviations
//==============
(a . a . o .) A:||A:||_o:
allg 'alg@maIn
abb 'apb,IldUN
abb 'abb,IldUN
anm 'anm,ErkUN
bd band
bde bEnd@
bzw b@tsi:UNsvaIz@
chr krIstUs
dr d'Okto:r
chr k@rIstUs
dr dOkt'o:r
evtl e:vEntu:'El
od o:d3 $only
fr fraU
@@ -233,8 +191,8 @@ derselb $2
desselb dEsz'Elb
dieselb $2
dasselb dasz'Elb
demselb de:mz'Elb
denselb de:nz'Elb
demselb $2
denselb $2

// conjunctions
und Unt $u+ $pause
@@ -279,7 +237,7 @@ nach nA:x $u+ $brk
neben $u+ $brk
ob ,Ob $pause $strend $only
per pEr $u+ $brk
pro %pro:
pro ,pro: $pause
von fOn $u+ $brk
//(von dem) %fOn%de:m $brk
vom fOm $u+ $brk
@@ -287,7 +245,7 @@ vor ,fOr $strend
zu tsu: $u+ $brk
zum tsUm $u+ $pause
zur tsu:r $u+ $pause
über ,y:b3 $pause $strend
über ,yb3 $pause $strend
unter ,Unt3 $pause $strend $only
um Um $u+ $brk
//(um die) %Umd%i: $brk
@@ -296,15 +254,13 @@ während $pause

// misc
so zo: $u+
(auch nicht) aUxnICt
doch dOx $u+
(noch kein) nOxk'aIn
(noch keine) nOxk'aIn@
noch $pause
(noch nicht) n'Ox||n'ICt $brk
(nicht mehr) n'ICt||,me:r
(nicht mehr) n,ICt||m'e:r $atend
(nicht nur) n'ICt||n'u:r $pause
(gar nicht) g'A:rnICt
(gar nicht) g,A:rn'ICt

// should these be in the Rules if they can be a prefix in a
// compound verb ?
@@ -326,7 +282,7 @@ mir $u+ $only
du $u $only
dich $u+ $only
dir $u+ $only
er Er $u $only
er Er $u $brk $only
es Es $u $only
ihn $u+ $only
ihm $u+ $only
@@ -364,12 +320,11 @@ sein $u // can also be verb "to be"
seine $u+

unsre Unzr@ $u
unsere Unz@r@ $u
unsere Unzr@ $u
unser Unz3 $u
unserm Unz3m $u
unserem Unz@r@m $u
unseren Unz@r@n $u
unserer Unz@r3 $u
unserm Uns3m $u
unserem Uns@r@m $u


ihre i:r@ $u
ihrem i:r@m $u
@@ -406,14 +361,14 @@ sind zInt $u
seit zaIt $u $only

habe %hA:b@ $only
habest hA:b@st $only $u
habest hA:bEst $only $u
hast %hast $only
hat %hat $only
haben h,A:b@n $only $strend2
hatte h,at@ $only
hatten h,at@n $only
hätte h,Et@ $only
hättest h,Et@st
hättest h,EtEst $only
hättet h,Et@t $only
hätten h,Et@n $only

@@ -427,15 +382,14 @@ willst %vIlst $only
wollen %vOl@n $only
wollt %vOlt

werden v,Erd@n
werden v,Erd@n $strend2
werde v,Erd@
wirst v,Irst
wird v,Ird
werdet v,Erd@t
worden vOrd@n $u
wurden v,Urd@n
wurde v,Urd@
wurdest v,Urd@st
wurdest v,UrdEst
wurdet v,Urd@t

können ,kWn@n $only $strend2
@@ -459,45 +413,34 @@ kam ,kA:m
// de_rules includes the words ending in "-ing"
access _^_EN
account _^_EN
aid _^_EN
aid _^_EN // aids
appeal _^_EN
apple _^_EN
association _^_EN
baseball _^_EN
bbc _^_EN
beat _^_EN
beat _^_EN $only
browser _^_EN
byte _^_EN
bytes _^_EN
camcorder _^_EN
certificate _^_EN
change _^_EN
chart _^_EN
chat _^_EN
cleaner _^_EN
coach _^_EN
coke _^_EN
computer kOmpj'u:t3
computer _^_EN
cool _^_EN
copy _^_EN
couch _^_EN
cursor _^_EN
date _^_EN
debugger _^_EN
desktop d'EsktOp
dj d'i:dZEI
dj _^_EN
download _^_EN
downloads _^_EN
email _^_EN
enterprise _^_EN
espeak _^_EN
event _^_EN
execute _^_EN
explorer Ekspl'Or3r
file _^_EN
firefox _^_EN
firewall _^_EN
foul _^_EN
foyer _^_EN
frame _^_EN
freak _^_EN
gin _^_EN
@@ -506,7 +449,6 @@ hip _^_EN
homepage _^_EN
hooligan _^_EN
interface _^_EN
jaws _^_EN
jean _^_EN
jet _^_EN
job _^_EN
@@ -522,29 +464,23 @@ look _^_EN
macho _^_EN
mail _^_EN
message _^_EN
move _^_EN
my _^_EN
mysql _^_EN
notebook _^_EN
offline _^_EN
online _^_EN
out _^_EN
overwrite _^_EN
pair _^_EN
penthouse _^_EN
pidgin _^_EN
plot _^_EN
poster _^_EN
receiver _^_EN
registry _^_EN
release _^_EN
remake _^_EN
research _^_EN
remake _^_EN
roadie _^_EN
roastbeef _^_EN
quiz _^_EN
run _^_EN
save _^_EN
scanner _^_EN
science _^_EN
server _^_EN
@@ -554,44 +490,30 @@ sexy _^_EN
shirt _^_EN
show _^_EN
single _^_EN
size _^_EN
slip _^_EN
slum _^_EN
small _^_EN
smiley _^_EN
snob _^_EN
song _^_EN
sorry _^_EN
source _^_EN
spam _^_EN
speak _^_EN
spirit _^_EN
squaw _^_EN
stream _^_EN
suite _^_EN
sweatshirt _^_EN
sync _^_EN
talk _^_EN
team _^_EN
teaser _^_EN
tech _^_EN
terminal _^_EN
thunderbird _^_EN
time _^_EN
trip _^_EN
tuner _^_EN
unix _^_EN
update _^_EN
updates _^_EN
venture _^_EN
verify _^_EN
voice _^_EN
voices _^_EN
weather _^_EN
web w'Eb $only
website _^_EN
window _^_EN
wipe _^_EN
word _^_EN


@@ -601,55 +523,49 @@ abort ab'Ort
absentier apzEnt'i:r
abstinent $3
achso axz'o:
adress $2
akazie $alt
alarm $2
allein $2
allgemein 'alg@maIn
amerika $2
andre andr@ // andere
aneinander an1aIn'and3
anomalie $2
antik ant'i:k
archaik arC'A:Ik
arie $alt
arpeggier arpEdZ'i:r
arrangier araNZ'i:r
arrangier araNZ'i:@
Art A:rt // capital
arterie $alt
asphalt $2
atommüll at'o:mmyl
atommüll $1
ausgeschamt aUsg@SA:mt
außerdem 'aUs3d,e:m
automatisch $3
aventurin avEntu:r'i:n
ave A:vE

balkan $1
balkon $2
bandagier bandaZ'i:r
bandagier bandaZ'i:@
beben be:b@n
beere be:r@
bestie bEstI@
best bEst
bestem b'Est@m
beten be:t@n
bibliothek bi:bli:o:t'e:k
bisschen b'IsC@n
bizarr $2
blamage $alt
bronchie $alt
buchstabierfunktion $3
bürostuhl by:r'o:Stu:l
buch b'u:x
buchen b'u:x@n
bucht b'u:xt
bucht b'Uxt $capital $verbf
buchte b'u:xt@
buchten b'u:xt@n
buchten b'Uxt@n $capital $verbf

changier SaNZ'i:r
cembalo tS'Embalo:
ciao tSaU
clique klIk@
coup ku:

dahlie $alt
dazwishen $2
debatte $2
deshalb $2
detail de:t'aI
@@ -659,7 +575,6 @@ dient di:nt
dividend di:vi:d'Ent
dragier draZ'i:r
dritte drIt@
dschungel dZ'UN@l
duett du:'Et

ebendaher e:b@ndah'e:r
@@ -668,45 +583,38 @@ ebenso $1
einander aIn'and3
einerlei aIn@rlaI
einher aInh'e:r
einig aInIg#
einig aInIC $only
einige aInIg@ $u+
einiges aInIg@s $u+
einzig 'aIntsIg#
elektronisch e:lEktr'o:nIS
elementansicht e:l@m'Ent_|anzICt
engagier aNgaZ'i:r
endivie $alt
endlich EntlIC
ensemble A~s'A~b@l
ensemble Ons'Omb@l
episkopal e:pIsko:p'A:l
erde e:rd@
erst e:rst
ersten e:rst@n
erstmal e:rstmA:l
erzgebirg Ertsg@bIrg
erstmal e:rstma:l
erzgebirg e:rtsg@bIrg
expedient Ekspe:dI'Ent
extravagant $1
extrem Ekstr'e:m

fenster f'Enst3
foyer fOj'e:
feuerrot $3
friedvoll fr'i:tf,Ol
furchen fUrC@n
furie $alt

geben ge:b@n
gebt ge:bt
gegenstand $1
gegenständ $1
gegenüber ge:g@n_|'y:b3
gegenüber ge:g@n'y:b3
geglichen g@glIC@n
gemein g@maIn
genial ge:nj'A:l
genial ge:nI'al
geranie ge:r'A:nI@
gessen gEs@n
geste ge:st@
gestern gEst3n
gitarre $2
glorie $alt
grazie $alt

@@ -718,19 +626,21 @@ herberg hErbErg
hi haI
historie $alt
hm h@m
horsam hO3zA:m
hostie $alt
humor $2
hrhr harhar
husten h'u:st@n

illegitim Ile:gi:t'i:m
illiberal Ili:b@r'A:l
illoyal IlOajA:l
immobilie $alt
indem Ind'e:m
inden Ind'e:n
inder Ind3
indes Ind'Es
indessen Ind'Es@n
ingenieur IndZ@nj'Y:r
ingenieur IndZ@nj'u:r
injurie $alt
inka INkA:
inkaisch INkA:IS
@@ -739,27 +649,19 @@ insbesondere $3
interess Int@r'Es
intern Int'Ern
internet Int@rnEt
internetzugriff 'Int3nEtts,u:grIf
inzwischen $2

jahrhundert $2
januar janu:A:r

Kamel kam'e:l
kamelie $alt
kanäl $2
kanoe kan'u:
kartonage $alt
kastanie $alt
kid kId
kombinationsfeld $4
komödie $alt
kompass $1
konservativ k'OnzErvat,i:v
konservativ $1
konsul $1
konto $1
kuchen k'u:x@n
kurie $alt
küchentisch k'yC@ntIS
kwaß kvas

lappalie $alt
@@ -770,19 +672,13 @@ luetisch lu:'e:tIS

machen max@n
marginalie $alt
massage $2
materie $alt
meldung m'EldUN
menuette mEnu:'Et
menü $2
minut $2
mikrofiche mi:kro:fi:S
miteinander $1
modell mo:d'El
modem mo:dEm
modern $2
monat $1
monitor $1
monoton $3
monsun $2
montag mo:ntA:k
@@ -793,21 +689,16 @@ nachdem naxd'e:m
nage $alt
nebulos $3
negligent ne:gli:dZ'Ent
netzbetrieb n'Etsb@tri:b
nisch ni:S
normal $2
november $2
numero $1

oboe o:b'o:@
orgie $alt
ok o:k'e:
oktober $2
optimal $3
ödem Y:d'e:m

paradies $3
passage $alt
passage pas'aZ@
perplex $2
petersilie $alt
pinie $alt
@@ -816,32 +707,20 @@ pochier pOS'i:r
pochs pOxs
präsident $3
prämie $alt
privatisier pri:vA:ti:z'i:r
problematisier $5
protokoll $3
privatisier $4
problematisier $3 //pro:ble:m'a:tIzi:r

refrain rEfr'W~
reliquie $alt
rendezvous rA~de:v'u:
restaurant rEsto:r'A~
risik $1
rupie $alt

sabbat zabat
sagt zA:gt
salopp $2
schieberegler S'i:b@re:gl3
schreibung Sr'aIbUN
schult Su:lt
schulter S'Ult3
schultern S'Ult3n
sekund $2
selbst zElpst
september $2
serie $alt
service _^_EN
ski S'i:
sodass %zo:d,as
serie se:rI;@
service sErvIs
soeben zo:_'e:b@n
sofort $2
sogar $2
@@ -855,78 +734,52 @@ subjekt $1

tag tA:g
telegen te:le:g'e:n
temporär $3
terrain tEr'W~
the D@ // English
theater te:'A:t3
tja tjA:
tonnage $alt
tragödie $alt
train tre:n
trolley tr'Oli:
tsunami tsu:n'A:mi:
turin tu:r'i:n
tsunami tsu:n'a:mi:
turin $2

umgehen $2
umrahmen $2
umweg $1
unten Unt@n
untermenü 'Unt3me:n,y:
urin u:r'i:n
übrig 'y:brIg#

verein fEr_|'aIn
verein fEr'aIn
vielbesprochen $3
vielleicht fIl'aICt
vielleicht $2
vorherig fo:rh'e:rIg#
vorig fo:rIg#

wahrscheinlich $2
//wahrscheinlich $2
warum vA:r'Um
wasserung vas@rUN // because -ung isn't marked as a suffix
weiterung vaIt@rUN
weither vaIth'Er
weitum vaIt_|'Um
willkommen $2
woher vo:h'e:r

zloty slOti:
zoom zu:m
zugegen tsu:g'e:g@n
zudem tsu:'de:m
zugegen tsu:g'e:g@n
zurück $2
zustand ts'u:Stand $only
zuständ ts'u:StEnd
zymbal $1


// Names
Armin $1
Djakarta dZak'artA:
Djibouti dZi:b'u:ti:
Fruecht fr'yCt
Djibouti dZib'u:ti:
Georg ge:Ork $only
George dZO:rdZ
john dZ'On
Josef j'o:zEf
Klango kl'aNgo:
Khmer kme:r
liam _^_EN
Mc %mEk
Moradi $2
Mc m@-k
Neumexiko $2
Neuseeland $2
Rwanda rU'andA:
Sri %sri:
steve _^_EN
Sri sr,i:
Tom tOm $only
Tim tIm $only

// Stress on final ur
figur $2
gravur $2
klausur $2
kultur $4
natur $2
retur $2
tastatur $3
temperatur $4
zensur $2

+ 31
- 79
dictsource/de_rules View File

@@ -1,4 +1,4 @@

// ***************************************************************************
// * Copyright (C) 2006 to 2010 by Jonathan Duddington *
// * email: [email protected] *
@@ -26,14 +26,6 @@

// This file is UTF-8 encoded


// Hours
.L05 0 1 2 3 4 5 6 7 8 9 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23

// Minutes
.L06 0 1 2 3 4 5


.group a
_) a (_ A:
a A
@@ -44,7 +36,7 @@
ae (CC E

a (C% a
a a (CC a
a (CC a
a (sch a
a (x a
a (ph A:
@@ -53,7 +45,6 @@ a a (CC a
ai aI
ay aI
au aU
auer aU3
auh (_ aU

ab (t_ A:p
@@ -85,7 +76,6 @@ auer aU3
_) an (a %an
_) a (natioP1 'A:
_) anath anat
ein) ander 'and3
_) an (der an
_) angli (C aNgli:
_) anglo (@ ,aNglo:
@@ -132,6 +122,8 @@ ein) ander 'and3
g) al (_ 'A:l
k) al (_ 'A:l
n) al (_ 'A:l
&kan) al (_ ,A:l
&sign) al (_ ,A:l
r) al (_ 'A:l
t) al (_ 'A:l
_) aller (@P5 'al@r
@@ -188,6 +180,7 @@ ein) ander 'and3
_) beige (_ be:S
_) beige (@ baIg@
_) be (inhP2 b@
_) beo (b b,@o:

_) ba (lA b%a
_) ba (ll@ b%a
@@ -202,10 +195,7 @@ ein) ander 'and3
_) b (eet b
_) b (enzin b
_) b (erC b
be (ding b@
be (reich b@
be (recht b@
be (richt b@
_) b (esen b
_) b (ess b
_) b (esten b
@@ -218,19 +208,16 @@ be (richt b@
baby _^_EN
beten be:t@n
_) bike _^_EN
binde bInd@
_) bis (hP3 b%Is
_) blue _^_EN
board _^_EN
_) boom _^_EN
bo (sh bo:
buchstab bu:xStA:b
_) bundes b'Und@s
bücher by:C3r


.group c
_) c (_ tse:
_) c (_ se:
_) c (L01A k // allow cl cr at start of word
c k
c) c
@@ -271,7 +258,6 @@ bücher by:C3r
ü) chen (_ C@n

chs ks
ei) chs Cz
chance SA~s@
chara (kt k%ara
_) ch (ic S
@@ -304,7 +290,7 @@ ei) chs Cz
soun) d d

_) dabei (P5 dA:'baI
_) dafür (P5 dA:f'y:r
_) dafür (P5 dA:f'yr
_) daher (P5 dA:h'Er
_) dahin (P5 dA:h'In
_) dahinter (P8 dA:h'Int3
@@ -332,7 +318,6 @@ ei) chs Cz
design (_ d%IzaIn
dge (_ _^_EN
_) dia d,i:a
dialogf di:al'o:kf
_) diver d%i:vEr
_) dort (C@P4 d'Ort
drive _^_EN
@@ -366,13 +351,13 @@ dialogf di:al'o:kf

ei aI
eu OY
ey i:
ey (_ aI
ey aI
ey (_ e:

eb (t_ e:p
eg (t_ e:k

een (_ 'e:n
een (_ 'e:n-
ell (_ 'El
ll) e (l e:
&) e (_S1 @
@@ -450,6 +435,7 @@ dialogf di:al'o:kf
_) eil (aP3 'aIl
_) eil (fP3 'aIl
_) ein (@P3 _!'aIn
ein (and _|%aIn
_) eine (r@ aIn@
_) einig aInIg
m) eir (_ aI3
@@ -497,7 +483,7 @@ dialogf di:al'o:kf
@) ett (_ 'Et
eum (_ 'e:Um
@@) eum (_ =e:Um
_) eur (op %OYr
_) eur (op %OY
@) eur (_ 'Y:r
euse (_ 'Y:z@
eusen (_ 'Y:z@n
@@ -517,10 +503,8 @@ dialogf di:al'o:kf
_) farb (l@P4 f'arb
_) farc fars
_) fein (@P4 f'aIn
fenster fEnst@r
_) fertig (C@P6 f'ErtIC
_) fertig (C@P6 f'ErtiC
_) fest (@P4 f'Est
festig fEstIg#
_) flug fl'u:g
foto fo:to:
_) free _^_EN
@@ -530,7 +514,6 @@ festig fEstIg#
_) froh (@P4 fr'o:
_) frohlock fro:l'Ok
_) fung (A fUNg
fügbar fy:kbA:r


.group g
@@ -543,8 +526,8 @@ fügbar fy:kbA:r
g (sA g
gd (_N kt
_) gh (A g
_) g (nA g // allow _gn
B) gn (A gn
_) g (nA g@- // allow _gn
B) gn (A g@-n

i) gt (_ Ct
ei) gt (_ kt
@@ -554,13 +537,10 @@ fügbar fy:kbA:r
_) g (eHC g // hC, lC, mC, nC, rC

massa) g Z
gabe gA:b@
gehr ge:r
@) ght (_ _^_EN
graph grAf
graph (_ gr'A:f
green _^_EN
groß gro:s
guide _^_EN
gue (_ k
_) güte (@P4 g'y:t@
@@ -589,13 +569,11 @@ groß gro:s
general (is ge:n@ral
_) ge (ner gE
_) geo g,e:o:
geo (pf g@_'O
_) ge (orP2 g@
_) ge (org g%e:
ge (rman gE
ge (rät g@
ge (strig gE
gestalt g@Stalt


.group h
@@ -812,10 +790,10 @@ formal) ie =I@
_) leb (C@@P3 'le:p
_) leben (dig le:b'En
_) lehr (C@P4 l'e:r
_) leit laIt
_) leit (@P4 l'aIt
_) lern (@@P4 l'Ern
_) lexi (@ lEksi:
&) lich (_S4 l2IC // [l] means devoice previous consonant
&) lich (_S4 l2IC // [l2] means devoice previous consonant
&) liche (_S5 l2IC@
&) lichem (_S6 l2IC@m
&) lichen (_S6 l2IC@n
@@ -841,11 +819,9 @@ formal) ie =I@
m m
m) m

manager mEnIdZ3r
manager manEdZ3r
_) manch manC // for 'manchen'
marine mA:r'i:n@
maschin maS'i:n
meldung m,EldUN
_) meß (@P3 m'Es
_) menag m%e:nA:Z
_) met (all m%e:t
@@ -875,7 +851,10 @@ meldung m,EldUN
u) ng (i Ng
ng (r Ng
nk Nk
nk (A nk
fu) nk Nk

_) natur (C@P5 nA:t'u:r
_) na (tür n%A:
nce (_ _^_EN
nces (_ _^_EN
@@ -886,12 +865,10 @@ meldung m,EldUN
neglig ne:gli:Z
neglige ne:gli:Z
&) ness (_N _^_EN
new _^_EN
nieder ni:d@r
nk Nk
news _^_EN
nieder ni:d3
nord (L04st n%Ort
nord (west n%Ort
nummer nUm@r

.group o
_) o (_ o:
@@ -931,7 +908,7 @@ nummer nUm@r
@A) o (n_ 'o:
one (_ 'o:n@
onen (_ 'o:n@n
zitr) on 'o:n
zitr) on 'on
@) oo (_ u:
r) oo (m u:
z) oo (m u:
@@ -962,7 +939,6 @@ nummer nUm@r
_) p (tol p

pake (t p%ake:
papier pap'i:r
_) para (@ p,ara
passagie pasaZ'i:
_) peri p,e:ri:
@@ -970,12 +946,10 @@ papier pap'i:r
_) periphe p,e:ri:fe:
_) personen (@P8 pErz'o:n@n
person p%Erzo:n
persön p%ErzY:n
philie f'i:li:
_) photo f,o:to:
_) pro (@ %pro:
_) probe pro:b@
prüf pry:f

po (em p%o:
po (et p%o:
@@ -1015,7 +989,6 @@ prüf pry:f

rangier rA:NZ'i:r
_) re (d re:
register re:g'Ist@r
ressourc rEs'Urs
revers r%e:vErs

@@ -1038,7 +1011,6 @@ register re:g'Ist@r
_) sch (mA S
_) sch (nA S
_) sch (w S
ssch sS
_) sh (A S
_) sh (rA S
_) s (kA s // allow _sk
@@ -1054,14 +1026,11 @@ ssch sS
_) s (quA s
_) s (tA S
_) s (trA S
strich StrIC
_) s (ve s
_) s (wA s
_) s (zA s

sch S
seg (n ze:g
_) software(@P s'OftwE:r
sh (K S
sou (nd saU
p) s (a s
@@ -1091,12 +1060,10 @@ seg (n ze:g
ste (ll StE
a) ste (ll stE
st (ah St
st (art St
st (ä St
st (eh St
st (ö St
st (ü St
st (uf St
st (uh St
st (ung st

@@ -1115,7 +1082,6 @@ st (uf St
täu) schen S@n

schein (lich S'aIn
schreibung Sr,aIbUN
_) schul (@P5 S'u:l
_) schul (d S'Ul

@@ -1125,7 +1091,6 @@ schreibung Sr,aIbUN
_) selbst (@@P6 z'Elpst
service (_S7 z%Ervi:s
shop _^_EN
signal zIgn'A:l
_) sky _^_EN
soldat z%OldA:t
&) so (rt_ s_|O
@@ -1191,16 +1156,14 @@ signal zIgn'A:l
_) teen _^_EN
_) tele (@ t,e:le:
_) thermo tErmo:
these t'e:z@
sprachsyn) these t,e:z@
tuerei (_ tu:@r'aI
thrill _^_EN
_pa) th t
the (era te:
_) tief (@P4 t'i:f
@) tient (_ tsj'Ent
@) tion tsj,o:n
@) tion (_ tsj'o:n
@) tient (_ tsI'Ent
@) tion tsI,o:n
@) tion (_ tsI'o:n
_) trail _^_EN
_) tranqu _^_EN
traver tr%avEr
@@ -1227,7 +1190,7 @@ sprachsyn) these t,e:z@
ug (t_ u:k

_) ueber (@P5 _|,y:b3
_) um (@P2 'Um
_) um (@P2 Um
_) umbe (@P4 'Umb@
_) umge (@P4 'Umg@
_) umge (b Umg'e:
@@ -1305,7 +1268,6 @@ sprachsyn) these t,e:z@
_) vehe ve:he:
velv (er vElv
_) ver (@P3 f%Er
vergeb fErg'e:b
v (er f
_A) v (er v
a) v (er v
@@ -1343,7 +1305,7 @@ vergeb fErg'e:b
_) voll (ko f%Ol
_) voll (stre f%Ol
_) voll (z f%Ol
vorder fOrd@r
vorder fOrd3
-) vorha (nd fo:rh'a
_) vor (ne 'fo:r
_) vor (n fOr
@@ -1353,8 +1315,7 @@ vergeb fErg'e:b
_) voraus (P6 fo:r'aUs
_) vorbei (P6 fo:r'baI
_) vorher (P6 fo:rh'e:r
vorhersag fo:rh,e:rz,A:g
_) vorüber (P7 fo:r'y:b3
_) vorüber (P7 fo:r'yb3


.group w
@@ -1372,9 +1333,7 @@ vorhersag fo:rh,e:rz,A:g
_) weg (C@P3 v'e:k
_) weit (C@P4 v'aIt
_) weiter (@P6 v'aIt@r
weiterung vaIt@rUN
_) weither vaIthe:r
wetter vEt3
_) wieder (@P6 vi:d3
_) wo (hin v%o:
_) wovor vo:f'o:r
@@ -1413,7 +1372,6 @@ wetter vEt3
ziell tsj'El
_) zie (ge@P3 ts'i:
_) zeit (@P4 ts'aIt
zeitung tsaItUN
_) ziel (@P4 ts'i:l
_) zier (@P4 ts'i:r
_) zigaretten (@P10 tsi:gar'Et@n
@@ -1426,7 +1384,6 @@ zeitung tsaItUN
_) zu (nC tsU
_) zurück (@P6 tsu:r'yk
_) zusammen (@P8 tsu:z'am@n
zwinkern tsvINk3n
_) zyklo (@P5 ,tsy:klo:
zylin ts%i:lIn

@@ -1471,7 +1428,6 @@ zwinkern tsvINk3n
_) über (@P4 _|,y:b3
_) über (be@P4 _!'y:b3
_) über (gangs y:b3
übrig y:brIg#


.group ß
@@ -1486,7 +1442,7 @@ zwinkern tsvINk3n
æ E
ø W
ç s
? tS
č tS
š S
ž Z

@@ -1497,7 +1453,3 @@ zwinkern tsvINk3n
D_) - (_D StrIC
_) - (_D _


// symbols that are normally spoken when reading text
_L05_) : (_L06D_ %u:r // Say time


+ 130
- 196
phsource/ph_german View File

@@ -1,4 +1,4 @@


//=========================================================
// German
@@ -9,148 +9,34 @@
phoneme @ // Schwa
vwl starttype #@ endtype #@
unstressed
length 80
length 120
IF nextPh(r) THEN
IF next2Ph(isVowel) THEN
ELSE
ChangePhoneme(3)
ENDIF
ENDIF
IF nextPh(n) THEN
length 15
ENDIF
FMT(vowel/@_4)
endphoneme


phoneme A~
vwl starttype #a endtype #a
length 260
FMT(vnasal/aa_n4)
endphoneme


phoneme l2 // as [l] but devoice previous phoneme
liquid lengthmod 7
ChangePhoneme (l)
endphoneme


phoneme b
vcd blb stp
voicingswitch p
IF nextPh(l2) THEN
ChangePhoneme(p)
ENDIF
CALL base1/b
endphoneme


phoneme d
vcd alv stp
voicingswitch t
IF nextPh(l2) THEN
ChangePhoneme(t)
ENDIF
lengthmod 5
Vowelin f1=1 f2=1700 -300 300 f3=-100 80
Vowelout f1=2 f2=1700 -300 300 f3=-100 80 brk

IF PreVoicing THEN
FMT(d/xd)
ENDIF

IF nextPh(isPause2) THEN
FMT(d/d_) addWav(x/d_)
ELIF nextPh(r) THEN
FMT(d/dr) addWav(x/d)
ENDIF

FMT(d/d) addWav(x/d)
endphoneme

phoneme g
vcd vel stp
voicingswitch k
IF nextPh(l2) THEN
ChangePhoneme(k)
ENDIF
CALL base1/g
endphoneme


phoneme k
vls vel stp
voicingswitch g
lengthmod 2
Vowelin f1=0 f2=2300 200 300 f3=-200 80
Vowelout f1=0 f2=2300 300 400 f3=-200 80 rms=20

IF KlattSynth THEN
Vowelout f1=0 f2=2300 200 300 f3=-200 80 rms=20
ENDIF

IF nextPh(isPause2) THEN
WAV(ustop/k_)
ELIF nextPh(r) OR nextPh(R) OR nextPh(R2) THEN
WAV(ustop/k_)
ELIF nextPh(i:) OR nextPh(;) THEN
WAV(ustop/ki)
ELIF nextPh(l) THEN
WAV(ustop/kl)
ELIF nextPh(@-) THEN
WAV(ustop/k_unasp, 70)
ENDIF
WAV(ustop/k)
endphoneme


phoneme p
vls blb stp
voicingswitch b
lengthmod 2
Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 amp=11
Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=22

IF nextPh(isPause2) THEN
WAV(ustop/p_)
ELIF nextPh(r) THEN
WAV(ustop/p)
ELIF nextPh(@-) THEN
WAV(ustop/p_unasp)
ELIF nextPh(l) THEN
WAV(ustop/pl)
ENDIF
WAV(ustop/p)
endphoneme


phoneme 3 // Schwa+r
vwl starttype #a endtype #a
unstressed flag1
length 140
IF thisPh(isWordEnd) THEN
FMT(vowel/V_3)
ELSE
FMT(vowel/V_3)
ENDIF
endphoneme

phoneme 3: // Schwa+r
vwl starttype #a endtype #a
phoneme 3 // open Schwa+r
vwl starttype #@ endtype #@
unstressed flag1
length 220
IF thisPh(isWordEnd) THEN
FMT(vowel/V_3)
ELSE
FMT(vowel/a#_3)
length 160
IF thisPh(isFinalVowel) THEN
length 210
ENDIF
FMT(vowel/a#_3) // in eSpeak 1.44, this used vowel/V_3 at end-of-word
endphoneme


phoneme a
vwl starttype #a endtype #a
length 110
IF nextPh(isRhotic) THEN
length 125
ENDIF
FMT(vowel/a)
endphoneme

@@ -158,6 +44,9 @@ endphoneme
phoneme E
vwl starttype #e endtype #e
length 120
IF nextPh(*) THEN
length 135
ENDIF
FMT(vowel/e_mid2)
endphoneme

@@ -166,6 +55,9 @@ phoneme E2 // as[E] but reduces to @ if unstressed
vwl starttype #e endtype #e
length 120
ChangeIfDiminished(@)
IF nextPh(*) THEN
length 135
ENDIF
FMT(vowel/e_mid2)
endphoneme

@@ -173,6 +65,9 @@ endphoneme
phoneme I
vwl starttype #i endtype #i
length 120
IF nextPh(*) THEN
length 135
ENDIF
IfNextVowelAppend(;)
FMT(vowel/ii)
endphoneme
@@ -185,18 +80,12 @@ phoneme I:
endphoneme


phoneme iR // TEST "vier" = [f'iR] not successful
vwl starttype #i endtype #@
ipa i?
flag1
length 240
FMT(vdiph2/i@_3)
endphoneme


phoneme O
vwl starttype #o endtype #o
length 120
IF nextPh(*) THEN
length 135
ENDIF
FMT(vowel/oo)
endphoneme

@@ -204,11 +93,12 @@ endphoneme
phoneme U
vwl starttype #u endtype #u
length 120
IF nextPh(r) THEN
IF next2Ph(isVowel) THEN
ELSE
ChangePhoneme(UR)
ENDIF
IF nextPh(*) THEN
length 135
ENDIF

IF nextPh(r) AND next2Ph(isNotVowel) THEN
ChangePhoneme(UR)
ENDIF
FMT(vowel/uu_2)
endphoneme
@@ -235,6 +125,10 @@ phoneme i:
IF prevPh(w) THEN
VowelStart(w/wi2)
ENDIF
// IF nextPh(r) AND next2Ph(isNotVowel) THEN
// ChangePhoneme(iR)
// ENDIF
FMT(vowel/i_2)
endphoneme

@@ -272,15 +166,17 @@ endphoneme


phoneme EI
import_phoneme en-us/eI
vwl starttype #e endtype #i
length 210
FMT(vdiph/eei)
endphoneme



phoneme OY
vwl starttype #o endtype #e
vwl starttype #o endtype #i
length 220
FMT(vwl_de/eu)
FMT(vdiph/oi)
endphoneme


@@ -313,23 +209,29 @@ endphoneme


phoneme y
vwl starttype #@ endtype #u
ipa ?
vwl starttype #u endtype #u
ipa ʏ
length 110
FMT(vwl_de/ue_short)
IF nextPh(*) THEN
length 115
ENDIF
FMT(vowel/yy_4)
endphoneme


phoneme Y:
vwl starttype #@ endtype #u
length 220
FMT(vwl_de/y#)
vwl starttype #@ endtype #@
length 180
FMT(vowel/y#)
endphoneme


phoneme W
vwl starttype #@ endtype #@
length 150
IF nextPh(*) THEN
length 160
ENDIF
FMT(vowel/oe)
endphoneme

@@ -338,9 +240,8 @@ endphoneme
// CONSONANTS
//===========


phoneme t
vls alv stp
vls alv stp
voicingswitch d
lengthmod 2
Vowelin f1=0 f2=1700 -300 300 f3=-100 80
@@ -357,13 +258,14 @@ phoneme t
endphoneme



phoneme ts
import_phoneme consonants/ts
endphoneme


phoneme pF
vls blb afr
vls bld afr
ipa pf
Vowelout f1=0 f2=1000 -500 -350 f3=-200 80
lengthmod 2
@@ -422,7 +324,7 @@ phoneme j
VowelEnding(j/xj, -30)

IF prevPh(isPause) THEN
FMT(j/_j_short) // difference from base/j
FMT(j/_j_short) // difference from base1/j
ENDIF
ELSE
// no vowel follows
@@ -432,77 +334,109 @@ phoneme j
endphoneme


phoneme r
liquid uvl
ipa ʀ
phoneme r // note, following consonant must be 'ustop/t_' not 'ustop/tr' etc.
liquid alv rhotic
lengthmod 6
length 110
IF nextPhW(isVowel) THEN
FMT(r3/r_uvl) addWav(r3/r_uvl.wav, 50)

IF prevPhW(@-) THEN
ELSE
IF prevPh(isFlag1) THEN
IF nextPhW(isVowel) THEN
IF prevPhW(isVowel) THEN
ChangePhoneme(R)
ELSE
IF prevPhW(t) THEN
PauseBefore 30
ELSEIF prevPhW(d) OR prevPhW(b) OR prevPhW(g) OR prevPhW(k) OR prevPhW(p) THEN
PauseBefore 15
ELSE
InsertPhoneme(@-)
ENDIF
ENDIF
ENDIF
ENDIF

IF prevPh(isFlag1) THEN
ChangePhoneme(NULL) // 'r' is already included in the previous vowel
ELSE
ChangePhoneme(V#)
ENDIF
ENDIF

CALL base1/*
endphoneme


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) THEN
FMT(r/V_2_)
ENDIF
IF prevPh(e:) OR prevPh (Y:) THEN
FMT(vowel/V_3)
ENDIF
IF prevPh(E) THEN
FMT(r/V_2_)
ENDIF
IF prevPh(#u) THEN
FMT(r/@_)
ENDIF
FMT(r/V_)
phoneme iR // TEST "vier" = [f'iR] not successful
vwl starttype #i endtype #@
ipa iɐ
flag1
length 240
FMT(vdiph2/i@_3)
endphoneme


phoneme UR
vwl starttype #u endtype #@
ipa ??
ipa ʊɐ
flag1
length 180
FMT(vwl_de/uu_@)
endphoneme


phoneme r2
vcd alv flp

IF prevPhW(isVowel) THEN
ChangePhoneme(*)
ENDIF

InsertPhoneme(@-)
ChangePhoneme(*)
phoneme oU // for English words
import_phoneme en-us/oU
endphoneme

phoneme A~
vwl starttype #a endtype #a
length 260
FMT(vnasal/aa_n4)
endphoneme


phoneme oU // for English words
import_phoneme en-us/oU
phoneme l2 // as [l] but devoice previous phoneme
liquid lengthmod 7
ChangePhoneme (l)
endphoneme

phoneme b
vcd alv frc sib
voicingswitch p
IF nextPh(l2) THEN
ChangePhoneme(p)
ENDIF
CALL base1/b
endphoneme

phoneme W~
vwl starttype #@ endtype #@
length 200
FMT(vnasal/W_n)
phoneme d
vcd alv stp
voicingswitch t
IF nextPh(l2) THEN
ChangePhoneme(t)
ENDIF
lengthmod 5
Vowelin f1=1 f2=1700 -300 300 f3=-100 80
Vowelout f1=2 f2=1700 -300 300 f3=-100 80 brk

IF PreVoicing THEN
FMT(d/xd)
ENDIF

IF nextPh(isPause2) THEN
FMT(d/d_) addWav(x/d_)
ELIF nextPh(r) THEN
FMT(d/dr) addWav(x/d)
ENDIF

FMT(d/d) addWav(x/d)
endphoneme

phoneme g
vcd vel stp
voicingswitch k
IF nextPh(l2) THEN
ChangePhoneme(k)
ENDIF
CALL base1/g
endphoneme

+ 1
- 1
tests/languages.test View File

@@ -46,7 +46,7 @@ test_lang() {
# 3. copy the correct hash onto the test line;
# 4. re-run the tests to ensure they pass.

test_lang de 7398fed8c160ddd373418753474c907b7937b12e "drucker lampe computer stern sterne"
test_lang de 8f9bd0211a8d0d7a4f78970b8ac8ed7a50242bb0 "drucker lampe computer stern sterne"

test_lang en 13464f360acc31b7d266164245c15b11e2fb6145 "foot strut north force cure thought lot cloth trap bath"
test_lang en-029 7587e73b30806a360d40088d4f00fa158472fbab "foot strut north force cure thought lot cloth trap bath"

Loading…
Cancel
Save