Browse Source

Merge branch 'master' into patch-1

master
Juho Hiltunen 2 years ago
parent
commit
7b27bb2d9c
No account linked to committer's email address

+ 5
- 0
CMakeLists.txt View File

@@ -12,6 +12,7 @@ include(cmake/deps.cmake)
include(cmake/config.cmake)
add_subdirectory(src)
include(cmake/data.cmake)
include(cmake/docs.cmake)

include(cmake/package.cmake)
include(CPack)
@@ -29,3 +30,7 @@ message(STATUS " libpcaudio: ${USE_LIBPCAUDIO} (${PCAUDIO_LIB} ${PCAUDIO_INC})"
message(STATUS " klatt: ${USE_KLATT}")
message(STATUS " speech-player: ${USE_SPEECHPLAYER}")
message(STATUS " async: ${USE_ASYNC}")

install(
DIRECTORY vim/ftdetect vim/syntax DESTINATION share/vim/vimfiles
)

+ 1
- 1
ChangeLog.md View File

@@ -17,7 +17,7 @@ updated languages:
* be (Belarusian) -- Andiv06, bespsm, Alaksiej Stankievič
* cmn (Mandarin) -- Cameron Wong
* en (English) -- Bill Dengler
* es (Spanish) -- Sukil Etxenike
* es (Spanish) -- Sukil Etxenike, Rmcpantoja, gregodejesus
* fa (Persian) -- MH
* gn (Guarani) -- Andiv06
* he (Hebrew) -- Omer I.S, Andiv06

+ 2
- 0
cmake/config.cmake View File

@@ -12,3 +12,5 @@ if (HAVE_PTHREAD)
else()
set(USE_ASYNC OFF)
endif()

option(ESPEAK_COMPAT "Install compat binary symlinks" OFF)

+ 28
- 0
cmake/docs.cmake View File

@@ -0,0 +1,28 @@
find_program(RONN ronn)

option(ESPEAK_BUILD_MANPAGES "Build manpages" ${RONN})

if (RONN AND ESPEAK_BUILD_MANPAGES)
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/espeak-ng.1
COMMAND ${RONN} --roff -o ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/src/espeak-ng.1.ronn
)
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/speak-ng.1
COMMAND ${RONN} --roff -o ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/src/speak-ng.1.ronn
)

add_custom_target(
docs ALL
DEPENDS
${CMAKE_CURRENT_BINARY_DIR}/espeak-ng.1
${CMAKE_CURRENT_BINARY_DIR}/speak-ng.1
)

install(
FILES
${CMAKE_CURRENT_BINARY_DIR}/espeak-ng.1
${CMAKE_CURRENT_BINARY_DIR}/speak-ng.1
DESTINATION share/man/man1
)
endif()

+ 18
- 0
cmake/package.cmake View File

@@ -15,3 +15,21 @@ list(APPEND CPACK_SOURCE_IGNORE_FILES
/tools/
/vim/
)

set(PACKAGE_NAME ${PROJECT_NAME})
set(VERSION ${PROJECT_VERSION})

set(prefix ${CMAKE_INSTALL_PREFIX})
set(exec_prefix ${CMAKE_INSTALL_PREFIX})
set(libdir "\${exec_prefix}/lib")
set(includedir "\${prefix}/include")

configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.pc.in
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc
@ONLY
)

install(
FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc DESTINATION lib/pkgconfig
)

+ 1
- 0
dictsource/en_list View File

@@ -3052,6 +3052,7 @@ purport $2
purportedly $2
puree pjU@reI
?3 puttin pU?n
puyallup pju:'al@p
pyjama p@dZA:m@
pyrites paIr'aIti:z
pythagoras paIT'ag@r@s

+ 29
- 3
dictsource/es_list View File

@@ -284,7 +284,7 @@ n Ene
ñ En^e
p pe
q ku
r ERRe
r ER2e
?2 r ER2e
s Ese
t te
@@ -310,12 +310,17 @@ _ó 'o||aTEntw'aDa
ç $accent

// Abbreviations
aprox Aproximadamente $text
a. c antes||de||cristo $text $capital $dot
d. c después||de||cristo $text $capital $dot
dña doña $text
DNI $abbrev
dpto departamento $text
dr doctor $text $capital $dot
dra doctora $text $capital $dot
(ee.uu) Est'aDos||un'iDos
ej Ejemplo $text $dot
etc etcétera $text
Excmo excelentísimo $text $dot
Excma excelentísima $text $dot
Ilmo ilustrísimo $text $dot
@@ -325,12 +330,18 @@ izqda izquierda $text $dot
izqdo izquierdo $text $dot
kg kilogramo $text $dot
Mª maría $text $capital $dot
pag página $text $dot
Pte presidente $text $capital $dot
SAR su||alt'eTa||R2e'al $abbrev
SNM soBre||el|niB'el||del||m'ar $abbrev
Sr señor $text $capital $dot
Sra señora $text $capital $dot
Sras señoras $text $capital $dot
Sres señores $text $capital $dot
Srta señorita $text $capital $dot
SSS serB'iTjo||soTj'al||sustitut'orjo $abbrev
tel teléfono $text $dot
tqm te||kj'ero||m'utSo
Ud usted $text $capital $dot
Uds ustedes $text $capital $dot
// (/ h) por||'ora
@@ -350,26 +361,36 @@ vietnam $2

android 'androId
apple 'ap@l
copyright k'opiRR2,aIt
copyright k'opiR2,aIt
chrome kr'owm
curriculum $2
diem d'i:em $only
down d'awn
eloquence 'elokwens
english ínglish $text
espeak 'isp'ik
ETI itj'aI $capital
eyes 'aIs
facebook f'eIsbuk
file f'aIl
files f'aIls
firefox f'aIrfoks
free fr'i
google g'ug@l
hardware h'ardwer
hitler x'itler
instagram $1
iphone 'aIfon
ipod 'aIpod
jaws dZ'os
jazz dZ'as
junior dZ'unjor
kepler $1
linux $1
live l'aIB
drive dr'aIB
freedom fr'idom
gmail dZimeIL
reaper R2'iper
messenger m'esendZer
microsoft m'aIkrosoft
@@ -377,16 +398,21 @@ mozilla moT'ila
office 'ofis
platform pl'atfom
power p'awer
scientific $2
service s'erBis
skype sk'aIp
snapshot sn'apS,ot // _^_en
software s'oftwer
spanish sp'aniS
speech sp'itS
telegram $1
thunderbird t'anderbird
twit tw'it
twitter tw'iter
unigram $1
up ap
window w'indow
YouTube iut'uB $capital

(e speak) 'isp'ik
(i phone) 'aIfon
@@ -394,4 +420,4 @@ window w'indow

// Main nouns Dictionary
cataplum $3
progrom $3

+ 21
- 54
dictsource/extra/ru_listx View File

@@ -35153,6 +35153,8 @@
бонусная $1
бонусной $1
бонусную $1
бонусные $1
бонусный $1
бонусных $1
бонусов $1
бонусом $1
@@ -44161,8 +44163,6 @@
варварство $1
варварством $1
варварству $1
варвару $1
варвары $1
варган $2
варджаяны $3
вареанты $3
@@ -44473,9 +44473,7 @@
варьирующуюся $2
варьируясь $2
варьяциями $2
варю $2
варюсь $2
варя $2
варясь $2
варят $1
варятся $1
@@ -56794,6 +56792,7 @@
видеопленки $4
видеопленку $4
видеоподсистема $6
видеоподсистемами $6
видеопособие $5
видеопотока $5
видеопрезентацию $6
@@ -128722,7 +128721,6 @@
гордого $1
гордое $1
гордому $1
гордон $2
гордостей $1
гордости $1
гордость $1
@@ -131854,8 +131852,6 @@
гренаж $2
гренами $1
гренгуара $3
гренков $2
гренком $2
гренландец $2
гренландок $2
гренобль $2
@@ -137292,7 +137288,6 @@
двоюродными $2
двоюродных $2
двоюсь $2
двоя $2
двояковогнут $4
двояковогнута $4
двояковогнуто $4
@@ -153366,31 +153361,6 @@
домелют $2
домеля $3
домен $2
доменен $1
доменна $1
доменнее $1
доменней $1
доменно $1
доменной $1
доменном $1
доменному $1
доменною $1
доменную $1
доменны $1
доменные $1
доменный $1
доменными $1
доменных $1
доменщик $1
доменщика $1
доменщикам $1
доменщиками $1
доменщиках $1
доменщике $1
доменщики $1
доменщиков $1
доменщиком $1
доменщику $1
домеренная $2
домеренного $2
домеренное $2
@@ -166157,7 +166127,6 @@
ешиботе $3
еще $2
ещеж $2
ёзефа $2
ёмиури $3
ёситака $3
ёфикатор $3
@@ -189341,6 +189310,7 @@
замещал $3
замещала $3
замещало $3
замещаться $3
замещаю $3
замещая $3
замещен $3
@@ -225729,6 +225699,7 @@
ильчиным $1
илью $2
илья $2
ильяс $2
ильяшенко $3
имажинизм $4
имажинизма $4
@@ -227973,6 +227944,7 @@
инклюзив $3
инклюзива $3
инклюзиве $3
инклюзивно $3
инклюзиву $3
инклюзивы $3
инкорпорации $4
@@ -267391,7 +267363,6 @@
кривеющими $2
кривеющих $2
кривеющую $2
криви $2
кривившаяся $2
кривившегося $2
кривившееся $2
@@ -293818,7 +293789,6 @@
матвеенко $3
матвей $2
матвиенко $3
мате $2
матевосяна $4
мателота $3
мателоте $3
@@ -303456,8 +303426,6 @@
минеральна $3
минерально $3
минеральны $3
минет $1
минете $1
минздрав $2
миниаквапарк $5
миниально $3
@@ -306699,6 +306667,7 @@
модерированию $3
модерирования $3
модерируемой $3
модерируемые $3
модерирующие $3
модерирующим $3
модерирующих $3
@@ -311996,6 +311965,7 @@
мульчирование $2
мульчирования $2
мульчировать $2
мулюков $4
мулюр $2
муляж $2
муляжа $3
@@ -312128,13 +312098,11 @@
муниципальными $4
муниципальных $4
мунэатэ $3
мура $2
мурав $2
мурава $3
муравах $3
мураве $3
муравей $3
муравейдревоточец $6
муравленая $2
муравленее $2
муравленей $2
@@ -325237,6 +325205,7 @@
накручивалось $2
накручивался $2
накручиванием $2
накручивания $2
накручивать $2
накручиваться $2
накручиваюсь $2
@@ -346615,6 +346584,7 @@
неиндексированных $4
неиндуктивный $4
неинженеров $4
неинклюзивную $4
неинклюзивным $4
неинспирированный $4
неинтегрированная $4
@@ -347091,7 +347061,6 @@
нейросетевой $5
нейросетевом $5
нейросетей $4
нейросети $4
нейротерапию $5
нейротоксина $4
нейрофизиолог $5
@@ -363281,8 +363250,6 @@
обеляющиеся $3
обеляющимися $3
обеляющуюся $3
оберег $1
оберега $1
оберегавшая $4
оберегавшейся $4
оберегавшемся $4
@@ -387369,6 +387336,11 @@
октавиана $4
октавиане $4
октавианом $4
октагон $3
октагона $3
октагоне $3
октагону $3
октагоны $3
октан $2
октановая $2
октановее $2
@@ -430879,10 +430851,6 @@
пашалыке $3
пашалыки $3
пашалыку $3
пашам $2
пашах $2
паше $2
пашей $2
пашемая $1
пашемого $1
пашемое $1
@@ -462110,7 +462078,6 @@
платки $2
платков $2
платком $2
платку $2
платная $1
платнее $1
платники $1
@@ -502471,6 +502438,7 @@
полномасштабная $4
полномасштабное $4
полномасштабный $4
полномасштабным $4
полномасштабными $4
полномасштабных $4
полномерна $3
@@ -507471,7 +507439,7 @@
помезентеральней $5
помезоморфнее $4
помезоморфней $4
помела $3
помела $2
помеланхоличнее $5
помеланхоличней $5
помеле $3
@@ -507555,7 +507523,7 @@
помелом $3
помелочнее $2
помелочней $2
помелу $2
помелу $3
помелькай $3
помелькайте $3
помелькал $3
@@ -589465,8 +589433,6 @@
пупсиком $1
пупсику $1
пупсинька $1
пупу $2
пупы $2
пупыре $3
пупырей $3
пупырем $3
@@ -682414,7 +682380,6 @@
соревнующимися $3
соревнующуюся $3
соревнуя $3
сори $2
соригинальничавшая $4
соригинальничавшего $4
соригинальничавшее $4
@@ -703405,6 +703370,7 @@
субфебрилитеты $5
субфедеральная $4
субфедеральные $4
субфлагманским $2
субчик $1
субчика $1
субчикам $1
@@ -715717,6 +715683,7 @@
теплопродукция $4
теплопрозрачность $4
теплопрозрачный $4
теплорассеивателя $4
теплорассеивающая $4
теплорассеивающей $4
теплорассеивающими $4
@@ -769243,7 +769210,6 @@
ховард $1
ховарда $1
ховрина $1
ховы $2
хогсхед $1
ходакова $3
ходам $2
@@ -799632,6 +799598,7 @@
энергопотребитель $6
энергопотребление $6
энергопотреблении $6
энергопотреблений $6
энергопотреблению $6
энергопотребления $6
энергораспределения $7

+ 2
- 0
dictsource/ru_list View File

@@ -138,6 +138,8 @@ _, zVpit'aja
или $atend // stressed at the end
ибо $u $pause // for
но $u $pause // but
при $u
при $atend
хотя $2 $pause // although
чтобы $pause // in order that


+ 1
- 1
dictsource/ru_rules View File

@@ -155,7 +155,7 @@
р) д (ц // Silent D(не произносимая д)
мо) де (м dE%
н) де (кс dE2 // яндекс, индекс/ yandex, index
мо) де (л dE
_мо) де (л dE
_мо) де (лир dE%
мо) де (льер dE%
мо) де (лист dE%

+ 10
- 2
src/CMakeLists.txt View File

@@ -19,10 +19,18 @@ endif()
if (NOT WIN32)
add_custom_target(
speak-ng ALL
${CMAKE_COMMAND} -E create_symlink espeak-ng ${CMAKE_CURRENT_BINARY_DIR}/speak-ng
COMMENT "Link espeak-ng to speak-ng"
COMMAND ${CMAKE_COMMAND} -E create_symlink espeak-ng ${CMAKE_CURRENT_BINARY_DIR}/speak-ng
COMMAND ${CMAKE_COMMAND} -E create_symlink espeak-ng ${CMAKE_CURRENT_BINARY_DIR}/espeak
COMMAND ${CMAKE_COMMAND} -E create_symlink espeak-ng ${CMAKE_CURRENT_BINARY_DIR}/speak
COMMENT "Link espeak-ng to compat names"
DEPENDS espeak-ng-bin
)
endif()
install(TARGETS espeak-ng-bin)
install(DIRECTORY include/espeak include/espeak-ng TYPE INCLUDE)

if (ESPEAK_COMPAT AND NOT WIN32)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/speak-ng DESTINATION bin)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/espeak DESTINATION bin)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/speak DESTINATION bin)
endif()

+ 9
- 0
src/espeak-ng.c View File

@@ -77,6 +77,8 @@ static const char *help_text =
"\t Write speech to this WAV file, rather than speaking it directly\n"
"-b\t Input text encoding, 1=UTF8, 2=8 bit, 4=16 bit \n"
"-m\t Interpret SSML markup, and ignore other < > tags\n"
"--ssml-break=<percentage>\n"
"\t Set SSML break time multiplier, default is 100\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 phonemes mnemonics and translation trace to stdout\n"
@@ -331,6 +333,7 @@ int main(int argc, char **argv)
{ "compile-intonations", no_argument, 0, 0x10f },
{ "compile-phonemes", optional_argument, 0, 0x110 },
{ "load", no_argument, 0, 0x111 },
{ "ssml-break", required_argument, 0, 0x112 },
{ 0, 0, 0, 0 }
};

@@ -361,6 +364,7 @@ int main(int argc, char **argv)
int phoneme_options = 0;
int option_linelength = 0;
int option_waveout = 0;
int ssml_break = -1;
bool deterministic = 0;
espeak_VOICE voice_select;
@@ -586,6 +590,9 @@ int main(int argc, char **argv)
case 0x111: // --load
flag_load = 1;
break;
case 0x112: // --ssml-break
ssml_break = atoi(optarg2);
break;
default:
exit(0);
}
@@ -677,6 +684,8 @@ int main(int argc, char **argv)
espeak_SetParameter(espeakWORDGAP, wordgap, 0);
if (option_linelength > 0)
espeak_SetParameter(espeakLINELENGTH, option_linelength, 0);
if (ssml_break > 0)
espeak_SetParameter(espeakSSML_BREAK_MUL, ssml_break, 0);
if (option_punctuation == 2)
espeak_SetPunctuationList(option_punctlist);


+ 1
- 1
src/include/espeak-ng/speak_lib.h View File

@@ -416,8 +416,8 @@ typedef enum {
espeakWORDGAP=7,
espeakOPTIONS=8, // reserved for misc. options. not yet used
espeakINTONATION=9,
espeakSSML_BREAK_MUL=10,

espeakRESERVED1=10,
espeakRESERVED2=11,
espeakEMPHASIS, /* internal use */
espeakLINELENGTH, /* internal use */

+ 7
- 0
src/libespeak-ng/CMakeLists.txt View File

@@ -38,6 +38,8 @@ add_library(espeak-ng
espeak_api.c
)

target_include_directories(espeak-ng BEFORE PRIVATE $<TARGET_PROPERTY:espeak-include,INTERFACE_INCLUDE_DIRECTORIES>)

if (NOT MSVC)
target_compile_options(espeak-ng PRIVATE
"-fPIC"
@@ -113,4 +115,9 @@ if (MINGW)
target_link_options(espeak-ng PRIVATE "-static-libstdc++" "-static")
endif()

set_target_properties(espeak-ng PROPERTIES
SOVERSION ${PROJECT_VERSION_MAJOR}
VERSION ${PROJECT_VERSION}
)

install(TARGETS espeak-ng LIBRARY)

+ 7
- 6
src/libespeak-ng/numbers.c View File

@@ -1200,14 +1200,15 @@ static int LookupNum2(Translator *tr, int value, int thousandplex, const int con
sprintf(ph_out, "%s%s%s%s", ph_tens, ph_and, ph_digits, ph_ordinal);
used_and = 1;
} else {
if ((tr->langopts.numbers & NUM_SINGLE_VOWEL) && ph_digits[0] != 0) {
if (tr->langopts.numbers & NUM_SINGLE_VOWEL) {
// remove vowel from the end of tens if units starts with a vowel (LANG=Italian)
ix = strlen(ph_tens) - 1;
if ((next_phtype = phoneme_tab[(unsigned int)(ph_digits[0])]->type) == phSTRESS)
next_phtype = phoneme_tab[(unsigned int)(ph_digits[1])]->type;
if (((ix = strlen(ph_tens)-1) >= 0) && (ph_digits[0] != 0)) {
if ((next_phtype = phoneme_tab[(unsigned int)(ph_digits[0])]->type) == phSTRESS)
next_phtype = phoneme_tab[(unsigned int)(ph_digits[1])]->type;

if ((phoneme_tab[(unsigned int)(ph_tens[ix])]->type == phVOWEL) && (next_phtype == phVOWEL))
ph_tens[ix] = 0;
if ((phoneme_tab[(unsigned int)(ph_tens[ix])]->type == phVOWEL) && (next_phtype == phVOWEL))
ph_tens[ix] = 0;
}
}

if ((tr->langopts.numbers2 & NUM2_ORDINAL_DROP_VOWEL) && (ph_ordinal[0] != 0)) {

+ 2
- 0
src/libespeak-ng/setlengths.c View File

@@ -336,6 +336,8 @@ espeak_ng_STATUS SetParameter(int parameter, int value, int relative)
translator->langopts.intonation_group = new_value & 0xff;
option_tone_flags = new_value;
break;
case espeakSSML_BREAK_MUL:
break;
default:
return EINVAL;
}

+ 1
- 1
src/libespeak-ng/speech.c View File

@@ -349,7 +349,7 @@ const int param_defaults[N_SPEECH_PARAM] = {
0, // wordgap
0, // options
0, // intonation
0,
100, // ssml break mul
0,
0, // emphasis
0, // line length

+ 2
- 0
src/libespeak-ng/ssml.c View File

@@ -882,6 +882,8 @@ int ProcessSsmlTag(wchar_t *xml_buf, char *outbuf, int *outix, int n_outbuf, con
if ((attr2 = GetSsmlAttribute(px, "time")) != NULL) {
value2 = attrnumber(attr2, 0, 1); // pause in mS

value2 = value2 * speech_parameters[espeakSSML_BREAK_MUL] / 100;

int wpm = speech_parameters[espeakRATE];
espeak_SetParameter(espeakRATE, wpm, 0);


+ 1
- 1
src/libespeak-ng/wavegen.c View File

@@ -119,7 +119,7 @@ int wcmdq_tail = 0;

// pitch,speed,
const int embedded_default[N_EMBEDDED_VALUES] = { 0, 50, espeakRATE_NORMAL, 100, 50, 0, 0, 0, espeakRATE_NORMAL, 0, 0, 0, 0, 0, 0 };
static const int embedded_max[N_EMBEDDED_VALUES] = { 0, 0x7fff, 750, 300, 99, 99, 99, 0, 750, 0, 0, 0, 0, 4, 0 };
static const int embedded_max[N_EMBEDDED_VALUES] = { 0, 0x7fff, 2000, 300, 99, 99, 99, 0, 2000, 0, 0, 0, 0, 4, 0 };

#if USE_LIBSONIC
static sonicStream sonicSpeedupStream = NULL;

+ 0
- 1
src/speechPlayer/CMakeLists.txt View File

@@ -7,4 +7,3 @@ target_include_directories(speechPlayer PUBLIC include)
if(NOT MSVC)
target_compile_options(speechPlayer PRIVATE "-fPIC")
endif()
install(TARGETS speechPlayer ARCHIVE)

+ 0
- 1
src/ucd-tools/CMakeLists.txt View File

@@ -7,4 +7,3 @@ add_library(ucd STATIC
src/tostring.c
)
target_include_directories(ucd PUBLIC src/include)
install(TARGETS ucd ARCHIVE)

+ 1
- 0
tests/language-numbers-cardinal.test View File

@@ -30,3 +30,4 @@ test_phon lv "d'esmit d'ivdesmit tR'i:sdesmit tS'etRdesmit p'ietsd,esmit s'eSdes
test_phon lv "s'imts s'imts v'iens d'ivi s'imti d'ivi tR'i:s s'imti s'eSdesmit p'ietsi" "100 101 202 365" "hundreds"
test_phon lv "s'imts t'u:kstuo:tis m'iljo:ns m'iljaRds tR'iljons kv'adRiljo:ns kv'intiljo:ns s'ekstiljo:ns s'eptiljo:ns 'oktiljo:ns n'oniljo:ns" "100 1000 1000000 1000000000 1000000000000 1000000000000000 1000000000000000000 1000000000000000000000 1000000000000000000000000 1000000000000000000000000000 1000000000000000000000000000000" "large" # 10^2 10^3 10^6 10^9 10^12 10^15 10^18 10^21 10^24 10^27 10^30
test_phon lv "p'ietsi s'eSdesmit tS'etRi s'imts d'ivdesmit tR'i:s tS'etRi t'u:kstuo:Si tR'i:s s'imti p'ietsd,esmit s'eptin^i tS'etRpadsmit t'u:kstuo:Si_! s'eSi s'imti_ 'astuon^desmit tR'i:s s'eptin^i s'imti tS'etRdesmit d'ivi t'u:kstuo:Si_! tR'i:s s'imti p'ietsd,esmit d'evin^i s'eSi m'iljo:ni_! tS'etRi s'imti s'eptin^desmit p'ietsi t'u:kstuo:Si_! tR'i:s s'imti d'ivdesmit 'astuon^i" "5 64 123 4357 14683 742359 6475328" "mixed"
test_phon it "dz'E*o_| 'items" "0 items" "NUM_SINGLE_VOWEL"

+ 5
- 1
tests/ssml.test View File

@@ -8,10 +8,11 @@ test_ssml_audio() {
TEST_NAME=$1
EXPECTED=$2
TEST_TEXT=$3
OPTS=$4

echo "testing ${TEST_NAME}"
ESPEAK_DATA_PATH=`pwd` LD_LIBRARY_PATH=src:${LD_LIBRARY_PATH} \
$VALGRIND src/espeak-ng --stdout -m "${TEST_TEXT}" \
$VALGRIND src/espeak-ng --stdout -m "${TEST_TEXT}" ${OPTS} \
> actual.txt || exit 1
< actual.txt $sha1sum | awk '{ print $1 }' > sum.txt
echo "${EXPECTED}" > expected.txt
@@ -56,3 +57,6 @@ test_ssml_audio "<prosody 200%><break 1000ms>" 64213dbaf593b139b0b21840ba938cf59
( test_ssml_audio "<prosody 260%><break 1000ms>" 4b4e30a2cfff1889972f013e514e81c1108283a4 "<speak><prosody rate=\"260%\">Break<break time=\"1000ms\"/>test</prosody></speak>" ) || \
( test_ssml_audio "<prosody 260%><break 1000ms>" 9849f0d27f5641db6da1a8aea82578e83656d323 "<speak><prosody rate=\"260%\">Break<break time=\"1000ms\"/>test</prosody></speak>" ) || \
( test_ssml_audio "<prosody 260%><break 1000ms>" 32a9c2887ec5b7d9d33d5503518ac0d384e43448 "<speak><prosody rate=\"260%\">Break<break time=\"1000ms\"/>test</prosody></speak>" ) || exit 1

# Test break multiplier
test_ssml_audio "<break 1000ms> mul=10" 9f3b0f34eb605fcecfc573fc215626f634b46756 "<speak>Break<break time=\"1000ms\"/>test</speak>" "--ssml-break=10"

Loading…
Cancel
Save