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
| i@3 IR O O: o: O@ o@ OI | i@3 IR O O: o: O@ o@ OI | ||||
| oU O~ U u: U@ V VR | 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 | Dictionary eo_dict | ||||
| Dictionary fr_dict | 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 | * : ; b c d D dZ | ||||
| f g h j k l L m | f g h j k l L m | ||||
| j k l m n p Q r | j k l m n p Q r | ||||
| R s S t tS v w z | R s S t tS v w z | ||||
| 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 |
| _' praIm | _' praIm | ||||
| _( ElbrakIt | _( ElbrakIt | ||||
| _) A@brakIt | _) A@brakIt | ||||
| _* ast@rIsk: | |||||
| _* ast@rIsk | |||||
| _+ plVs | _+ plVs | ||||
| _, k0m@ | _, k0m@ | ||||
| _- h,aIf@n | _- h,aIf@n | ||||
| aha a2hA: | aha a2hA: | ||||
| ahem a2h'@m | ahem a2h'@m | ||||
| ahoy a2hOI | ahoy a2hOI | ||||
| airbus e@:bVs | |||||
| airbus e@bVs | |||||
| airpower 'e@p,aU@ | airpower 'e@p,aU@ | ||||
| aisle aI@l | aisle aI@l | ||||
| ajar a2dZA@ | ajar a2dZA@ | ||||
| Evan Ev@n | Evan Ev@n | ||||
| Gary garI2 | Gary garI2 | ||||
| Geraint gEraInt | Geraint gEraInt | ||||
| Gilbert gIlb3t | |||||
| Giles gaIlz | Giles gaIlz | ||||
| Glynn glIn | Glynn glIn | ||||
| Graeme greI@m | Graeme greI@m |
| g (i dZ | g (i dZ | ||||
| gi (_ gI2 | gi (_ gI2 | ||||
| _) g (il g | _) g (il g | ||||
| g (ilC g | |||||
| l) ging dZI2N | l) ging dZI2N | ||||
| g (y dZ | g (y dZ | ||||
| _) g (n | _) g (n |
| // 2006-11-18 Gilles Casse <[email protected]> | // 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. | // * Numbers, a few abbreviations and exceptions. | ||||
| // | // | ||||
| adéquate adekuat | adéquate adekuat | ||||
| airbus Erbys | airbus Erbys | ||||
| anus anys | anus anys | ||||
| any Eni | |||||
| ardent aRdA~ | ardent aRdA~ | ||||
| bissus bisys | bissus bisys | ||||
| bonus bonys | bonus bonys | ||||
| cocus coky | cocus coky | ||||
| discident disidA~ | discident disidA~ | ||||
| estomac Estoma | estomac Estoma | ||||
| eye aj | |||||
| eyes ajz | |||||
| fils fis | fils fis | ||||
| imprudent E~pRydA~ | imprudent E~pRydA~ | ||||
| iris iris | iris iris | ||||
| juin ZyE~ | juin ZyE~ | ||||
| malus malys | malus malys | ||||
| many mEni | |||||
| mars maRs | mars maRs | ||||
| minus minys | minus minys | ||||
| occident OksidA~ | occident OksidA~ | ||||
| orient ORjA~ | orient ORjA~ | ||||
| pays pEi | pays pEi | ||||
| phallus falys | phallus falys | ||||
| polder pOldEr | |||||
| prudent pRydA~ | prudent pRydA~ | ||||
| secret sYkRE | secret sYkRE | ||||
| souris suri | souris suri | ||||
| août ut | août ut | ||||
| azimut azim'yt | azimut azim'yt | ||||
| brut bR'yt | brut bR'yt | ||||
| bouse buz | |||||
| but by $verb | but by $verb | ||||
| but byt | but byt | ||||
| club kl@b | club kl@b | ||||
| (le pub) l@||p'@b | (le pub) l@||p'@b | ||||
| (un pub) W~||p'@b | (un pub) W~||p'@b | ||||
| (du pub) dy||p'@b | (du pub) dy||p'@b | ||||
| connecticut kOnEktikyt | |||||
| cut cWt | cut cWt | ||||
| helmut Elmut | helmut Elmut | ||||
| hub _|@b | hub _|@b | ||||
| // et (t is said) | // et (t is said) | ||||
| bridget bRidZEt | |||||
| exocet EgzOsEt | exocet EgzOsEt | ||||
| fret fR'Et | fret fR'Et | ||||
| gadget gadZEt | |||||
| budget bydZE | |||||
| hamlet amlEt | hamlet amlEt | ||||
| jacket ZakEt | |||||
| knesset knEsEt | knesset knEsEt | ||||
| lazaret lazaREt | lazaret lazaREt | ||||
| margaret maRgaREt | margaret maRgaREt | ||||
| net nEt | net nEt | ||||
| offset OfsEt | offset OfsEt | ||||
| pickpocket pikpOkEt | |||||
| racket RakEt | |||||
| set sEt | set sEt | ||||
| soviet sOvjEt | soviet sOvjEt | ||||
| short SORt | short SORt | ||||
| // art (t said) | // art (t said) | ||||
| stewart stiwaRt | |||||
| steward stiwaRt | steward stiwaRt | ||||
| stuttgart StutgaRt | stuttgart StutgaRt | ||||
| hart aRt | hart aRt | ||||
| // words from other languages | // words from other languages | ||||
| about @bawt | |||||
| about _^_en | |||||
| acer asEr | acer asEr | ||||
| again _^_en | |||||
| against _^_en | |||||
| alone _^_en | |||||
| also _^_en | |||||
| and _^_en | |||||
| amazon amaz'On | 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 | bluetooth blut'us | ||||
| byte bajt | |||||
| bytes bajts | |||||
| both _^_en | |||||
| browser _^_en | |||||
| can _^_en | |||||
| computer _^_en | |||||
| (cyber link) sibEr||link | (cyber link) sibEr||link | ||||
| debian dEbjAn | debian dEbjAn | ||||
| driver drajv@rz2 | |||||
| download dOnlod | |||||
| does _^_en | |||||
| doesn't _^_en | |||||
| don't _^_en | |||||
| driver _^_en | |||||
| edit edit | edit edit | ||||
| emacs Emaks | emacs Emaks | ||||
| emacspeak Emakspi:k | emacspeak Emakspi:k | ||||
| end _^_en | |||||
| enter 'Ent@r | |||||
| epson EpsOn | |||||
| espeak @spi:k | espeak @spi:k | ||||
| ethernet etERnEt | ethernet etERnEt | ||||
| exit egzit | exit egzit | ||||
| (file zilla) fajl@-||zija | |||||
| eye _^_en | |||||
| eyes _^_en | |||||
| (file zilla) fajl||zija | |||||
| fire _^_en | |||||
| firefox faj@RfOks | 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 | gnome gnom | ||||
| gnu gnu | gnu gnu | ||||
| hamburger _!A~b@rg@r | 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 E~tERnEt | ||||
| (internet explorer) E~tErn'Et||EksplOr'@r | (internet explorer) E~tErn'Et||EksplOr'@r | ||||
| is iz | |||||
| it it | |||||
| its its | |||||
| is _^_en | |||||
| it _^_en | |||||
| its _^_en | |||||
| klaxon klaksOn | klaxon klaksOn | ||||
| leader li:d@R | |||||
| let lEt | |||||
| layer _^_en | |||||
| let _^_en | |||||
| liszt list | liszt list | ||||
| lite lajt | |||||
| lite _^_en | |||||
| logon _^_en | |||||
| (mac os x) makoEsiks | (mac os x) makoEsiks | ||||
| mail mE:jl | |||||
| maker mE:jk@r | |||||
| made _^_en | |||||
| mail _^_en | |||||
| media medja | 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 | ok oke | ||||
| open Op'@n | open Op'@n | ||||
| outlook autluk | outlook autluk | ||||
| outside autsajd | |||||
| outsider autsajd@r | |||||
| player plEj'@r | |||||
| quick kwik | |||||
| outside _^_en | |||||
| outsider _^_en | |||||
| player _^_en | |||||
| redhat REdat | redhat REdat | ||||
| release rili:z | |||||
| same sejm | |||||
| same _^_en | |||||
| sametime _^_en | |||||
| schubert SubER | 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 | (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 | 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 | yacht jot | ||||
| yes jEs $brk | yes jEs $brk | ||||
| // French translation rules | // French translation rules | ||||
| // This file is UTF-8 encoded | // This file is UTF-8 encoded | ||||
| // 2006-11-18 Gilles Casse <[email protected]> | // 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. | // * The rules are based on Cicero TTS. | ||||
| // | |||||
| // Y | |||||
| // Letter classes: | // Letter classes: | ||||
| // A all vowels: a e i o u y â ä é ê è î ï ô ö ù û | // A all vowels: a e i o u y â ä é ê è î ï ô ö ù û | ||||
| a (il_ a | a (il_ a | ||||
| aie (me E // paiement | aie (me E // paiement | ||||
| ai E // aile | ai E // aile | ||||
| a (lk O // talk | |||||
| a (ll_ O // football handball | |||||
| am (b A~ // jambon | am (b A~ // jambon | ||||
| am (p A~ // camp | am (p A~ // camp | ||||
| am (m a // programmation | am (m a // programmation | ||||
| ay Ej // paye | ay Ej // paye | ||||
| a a // bateau | 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 | .group b | ||||
| bb b // abbé | bb b // abbé | ||||
| om) b (_ // plomb applomb | om) b (_ // plomb applomb | ||||
| b b // aube | 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 | .group c | ||||
| c' s // s | c' s // s | ||||
| cien (t_ i // ils appr�ient, remercient. | cien (t_ i // ils appr�ient, remercient. | ||||
| i) cien (t_ sjA~ // coefficient | 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 | .group d | ||||
| dd d // addition | dd d // addition | ||||
| Csan) d (_ d | Csan) d (_ d | ||||
| _tan) d (_ d // stand | _tan) d (_ d // stand | ||||
| Ctan) d (_ d | Ctan) d (_ d | ||||
| for) d (_ d | |||||
| lor) d (_ d | |||||
| Can) d (_ t2 // grand ami, grand marchand | Can) d (_ t2 // grand ami, grand marchand | ||||
| Cen) d (_ t2 | Cen) d (_ t2 | ||||
| r) d (_ // lourd placard | r) d (_ // lourd placard | ||||
| d d // don bled | 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 | .group e | ||||
| e (Ce_ E | e (Ce_ E | ||||
| eau o // bateau cheveaux | 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 | j) e (a // Jean Jeanne | ||||
| sp) ea (k i: // speak speaker | |||||
| p) ect (_ E // suspect | p) ect (_ E // suspect | ||||
| ect (_ Ekt // direct | ect (_ Ekt // direct | ||||
| _trépi) ed e | _trépi) ed e | ||||
| _pi) ed e // pied | _pi) ed e // pied | ||||
| ee i: // meeting | |||||
| _cl) ef (_ e // clef | _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 (C E~ // peindre | ||||
| ein (_ E~ | ein (_ E~ | ||||
| e (il E // vieille | e (il E // vieille | ||||
| _trav) er (_ ER | _trav) er (_ ER | ||||
| _ti) 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 (_ e // parler léger | ||||
| er (s_ e | er (s_ e | ||||
| @Cr) es (_C @- | @Cr) es (_C @- | ||||
| rC) es (_C @- // fortes dames | rC) es (_C @- // fortes dames | ||||
| dg) et (_ Et // Bridget, gadget | |||||
| ') eu (_ y // eu | ') eu (_ y // eu | ||||
| eu (r_ @ // peur | eu (r_ @ // peur | ||||
| _) eû y // eût | _) eû y // eût | ||||
| eû Y // jeûne | 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 | e (x E // exact | ||||
| ey (_ e // dahomey | ey (_ e // dahomey | ||||
| ey (C e // ceylan | ey (C e // ceylan | ||||
| e @ // menue | 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 ë | .group ë | ||||
| u) ë // ambiguë | u) ë // ambiguë | ||||
| _neu) f (_ans v // liaison: neuf ans | _neu) f (_ans v // liaison: neuf ans | ||||
| _neu) f (_heures v | _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 | .group g | ||||
| g g | g g | ||||
| g (_ g // grog gag goulag | g (_ g // grog gag goulag | ||||
| g Z // congé george | g Z // congé george | ||||
| // group g: English section | |||||
| gh _^_en // high, higher | |||||
| girl _^_en // girl | |||||
| gly (_ _^_en | |||||
| give (X _^_en | |||||
| gy (_ _^_en | |||||
| .group h | .group h | ||||
| _) h (ac _! // hache | _) h (ac _! // hache | ||||
| _) h (ide _! // hideux | _) h (ide _! // hideux | ||||
| _) h (iér _! // hiéroglyphe | _) h (iér _! // hiéroglyphe | ||||
| _) h (i-fi _! // hi-fi | _) h (i-fi _! // hi-fi | ||||
| _) h (igh _! // highlandais | |||||
| _) h (i-han _! // hi-han | _) h (i-han _! // hi-han | ||||
| _) h (iss _! // hisser | _) h (iss _! // hisser | ||||
| _) h (it _! // hit, hit-parad | _) h (it _! // hit, hit-parad | ||||
| _) h (umo // humour | _) h (umo // humour | ||||
| h // ahuri | h // ahuri | ||||
| // group h: English section | |||||
| _) half _^_en | |||||
| _) h (As_ _^_en // has, his | |||||
| here (_ _^_en // here | |||||
| .group i | .group i | ||||
| i i // cri | i i // cri | ||||
| i (es_ i // parties | i (es_ i // parties | ||||
| i (e_ i | i (e_ i | ||||
| i (A j // fermier portier patio renier | 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 | _) ill ill // illégal | ||||
| _m) ill il // mille | _m) ill il // mille | ||||
| v) ill il // village | v) ill il // village | ||||
| imm imm // immaculé | imm imm // immaculé | ||||
| im (_ im // karim | im (_ im // karim | ||||
| im (C E~ // timbre | im (C E~ // timbre | ||||
| ing (_ iN // parking | |||||
| in (h in // inhumain | in (h in // inhumain | ||||
| inct (_ E~ // distinct | inct (_ E~ // distinct | ||||
| ind (_ ajnd // find, mind | |||||
| ind (ing_ ajnd // find, mind | |||||
| ink ink // link, pink | |||||
| in (n i // innombrable | in (n i // innombrable | ||||
| in (C E~ // vingt | in (C E~ // vingt | ||||
| // in (_ E~ // vin | |||||
| in (_ W~ // vin | in (_ W~ // vin | ||||
| ique (_ ik | 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 î | .group î | ||||
| î i // abîme | î i // abîme | ||||
| .group k | .group k | ||||
| k k // kafka | k k // kafka | ||||
| ket (_ kEt // basket | |||||
| kets (_ kEt // basket | |||||
| // group k: English section | |||||
| ke (X _^_en // basket, make, take | |||||
| ky (_ _^_en | |||||
| .group l | .group l | ||||
| l l // lit | l l // lit | ||||
| ll l // aller | ll l // aller | ||||
| outi) l (_ // outil | outi) l (_ // outil | ||||
| ui) ll j // juillet | ui) ll j // juillet | ||||
| // group l: English section | |||||
| ') ld (_ _^_en | |||||
| ') ll (_ _^_en | |||||
| less (_ _^_en // noiseless | |||||
| lessly (_ _^_en // endlessly | |||||
| .group m | .group m | ||||
| m m // film | m m // film | ||||
| mm m // pomme | mm m // pomme | ||||
| // group m: English section | |||||
| mail (A _^_en // mailer | |||||
| may _^_en | |||||
| mov (A _^_en // move, movy | |||||
| .group n | .group n | ||||
| n n // une | n n // une | ||||
| A) ng (_ N // parking meeting | A) ng (_ N // parking meeting | ||||
| nn n // panne | nn n // panne | ||||
| // group n: English section | |||||
| n't (_ _^_en | |||||
| ny (_ _^_en | |||||
| .group o | .group o | ||||
| cr) oc (_ o // escroc | cr) oc (_ o // escroc | ||||
| r) o (ne_ o | r) o (ne_ o | ||||
| alc) oo (l O // alcool | alc) oo (l O // alcool | ||||
| oo (Ce u // boomer | |||||
| C) oot ut // bootable football | |||||
| z) oo o // zoo | z) oo o // zoo | ||||
| z) oo (l oo // zoologue | |||||
| z) oo (ph oo // zoophile | |||||
| z) oo (C oo // zoologue | |||||
| z) oo (m u // zoom | z) oo (m u // zoom | ||||
| oo (X u // pool | oo (X u // pool | ||||
| _gal) op (_ o // galop | _gal) op (_ o // galop | ||||
| v) ost (_ o // Prévost | v) ost (_ o // Prévost | ||||
| o (sA o // poser | o (sA o // poser | ||||
| ot (_ o // mot dépots | ot (_ o // mot dépots | ||||
| C) ou (nd aw // sound, found | |||||
| _C) oup (_ u // coup, loup | _C) oup (_ u // coup, loup | ||||
| uC) oup (_ up2 // beaucoup | uC) oup (_ up2 // beaucoup | ||||
| oû u // coûter | oû u // coûter | ||||
| oyes (_ wa // troyes | oyes (_ wa // troyes | ||||
| oy (A waj // noyer voyelles | oy (A waj // noyer voyelles | ||||
| oy (_ Oj // boy, toy | |||||
| oys (_ Ojz // boys, toys | |||||
| oy wa // roy | oy wa // roy | ||||
| o (_ o // zorro allégro | o (_ o // zorro allégro | ||||
| o (z_ o // berlioz | o (z_ o // berlioz | ||||
| o O // sobre notions émotions | 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 ô | .group ô | ||||
| ôt (_ o // rôt | ôt (_ o // rôt | ||||
| se) pt (_ t // sept | se) pt (_ t // sept | ||||
| se) pt (iè t // septième | 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 | .group q | ||||
| q k // coq | q k // coq | ||||
| _) qu' (P3 k // qu'il | _) qu' (P3 k // qu'il | ||||
| n) q (_ k // cinq cent | n) q (_ k // cinq cent | ||||
| // group q: English section | |||||
| quick _^_en // quick, quickly | |||||
| .group r | .group r | ||||
| right rajt // copyright | |||||
| _su) rr RR // surréaliste | _su) rr RR // surréaliste | ||||
| cou) rr RR // courrai | cou) rr RR // courrai | ||||
| mou) rr RR // mourrai | mou) rr RR // mourrai | ||||
| rr R // erreur | rr R // erreur | ||||
| r r // rien | r r // rien | ||||
| // group r: English section | |||||
| _) rule (X _^_en // rule | |||||
| ry (_ _^_en // theory | |||||
| .group s | .group s | ||||
| s s // verser sien | s s // verser sien | ||||
| sch S // schéma | sch S // schéma | ||||
| dé) sh (A z // déshabiller | dé) sh (A z // déshabiller | ||||
| sh S // shérif | sh S // shérif | ||||
| CA) sh (_ _^_en // punish | |||||
| ss s // assez | ss s // assez | ||||
| ai) s (em s // vraisemblable | ai) s (em s // vraisemblable | ||||
| ïu) s (_ s // laïus | ïu) s (_ s // laïus | ||||
| Culu) s (_ s // cumulus | Culu) s (_ s // cumulus | ||||
| plu) s (_ z2 // plus, surplus | plu) s (_ z2 // plus, surplus | ||||
| ylu) s (_ s // stylus | |||||
| mu) s (_ s | mu) s (_ s | ||||
| _mu) s (_ | _mu) s (_ | ||||
| ému) s (_ | ému) s (_ | ||||
| s (j z | s (j z | ||||
| s (v 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 | .group t | ||||
| t t // bataille | t t // bataille | ||||
| V) t (_ t2 // silent at end of verb unless next word starts with a vowel | V) t (_ t2 // silent at end of verb unless next word starts with a vowel | ||||
| t (_ // silent at end of word | 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 | ts (_S1 z2 // silent at end of word unless next word starts with a vowel | ||||
| C) t (_ t // compost watt soft script malttact abrupt | C) t (_ t // compost watt soft script malttact abrupt | ||||
| Vn) t (_ t2 // silent at end of verb unless next word starts with a vowel | Vn) t (_ t2 // silent at end of verb unless next word starts with a vowel | ||||
| s) th (m // asthme | s) th (m // asthme | ||||
| th t // théorie | th t // théorie | ||||
| sCar) t (_ t // smart, start | |||||
| hui) t (_ t // huit | hui) t (_ t // huit | ||||
| _) t t // tien tiers | _) t t // tien tiers | ||||
| _ce) t (_ t | _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 | .group u | ||||
| u y // cruel nuage brut | u y // cruel nuage brut | ||||
| ui w^i | ui w^i | ||||
| _b) usi iz // business, businessman | |||||
| _b) usi _^_en // business, businessman | |||||
| c) ueill Wj // cueillir | c) ueill Wj // cueillir | ||||
| c) ueil (_ Wj // recueil | c) ueil (_ Wj // recueil | ||||
| _c) ul (_ y | _c) ul (_ y | ||||
| um (b W~ // humble | um (b W~ // humble | ||||
| um (p W~ | um (p W~ | ||||
| un (C W~ // emprunt lundi | un (C W~ // emprunt lundi | ||||
| C) un (_ W~ // brun | |||||
| CC) un (_ W~ // brun | |||||
| uc) un (_ W~n2 // aucun | uc) un (_ W~n2 // aucun | ||||
| un (_ W~n2 // un avion | 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 | fl) ux (_ y // flux, reflux | ||||
| g) u (A // fatigue | g) u (A // fatigue | ||||
| g) u (ï y // ambiguïté | g) u (ï y // ambiguïté | ||||
| g) u (ë y // ambiguë | 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 | .group v | ||||
| v v | v v | ||||
| // goup v: English section | |||||
| ') ve (_ _^_en | |||||
| voice (_ _^_en | |||||
| void (_ _^_en | |||||
| vy (_ _^_en | |||||
| .group w | .group w | ||||
| w w | w w | ||||
| wa (Ce_ wE // hardware software wave | |||||
| w (agon v // wagon | 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 | .group x |
| t) u (DnK wu@ | t) u (DnK wu@ | ||||
| uo uo | uo uo | ||||
| sh) ui wei | |||||
| sh) ui rei | |||||
| sh) u (DnK wo- | sh) u (DnK wo- | ||||
| sh) uo wo | sh) uo wo | ||||
| <p> | <p> | ||||
| The -e option prevents Mbrola from stopping if it finds a combination | The -e option prevents Mbrola from stopping if it finds a combination | ||||
| of phonemes which it doesn't recognise. | 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> | </ol> | ||||
| <h3>Mbrola Voice Files</h3> | <h3>Mbrola Voice Files</h3> | ||||
| gender female | gender female | ||||
| pitch 140 220 | pitch 140 220 | ||||
| mbrola de5 de5_phtrans 22050 | |||||
| mbrola de5 de6_phtrans 22050 | |||||
| 48 phoneme tables | |||||
| 49 phoneme tables | |||||
| new total | new total | ||||
| base 99 99 | base 99 99 | ||||
| base2 24 118 | base2 24 118 | ||||
| ru 38 129 | ru 38 129 | ||||
| it 17 121 | it 17 121 | ||||
| la 21 117 | la 21 117 | ||||
| es 8 119 | |||||
| es 9 119 | |||||
| es_la 1 119 | es_la 1 119 | ||||
| pt 27 134 | pt 27 134 | ||||
| pt_pt 20 134 | pt_pt 20 134 | ||||
| th 50 142 | th 50 142 | ||||
| id 14 120 | id 14 120 | ||||
| tr 14 123 | tr 14 123 | ||||
| ku 12 120 | |||||
| ja 7 104 | ja 7 104 | ||||
| Data file Used by | Data file Used by | ||||
| [x2] nl | [x2] nl | ||||
| [x2] pt | [x2] pt | ||||
| ufric/x_hr [x] hr | ufric/x_hr [x] hr | ||||
| [x] ku | |||||
| ufric/x_sr [h] sr | ufric/x_sr [h] sr | ||||
| [x] sr | [x] sr | ||||
| ustop/c [c] base | ustop/c [c] base | ||||
| [k] zhy | [k] zhy | ||||
| [k] sw | [k] sw | ||||
| ustop/k_unasp [k] base | ustop/k_unasp [k] base | ||||
| [q] base | |||||
| [k] base2 | [k] base2 | ||||
| [k] fi | [k] fi | ||||
| [k] hi | [k] hi | ||||
| [p] sk | [p] sk | ||||
| [p] la | [p] la | ||||
| [p;] ro | [p;] ro | ||||
| ustop/q [q] base | |||||
| ustop/t [t] base | ustop/t [t] base | ||||
| [t2] en | [t2] en | ||||
| [t] fr | [t] fr | ||||
| [eI] id | [eI] id | ||||
| vdiph/eei_3 [eI] en_rp | vdiph/eei_3 [eI] en_rp | ||||
| [eI] sk | [eI] sk | ||||
| [eI] ku | |||||
| vdiph/eeu [EU] pt | vdiph/eeu [EU] pt | ||||
| [EU] grc | [EU] grc | ||||
| [EU] vi | [EU] vi | ||||
| [&] fi | [&] fi | ||||
| [&:] hi | [&:] hi | ||||
| [&] sv | [&] sv | ||||
| [E] ku | |||||
| vowel/0 [0] en | vowel/0 [0] en | ||||
| [O] hi | [O] hi | ||||
| [O] pt | [O] pt | ||||
| [aa] zhy | [aa] zhy | ||||
| vowel/aa# [0] en_wi | vowel/aa# [0] en_wi | ||||
| [a2] fi | [a2] fi | ||||
| [a] ku | |||||
| vowel/aa_2 [A:] en | vowel/aa_2 [A:] en | ||||
| [A@] en | [A@] en | ||||
| [A:] cy | [A:] cy | ||||
| [e] fi | [e] fi | ||||
| [E] nl | [E] nl | ||||
| [e] sk | [e] sk | ||||
| [e] es | |||||
| [e] ro | [e] ro | ||||
| [e] el | [e] el | ||||
| [e] sw | [e] sw | ||||
| [i] hr | [i] hr | ||||
| [i] id | [i] id | ||||
| [i] tr | [i] tr | ||||
| [i] ku | |||||
| vowel/i#_6 [i.] zh | vowel/i#_6 [i.] zh | ||||
| vowel/i#_7 [i[] zh | vowel/i#_7 [i[] zh | ||||
| vowel/i_en [i:] en | vowel/i_en [i:] en | ||||
| [I] nl | [I] nl | ||||
| [I] is | [I] is | ||||
| [i] zhy | [i] zhy | ||||
| [e] ku | |||||
| vowel/ii# [Y] cy | vowel/ii# [Y] cy | ||||
| [y] pl | [y] pl | ||||
| [Y] ru | [Y] ru | ||||
| [I] ku | |||||
| vowel/ii_2 [i] zh | vowel/ii_2 [i] zh | ||||
| vowel/ii_3 [I] cy | vowel/ii_3 [I] cy | ||||
| [I] fi | [I] fi | ||||
| vowel/o-_4 [o] ro | vowel/o-_4 [o] ro | ||||
| vowel/o_5 [O] nl | vowel/o_5 [O] nl | ||||
| vowel/o_6 [O:] nl | vowel/o_6 [O:] nl | ||||
| vowel/o_7 [o] ku | |||||
| vowel/oe [W] en | vowel/oe [W] en | ||||
| [W] af | [W] af | ||||
| [W] de | [W] de | ||||
| vowel/u_5 [u] sw | vowel/u_5 [u] sw | ||||
| vowel/u_6 [U] pt_pt | vowel/u_6 [U] pt_pt | ||||
| [u] pt_pt | [u] pt_pt | ||||
| [u] ku | |||||
| vowel/u#_6 [u:] en_us | vowel/u#_6 [u:] en_us | ||||
| vowel/u_7 [u] vi | vowel/u_7 [u] vi | ||||
| vowel/u#_7 [u#] tr | vowel/u#_7 [u#] tr | ||||
| vowel/u_fnt [u:] en_rp | vowel/u_fnt [u:] en_rp | ||||
| vowel/uu [U] en | vowel/uu [U] en | ||||
| [U] en_wm | [U] en_wm | ||||
| vowel/uu# [U] ku | |||||
| vowel/uu_2 [U] base2 | vowel/uu_2 [U] base2 | ||||
| [U] de | [U] de | ||||
| [U] ta | [U] ta | ||||
| vowel/y_4 [y:] no | vowel/y_4 [y:] no | ||||
| vowel/y_5 [y:] sv | vowel/y_5 [y:] sv | ||||
| [y] tr | [y] tr | ||||
| [y] ku | |||||
| vowel/yy [y"] fr_ca | vowel/yy [y"] fr_ca | ||||
| [y] no | [y] no | ||||
| vowel/yy_3 [y] sv | vowel/yy_3 [y] sv |
| // Spanish - based on Base2 | // Spanish - based on Base2 | ||||
| //==================================================== | //==================================================== | ||||
| phoneme e | |||||
| vowel starttype (e) endtype (e) | |||||
| length 170 | |||||
| formants vowel/e_mid2 | |||||
| endphoneme | |||||
| phoneme E | phoneme E | ||||
| vowel starttype (e) endtype (e) | vowel starttype (e) endtype (e) | ||||
| length 180 | length 180 |
| //==================================================== | |||||
| // Latin American Spanish - based on Spanish | |||||
| //==================================================== | |||||
| vowelin f1=1 f2=1700 0 200 f3=-300 80 f4 paus rms=35 | 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 | vowelout f1=1 f2=1700 0 200 f3=-300 80 f4 rms=30 | ||||
| lengthmod 2 | lengthmod 2 | ||||
| wave ustop/k_unasp%60 | |||||
| before _ ustop/k_unasp%50 | |||||
| wave ustop/q%50 | |||||
| before _ ustop/q%40 | |||||
| endphoneme | endphoneme | ||||
| phonemetable tr base2 | phonemetable tr base2 | ||||
| include ph_turkish | include ph_turkish | ||||
| phonemetable ku base2 | |||||
| include ph_kurdish | |||||
| phonemetable ja base | phonemetable ja base | ||||
| include ph_japanese | include ph_japanese |
| # removed -fno-exceptions because it caused problems with stdio library on some platforms | |||||
| PREFIX=/ | PREFIX=/ | ||||
| BINDIR=$(PREFIX)/usr/bin | BINDIR=$(PREFIX)/usr/bin | ||||
| INCDIR=$(PREFIX)/usr/include/espeak | INCDIR=$(PREFIX)/usr/include/espeak | ||||
| mv $(LIB_NAME) $(LIB_NAME).$(LIBTAG) | mv $(LIB_NAME) $(LIB_NAME).$(LIBTAG) | ||||
| .cpp.o: | .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) | $(BIN_NAME): $(OBJS1) | ||||
| $(CXX) -o $@ $(OBJS1) $(LIBS1) | $(CXX) -o $@ $(OBJS1) $(LIBS1) | ||||
| x_%.o: %.cpp | x_%.o: %.cpp | ||||
| $(CXX) $(CXXFLAGS) -Wall -fpic -pedantic \ | $(CXX) $(CXXFLAGS) -Wall -fpic -pedantic \ | ||||
| -I. -D LIBRARY -c -fno-exceptions $< -o x_$*.o | |||||
| -I. -D LIBRARY -c $< -o x_$*.o | |||||
| $(LIB_NAME): $(OBJS2) | $(LIB_NAME): $(OBJS2) | ||||
| $(CXX) -shared $(SONAME_OPT)$(LIB_NAME).$(LIB_VERSION) -o $@ $(OBJS2) $(LIBS2) | $(CXX) -shared $(SONAME_OPT)$(LIB_NAME).$(LIB_VERSION) -o $@ $(OBJS2) $(LIBS2) |
| char ph_digits[50]; | char ph_digits[50]; | ||||
| char ph_thousands[50]; | char ph_thousands[50]; | ||||
| char ph_hundred_and[12]; | char ph_hundred_and[12]; | ||||
| char ph_thousand_and[12]; | |||||
| hundreds = value / 100; | hundreds = value / 100; | ||||
| buf1[0] = 0; | buf1[0] = 0; | ||||
| if(hundreds > 0) | if(hundreds > 0) | ||||
| { | { | ||||
| ph_thousands[0] = 0; | ph_thousands[0] = 0; | ||||
| ph_thousand_and[0] = 0; | |||||
| Lookup("_0C",ph_100); | Lookup("_0C",ph_100); | ||||
| ph_digits[0] = 0; | ph_digits[0] = 0; | ||||
| if(hundreds > 0) | if(hundreds > 0) | ||||
| { | { | ||||
| if((langopts.numbers & 0x100000) && (prev_thousands || (ph_thousands[0] != 0))) | |||||
| { | |||||
| Lookup("_0and",ph_thousand_and); | |||||
| } | |||||
| suppress_null = 1; | suppress_null = 1; | ||||
| found = 0; | found = 0; | ||||
| } | } | ||||
| } | } | ||||
| 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; | ph_hundred_and[0] = 0; |
| // Several phoneme tables may be loaded into memory. phoneme_tab points to | // Several phoneme tables may be loaded into memory. phoneme_tab points to | ||||
| // one for the current voice | // one for the current voice | ||||
| extern int n_phoneme_tab; | extern int n_phoneme_tab; | ||||
| extern int current_phoneme_table; | |||||
| extern PHONEME_TAB *phoneme_tab[N_PHONEME_TAB]; | extern PHONEME_TAB *phoneme_tab[N_PHONEME_TAB]; | ||||
| extern unsigned char phoneme_tab_flags[N_PHONEME_TAB]; // bit 0: not inherited | extern unsigned char phoneme_tab_flags[N_PHONEME_TAB]; // bit 0: not inherited | ||||
| "-q\t Quiet, don't produce any speech (may be useful with -x)\n" | "-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 phoneme mnemonics to stdout\n" | ||||
| "-X\t Write phonemes mnemonics and translation trace 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" | "--stdout Write speech output to stdout\n" | ||||
| "--compile=<voice name>\n" | "--compile=<voice name>\n" | ||||
| "\t Compile the pronunciation rules and dictionary in the current\n" | "\t Compile the pronunciation rules and dictionary in the current\n" | ||||
| option_phonemes = 0; | option_phonemes = 0; | ||||
| option_waveout = 0; | option_waveout = 0; | ||||
| option_wordgap = 0; | option_wordgap = 0; | ||||
| option_endpause = 1; | |||||
| option_multibyte = espeakCHARS_AUTO; // auto | option_multibyte = espeakCHARS_AUTO; // auto | ||||
| f_trans = stdout; | f_trans = stdout; | ||||
| #else | #else | ||||
| while(true) | 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); | long_options, &option_index); | ||||
| /* Detect the end of the options. */ | /* Detect the end of the options. */ | ||||
| strncpy0(wavefile,optarg2,sizeof(wavefile)); | strncpy0(wavefile,optarg2,sizeof(wavefile)); | ||||
| break; | break; | ||||
| case 'z': | |||||
| option_endpause = 0; | |||||
| break; | |||||
| case 0x100: // --stdin | case 0x100: // --stdin | ||||
| flag_stdin = 1; | flag_stdin = 1; | ||||
| break; | break; |
| #include "translate.h" | #include "translate.h" | ||||
| #include "wave.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; | const int version_phdata = 0x013105; | ||||
| int option_device_number = -1; | int option_device_number = -1; | ||||
| // copy the current phoneme table into here | // copy the current phoneme table into here | ||||
| int n_phoneme_tab; | int n_phoneme_tab; | ||||
| int current_phoneme_table; | |||||
| PHONEME_TAB *phoneme_tab[N_PHONEME_TAB]; | PHONEME_TAB *phoneme_tab[N_PHONEME_TAB]; | ||||
| unsigned char phoneme_tab_flags[N_PHONEME_TAB]; // bit 0: not inherited | unsigned char phoneme_tab_flags[N_PHONEME_TAB]; // bit 0: not inherited | ||||
| n_phoneme_tab = 0; | n_phoneme_tab = 0; | ||||
| SetUpPhonemeTable(number,0); // recursively for included phoneme tables | SetUpPhonemeTable(number,0); // recursively for included phoneme tables | ||||
| n_phoneme_tab++; | n_phoneme_tab++; | ||||
| current_phoneme_table = number; | |||||
| } // end of SelectPhonemeTable | } // end of SelectPhonemeTable | ||||
| return(0); | 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 | // read the next clause from the input text file, translate it, and generate | ||||
| // entries in the wavegen command queue | // entries in the wavegen command queue | ||||
| p_text = translator->TranslateClause(f_text,p_text,&clause_tone,&voice_change); | p_text = translator->TranslateClause(f_text,p_text,&clause_tone,&voice_change); |
| } | } | ||||
| break; | 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 | case L('l','a'): //Latin | ||||
| { | { | ||||
| tr = new Translator(); | tr = new Translator(); |
| // bit3= , decimal separator, not . | // bit3= , decimal separator, not . | ||||
| // bit4=use three-and-twenty rather than twenty-three | // bit4=use three-and-twenty rather than twenty-three | ||||
| // bit5='and' between tens and units | // 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 | // bit7=don't have "and" both after hundreds and also between tens and units | ||||
| // bit8=only one primary stress in tens+units | // bit8=only one primary stress in tens+units | ||||
| // bit9=only one vowel betwen tens and units | // bit9=only one vowel betwen tens and units | ||||
| // bit17=recognize roman numbers | // bit17=recognize roman numbers | ||||
| // bit18=Roman numbers only if upper case | // bit18=Roman numbers only if upper case | ||||
| // bit19=don't add pause after a number | // bit19=don't add pause after a number | ||||
| // bit20='and' before hundreds | |||||
| int numbers; | int numbers; | ||||
| // bits 1-4 use variant form of numbers before thousands,millions,etc. | // bits 1-4 use variant form of numbers before thousands,millions,etc. |