| // This file in UTF8 encoded | // This file in UTF8 encoded | ||||
| // letters | |||||
| ch tSe | |||||
| ll Ejje | |||||
| // numbers | // numbers | ||||
| _0 TE*o | _0 TE*o |
| .group c | .group c | ||||
| _) c (_ Te | _) c (_ Te | ||||
| _) ch (_ tSe | |||||
| c k | c k | ||||
| c (Y T // ce, ci | c (Y T // ce, ci | ||||
| ch tS | ch tS | ||||
| .group l | .group l | ||||
| _) l (_ Ele | _) l (_ Ele | ||||
| _) ll (_ Eje | |||||
| l l | l l | ||||
| ll l^ | |||||
| ll jj | |||||
| .group m | .group m |
| _4 k'atR | _4 k'atR | ||||
| _5 s'E~c | _5 s'E~c | ||||
| _6 s'iz3 | _6 s'iz3 | ||||
| six siz2 | |||||
| _7 s'Et | _7 s'Et | ||||
| _8 'w^it | _8 'w^it | ||||
| _9 n'@f | _9 n'@f | ||||
| _10 d'iz3 | _10 d'iz3 | ||||
| dix diz2 | |||||
| _11 O~z | _11 O~z | ||||
| _12 d'uz | _12 d'uz | ||||
| _13 tR'Ez | _13 tR'Ez | ||||
| _15 k'E~z | _15 k'E~z | ||||
| _16 s'Ez | _16 s'Ez | ||||
| _17 d'is:'Et | _17 d'is:'Et | ||||
| _18 d'is:'w^it | |||||
| _19 d'is:n'@f | |||||
| _18 d'iz'w^it | |||||
| _19 d'izn'@f | |||||
| _20 v'E~ | _20 v'E~ | ||||
| _21 v'E~te:E~ | _21 v'E~te:E~ | ||||
| _22 v'E~td'Y | _22 v'E~td'Y | ||||
| _75 swas'A~t:k'E~z | _75 swas'A~t:k'E~z | ||||
| _76 swas'A~t:s'Ez | _76 swas'A~t:s'Ez | ||||
| _77 swas'A~t:d'is:'Et | _77 swas'A~t:d'is:'Et | ||||
| _78 swas'A~t:d'is:'w^it | |||||
| _79 swas'A~t:d'is:n'@f | |||||
| _78 swas'A~t:d'iz'w^it | |||||
| _79 swas'A~t:d'izn'@f | |||||
| _8X k'atR@v'E~ | _8X k'atR@v'E~ | ||||
| _80 k'atR@v'E~z2 | _80 k'atR@v'E~z2 | ||||
| _9X k'atR@v'E~d'is | _9X k'atR@v'E~d'is | ||||
| _95 k'atR@v'E~:k'E~z | _95 k'atR@v'E~:k'E~z | ||||
| _96 k'atR@v'E~:s'Ez | _96 k'atR@v'E~:s'Ez | ||||
| _97 k'atR@v'E~:d'is:'Et | _97 k'atR@v'E~:d'is:'Et | ||||
| _98 k'atR@v'E~:d'is:'w^it | |||||
| _99 k'atR@v'E~:d'is:n'@f | |||||
| _98 k'atR@v'E~:d'iz'w^it | |||||
| _99 k'atR@v'E~:d'izn'@f | |||||
| _0C s'A~ | _0C s'A~ | ||||
| _1C0 s'A~t2 | _1C0 s'A~t2 | ||||
| _0M1 m'il | _0M1 m'il | ||||
| bus bys | bus bys | ||||
| choeur kWr | choeur kWr | ||||
| discident disidA~ | discident disidA~ | ||||
| dix diz3 | |||||
| echo Eko | echo Eko | ||||
| fils fis | fils fis | ||||
| haillon _|ajO~ | haillon _|ajO~ | ||||
| prudent pRydA~ | prudent pRydA~ | ||||
| secret sYkRE | secret sYkRE | ||||
| secrets sYkREz2 | secrets sYkREz2 | ||||
| six siz3 | |||||
| _au) x (quel // auxquels | _au) x (quel // auxquels | ||||
| _di) x (_neuf z // liaison: dix-neuf | _di) x (_neuf z // liaison: dix-neuf | ||||
| _di) x (_ z3 | |||||
| _si) x (_neu s // liaison: six-neuf | _si) x (_neu s // liaison: six-neuf | ||||
| _si) x (_ z3 | |||||
| di) x (iè z // dixième | di) x (iè z // dixième | ||||
| si) x (iè z // sixième | si) x (iè z // sixième |
| ru 38 126 | ru 38 126 | ||||
| it 17 118 | it 17 118 | ||||
| la 21 114 | la 21 114 | ||||
| es 6 115 | |||||
| es 7 115 | |||||
| pt 27 131 | pt 27 131 | ||||
| pt_pt 20 131 | pt_pt 20 131 | ||||
| ro 36 139 | ro 36 139 | ||||
| [v2] nl | [v2] nl | ||||
| [v;] ro | [v;] ro | ||||
| [v] is | [v] is | ||||
| voc/v2 [v] es | |||||
| vocw/dh [D] base | vocw/dh [D] base | ||||
| [D] es | [D] es | ||||
| vocw/Q [Q] base | vocw/Q [Q] base | ||||
| [v] base | [v] base | ||||
| [v] fr | [v] fr | ||||
| [v] ta | [v] ta | ||||
| [v] es | |||||
| [v;] ro | [v;] ro | ||||
| vocw/zh [Z] base | vocw/zh [Z] base | ||||
| [Z;] ro | [Z;] ro |
| switchvoicing z | switchvoicing z | ||||
| endphoneme | endphoneme | ||||
| phoneme v | |||||
| vcd lbd frc | |||||
| vowelin f1=0 f2=1000 -300 -200 f3=-300 100 | |||||
| vowelout f1=0 f2=1000 -500 -300 f3=-300 60 len=50 | |||||
| lengthmod 6 | |||||
| formants voc/v2+vocw/v // shorter | |||||
| endphoneme | |||||
| next2 = phoneme_tab[(plist2+2)->phcode]; | next2 = phoneme_tab[(plist2+2)->phcode]; | ||||
| if((insert_ph == 0) && (ph->link_out != 0) && !(ph->phflags && phBEFOREPAUSE) && (((plist2+1)->synthflags & SFLAG_EMBEDDED)==0)) | |||||
| if((insert_ph == 0) && (ph->link_out != 0) && !(ph->phflags & phBEFOREPAUSE) && (((plist2+1)->synthflags & SFLAG_EMBEDDED)==0)) | |||||
| { | { | ||||
| if(ph->phflags & phAPPENDPH) | if(ph->phflags & phAPPENDPH) | ||||
| { | { |
| length = (out_ptr - outbuf)/2; | length = (out_ptr - outbuf)/2; | ||||
| count_samples += length; | count_samples += length; | ||||
| event_list[event_list_ix].type = espeakEVENT_LIST_TERMINATED; // indicates end of event list | event_list[event_list_ix].type = espeakEVENT_LIST_TERMINATED; // indicates end of event list | ||||
| event_list[event_list_ix].unique_identifier = my_unique_identifier; | |||||
| event_list[event_list_ix].user_data = my_user_data; | |||||
| count_buffers++; | count_buffers++; | ||||
| if (my_mode==AUDIO_OUTPUT_PLAYBACK) | if (my_mode==AUDIO_OUTPUT_PLAYBACK) | ||||
| // This ensures that <audio> tag (which causes end-of-clause) is at a sound buffer boundary | // This ensures that <audio> tag (which causes end-of-clause) is at a sound buffer boundary | ||||
| event_list[0].type = espeakEVENT_LIST_TERMINATED; | event_list[0].type = espeakEVENT_LIST_TERMINATED; | ||||
| event_list[0].unique_identifier = my_unique_identifier; | |||||
| event_list[0].user_data = my_user_data; | |||||
| if(SpeakNextClause(NULL,NULL,1)==0) | if(SpeakNextClause(NULL,NULL,1)==0) | ||||
| { | { |
| out_ptr = outbuf + len*2; | out_ptr = outbuf + len*2; | ||||
| if(event_list) | if(event_list) | ||||
| { | |||||
| event_list[event_list_ix].type = espeakEVENT_LIST_TERMINATED; // indicates end of event list | event_list[event_list_ix].type = espeakEVENT_LIST_TERMINATED; // indicates end of event list | ||||
| event_list[event_list_ix].user_data = 0; | |||||
| } | |||||
| count_samples += len; | count_samples += len; | ||||
| finished = synth_callback((short *)outbuf, len, event_list); | finished = synth_callback((short *)outbuf, len, event_list); | ||||
| event_list_ix=0; | event_list_ix=0; | ||||
| out_ptr += (len*2); | out_ptr += (len*2); | ||||
| if(event_list) | if(event_list) | ||||
| { | |||||
| event_list[event_list_ix].type = espeakEVENT_LIST_TERMINATED; // indicates end of event list | event_list[event_list_ix].type = espeakEVENT_LIST_TERMINATED; // indicates end of event list | ||||
| event_list[event_list_ix].user_data = 0; | |||||
| } | |||||
| count_samples += len; | count_samples += len; | ||||
| finished = synth_callback((short *)outbuf, len, event_list); | finished = synth_callback((short *)outbuf, len, event_list); | ||||
| event_list_ix=0; | event_list_ix=0; |
| #include "translate.h" | #include "translate.h" | ||||
| #include "wave.h" | #include "wave.h" | ||||
| const char *version_string = "1.30.10 13.Jan.08"; | |||||
| const char *version_string = "1.30.11 13.Jan.08"; | |||||
| const int version_phdata = 0x013010; | const int version_phdata = 0x013010; | ||||
| int option_device_number = -1; | int option_device_number = -1; |
| { | { | ||||
| // synchronous-playback mode, allow the calling process to abort the speech | // synchronous-playback mode, allow the calling process to abort the speech | ||||
| event_list[event_list_ix].type = espeakEVENT_LIST_TERMINATED; // indicates end of event list | event_list[event_list_ix].type = espeakEVENT_LIST_TERMINATED; // indicates end of event list | ||||
| event_list[event_list_ix].user_data = 0; | |||||
| if(synth_callback(NULL,0,event_list) == 1) | if(synth_callback(NULL,0,event_list) == 1) | ||||
| { | { | ||||
| SpeakNextClause(NULL,NULL,2); // stop speaking | SpeakNextClause(NULL,NULL,2); // stop speaking |