Commit Graph
5064 Commits
Author SHA1 Message Date
Henry Krumb 8b29985256 de: add 'Ingenieurin', 'Ingenieurinnen' to German exception list & don't pronounce asterisk (gender star) in German text 2021-05-15 20:53:23 +03:00
jaacoppi 8a3dd9a8fc Merge pull request #937 from Christianlm/master
it: Updates italian source dictionaries
2021-05-15 20:47:57 +03:00
Juho Hiltunen d91b7cf288 Rename zh (Mandarin) to cmn across the codebase.
See discussion in #933.
2021-05-11 20:14:54 +03:00
Juho Hiltunen 875174c3e9 Rename zhy (Cantonese) to yue across the codebase.
See discussion in #933.
2021-05-11 19:19:55 +03:00
Philippe Antoine 0a713d52bb fuzz: use binary directory for ESPEAK_DATA_PATH
instead of current working directory
so, the fuzzer can be launched from anywhere
2021-05-11 14:59:23 +02:00
Christianlm 6972465bf9 Updates italian source dictionaries 2021-05-10 11:23:28 +02:00
Reece H. Dunn 379403d102 Merge tag 'de5e36b4ad69c4acfdd728b2ca3e0e472d91afd1'
ucd-tools 11.0.0.1
2021-05-04 18:56:51 +01:00
Reece H. Dunn bcf3b5fec2 Ignore the ucd-tools test executables in the non-executable file test. 2021-05-04 18:50:40 +01:00
Reece H. Dunn acb7248562 Fix running the non-executable-files-with-executable-bit test. 2021-05-04 18:45:11 +01:00
Reece H. Dunn 566e12e726 ucd-tools 11.0.0.1 2021-05-04 18:05:59 +01:00
Reece H. Dunn 2b2eac1d8b Fix the note in case.py/case.c. 2021-05-04 17:54:15 +01:00
Reece H. Dunn 1a895f37b9 Fix running the tests with -fsanitize=address. 2021-05-04 17:51:28 +01:00
Philippe Antoine 2cd39373eb Exlcude ucd-tools overread from this PR 2021-05-04 16:29:29 +02:00
Philippe Antoine 39e6a58659 Take comments into account 2021-05-04 14:57:53 +02:00
Philippe Antoine 24bfbcfeca Oss-fuzz integration
- fix a buffer overflow in ucd_tolower leading to failure when
compiling with address sanitizer
- force the use of C++ compiler for espeak-ng
- adding a malloc to have a null-terminated string in the fuzz target
- setting (but not overwriting) ESPEAK_DATA_PATH environment
variable inside the fuzz target
2021-05-04 13:12:42 +02:00
Christopher Brannon d8ec91e809 Fix buffer size calculation when initializing output.
With the previous calculation, it was possible for the buffer to be
a byte or two too small to hold all of the data.
2021-05-03 07:59:30 -07:00
John Bowler 8954354ba1 Avoid reuse of old dictionary when building new.
And simplify the _dict pattern rule.  If a build had completed in the
directory before and "make distclean" had not been run ??_dict
dictionaries still existed, if one of these was rebuilt espeak-ng
loaded the old (out of date) one first resulting in inconsistent
execution of the build the second time round.  The change removes the
target before building it thus ensuring that old, possibly damaged, data
is not used.

I also changed the extraction of the language code; the GNU make %
(pattern) extension along with the long-standing $* extension (which
precedes GNU make) allow the match to the '%' to be used directly in the
command line.  The cd .. at the end of the command is unnecessary; make
(all versions) execute each command line using a single system() call,
so the cd never happens inside make.

Signed-off-by: John Bowler <jbowler@acm.org>
2021-04-29 10:43:56 -07:00
John Bowler 18d807d680 Prevent compile-phonemes use of phontab, en_dict
espeak-ng --compile-phonemes generates phontab, but during the
generation it starts by reading the old phontab.  If works just fine,
apart from an error message, if this doesn't exist but if it does exist
it is not clear whether it might end up using old or bad data (e.g.
possibly crashing if phontab is corrupted making it very non-obvious how
to fix the problem...)

The same applies to en_dict as a result of espeak-ng defaulting to the
voice 'en'; again the phontab build works if en_dict is absent but a
spurious message is output.  It's not clear what would happen if someone
tried to build a reduced espeak-ng configuration with just one (non
'en') language.

The fix is to change espeak_ng_CompilePhonemeDataPath to call LoadVoice
with a new flag to indicate the voice structure is just required to
compile phoneme data (I changed the error message as well to make it
clear where it comes from - there are two identical error messages, the
other one is in voices.c)

Within LoadVoice the flag causes LoadVoice to not set a default language
or voicename and to skip loading the old phontab or dictionary (both of
which fail in a git clean -dfx build).

I checked the result by doing a compile from-scratch build sequence with
and without the patch, i.e. I did:

git clean -dfx
./autogen.sh
./configure --prefix=a-test-directory
make
make install

Then I compared the two copies of "a-test-directory" as well as the log
file output:

$ diff -r logs/*
diff -r logs/original/make.log logs/patched/make.log
175,176d174
< Unknown phoneme table: 'en'
< Can't read dictionary file:
'/home/jbowler/src/espeak-ng/master/espeak-ng-data/en_dict'

$ diff --no-dereference -r local.original local.patched
Binary files local.original/bin/speak-ng and local.patched/bin/speak-ng differ
Binary files local.original/lib/libespeak-ng.a and local.patched/lib/libespeak-ng.a differ
Binary files local.original/lib/libespeak-ng.so.1.1.51 and local.patched/lib/libespeak-ng.so.1.1.51 differ

So the change has not altered phontab or any of the other generated
files, only the binaries as would be expected.  (Note that I am
comparing truely clean builds; what you get if you download the source
and build from scratch.  This is the standard approach for people who
build for distribution.)

Signed-off-by: John Bowler <jbowler@acm.org>
2021-04-29 08:23:53 -07:00
Valdis Vitolins 490538b715 Merge pull request #926 2021-04-28 18:26:25 +03:00
John Bowler 02199ec016 Fix crash in voices.c:SetVoiceScores
The only way (in Dec. 2019) to get espeak_ListVoices to actually list
all the voices, including variants and mbrola voices used to be to pass
a non-null voice selector with a null language pointer.  This still
seems to be supported in SetVoiceScores, which still checks for a null
language (see the check right at the top), however new code has been added
for a pseudo voice "all" lower down which seems to do the same thing but
crashes with null.  This change allows "old" code to continue working.

Signed-off-by: John Bowler <jbowler@acm.org>
2021-04-27 16:27:55 -07:00
katrihiovain bffcd54356 cleaned duplicate rows from smj_list 2021-04-23 14:40:12 +03:00
Juho Hiltunen 467f3f565f fi: change decimal number behavior
93d3c67df accidentally changes number handling for finnish.

D_FRACTION2 seems to match finnish number standards. It causes the
decimals to be read as numbers instead of individual digits: 12,12 is
read "twelve point twelve" instead of "twelve point one two".

It is undocumented so it might cause regressions as well.
2021-04-20 19:40:58 +03:00
Valdis Vitolins d2bc4980a5 Update list of language files 2021-04-13 14:55:04 +03:00
katrihiovainandSebastien Le Maguer 93d3c67df6 smj: Support for new language Lule Saami
Co-authored-by: Sebastien Le Maguer <lemagues@tcd.ie>
2021-04-10 13:54:41 +03:00
Valdis Vitolins 899b268468 Add OPTIONS argument to test_phon() and use it instead of test_commandlineoptions() 2021-04-06 18:01:19 +03:00
Valdis Vitolins d15de8cd78 Fix introduced bugs during refactorization 2021-04-06 17:45:28 +03:00
Valdis Vitolins 5f6b5c8093 Make output more similar to the output before refactorization 2021-04-06 17:44:40 +03:00
Valdis Vitolins 4588258cd7 Make test_replace() similar to other functions 2021-04-06 17:01:23 +03:00
Valdis Vitolins df8dd607df Replace test_lang() and test_voice() with test_wav() and test_phwav() which uses test_wav() 2021-04-06 16:52:26 +03:00
Valdis Vitolins 842cd3e25e Replace test_phonemes(), test_phonemes1() and test_dict() with single test_phon() 2021-04-06 16:28:23 +03:00
Valdis Vitolins 43dee60c33 Make test_dict the same as test_phonemes 2021-04-06 16:10:26 +03:00
Valdis Vitolins e14b567d77 Merge MESSAGE and TEST_BROKEN arguments 2021-04-06 15:57:58 +03:00
Valdis Vitolins 6fcb110b83 Move MESSAGE argument as 4th, to make arguments similar to other functions 2021-04-06 00:31:42 +03:00
Valdis Vitolins ec552d2566 Move common functions into common script 2021-04-05 23:24:06 +03:00
Valdis Vitolins 2954e498ca Change shell to sh as it is more common 2021-04-05 21:53:26 +03:00
Juho Hiltunen cad1c8e87f ka: End sentences for period followed by a lower case letter.
Useful because capitals are not used in Mkhedruli script.

Uses the new lowercaseSentence setting.
2021-04-05 19:29:18 +03:00
Juho Hiltunen c4740b3053 New language option lowercaseSentence
When set in a language file, a period followed by a lower case letter is
detected as end of sentence. Normal behavior is to require a capital
letter.
2021-04-05 19:29:18 +03:00
Juho Hiltunen dbaf6d4012 Update changelog
I forgot to add fa: to previous commit message 4967418.
2021-03-31 21:14:29 +03:00
Shadyar Khodayari 4967418a5c several exception words and an unknown charactor added. 2021-03-28 13:04:51 +04:30
Valdis Vitolins d4c698857e Merge pull request #898 2021-03-26 11:06:11 +02:00
trypolis 0ecca7c1cc Fixed a typo in UniversalRobot. 2021-03-25 21:53:24 -06:00
Reece H. Dunn e6880b27de [#891]: Fix building the Arabic dictionary on windows. 2021-03-24 18:07:39 +00:00
Reece H. Dunn a0b0f58cf5 [#864]: Fix installing the Japanese language on windows. 2021-03-24 17:58:55 +00:00
Juho Hiltunen 1432684245 en: fix dengler and binghamton.
Pronounce dengler and binghamton the same way with and without a capital
letter.

Closes #895.
2021-03-23 18:01:32 +02:00
Juho Hiltunen 0ed9c91520 bugfix: allow both SSSML <audio> and soundicon punctuation
All sound file information goes to soundicon_tab. The contents of the files are not
loaded to memory before they are needed for synthesis.

This removes N_SOUNDICON_SLOTS that divided soundicon_tab into two
parts for unknown reasons.

TODO: LoadConfig() is currently undocumented. The logic should be
moved to LoadVoice() and documented.
2021-03-21 18:53:42 +02:00
Juho Hiltunen 6e197d967e code cleanup: move soundicon logic to a new file
Soundicons are used for external audio with SSML <audio> tag and for
replacing punctuation names with sound files in LoadConfig().

Currently there's a bug wih soundicon slots: if both LoadConfig and
<audio> are used, the punctuation reserves all slots and no sound from
<audio> is played.
2021-03-21 18:53:05 +02:00
Juho Hiltunen e2bd52c845 code cleanup: remove unused PHONEME_LIST->postpause 2021-03-21 12:11:22 +02:00
Juho Hiltunen 1724f79528 code cleanup: remove unnecessary current_phoneme_table
The SelectPhonemeTable(voice->phoneme_tab_ix) has no effect for tests.
Passing other values here breaks tests. That means that the relevant
calls SelectPhonemeTable() are already made in other functions.

voice->phoneme_tab_ix is set in LoadVoice().
2021-03-21 11:20:45 +02:00
Juho Hiltunen 8ce104a315 code cleanup: remove wavefile_ix, move wavefile_amp
wavefile_ix is always equal to fmt_params->wav_addr.

wavefile_amp is only used once  so it can be set right
before calling DoSample2().
2021-03-20 20:29:33 +02:00
jaacoppi c315a10109 docs: add details about ordinal numbers 2021-03-20 08:46:45 +02:00