Fix: reset phoneme table if speech is cancelled while switched to a second language. "speak": add -z options (same as for "espeak"). Numbers: Add option to speak "and" before hundreds. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@143 d46cf337-b52f-0410-862d-fd96e6ae7743master
| @@ -72,10 +72,10 @@ aU@ E e@ eI I I2 i: i@ | |||
| i@3 IR O O: o: O@ o@ OI | |||
| oU O~ U u: U@ V VR | |||
| : ; b C d D dZ f | |||
| g h j k l m n N | |||
| p Q r r- s S t T | |||
| t2 tS v w x z Z | |||
| ; b C d D dZ f g | |||
| h j k l m n N p | |||
| Q r r- s S t T t2 | |||
| tS v w x z Z | |||
| Dictionary eo_dict | |||
| @@ -111,9 +111,9 @@ S s2 t v Z | |||
| Dictionary fr_dict | |||
| @ @- a A A~ e E E: | |||
| E~ i i: o O O~ u W | |||
| w^i W~ y Y | |||
| @ @- a A A~ e E E~ | |||
| i i: o O O~ u W w^i | |||
| W~ y Y | |||
| * : ; b c d D dZ | |||
| f g h j k l L m | |||
| @@ -401,3 +401,14 @@ u# W y Y | |||
| j k l m n p Q r | |||
| R s S t tS v w z | |||
| Z | |||
| Dictionary ku_dict | |||
| a e E eI i I o u | |||
| U y | |||
| : b d dZ f g h j | |||
| k l m n p q r R | |||
| s S t tS v w x z | |||
| Z | |||
| @@ -67,7 +67,7 @@ _& amp@sand | |||
| _' praIm | |||
| _( ElbrakIt | |||
| _) A@brakIt | |||
| _* ast@rIsk: | |||
| _* ast@rIsk | |||
| _+ plVs | |||
| _, k0m@ | |||
| _- h,aIf@n | |||
| @@ -313,7 +313,7 @@ ague eIgju: | |||
| aha a2hA: | |||
| ahem a2h'@m | |||
| ahoy a2hOI | |||
| airbus e@:bVs | |||
| airbus e@bVs | |||
| airpower 'e@p,aU@ | |||
| aisle aI@l | |||
| ajar a2dZA@ | |||
| @@ -2218,7 +2218,6 @@ Emma Em@ | |||
| Evan Ev@n | |||
| Gary garI2 | |||
| Geraint gEraInt | |||
| Gilbert gIlb3t | |||
| Giles gaIlz | |||
| Glynn glIn | |||
| Graeme greI@m | |||
| @@ -2372,6 +2372,7 @@ | |||
| g (i dZ | |||
| gi (_ gI2 | |||
| _) g (il g | |||
| g (ilC g | |||
| l) ging dZI2N | |||
| g (y dZ | |||
| _) g (n | |||
| @@ -5,7 +5,7 @@ | |||
| // 2006-11-18 Gilles Casse <[email protected]> | |||
| // | |||
| // Updated 2008-02-11 Michel Such <[email protected]> | |||
| // Updated 2008-02-14 Michel Such <[email protected]> | |||
| // | |||
| // * Numbers, a few abbreviations and exceptions. | |||
| // | |||
| @@ -421,7 +421,6 @@ adéquat adekuat2 | |||
| adéquate adekuat | |||
| airbus Erbys | |||
| anus anys | |||
| any Eni | |||
| ardent aRdA~ | |||
| bissus bisys | |||
| bonus bonys | |||
| @@ -433,20 +432,18 @@ choeur k@r | |||
| cocus coky | |||
| discident disidA~ | |||
| estomac Estoma | |||
| eye aj | |||
| eyes ajz | |||
| fils fis | |||
| imprudent E~pRydA~ | |||
| iris iris | |||
| juin ZyE~ | |||
| malus malys | |||
| many mEni | |||
| mars maRs | |||
| minus minys | |||
| occident OksidA~ | |||
| orient ORjA~ | |||
| pays pEi | |||
| phallus falys | |||
| polder pOldEr | |||
| prudent pRydA~ | |||
| secret sYkRE | |||
| souris suri | |||
| @@ -475,13 +472,13 @@ processus pROsEsys | |||
| août ut | |||
| azimut azim'yt | |||
| brut bR'yt | |||
| bouse buz | |||
| but by $verb | |||
| but byt | |||
| club kl@b | |||
| (le pub) l@||p'@b | |||
| (un pub) W~||p'@b | |||
| (du pub) dy||p'@b | |||
| connecticut kOnEktikyt | |||
| cut cWt | |||
| helmut Elmut | |||
| hub _|@b | |||
| @@ -499,19 +496,15 @@ zut zyt | |||
| // et (t is said) | |||
| bridget bRidZEt | |||
| exocet EgzOsEt | |||
| fret fR'Et | |||
| gadget gadZEt | |||
| budget bydZE | |||
| hamlet amlEt | |||
| jacket ZakEt | |||
| knesset knEsEt | |||
| lazaret lazaREt | |||
| margaret maRgaREt | |||
| net nEt | |||
| offset OfsEt | |||
| pickpocket pikpOkEt | |||
| racket RakEt | |||
| set sEt | |||
| soviet sOvjEt | |||
| @@ -525,7 +518,6 @@ yogourt yoguRt | |||
| short SORt | |||
| // art (t said) | |||
| stewart stiwaRt | |||
| steward stiwaRt | |||
| stuttgart StutgaRt | |||
| hart aRt | |||
| @@ -539,95 +531,103 @@ flirt fl@Rt | |||
| // words from other languages | |||
| about @bawt | |||
| about _^_en | |||
| acer asEr | |||
| again _^_en | |||
| against _^_en | |||
| alone _^_en | |||
| also _^_en | |||
| and _^_en | |||
| amazon amaz'On | |||
| (audible manager) od'ibl||manadZ'@r | |||
| be bi | |||
| being biiN | |||
| by baj | |||
| any Eni | |||
| apple _^_en | |||
| at _^_en | |||
| (audible manager) odibl||manadZ@r | |||
| be _^_en | |||
| being _^_en | |||
| bluetooth blut'us | |||
| byte bajt | |||
| bytes bajts | |||
| both _^_en | |||
| browser _^_en | |||
| can _^_en | |||
| computer _^_en | |||
| (cyber link) sibEr||link | |||
| debian dEbjAn | |||
| driver drajv@rz2 | |||
| download dOnlod | |||
| does _^_en | |||
| doesn't _^_en | |||
| don't _^_en | |||
| driver _^_en | |||
| edit edit | |||
| emacs Emaks | |||
| emacspeak Emakspi:k | |||
| end _^_en | |||
| enter 'Ent@r | |||
| epson EpsOn | |||
| espeak @spi:k | |||
| ethernet etERnEt | |||
| exit egzit | |||
| (file zilla) fajl@-||zija | |||
| eye _^_en | |||
| eyes _^_en | |||
| (file zilla) fajl||zija | |||
| fire _^_en | |||
| firefox faj@RfOks | |||
| (fire wire) faj@R||wajr | |||
| firewire faj@Rwajr | |||
| google gu:g'@l | |||
| girl g@Rl | |||
| get _^_en | |||
| google gu:g@l | |||
| gnome gnom | |||
| gnu gnu | |||
| hamburger _!A~b@rg@r | |||
| has _!az $u | |||
| his _!iz $u | |||
| inside insajd | |||
| insight insajt | |||
| help _^_en | |||
| in _^_en | |||
| into _^_en | |||
| inside _^_en | |||
| insight _^_en | |||
| internet E~tERnEt | |||
| (internet explorer) E~tErn'Et||EksplOr'@r | |||
| is iz | |||
| it it | |||
| its its | |||
| is _^_en | |||
| it _^_en | |||
| its _^_en | |||
| klaxon klaksOn | |||
| leader li:d@R | |||
| let lEt | |||
| layer _^_en | |||
| let _^_en | |||
| liszt list | |||
| lite lajt | |||
| lite _^_en | |||
| logon _^_en | |||
| (mac os x) makoEsiks | |||
| mail mE:jl | |||
| maker mE:jk@r | |||
| made _^_en | |||
| mail _^_en | |||
| media medja | |||
| messenger mesEnZ'@r | |||
| movy mu:v'i | |||
| my maj | |||
| name nejm | |||
| not nOt | |||
| messenger _^_en | |||
| my _^_en | |||
| name _^_en | |||
| not _^_en | |||
| of _^_en | |||
| often _^_en | |||
| ok oke | |||
| open Op'@n | |||
| outlook autluk | |||
| outside autsajd | |||
| outsider autsajd@r | |||
| player plEj'@r | |||
| quick kwik | |||
| outside _^_en | |||
| outsider _^_en | |||
| player _^_en | |||
| redhat REdat | |||
| release rili:z | |||
| same sejm | |||
| same _^_en | |||
| sametime _^_en | |||
| schubert SubER | |||
| screamer skri:m@r | |||
| (search & destroy) s@:rS_||end_||dEsstrOj | |||
| skype sk'ajp@- | |||
| spybot spajbOt | |||
| sun s@n | |||
| sunlight s@nlajt | |||
| since _^_en | |||
| sun _^_en | |||
| (text aloud) tEkst||@lawd | |||
| than Dan | |||
| the D@ $u | |||
| them DEm $u | |||
| then DEn $u | |||
| there DEr $u | |||
| they DE $u | |||
| thunderbird f@ndERb@Rd | |||
| time tajm | |||
| timer tajm@r | |||
| their _^_en | |||
| there _^_en | |||
| these _^_en | |||
| those _^_en | |||
| they _^_en | |||
| thus _^_en | |||
| thunderbird D'@ndYR||b@Rd | |||
| time _^_en | |||
| timer _^_en | |||
| ubuntu ubuntu | |||
| update @pd'E:jt | |||
| upload @plod | |||
| very vEri | |||
| viavoice viavOjs | |||
| was waz $u | |||
| window windo | |||
| windows windoz | |||
| word wWRd | |||
| writer rajt@r | |||
| up _^_en | |||
| viking vikiN | |||
| was _^_en | |||
| won't _^_en | |||
| yacht jot | |||
| yes jEs $brk | |||
| @@ -1,12 +1,13 @@ | |||
| // French translation rules | |||
| // This file is UTF-8 encoded | |||
| // 2006-11-18 Gilles Casse <[email protected]> | |||
| // | |||
| // Updated: 2008-02-11 Michel Such <[email protected]> | |||
| // Updated: 2008-02-14 Michel Such <[email protected]> | |||
| // | |||
| // * The rules are based on Cicero TTS. | |||
| // | |||
| // Y | |||
| // Letter classes: | |||
| // A all vowels: a e i o u y â ä é ê è î ï ô ö ù û | |||
| @@ -28,8 +29,6 @@ | |||
| a (il_ a | |||
| aie (me E // paiement | |||
| ai E // aile | |||
| a (lk O // talk | |||
| a (ll_ O // football handball | |||
| am (b A~ // jambon | |||
| am (p A~ // camp | |||
| am (m a // programmation | |||
| @@ -50,12 +49,32 @@ | |||
| ay Ej // paye | |||
| a a // bateau | |||
| // group a: English section | |||
| _C) ad (_ _^_en // bad, had, sad | |||
| alk _^_en // talk, walk | |||
| all (_ _^_en // football handball | |||
| f) all (en_ _^_en // fallen | |||
| sm) all _^_en // small, smaller | |||
| ally (_ _^_en // really, naturally | |||
| a (wC _^_en | |||
| .group b | |||
| bb b // abbé | |||
| om) b (_ // plomb applomb | |||
| b b // aube | |||
| // group b: English section | |||
| bird _^_en // bird | |||
| bly (_ _^_en // probably | |||
| board _^_en // board, keyboard | |||
| box (_ _^_en // box, inbox, outbox | |||
| bug (_ _^_en // bug, debug | |||
| bug (g _^_en // debugger | |||
| buil _^_en // build, built | |||
| _) buy _^_en | |||
| _) by _^_en // by, bye, bypass | |||
| .group c | |||
| c' s // s | |||
| @@ -98,6 +117,12 @@ | |||
| cien (t_ i // ils appr�ient, remercient. | |||
| i) cien (t_ sjA~ // coefficient | |||
| // group c: English section | |||
| cast (_ _^_en // broadcast | |||
| calt (_ _^_en // difficult | |||
| cut (_ _^_en // cut, shortcut | |||
| cy (_ _^_en // currency, frequency | |||
| .group d | |||
| dd d // addition | |||
| @@ -108,8 +133,6 @@ | |||
| Csan) d (_ d | |||
| _tan) d (_ d // stand | |||
| Ctan) d (_ d | |||
| for) d (_ d | |||
| lor) d (_ d | |||
| Can) d (_ t2 // grand ami, grand marchand | |||
| Cen) d (_ t2 | |||
| @@ -124,29 +147,25 @@ | |||
| r) d (_ // lourd placard | |||
| d d // don bled | |||
| // group d: English section | |||
| ') d (_ _^_en | |||
| lor) d (_ _^_en | |||
| day (_ _^_en | |||
| dle (X _^_en // bundle, handle | |||
| dly (_ _^_en | |||
| dy (_ _^_en | |||
| .group e | |||
| e (Ce_ E | |||
| eau o // bateau cheveaux | |||
| C) ea (d i: // read | |||
| Cr) ea (m i: // stream | |||
| Cl) ea (n i: // clean | |||
| C) ea (Cer i: // reader, cleaner | |||
| g) ea (s_ a // mangeas | |||
| j) e (a // Jean Jeanne | |||
| sp) ea (k i: // speak speaker | |||
| p) ect (_ E // suspect | |||
| ect (_ Ekt // direct | |||
| _trépi) ed e | |||
| _pi) ed e // pied | |||
| ee i: // meeting | |||
| _cl) ef (_ e // clef | |||
| Ck) e (r_ @ // worker, talker | |||
| _Cett) e (r_ @ // letter, better | |||
| eaC) e (r_ @ // speaker, streamer | |||
| gh) e (r_ @ // higher | |||
| ght) e (r_ @ // fighter, lighter | |||
| ooC) e (r_ @ // scooter | |||
| _ov) e (r @ // over | |||
| ein (C E~ // peindre | |||
| ein (_ E~ | |||
| e (il E // vieille | |||
| @@ -244,10 +263,6 @@ | |||
| _trav) er (_ ER | |||
| _ti) er (_ ER | |||
| th) er (_ @R // brother | |||
| th) er (s_ @R | |||
| w) er (_ @R // power | |||
| w) er (s_ @R | |||
| er (_ e // parler léger | |||
| er (s_ e | |||
| @@ -283,6 +298,7 @@ | |||
| @Cr) es (_C @- | |||
| rC) es (_C @- // fortes dames | |||
| dg) et (_ Et // Bridget, gadget | |||
| ') eu (_ y // eu | |||
| eu (r_ @ // peur | |||
| @@ -301,12 +317,6 @@ | |||
| _) eû y // eût | |||
| eû Y // jeûne | |||
| ew (_ ju // new | |||
| ews juz // news, newsreader | |||
| r) ew (_ u // crew | |||
| r) ews uz | |||
| i) ew (_ u // view | |||
| i) ews uz | |||
| e (x E // exact | |||
| ey (_ e // dahomey | |||
| ey (C e // ceylan | |||
| @@ -367,6 +377,33 @@ | |||
| e @ // menue | |||
| // group e: English section | |||
| C) ead _^_en // read, head | |||
| eaf _^_en // leaf | |||
| eak _^_en // break, speak | |||
| Cr) eam _^_en // stream | |||
| Cl) ean _^_en // clean | |||
| l) ean _^_en // lean | |||
| m) ean _^_en // mean | |||
| ear _^_en // ear, search | |||
| eas _^_en // please | |||
| eat _^_en // eat, seat | |||
| ed (_ _^_en | |||
| ee _^_en // meeting | |||
| eave _^_en // leave | |||
| eft (_ _^_en // left | |||
| eive _^_en // receive | |||
| eith _^_en // either neither | |||
| ely (_ _^_en // lately | |||
| ooC) er (_ _^_en // scooter | |||
| _ov) er _^_en // over | |||
| _C) etter (_ _^_en // letter, better | |||
| ack) et (_ _^_en // racket, packet | |||
| ock) et (_ _^_en // rocket, pocket | |||
| ery (_ _^_en // query | |||
| qu) est (_ _^_en // request | |||
| qu) este (X_ _^_en // requested, requester | |||
| .group ë | |||
| u) ë // ambiguë | |||
| @@ -379,6 +416,17 @@ | |||
| _neu) f (_ans v // liaison: neuf ans | |||
| _neu) f (_heures v | |||
| // group f: English section | |||
| fail (_ _^_en // fail | |||
| fail (A _^_en // failure | |||
| faith _^_en // failure | |||
| fly _^_en | |||
| ford (_ _^_en | |||
| friend _^_en // friend, friendly | |||
| full (_ _^_en | |||
| fully (_ _^_en | |||
| fy (_ _^_en | |||
| .group g | |||
| g g | |||
| @@ -421,6 +469,13 @@ | |||
| g (_ g // grog gag goulag | |||
| g Z // congé george | |||
| // group g: English section | |||
| gh _^_en // high, higher | |||
| girl _^_en // girl | |||
| gly (_ _^_en | |||
| give (X _^_en | |||
| gy (_ _^_en | |||
| .group h | |||
| _) h (ac _! // hache | |||
| @@ -467,7 +522,6 @@ _) h (ic _! // hic | |||
| _) h (ide _! // hideux | |||
| _) h (iér _! // hiéroglyphe | |||
| _) h (i-fi _! // hi-fi | |||
| _) h (igh _! // highlandais | |||
| _) h (i-han _! // hi-han | |||
| _) h (iss _! // hisser | |||
| _) h (it _! // hit, hit-parad | |||
| @@ -503,6 +557,11 @@ _) h (umi // humide | |||
| _) h (umo // humour | |||
| h // ahuri | |||
| // group h: English section | |||
| _) half _^_en | |||
| _) h (As_ _^_en // has, his | |||
| here (_ _^_en // here | |||
| .group i | |||
| i i // cri | |||
| @@ -511,9 +570,6 @@ _) h (umo // humour | |||
| i (es_ i // parties | |||
| i (e_ i | |||
| i (A j // fermier portier patio renier | |||
| ig (h aj // right, fight, light | |||
| wh) ile ajll // while, endwhile | |||
| wr) i (tA aj // write | |||
| _) ill ill // illégal | |||
| _m) ill il // mille | |||
| v) ill il // village | |||
| @@ -527,18 +583,26 @@ _) h (umo // humour | |||
| imm imm // immaculé | |||
| im (_ im // karim | |||
| im (C E~ // timbre | |||
| ing (_ iN // parking | |||
| in (h in // inhumain | |||
| inct (_ E~ // distinct | |||
| ind (_ ajnd // find, mind | |||
| ind (ing_ ajnd // find, mind | |||
| ink ink // link, pink | |||
| in (n i // innombrable | |||
| in (C E~ // vingt | |||
| // in (_ E~ // vin | |||
| in (_ W~ // vin | |||
| ique (_ ik | |||
| // group i: English section | |||
| ike (X _^_en // bike, like | |||
| ill (_ _^_en // ill, will, fill | |||
| C) illy (_ _^_en // silly | |||
| ing (_ _^_en // parking | |||
| ind (_ _^_en // find, mind | |||
| ind (er_ _^_en // finder, reminder | |||
| ink _^_en // link, pink | |||
| ious (_ _^_en // various | |||
| iously (_ _^_en // previously | |||
| ism (_ _^_en // tourism | |||
| ize _^_en // realize | |||
| .group î | |||
| î i // abîme | |||
| @@ -560,10 +624,12 @@ _) h (umo // humour | |||
| .group k | |||
| k k // kafka | |||
| ket (_ kEt // basket | |||
| kets (_ kEt // basket | |||
| // group k: English section | |||
| ke (X _^_en // basket, make, take | |||
| ky (_ _^_en | |||
| .group l | |||
| l l // lit | |||
| ll l // aller | |||
| @@ -572,11 +638,22 @@ _) h (umo // humour | |||
| outi) l (_ // outil | |||
| ui) ll j // juillet | |||
| // group l: English section | |||
| ') ld (_ _^_en | |||
| ') ll (_ _^_en | |||
| less (_ _^_en // noiseless | |||
| lessly (_ _^_en // endlessly | |||
| .group m | |||
| m m // film | |||
| mm m // pomme | |||
| // group m: English section | |||
| mail (A _^_en // mailer | |||
| may _^_en | |||
| mov (A _^_en // move, movy | |||
| .group n | |||
| n n // une | |||
| @@ -588,6 +665,10 @@ _) h (umo // humour | |||
| A) ng (_ N // parking meeting | |||
| nn n // panne | |||
| // group n: English section | |||
| n't (_ _^_en | |||
| ny (_ _^_en | |||
| .group o | |||
| cr) oc (_ o // escroc | |||
| @@ -635,11 +716,8 @@ p) oing (_ wE~ // poing | |||
| r) o (ne_ o | |||
| alc) oo (l O // alcool | |||
| oo (Ce u // boomer | |||
| C) oot ut // bootable football | |||
| z) oo o // zoo | |||
| z) oo (l oo // zoologue | |||
| z) oo (ph oo // zoophile | |||
| z) oo (C oo // zoologue | |||
| z) oo (m u // zoom | |||
| oo (X u // pool | |||
| _gal) op (_ o // galop | |||
| @@ -650,7 +728,6 @@ p) oing (_ wE~ // poing | |||
| v) ost (_ o // Prévost | |||
| o (sA o // poser | |||
| ot (_ o // mot dépots | |||
| C) ou (nd aw // sound, found | |||
| _C) oup (_ u // coup, loup | |||
| uC) oup (_ up2 // beaucoup | |||
| @@ -660,8 +737,6 @@ p) oing (_ wE~ // poing | |||
| oû u // coûter | |||
| oyes (_ wa // troyes | |||
| oy (A waj // noyer voyelles | |||
| oy (_ Oj // boy, toy | |||
| oys (_ Ojz // boys, toys | |||
| oy wa // roy | |||
| o (_ o // zorro allégro | |||
| o (z_ o // berlioz | |||
| @@ -672,6 +747,20 @@ p) oing (_ wE~ // poing | |||
| o O // sobre notions émotions | |||
| // group o: English section | |||
| C) oad (_ _^_en // load, road | |||
| C) oad (eX _^_en // loaded | |||
| C) oat _^_en // boat | |||
| old (er_ _^_en // folder, older | |||
| oo (Ce _^_en // boomer | |||
| C) oot _^_en // bootable football | |||
| C) ou (ld_ _^_en // could, should | |||
| oun (C _^_en // bounce, found | |||
| _C) ouse _^_en // mouse, house | |||
| C) outh _^_en // mouth, south | |||
| ow _^_en // cow, town, down | |||
| oy (X _^_en // boy, toy | |||
| .group ô | |||
| ôt (_ o // rôt | |||
| @@ -700,6 +789,16 @@ p) oing (_ wE~ // poing | |||
| se) pt (_ t // sept | |||
| se) pt (iè t // septième | |||
| // group p: English section | |||
| plug _^_en // plug | |||
| ply (_ _^_en // simply | |||
| print (_ _^_en // print | |||
| printer (_ _^_en // printer | |||
| _) prove (X _^_en // prove | |||
| _AC) prove (X _^_en // improve | |||
| _AC) provem _^_en // improvement | |||
| py (_ _^_en // copy | |||
| .group q | |||
| q k // coq | |||
| @@ -715,15 +814,21 @@ p) oing (_ wE~ // poing | |||
| _) qu' (P3 k // qu'il | |||
| n) q (_ k // cinq cent | |||
| // group q: English section | |||
| quick _^_en // quick, quickly | |||
| .group r | |||
| right rajt // copyright | |||
| _su) rr RR // surréaliste | |||
| cou) rr RR // courrai | |||
| mou) rr RR // mourrai | |||
| rr R // erreur | |||
| r r // rien | |||
| // group r: English section | |||
| _) rule (X _^_en // rule | |||
| ry (_ _^_en // theory | |||
| .group s | |||
| s s // verser sien | |||
| @@ -740,6 +845,7 @@ e) s (_h z2 | |||
| sch S // schéma | |||
| dé) sh (A z // déshabiller | |||
| sh S // shérif | |||
| CA) sh (_ _^_en // punish | |||
| ss s // assez | |||
| ai) s (em s // vraisemblable | |||
| @@ -767,6 +873,7 @@ e) s (_h z2 | |||
| ïu) s (_ s // laïus | |||
| Culu) s (_ s // cumulus | |||
| plu) s (_ z2 // plus, surplus | |||
| ylu) s (_ s // stylus | |||
| mu) s (_ s | |||
| _mu) s (_ | |||
| ému) s (_ | |||
| @@ -795,11 +902,27 @@ e) s (_h z2 | |||
| s (j z | |||
| s (v z | |||
| // group s: English section | |||
| ') s (_ _^_en // possessive | |||
| ship _^_en // friendship | |||
| shop _^_en // shop | |||
| sh (At _^_en // shut, shot | |||
| shout _^_en | |||
| sky _^_en | |||
| _) smil _^_en // smile, smiley | |||
| spy _^_en | |||
| A) ss (_ _^_en // boss, cross | |||
| C) s (ton _^_en // winston | |||
| stone (_ _^_en | |||
| sy (_ _^_en | |||
| .group t | |||
| t t // bataille | |||
| V) t (_ t2 // silent at end of verb unless next word starts with a vowel | |||
| t (_ // silent at end of word | |||
| _) th (onX t // thon | |||
| _) th (ymX t // shym | |||
| ts (_S1 z2 // silent at end of word unless next word starts with a vowel | |||
| C) t (_ t // compost watt soft script malttact abrupt | |||
| Vn) t (_ t2 // silent at end of verb unless next word starts with a vowel | |||
| @@ -813,7 +936,6 @@ C) te (_ t@- // patte | |||
| s) th (m // asthme | |||
| th t // théorie | |||
| sCar) t (_ t // smart, start | |||
| hui) t (_ t // huit | |||
| _) t t // tien tiers | |||
| @@ -856,12 +978,20 @@ C) te (_ t@- // patte | |||
| _ce) t (_ t | |||
| // group t: English section | |||
| _) th (AX _^_en // that, this, then, than | |||
| C) th (_ _^_en // month | |||
| try (_ _^_en // try, country | |||
| sCar) t (_ _^_en // smart, start | |||
| sCar) t (er_ _^_en // starter | |||
| ty (_ _^_en // party, buty | |||
| .group u | |||
| u y // cruel nuage brut | |||
| ui w^i | |||
| _b) usi iz // business, businessman | |||
| _b) usi _^_en // business, businessman | |||
| c) ueill Wj // cueillir | |||
| c) ueil (_ Wj // recueil | |||
| _c) ul (_ y | |||
| @@ -874,25 +1004,55 @@ C) te (_ t@- // patte | |||
| um (b W~ // humble | |||
| um (p W~ | |||
| un (C W~ // emprunt lundi | |||
| C) un (_ W~ // brun | |||
| CC) un (_ W~ // brun | |||
| uc) un (_ W~n2 // aucun | |||
| un (_ W~n2 // un avion | |||
| _f) un @n // fun | |||
| _g) un @n // gun | |||
| _r) un @n // run | |||
| _s) un @n // sun, sunday | |||
| fl) ux (_ y // flux, reflux | |||
| g) u (A // fatigue | |||
| g) u (ï y // ambiguïté | |||
| g) u (ë y // ambiguë | |||
| // group u: English section | |||
| C) u (ch_ _^_en // much such | |||
| C) ui (ce _^_en // produice, juice | |||
| up (C _^_en // upper, update | |||
| under _^_en // under, understand, thunder | |||
| C) ur (ch _^_en // church | |||
| urn (X _^_en // burn, turn | |||
| ust (_ _^_en // just, trust | |||
| rib) u (teX _^_en // tribute, attribute | |||
| .group v | |||
| v v | |||
| // goup v: English section | |||
| ') ve (_ _^_en | |||
| voice (_ _^_en | |||
| void (_ _^_en | |||
| vy (_ _^_en | |||
| .group w | |||
| w w | |||
| wa (Ce_ wE // hardware software wave | |||
| w (agon v // wagon | |||
| w (r // write | |||
| // group w: English section | |||
| A) w _^_en | |||
| wa (Ce_ _^_en // hardware software wave | |||
| wr _^_en // write | |||
| w (ACh _^_en // wash, wish, with | |||
| way _^_en // way, away | |||
| wh _^_en // what, which, who | |||
| _) wi _^_en // winner, window, wire | |||
| wise _^_en | |||
| _) wom _^_en // woman | |||
| wor _^_en // word, world | |||
| .group x | |||
| @@ -202,7 +202,7 @@ language). | |||
| t) u (DnK wu@ | |||
| uo uo | |||
| sh) ui wei | |||
| sh) ui rei | |||
| sh) u (DnK wo- | |||
| sh) uo wo | |||
| @@ -73,6 +73,8 @@ will put the Mbrola speech output into a WAV file. Or you can pipe the output f | |||
| <p> | |||
| The -e option prevents Mbrola from stopping if it finds a combination | |||
| of phonemes which it doesn't recognise. | |||
| <p> | |||
| Some mbrola voices (de5, de6) use a sample rate of 22050 Hz. These need -r22050 rather than -r16000. | |||
| </ol> | |||
| <h3>Mbrola Voice Files</h3> | |||
| @@ -3,5 +3,5 @@ language en | |||
| gender female | |||
| pitch 140 220 | |||
| mbrola de5 de5_phtrans 22050 | |||
| mbrola de5 de6_phtrans 22050 | |||
| @@ -1,4 +1,4 @@ | |||
| 48 phoneme tables | |||
| 49 phoneme tables | |||
| new total | |||
| base 99 99 | |||
| base2 24 118 | |||
| @@ -30,7 +30,7 @@ | |||
| ru 38 129 | |||
| it 17 121 | |||
| la 21 117 | |||
| es 8 119 | |||
| es 9 119 | |||
| es_la 1 119 | |||
| pt 27 134 | |||
| pt_pt 20 134 | |||
| @@ -47,6 +47,7 @@ | |||
| th 50 142 | |||
| id 14 120 | |||
| tr 14 123 | |||
| ku 12 120 | |||
| ja 7 104 | |||
| Data file Used by | |||
| @@ -621,6 +622,7 @@ ufric/x2 [x2] af | |||
| [x2] nl | |||
| [x2] pt | |||
| ufric/x_hr [x] hr | |||
| [x] ku | |||
| ufric/x_sr [h] sr | |||
| [x] sr | |||
| ustop/c [c] base | |||
| @@ -678,7 +680,6 @@ ustop/kr [k] base | |||
| [k] zhy | |||
| [k] sw | |||
| ustop/k_unasp [k] base | |||
| [q] base | |||
| [k] base2 | |||
| [k] fi | |||
| [k] hi | |||
| @@ -738,6 +739,7 @@ ustop/p_unasp_ [p] base2 | |||
| [p] sk | |||
| [p] la | |||
| [p;] ro | |||
| ustop/q [q] base | |||
| ustop/t [t] base | |||
| [t2] en | |||
| [t] fr | |||
| @@ -940,6 +942,7 @@ vdiph/eei_2 [eI] eo | |||
| [eI] id | |||
| vdiph/eei_3 [eI] en_rp | |||
| [eI] sk | |||
| [eI] ku | |||
| vdiph/eeu [EU] pt | |||
| [EU] grc | |||
| [EU] vi | |||
| @@ -1169,6 +1172,7 @@ vowel/& [a] en_rp | |||
| [&] fi | |||
| [&:] hi | |||
| [&] sv | |||
| [E] ku | |||
| vowel/0 [0] en | |||
| [O] hi | |||
| [O] pt | |||
| @@ -1275,6 +1279,7 @@ vowel/aa [a] fi | |||
| [aa] zhy | |||
| vowel/aa# [0] en_wi | |||
| [a2] fi | |||
| [a] ku | |||
| vowel/aa_2 [A:] en | |||
| [A@] en | |||
| [A:] cy | |||
| @@ -1383,6 +1388,7 @@ vowel/e_mid2 [E] af | |||
| [e] fi | |||
| [E] nl | |||
| [e] sk | |||
| [e] es | |||
| [e] ro | |||
| [e] el | |||
| [e] sw | |||
| @@ -1442,6 +1448,7 @@ vowel/i_6 [i:] en_us | |||
| [i] hr | |||
| [i] id | |||
| [i] tr | |||
| [i] ku | |||
| vowel/i#_6 [i.] zh | |||
| vowel/i#_7 [i[] zh | |||
| vowel/i_en [i:] en | |||
| @@ -1460,9 +1467,11 @@ vowel/ii [I] en_rp | |||
| [I] nl | |||
| [I] is | |||
| [i] zhy | |||
| [e] ku | |||
| vowel/ii# [Y] cy | |||
| [y] pl | |||
| [Y] ru | |||
| [I] ku | |||
| vowel/ii_2 [i] zh | |||
| vowel/ii_3 [I] cy | |||
| [I] fi | |||
| @@ -1526,6 +1535,7 @@ vowel/o_4 [oU] en_n | |||
| vowel/o-_4 [o] ro | |||
| vowel/o_5 [O] nl | |||
| vowel/o_6 [O:] nl | |||
| vowel/o_7 [o] ku | |||
| vowel/oe [W] en | |||
| [W] af | |||
| [W] de | |||
| @@ -1623,6 +1633,7 @@ vowel/u#_4 [U] en_sc | |||
| vowel/u_5 [u] sw | |||
| vowel/u_6 [U] pt_pt | |||
| [u] pt_pt | |||
| [u] ku | |||
| vowel/u#_6 [u:] en_us | |||
| vowel/u_7 [u] vi | |||
| vowel/u#_7 [u#] tr | |||
| @@ -1649,6 +1660,7 @@ vowel/u_bck2 [u:] la | |||
| vowel/u_fnt [u:] en_rp | |||
| vowel/uu [U] en | |||
| [U] en_wm | |||
| vowel/uu# [U] ku | |||
| vowel/uu_2 [U] base2 | |||
| [U] de | |||
| [U] ta | |||
| @@ -1706,6 +1718,7 @@ vowel/y#_3 [W] is | |||
| vowel/y_4 [y:] no | |||
| vowel/y_5 [y:] sv | |||
| [y] tr | |||
| [y] ku | |||
| vowel/yy [y"] fr_ca | |||
| [y] no | |||
| vowel/yy_3 [y] sv | |||
| @@ -3,6 +3,12 @@ | |||
| // Spanish - based on Base2 | |||
| //==================================================== | |||
| phoneme e | |||
| vowel starttype (e) endtype (e) | |||
| length 170 | |||
| formants vowel/e_mid2 | |||
| endphoneme | |||
| phoneme E | |||
| vowel starttype (e) endtype (e) | |||
| length 180 | |||
| @@ -0,0 +1,6 @@ | |||
| //==================================================== | |||
| // Latin American Spanish - based on Spanish | |||
| //==================================================== | |||
| @@ -996,8 +996,8 @@ phoneme q | |||
| vowelin f1=1 f2=1700 0 200 f3=-300 80 f4 paus rms=35 | |||
| vowelout f1=1 f2=1700 0 200 f3=-300 80 f4 rms=30 | |||
| lengthmod 2 | |||
| wave ustop/k_unasp%60 | |||
| before _ ustop/k_unasp%50 | |||
| wave ustop/q%50 | |||
| before _ ustop/q%40 | |||
| endphoneme | |||
| @@ -1282,5 +1282,8 @@ include ph_indonesian | |||
| phonemetable tr base2 | |||
| include ph_turkish | |||
| phonemetable ku base2 | |||
| include ph_kurdish | |||
| phonemetable ja base | |||
| include ph_japanese | |||
| @@ -1,3 +1,5 @@ | |||
| # removed -fno-exceptions because it caused problems with stdio library on some platforms | |||
| PREFIX=/ | |||
| BINDIR=$(PREFIX)/usr/bin | |||
| INCDIR=$(PREFIX)/usr/include/espeak | |||
| @@ -66,7 +68,7 @@ all: $(BIN_NAME) $(LIB_NAME) $(STATIC_LIB_NAME) $(BIN2_NAME) | |||
| mv $(LIB_NAME) $(LIB_NAME).$(LIBTAG) | |||
| .cpp.o: | |||
| $(CXX) $(CXXFLAGS) -D PATH_ESPEAK_DATA=\"$(DATADIR)\" -Wall -pedantic -I. -c -fno-exceptions $< | |||
| $(CXX) $(CXXFLAGS) -D PATH_ESPEAK_DATA=\"$(DATADIR)\" -Wall -pedantic -I. -c $< | |||
| $(BIN_NAME): $(OBJS1) | |||
| $(CXX) -o $@ $(OBJS1) $(LIBS1) | |||
| @@ -78,7 +80,7 @@ $(BIN2_NAME): $(OBJS3) $(LIB_NAME) | |||
| x_%.o: %.cpp | |||
| $(CXX) $(CXXFLAGS) -Wall -fpic -pedantic \ | |||
| -I. -D LIBRARY -c -fno-exceptions $< -o x_$*.o | |||
| -I. -D LIBRARY -c $< -o x_$*.o | |||
| $(LIB_NAME): $(OBJS2) | |||
| $(CXX) -shared $(SONAME_OPT)$(LIB_NAME).$(LIB_VERSION) -o $@ $(OBJS2) $(LIBS2) | |||
| @@ -454,6 +454,7 @@ int Translator::LookupNum3(int value, char *ph_out, int suppress_null, int thous | |||
| char ph_digits[50]; | |||
| char ph_thousands[50]; | |||
| char ph_hundred_and[12]; | |||
| char ph_thousand_and[12]; | |||
| hundreds = value / 100; | |||
| buf1[0] = 0; | |||
| @@ -461,6 +462,7 @@ int Translator::LookupNum3(int value, char *ph_out, int suppress_null, int thous | |||
| if(hundreds > 0) | |||
| { | |||
| ph_thousands[0] = 0; | |||
| ph_thousand_and[0] = 0; | |||
| Lookup("_0C",ph_100); | |||
| @@ -486,6 +488,11 @@ int Translator::LookupNum3(int value, char *ph_out, int suppress_null, int thous | |||
| ph_digits[0] = 0; | |||
| if(hundreds > 0) | |||
| { | |||
| if((langopts.numbers & 0x100000) && (prev_thousands || (ph_thousands[0] != 0))) | |||
| { | |||
| Lookup("_0and",ph_thousand_and); | |||
| } | |||
| suppress_null = 1; | |||
| found = 0; | |||
| @@ -513,7 +520,7 @@ int Translator::LookupNum3(int value, char *ph_out, int suppress_null, int thous | |||
| } | |||
| } | |||
| sprintf(buf1,"%s%s%s",ph_thousands,ph_digits,ph_100); | |||
| sprintf(buf1,"%s%s%s%s",ph_thousands,ph_thousand_and,ph_digits,ph_100); | |||
| } | |||
| ph_hundred_and[0] = 0; | |||
| @@ -127,6 +127,7 @@ typedef struct { | |||
| // Several phoneme tables may be loaded into memory. phoneme_tab points to | |||
| // one for the current voice | |||
| extern int n_phoneme_tab; | |||
| extern int current_phoneme_table; | |||
| extern PHONEME_TAB *phoneme_tab[N_PHONEME_TAB]; | |||
| extern unsigned char phoneme_tab_flags[N_PHONEME_TAB]; // bit 0: not inherited | |||
| @@ -91,6 +91,7 @@ static const char *help_text = | |||
| "-q\t Quiet, don't produce any speech (may be useful with -x)\n" | |||
| "-x\t Write phoneme mnemonics to stdout\n" | |||
| "-X\t Write phonemes mnemonics and translation trace to stdout\n" | |||
| "-z\t No final sentence pause at the end of the text\n" | |||
| "--stdout Write speech output to stdout\n" | |||
| "--compile=<voice name>\n" | |||
| "\t Compile the pronunciation rules and dictionary in the current\n" | |||
| @@ -500,6 +501,7 @@ int main (int argc, char **argv) | |||
| option_phonemes = 0; | |||
| option_waveout = 0; | |||
| option_wordgap = 0; | |||
| option_endpause = 1; | |||
| option_multibyte = espeakCHARS_AUTO; // auto | |||
| f_trans = stdout; | |||
| @@ -559,7 +561,7 @@ int main (int argc, char **argv) | |||
| #else | |||
| while(true) | |||
| { | |||
| c = getopt_long (argc, argv, "a:bf:g:hk:l:p:qs:v:w:xXm", | |||
| c = getopt_long (argc, argv, "a:bf:g:hk:l:p:qs:v:w:xXmz", | |||
| long_options, &option_index); | |||
| /* Detect the end of the options. */ | |||
| @@ -635,6 +637,10 @@ int main (int argc, char **argv) | |||
| strncpy0(wavefile,optarg2,sizeof(wavefile)); | |||
| break; | |||
| case 'z': | |||
| option_endpause = 0; | |||
| break; | |||
| case 0x100: // --stdin | |||
| flag_stdin = 1; | |||
| break; | |||
| @@ -35,13 +35,14 @@ | |||
| #include "translate.h" | |||
| #include "wave.h" | |||
| const char *version_string = "1.31.10 12.Feb.08"; | |||
| const char *version_string = "1.31.12 16.Feb.08"; | |||
| const int version_phdata = 0x013105; | |||
| int option_device_number = -1; | |||
| // copy the current phoneme table into here | |||
| int n_phoneme_tab; | |||
| int current_phoneme_table; | |||
| PHONEME_TAB *phoneme_tab[N_PHONEME_TAB]; | |||
| unsigned char phoneme_tab_flags[N_PHONEME_TAB]; // bit 0: not inherited | |||
| @@ -574,6 +575,7 @@ void SelectPhonemeTable(int number) | |||
| n_phoneme_tab = 0; | |||
| SetUpPhonemeTable(number,0); // recursively for included phoneme tables | |||
| n_phoneme_tab++; | |||
| current_phoneme_table = number; | |||
| } // end of SelectPhonemeTable | |||
| @@ -1544,6 +1544,11 @@ int SpeakNextClause(FILE *f_in, const void *text_in, int control) | |||
| return(0); | |||
| } | |||
| if(current_phoneme_table != voice->phoneme_tab_ix) | |||
| { | |||
| SelectPhonemeTable(voice->phoneme_tab_ix); | |||
| } | |||
| // read the next clause from the input text file, translate it, and generate | |||
| // entries in the wavegen command queue | |||
| p_text = translator->TranslateClause(f_text,p_text,&clause_tone,&voice_change); | |||
| @@ -440,6 +440,22 @@ SetLengthMods(tr,3); // all equal | |||
| } | |||
| break; | |||
| case L('k','u'): // Kurdish | |||
| { | |||
| static const unsigned char stress_amps_ku[8] = {16,16, 20,20, 20,24, 24,22 }; | |||
| static const short stress_lengths_ku[8] = {170,170, 190,170, 0,0, 230,240}; | |||
| tr = new Translator(); | |||
| SetupTranslator(tr,stress_lengths_ku,stress_amps_ku); | |||
| tr->charset_a0 = charsets[9]; // ISO-8859-9 - Latin5 | |||
| tr->langopts.stress_rule = 7; // stress on the last syllable, before any explicitly unstressed syllable | |||
| tr->langopts.numbers = 0x100c69; | |||
| tr->langopts.max_initial_consonants = 2; | |||
| } | |||
| break; | |||
| case L('l','a'): //Latin | |||
| { | |||
| tr = new Translator(); | |||
| @@ -316,7 +316,7 @@ typedef struct { | |||
| // bit3= , decimal separator, not . | |||
| // bit4=use three-and-twenty rather than twenty-three | |||
| // bit5='and' between tens and units | |||
| // bit6=add "and" after hundred and thousand | |||
| // bit6=add "and" after hundred or thousand | |||
| // bit7=don't have "and" both after hundreds and also between tens and units | |||
| // bit8=only one primary stress in tens+units | |||
| // bit9=only one vowel betwen tens and units | |||
| @@ -328,6 +328,7 @@ typedef struct { | |||
| // bit17=recognize roman numbers | |||
| // bit18=Roman numbers only if upper case | |||
| // bit19=don't add pause after a number | |||
| // bit20='and' before hundreds | |||
| int numbers; | |||
| // bits 1-4 use variant form of numbers before thousands,millions,etc. | |||