@@ -1,6 +1,10 @@ | |||
// This file in UTF8 encoded | |||
// letters | |||
ch tSe | |||
ll Ejje | |||
// numbers | |||
_0 TE*o |
@@ -24,7 +24,6 @@ | |||
.group c | |||
_) c (_ Te | |||
_) ch (_ tSe | |||
c k | |||
c (Y T // ce, ci | |||
ch tS | |||
@@ -87,9 +86,8 @@ | |||
.group l | |||
_) l (_ Ele | |||
_) ll (_ Eje | |||
l l | |||
ll l^ | |||
ll jj | |||
.group m |
@@ -76,12 +76,10 @@ _3 tRw'a | |||
_4 k'atR | |||
_5 s'E~c | |||
_6 s'iz3 | |||
six siz2 | |||
_7 s'Et | |||
_8 'w^it | |||
_9 n'@f | |||
_10 d'iz3 | |||
dix diz2 | |||
_11 O~z | |||
_12 d'uz | |||
_13 tR'Ez | |||
@@ -89,8 +87,8 @@ _14 kat'ORz | |||
_15 k'E~z | |||
_16 s'Ez | |||
_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~ | |||
_21 v'E~te:E~ | |||
_22 v'E~td'Y | |||
@@ -117,8 +115,8 @@ _74 swas'A~t:kat'ORz | |||
_75 swas'A~t:k'E~z | |||
_76 swas'A~t:s'Ez | |||
_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~ | |||
_80 k'atR@v'E~z2 | |||
_9X k'atR@v'E~d'is | |||
@@ -129,8 +127,8 @@ _94 k'atR@v'E~:kat'ORz | |||
_95 k'atR@v'E~:k'E~z | |||
_96 k'atR@v'E~:s'Ez | |||
_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~ | |||
_1C0 s'A~t2 | |||
_0M1 m'il | |||
@@ -389,7 +387,6 @@ boeufs bY | |||
bus bys | |||
choeur kWr | |||
discident disidA~ | |||
dix diz3 | |||
echo Eko | |||
fils fis | |||
haillon _|ajO~ | |||
@@ -404,7 +401,6 @@ pays pEi | |||
prudent pRydA~ | |||
secret sYkRE | |||
secrets sYkREz2 | |||
six siz3 | |||
@@ -605,3 +601,4 @@ vincent vE~sA~ | |||
@@ -730,7 +730,9 @@ | |||
_au) x (quel // auxquels | |||
_di) x (_neuf z // liaison: dix-neuf | |||
_di) x (_ z3 | |||
_si) x (_neu s // liaison: six-neuf | |||
_si) x (_ z3 | |||
di) x (iè z // dixième | |||
si) x (iè z // sixième |
@@ -30,7 +30,7 @@ | |||
ru 38 126 | |||
it 17 118 | |||
la 21 114 | |||
es 6 115 | |||
es 7 115 | |||
pt 27 131 | |||
pt_pt 20 131 | |||
ro 36 139 | |||
@@ -1049,6 +1049,7 @@ voc/v_ [B] base | |||
[v2] nl | |||
[v;] ro | |||
[v] is | |||
voc/v2 [v] es | |||
vocw/dh [D] base | |||
[D] es | |||
vocw/Q [Q] base | |||
@@ -1061,6 +1062,7 @@ vocw/v [B] base | |||
[v] base | |||
[v] fr | |||
[v] ta | |||
[v] es | |||
[v;] ro | |||
vocw/zh [Z] base | |||
[Z;] ro |
@@ -55,3 +55,14 @@ phoneme s | |||
switchvoicing z | |||
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 | |||
@@ -552,7 +552,7 @@ void Translator::MakePhonemeList(int post_pause, int start_sentence) | |||
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) | |||
{ |
@@ -433,6 +433,8 @@ static espeak_ERROR Synthesize(unsigned int unique_identifier, const void *text, | |||
length = (out_ptr - outbuf)/2; | |||
count_samples += length; | |||
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++; | |||
if (my_mode==AUDIO_OUTPUT_PLAYBACK) | |||
@@ -460,6 +462,8 @@ static espeak_ERROR Synthesize(unsigned int unique_identifier, const void *text, | |||
// 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].unique_identifier = my_unique_identifier; | |||
event_list[0].user_data = my_user_data; | |||
if(SpeakNextClause(NULL,NULL,1)==0) | |||
{ |
@@ -430,7 +430,10 @@ int MbrolaSynth(char *p_mbrola) | |||
out_ptr = outbuf + len*2; | |||
if(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; | |||
finished = synth_callback((short *)outbuf, len, event_list); | |||
event_list_ix=0; | |||
@@ -475,7 +478,10 @@ int MbrolaSynth(char *p_mbrola) | |||
out_ptr += (len*2); | |||
if(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; | |||
finished = synth_callback((short *)outbuf, len, event_list); | |||
event_list_ix=0; |
@@ -35,7 +35,7 @@ | |||
#include "translate.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; | |||
int option_device_number = -1; |
@@ -502,6 +502,8 @@ static int WaveCallback(const void *inputBuffer, void *outputBuffer, | |||
{ | |||
// 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].user_data = 0; | |||
if(synth_callback(NULL,0,event_list) == 1) | |||
{ | |||
SpeakNextClause(NULL,NULL,2); // stop speaking |