// 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 |