Add API function: espeak_TextToPhonemes(). git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@349 d46cf337-b52f-0410-862d-fd96e6ae7743master
| @@ -148,7 +148,7 @@ p Q r R s s; t T | |||
| ts v x z | |||
| Dictionary en_dict 2013-04-25 | |||
| Dictionary en_dict 2013-04-26 | |||
| 0 0# 3 3: @ @- @2 @5 | |||
| @L a a# A: A@ aa aI aI3 | |||
| @@ -574,7 +574,7 @@ S s; S; t t; tS ts tS; | |||
| ts; v w x z Z Z; | |||
| Dictionary pt_dict 2013-04-25 | |||
| Dictionary pt_dict 2013-04-26 | |||
| & &/ &U~ &~ @ @- a A | |||
| aI aU e E eI EI eU EU | |||
| @@ -151,19 +151,14 @@ _} raItbreIs | |||
| _¡ %Inv,3:tI2dEkskl@m'eIS@n | |||
| _¦ broUk@nb'A@ | |||
| _¨ daIa#r'i:sIs | |||
| _ª fEmI2nIn'O@dI2n@L | |||
| _« lEft'gIl@mEt | |||
| _ makr0n | |||
| ² tu: | |||
| ³ Tri: | |||
| _¹ su:p@skrIptw'0n | |||
| _² su:p@skrIptt'u: | |||
| _³ su:p@skrIptT'ri: | |||
| ² tu: $native | |||
| ³ Tri: $native | |||
| _´ a#kju:taksEnt | |||
| _· mId@Ld0t | |||
| _¸ sEd'Il@ | |||
| //_º maskjUlIn'O@dI2n@L | |||
| _º dI2gr'i:z | |||
| _» raIt'gIl@mEt | |||
| _¿ %Inv,3:tI2dkw'EstS@n | |||
| @@ -1612,7 +1607,6 @@ fortune fO@tSu:n | |||
| foyer fOIeI | |||
| freelance fri:laans | |||
| freon fri:0n | |||
| frequent frI2kwEnt $verb | |||
| fricassee frIka#seI | |||
| frigate frIg@t | |||
| fringer frIndZ3 // infringer | |||
| @@ -3483,7 +3477,7 @@ Amy eImi | |||
| Andre 0ndreI | |||
| Andrea andri@ | |||
| Andreas A:ndr'eI@s | |||
| Angela $1 | |||
| Angela ang@l@ | |||
| Anita $alt3 | |||
| Anthony ant@ni | |||
| Anton ant0n | |||
| @@ -2486,6 +2486,7 @@ | |||
| ery (A 3j | |||
| _v) ery ErI2 | |||
| qu) ery i@rI | |||
| _x) er (o i@r | |||
| z) er (o i@r | |||
| _C) er (o_ i@r | |||
| er (rA E | |||
| @@ -835,7 +835,6 @@ dobro $alt $verb | |||
| doce $alt2 | |||
| doutora $alt2 | |||
| doze $alt2 | |||
| droga $alt | |||
| dueto $alt2 | |||
| elixir eliSir | |||
| emprego $alt2 $noun | |||
| @@ -1100,7 +1099,7 @@ rota $alt2 | |||
| rota $alt $noun | |||
| rubores $alt2 | |||
| rumores $alt2 | |||
| sabonete $alt2 | |||
| sabonete $alt2 | |||
| sabores $alt2 | |||
| saibro s'aIbRU | |||
| saleta $alt2 | |||
| @@ -1229,7 +1228,6 @@ laptop lEptOp | |||
| ?1 line l'ain | |||
| layout l'eI,aUt | |||
| ?2 login logiN | |||
| ?2 logo l'OgU | |||
| ?1 lock l'Ok | |||
| mail m'eIl | |||
| mails m'eIls | |||
| @@ -214,7 +214,7 @@ | |||
| i) e (r_ E | |||
| @s) e (r_ E | |||
| qu) e (r_ E | |||
| qu) e (r_ E | |||
| ib) e (rL04_ E | |||
| d) e (rL04_ E | |||
| @@ -229,7 +229,7 @@ | |||
| f) e (rL02_ E | |||
| e (quL02_ E | |||
| e (rbL04_ E | |||
| e (rbL04_ E | |||
| e (rgL04_ E | |||
| e (rsL04_ E | |||
| @@ -239,7 +239,7 @@ e (rbL04_ E | |||
| e (ssL04_ E | |||
| e (ss_ E // stress and english words | |||
| ?2 ection (_ 'EkS&~N | |||
| ?2 ee (n_ i | |||
| ?2 ee (n_ i | |||
| e (stL04_ E | |||
| e (strL04_ E | |||
| @@ -372,7 +372,6 @@ e (rbL04_ E | |||
| tiv) e (L05_ E // es- | |||
| viv) e (L05_ e | |||
| _com) e (L05_ e | |||
| s_colh) e (res_ E | |||
| _cos) e (L05_ e | |||
| _pud) e (L05_ E | |||
| _coub) e (L05_ E | |||
| @@ -425,18 +424,17 @@ _corro) e (L07_ e | |||
| _interromp) e (L07_ e | |||
| _troux) e (L07_ E | |||
| _ens) e (bL03_ E | |||
| _enver) e (dL03_ E | |||
| _amanc) e (bL03_ E | |||
| qu) e (brL04_ E | |||
| _cel) e (brL04_ E | |||
| _boch) e (chL04_ e | |||
| _on) e (rL04_ E | |||
| _ex) e (crL04_ E | |||
| _ex) e (crL04_ E | |||
| _enr) e (dL01_ E | |||
| _v) e (dL03_ E | |||
| _arr) e (dL03_ E | |||
| _depr) e (dL03_ E | |||
| _hosp) e (dL03_ E | |||
| _enver) e (dL03_ E | |||
| _gr) e (gL03_ e | |||
| _gal) e (gL03_ e | |||
| _pel) e (gL03_ e | |||
| @@ -455,6 +453,7 @@ _amanc) e (bL03_ E | |||
| _g) e (rL04_ E | |||
| _z) e (rL04_ E | |||
| qu) e (rL04_ E // re- | |||
| _on) e (rL04_ E | |||
| _op) e (rL04_ E | |||
| gen) e (rL04_ E // de- re- | |||
| _alt) e (rL04_ E | |||
| @@ -475,15 +474,16 @@ _adult) e (rL04_ E | |||
| _persev) e (rL04_ E | |||
| _recup) e (rL04_ E | |||
| _refrig) e (rL04_ E | |||
| _ex) e (rcL02_ E | |||
| _ex) e (rcL02_ E | |||
| _alic) e (rcL02_ E | |||
| _p) e (rdL02_ E | |||
| _l) e (rdL03_ E | |||
| _h) e (rdL04_ E | |||
| _des) e (rdL04_ E | |||
| s_colh) e (res_ E | |||
| _) e (rgL03_ e | |||
| _so) e (rgL03_ e | |||
| _re) e (rgL03_ e | |||
| _so) e (rgL03_ e | |||
| _bez) e (rrL03_ e | |||
| v) e (rtL03_ e // con- re- in- | |||
| _f) e (rvL03_ e | |||
| @@ -855,8 +855,8 @@ _entorp) e (çL03_ e | |||
| óCC) o (CA_ o | |||
| úC) o (CA_ o | |||
| úCC) o (CA_ o | |||
| ?2 otion (_ 'owS&~N | |||
| ?2 otion (_ 'owS&~N | |||
| //sort | |||
| _f) o (L05_ o | |||
| _pormen) o (L05_ O | |||
| @@ -866,15 +866,15 @@ _pormen) o (L05_ O | |||
| _esn) o (bL04_ O | |||
| _engl) o (bL04_ O | |||
| _sal) o (brL03_ o | |||
| _env) o (ltL03_ o | |||
| _) o (cL03_ o | |||
| _m) o (fL01_ O | |||
| _m) o (fL02_ O | |||
| _s) o (frL02_ O | |||
| l) o (gL04_ O // dialoga, etc. | |||
| r) o (gL04_ O // inter- | |||
| v) o (gL04_ O // advoga, etc. | |||
| _j) o (gL04_ O | |||
| af) o (gL04_ O // des- | |||
| _adv) o (gL04_ O | |||
| _ref) o (gL04_ O | |||
| _ap) oi (L01_ OI | |||
| _ap) oi (L02_ OI | |||
| @@ -884,6 +884,7 @@ _pormen) o (L05_ O | |||
| _emp) o (lgL04_ O | |||
| _) o (lhL04_ O | |||
| m) o (lhL04_ O | |||
| _env) o (ltL03_ o | |||
| ent) o (pL02_ O | |||
| _c) o (pL03_ O | |||
| _t) o (pL04_ O | |||
| @@ -1077,8 +1078,8 @@ _remem) o (rL04_ O | |||
| u (a u | |||
| g) u (a+ w | |||
| q) u (a+ w | |||
| u (eC u | |||
| u (ei u | |||
| u (eC u | |||
| u (ei u | |||
| r) u (_A u | |||
| u (L04_ 'u | |||
| @@ -1086,8 +1087,8 @@ u (ei u | |||
| ui (_ 'uI | |||
| u (iu w | |||
| u (iCK u | |||
| u (éC u | |||
| u (íC u | |||
| u (éC u | |||
| u (íC u | |||
| uy uI | |||
| ul (K uw | |||
| u (lh+ u | |||
| @@ -1100,7 +1101,7 @@ u (íC u | |||
| g) u (Y | |||
| _m) ui (tA_ 'wiN | |||
| ?2 ution (_ 'uS&~N | |||
| ?2 ution (_ 'uS&~N | |||
| .group ú | |||
| @@ -2,7 +2,7 @@ | |||
| [Setup] | |||
| AppName=eSpeak | |||
| AppVerName=eSpeak version 1.47.06 | |||
| AppVerName=eSpeak version 1.47.08 | |||
| AppCopyright=Licensed under GNU General Public License version 3. (See file License.txt for details). | |||
| WindowVisible=yes | |||
| @@ -1,7 +1,7 @@ | |||
| [Setup] | |||
| AppName=eSpeakEdit | |||
| AppVerName=eSpeakEdit version 1.47.06 | |||
| AppVerName=eSpeakEdit version 1.47.08 | |||
| DefaultDirName={pf}\eSpeak | |||
| DefaultGroupName=eSpeak | |||
| OutputBaseFilename=setup_espeakedit | |||
| @@ -133,6 +133,7 @@ MNEM_TAB mnem_flags[] = { | |||
| {"$stem", 0x30}, // must have a suffix | |||
| {"$atend", 0x31}, // use this pronunciation if at end of clause | |||
| {"$atstart", 0x32}, // use this pronunciation at start of clause | |||
| {"$native", 0x33}, // not if we've switched translators | |||
| // doesn't set dictionary_flags | |||
| {"$?", 100}, // conditional rule, followed by byte giving the condition number | |||
| @@ -3275,6 +3275,11 @@ static const char *LookupDict2(Translator *tr, const char *word, const char *wor | |||
| continue; | |||
| } | |||
| } | |||
| if(dictionary_flags2 & FLAG_NATIVE) | |||
| { | |||
| if(tr != translator) | |||
| continue; // don't use if we've switched translators | |||
| } | |||
| if(dictionary_flags & FLAG_ALT2_TRANS) | |||
| { | |||
| // language specific | |||
| @@ -199,6 +199,7 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame) | |||
| EVT_MENU(MENU_OPT_SPEED, MyFrame::OnOptions) | |||
| EVT_MENU(MENU_OPT_PUNCT, MyFrame::OnOptions) | |||
| EVT_MENU(MENU_OPT_SPELL, MyFrame::OnOptions) | |||
| EVT_MENU(MENU_OPT_SPELL2, MyFrame::OnOptions) | |||
| EVT_MENU(MENU_PATH0, MyFrame::OnOptions) | |||
| EVT_MENU(MENU_PATH1, MyFrame::OnOptions) | |||
| EVT_MENU(MENU_PATH2, MyFrame::OnOptions) | |||
| @@ -625,6 +626,12 @@ void OnOptions2(int event_id) | |||
| break; | |||
| case MENU_OPT_SPELL: | |||
| transldlg->t_source->SetValue(_T("<say-as interpret-as=\"characters\">\n")); | |||
| transldlg->t_source->SetInsertionPointEnd(); | |||
| notebook->SetSelection(1); | |||
| break; | |||
| case MENU_OPT_SPELL2: | |||
| transldlg->t_source->SetValue(_T("<say-as interpret-as=\"tts:char\">\n")); | |||
| transldlg->t_source->SetInsertionPointEnd(); | |||
| notebook->SetSelection(1); | |||
| @@ -127,6 +127,7 @@ enum { | |||
| MENU_OPT_SPEED, | |||
| MENU_OPT_PUNCT, | |||
| MENU_OPT_SPELL, | |||
| MENU_OPT_SPELL2, | |||
| MENU_PATHS, | |||
| MENU_PATH0, | |||
| MENU_PATH1, | |||
| @@ -119,8 +119,10 @@ wxMenuBar *MakeMenu(int type, const char *dict_name) | |||
| option_menu = new wxMenu; | |||
| option_menu->Append(MENU_PATHS, _("Set &paths"), paths_menu); | |||
| option_menu->Append(MENU_OPT_SPEED, _("Speed...")); | |||
| option_menu->AppendSeparator(); | |||
| option_menu->Append(MENU_OPT_PUNCT, _("Speak punctuation")); | |||
| option_menu->Append(MENU_OPT_SPELL, _("Speak character names")); | |||
| option_menu->Append(MENU_OPT_SPELL, _("Speak characters")); | |||
| option_menu->Append(MENU_OPT_SPELL2, _("Speak character name")); | |||
| // TOOLS | |||
| vowelchart_menu = new wxMenu; | |||
| @@ -727,37 +727,41 @@ int TranslateLetter(Translator *tr, char *word, char *phonemes, int control) | |||
| } | |||
| } | |||
| letter = towlower2(letter); | |||
| LookupLetter(tr, letter, word[n_bytes], ph_buf, control & 1); | |||
| // is this a subscript or superscript letter ? | |||
| for(ix=0; (c = derived_letters[ix]) != 0; ix+=2) | |||
| if(ph_buf[0] == 0) | |||
| { | |||
| if(c > letter) | |||
| break; | |||
| if(c == letter) | |||
| // is this a subscript or superscript letter ? | |||
| for(ix=0; (c = derived_letters[ix]) != 0; ix+=2) | |||
| { | |||
| c = derived_letters[ix+1]; | |||
| letter = c & 0x3fff; | |||
| if((modifier = modifiers[c >> 14]) != NULL) | |||
| if(c > letter) | |||
| break; | |||
| if(c == letter) | |||
| { | |||
| Lookup(tr, modifier, capital); | |||
| if(capital[0] == 0) | |||
| c = derived_letters[ix+1]; | |||
| letter = c & 0x3fff; | |||
| if((modifier = modifiers[c >> 14]) != NULL) | |||
| { | |||
| capital[2] = SetTranslator2("en"); // overwrites previous contents of translator2 | |||
| Lookup(translator2, modifier, &capital[3]); | |||
| if(capital[3] != 0) | |||
| Lookup(tr, modifier, capital); | |||
| if(capital[0] == 0) | |||
| { | |||
| capital[0] = phonPAUSE; | |||
| capital[1] = phonSWITCH; | |||
| len = strlen(&capital[3]); | |||
| capital[len+3] = phonSWITCH; | |||
| capital[len+4] = phontab_1; | |||
| capital[len+5] = 0; | |||
| capital[2] = SetTranslator2("en"); // overwrites previous contents of translator2 | |||
| Lookup(translator2, modifier, &capital[3]); | |||
| if(capital[3] != 0) | |||
| { | |||
| capital[0] = phonPAUSE; | |||
| capital[1] = phonSWITCH; | |||
| len = strlen(&capital[3]); | |||
| capital[len+3] = phonSWITCH; | |||
| capital[len+4] = phontab_1; | |||
| capital[len+5] = 0; | |||
| } | |||
| } | |||
| } | |||
| } | |||
| } | |||
| LookupLetter(tr, letter, word[n_bytes], ph_buf, control & 1); | |||
| } | |||
| LookupLetter(tr, letter, word[n_bytes], ph_buf, control & 1); | |||
| if(ph_buf[0] == phonSWITCH) | |||
| { | |||
| @@ -503,13 +503,13 @@ int towupper2(unsigned int c) | |||
| return(towupper(c)); | |||
| // check whether a previous character code is the upper-case equivalent of this character | |||
| if(towlower2(c-32) == c) | |||
| if(towlower2(c-32) == (int)c) | |||
| return(c-32); // yes, use it | |||
| if(towlower2(c-1) == c) | |||
| if(towlower2(c-1) == (int)c) | |||
| return(c-1); | |||
| for(ix=0; wchar_toupper[ix] != 0; ix+=2) | |||
| { | |||
| if(wchar_toupper[ix] == c) | |||
| if(wchar_toupper[ix] == (int)c) | |||
| return(wchar_toupper[ix+1]); | |||
| } | |||
| return(c); // no | |||
| @@ -1167,7 +1167,7 @@ ESPEAK_API void espeak_SetPhonemeTrace(int value, FILE *stream) | |||
| ESPEAK_API void espeak_TextToPhonemes(const void *text, char *buffer, int size, int textmode, int phonememode) | |||
| {//============================================================================================================== | |||
| /* phoneme_mode bits 0-3: 0=only phoneme names, 1=ties, 2=ZWJ, 3=underscore separator | |||
| bit 4: 0=eSpeak phoneme names, 1=IPA | |||
| bits 4-7: 0=eSpeak phoneme names, 1=IPA | |||
| */ | |||
| option_multibyte = textmode & 7; | |||
| TranslateClause(translator, NULL, text, NULL, NULL); | |||
| @@ -55,6 +55,9 @@ Revision 7 24.Dec.2011 | |||
| Changed espeak_EVENT structure to add id.string[] for phoneme mnemonics. | |||
| Added espeakINITIALIZE_PHONEME_IPA option for espeak_Initialize() to report phonemes as IPA names. | |||
| Revision 8 26.Apr.2013 | |||
| Added function espeak_TextToPhonemes(). | |||
| */ | |||
| /********************/ | |||
| /* Initialization */ | |||
| @@ -94,7 +97,7 @@ typedef struct { | |||
| char string[8]; // used for phoneme names (UTF8). Terminated by a zero byte unless the name needs the full 8 bytes. | |||
| } id; | |||
| } espeak_EVENT; | |||
| /* | |||
| /* | |||
| When a message is supplied to espeak_synth, the request is buffered and espeak_synth returns. When the message is really processed, the callback function will be repetedly called. | |||
| @@ -102,16 +105,16 @@ typedef struct { | |||
| In PLAYBACK mode, the callback function is called as soon as an event happens. | |||
| For example suppose that the following message is supplied to espeak_Synth: | |||
| For example suppose that the following message is supplied to espeak_Synth: | |||
| "hello, hello." | |||
| * Once processed in RETRIEVAL mode, it could lead to 3 calls of the callback function : | |||
| ** Block 1: | |||
| <audio data> + | |||
| <audio data> + | |||
| List of events: SENTENCE + WORD + LIST_TERMINATED | |||
| ** Block 2: | |||
| <audio data> + | |||
| List of events: WORD + END + LIST_TERMINATED | |||
| @@ -148,11 +151,11 @@ typedef enum { | |||
| typedef enum { | |||
| /* PLAYBACK mode: plays the audio data, supplies events to the calling program*/ | |||
| AUDIO_OUTPUT_PLAYBACK, | |||
| AUDIO_OUTPUT_PLAYBACK, | |||
| /* RETRIEVAL mode: supplies audio data and events to the calling program */ | |||
| AUDIO_OUTPUT_RETRIEVAL, | |||
| /* SYNCHRONOUS mode: as RETRIEVAL but doesn't return until synthesis is completed */ | |||
| AUDIO_OUTPUT_SYNCHRONOUS, | |||
| @@ -199,7 +202,7 @@ extern "C" | |||
| ESPEAK_API void espeak_SetSynthCallback(t_espeak_callback* SynthCallback); | |||
| /* Must be called before any synthesis functions are called. | |||
| This specifies a function in the calling program which is called when a buffer of | |||
| speech sound data has been produced. | |||
| speech sound data has been produced. | |||
| The callback function is of the form: | |||
| @@ -288,7 +291,7 @@ ESPEAK_API espeak_ERROR espeak_Synth(const void *text, | |||
| start of the text. | |||
| position_type: Determines whether "position" is a number of characters, words, or sentences. | |||
| Values: | |||
| Values: | |||
| end_position: If set, this gives a character position at which speaking will stop. A value | |||
| of zero indicates no end position. | |||
| @@ -299,6 +302,7 @@ ESPEAK_API espeak_ERROR espeak_Synth(const void *text, | |||
| espeakCHARS_8BIT The 8 bit ISO-8859 character set for the particular language. | |||
| espeakCHARS_AUTO 8 bit or UTF8 (this is the default) | |||
| espeakCHARS_WCHAR Wide characters (wchar_t) | |||
| espeakCHARS_16BIT 16 bit characters. | |||
| espeakSSML Elements within < > are treated as SSML elements, or if not recognised are ignored. | |||
| @@ -307,13 +311,13 @@ ESPEAK_API espeak_ERROR espeak_Synth(const void *text, | |||
| espeakENDPAUSE If set then a sentence pause is added at the end of the text. If not set then | |||
| this pause is suppressed. | |||
| unique_identifier: message identifier; helpful for identifying later | |||
| unique_identifier: message identifier; helpful for identifying later | |||
| data supplied to the callback. | |||
| user_data: pointer which will be passed to the callback function. | |||
| Return: EE_OK: operation achieved | |||
| EE_BUFFER_FULL: the command can not be buffered; | |||
| Return: EE_OK: operation achieved | |||
| EE_BUFFER_FULL: the command can not be buffered; | |||
| you may try after a while to call the function again. | |||
| EE_INTERNAL_ERROR. | |||
| */ | |||
| @@ -336,8 +340,8 @@ ESPEAK_API espeak_ERROR espeak_Synth_Mark(const void *text, | |||
| For the other parameters, see espeak_Synth() | |||
| Return: EE_OK: operation achieved | |||
| EE_BUFFER_FULL: the command can not be buffered; | |||
| Return: EE_OK: operation achieved | |||
| EE_BUFFER_FULL: the command can not be buffered; | |||
| you may try after a while to call the function again. | |||
| EE_INTERNAL_ERROR. | |||
| */ | |||
| @@ -350,8 +354,8 @@ ESPEAK_API espeak_ERROR espeak_Key(const char *key_name); | |||
| If key_name is a single character, it speaks the name of the character. | |||
| Otherwise, it speaks key_name as a text string. | |||
| Return: EE_OK: operation achieved | |||
| EE_BUFFER_FULL: the command can not be buffered; | |||
| Return: EE_OK: operation achieved | |||
| EE_BUFFER_FULL: the command can not be buffered; | |||
| you may try after a while to call the function again. | |||
| EE_INTERNAL_ERROR. | |||
| */ | |||
| @@ -360,10 +364,10 @@ ESPEAK_API espeak_ERROR espeak_Key(const char *key_name); | |||
| extern "C" | |||
| #endif | |||
| ESPEAK_API espeak_ERROR espeak_Char(wchar_t character); | |||
| /* Speak the name of the given character | |||
| /* Speak the name of the given character | |||
| Return: EE_OK: operation achieved | |||
| EE_BUFFER_FULL: the command can not be buffered; | |||
| Return: EE_OK: operation achieved | |||
| EE_BUFFER_FULL: the command can not be buffered; | |||
| you may try after a while to call the function again. | |||
| EE_INTERNAL_ERROR. | |||
| */ | |||
| @@ -420,7 +424,7 @@ ESPEAK_API espeak_ERROR espeak_SetParameter(espeak_PARAMETER parameter, int valu | |||
| espeakRANGE: pitch range, range 0-100. 0-monotone, 50=normal | |||
| espeakPUNCTUATION: which punctuation characters to announce: | |||
| value in espeak_PUNCT_TYPE (none, all, some), | |||
| value in espeak_PUNCT_TYPE (none, all, some), | |||
| see espeak_GetParameter() to specify which characters are announced. | |||
| espeakCAPITALS: announce capital letters by: | |||
| @@ -432,8 +436,8 @@ ESPEAK_API espeak_ERROR espeak_SetParameter(espeak_PARAMETER parameter, int valu | |||
| espeakWORDGAP: pause between words, units of 10mS (at the default speed) | |||
| Return: EE_OK: operation achieved | |||
| EE_BUFFER_FULL: the command can not be buffered; | |||
| Return: EE_OK: operation achieved | |||
| EE_BUFFER_FULL: the command can not be buffered; | |||
| you may try after a while to call the function again. | |||
| EE_INTERNAL_ERROR. | |||
| */ | |||
| @@ -455,8 +459,8 @@ ESPEAK_API espeak_ERROR espeak_SetPunctuationList(const wchar_t *punctlist); | |||
| punctlist: A list of character codes, terminated by a zero character. | |||
| Return: EE_OK: operation achieved | |||
| EE_BUFFER_FULL: the command can not be buffered; | |||
| Return: EE_OK: operation achieved | |||
| EE_BUFFER_FULL: the command can not be buffered; | |||
| you may try after a while to call the function again. | |||
| EE_INTERNAL_ERROR. | |||
| */ | |||
| @@ -474,6 +478,35 @@ ESPEAK_API void espeak_SetPhonemeTrace(int value, FILE *stream); | |||
| stream output stream for the phoneme symbols (and trace). If stream=NULL then it uses stdout. | |||
| */ | |||
| #ifdef __cplusplus | |||
| extern "C" | |||
| #endif | |||
| ESPEAK_API void espeak_TextToPhonemes(const void *text, char *buffer, int size, int textmode, int phonememode); | |||
| /* Translates text into phonemes. Call espeak_SetVoiceByName() first, to select a language. | |||
| text: The text to translate, terminated by a zero character. | |||
| buffer: Output buffer for the phoneme translation. | |||
| size: Size of the output buffer in bytes. | |||
| textmode: Type of character codes, one of: | |||
| espeakCHARS_UTF8 UTF8 encoding | |||
| espeakCHARS_8BIT The 8 bit ISO-8859 character set for the particular language. | |||
| espeakCHARS_AUTO 8 bit or UTF8 (this is the default) | |||
| espeakCHARS_WCHAR Wide characters (wchar_t) | |||
| espeakCHARS_16BIT 16 bit characters. | |||
| phonememode: bits0-3: | |||
| 0= just phonemes. | |||
| 1= include ties (U+361) for phoneme names of more than one letter. | |||
| 2= include zero-width-joiner for phoneme names of more than one letter. | |||
| 3= separate phonemes with underscore characters. | |||
| bits 4-7: | |||
| 0= eSpeak's ascii phoneme names. | |||
| 1= International Phonetic Alphabet (as UTF-8 characters). | |||
| */ | |||
| #ifdef __cplusplus | |||
| extern "C" | |||
| #endif | |||
| @@ -501,7 +534,7 @@ typedef struct { | |||
| unsigned char gender; // 0=none 1=male, 2=female, | |||
| unsigned char age; // 0=not specified, or age in years | |||
| unsigned char variant; // only used when passed as a parameter to espeak_SetVoiceByProperties | |||
| unsigned char xx1; // for internal use | |||
| unsigned char xx1; // for internal use | |||
| int score; // for internal use | |||
| void *spare; // for internal use | |||
| } espeak_VOICE; | |||
| @@ -546,8 +579,8 @@ ESPEAK_API espeak_ERROR espeak_SetVoiceByName(const char *name); | |||
| /* Searches for a voice with a matching "name" field. Language is not considered. | |||
| "name" is a UTF8 string. | |||
| Return: EE_OK: operation achieved | |||
| EE_BUFFER_FULL: the command can not be buffered; | |||
| Return: EE_OK: operation achieved | |||
| EE_BUFFER_FULL: the command can not be buffered; | |||
| you may try after a while to call the function again. | |||
| EE_INTERNAL_ERROR. | |||
| */ | |||
| @@ -588,7 +621,7 @@ ESPEAK_API espeak_ERROR espeak_Cancel(void); | |||
| function returns, the audio output is fully stopped and the synthesizer is ready to | |||
| synthesize a new message. | |||
| Return: EE_OK: operation achieved | |||
| Return: EE_OK: operation achieved | |||
| EE_INTERNAL_ERROR. | |||
| */ | |||
| @@ -605,7 +638,7 @@ extern "C" | |||
| #endif | |||
| ESPEAK_API espeak_ERROR espeak_Synchronize(void); | |||
| /* This function returns when all data have been spoken. | |||
| Return: EE_OK: operation achieved | |||
| Return: EE_OK: operation achieved | |||
| EE_INTERNAL_ERROR. | |||
| */ | |||
| @@ -614,7 +647,7 @@ extern "C" | |||
| #endif | |||
| ESPEAK_API espeak_ERROR espeak_Terminate(void); | |||
| /* last function to be called. | |||
| Return: EE_OK: operation achieved | |||
| Return: EE_OK: operation achieved | |||
| EE_INTERNAL_ERROR. | |||
| */ | |||
| @@ -35,7 +35,7 @@ | |||
| #include "translate.h" | |||
| #include "wave.h" | |||
| const char *version_string = "1.47.07b 25.Apr.13"; | |||
| const char *version_string = "1.47.08 26.Apr.13"; | |||
| const int version_phdata = 0x014701; | |||
| int option_device_number = -1; | |||
| @@ -81,8 +81,9 @@ | |||
| #define FLAG_ONLY 0x4000 | |||
| #define FLAG_ONLY_S 0x8000 | |||
| #define FLAG_STEM 0x10000 // must have a suffix | |||
| #define FLAG_ATEND 0x20000 /* use this pronunciation if at end of clause */ | |||
| #define FLAG_ATEND 0x20000 // use this pronunciation if at end of clause | |||
| #define FLAG_ATSTART 0x40000 // use this pronunciation if at start of clause | |||
| #define FLAG_NATIVE 0x80000 // not if we've switched translators | |||
| #define FLAG_LOOKUP_SYMBOL 0x40000000 // to indicate called from Lookup() | |||
| #define BITNUM_FLAG_ALLCAPS 0x2a | |||