Commit Graph
4959 Commits
Author SHA1 Message Date
Samuel Thibault 6f58f75693 Add missing phoneme table reset
When there are language switches, when we rewind to the start of the
phoneme list we have to reset the phoneme table back.

This avoids some branching that depends on undefined values, caught by
valgrind in the case e.g. of an emoji substitution that contains a
language switch.

Ref #874
2022-06-09 13:20:43 +02:00
Samuel Thibault 3b009398c9 Add missing stresslevel field initialization 2022-06-09 12:21:05 +02:00
Samuel Thibault e17f0764e3 valgrind CI: add missing debugging information 2022-06-09 12:06:10 +02:00
Samuel Thibault eed7db1575 Fix out-of-bound access
IsLetterGroup looks for heading \0, so the padding also needs to include
an \0.
2022-06-09 11:26:17 +02:00
Samuel Thibault 24e1eaa0cc Mark static arrays undefined when they are reused
So valgrind can potentially catch e.g. missing \0.
2022-06-09 09:48:43 +02:00
Samuel Thibault 7e608a3273 Make some buffers non-static
These don't actually need to survive function exit.
2022-06-09 09:46:19 +02:00
Samuel Thibault a660fc04cc Add more const qualifiers on static arrays
So we know they are just tables, get protected from overflows, and get shared between processes
2022-06-09 08:43:50 +02:00
Samuel Thibault 2d3a49b161 Make static arrays undefined on entry into LoadVoice
This would have caught #1200
2022-06-09 08:37:56 +02:00
Samuel Thibault afdf50bfd3 Add a note to avoid erroneous commits like e91d0a5
Fixes #1200
2022-06-09 08:12:45 +02:00
Samuel Thibault ad6efd3427 Merge pull request #1211 from seanbudd/fixAutoLangSwitching
Revert "code cleanup: don't add a \0 to voices_language in LoadVoice()"
2022-06-09 08:10:27 +02:00
Sean Budd 139417e8e1 Revert "code cleanup: don't add a \0 to voices_language in LoadVoice()."
This reverts commit e91d0a5861.
2022-06-09 11:23:48 +10:00
Samuel Thibault a25849e4d5 configure.ac: Fix inline function test
fixes #1171
2022-04-24 18:46:27 +02:00
Valdis Vitolins ffb0d2b66b Update changelog 2022-04-24 14:21:23 +03:00
Samuel Thibault 9c72ff1d31 CI: allow manual trigger 2022-04-23 10:54:24 +02:00
Valdis Vitolins 1ef2b0795a Update changelog 2022-04-22 10:43:16 +03:00
Valdis Vitolins 62e372c1ff Merge pull request #1168 2022-04-22 10:40:55 +03:00
Valdis Vitolins 9cd9983ae1 Merge pull request #1167 2022-04-22 10:37:34 +03:00
Valdis Vitolins a455d9823c Merge pull request #960 2022-04-22 10:32:23 +03:00
Alexander Epaneshnikov 2802103844 android: update building documentation 2022-04-22 00:04:43 +03:00
Sukil Etxenike da388055d5 Fixed stress of "deprimente" in Spanish 2022-04-21 21:11:26 +02:00
Sukil Etxenike a1821f13fb Fix stress of "vilmente"
Vilmente is an adverb, so it should be stressed as such.
2022-04-21 20:24:33 +02:00
Andiv06 48101e49b9 Fix Belarussian 2022-04-17 13:28:51 +03:00
Alexander Epaneshnikov 042ac06b9e android: use gradle to build data archive
this fixes #1161 separates the android application build system from automake
and simplifies building an application on windows.
2022-04-15 19:07:16 +03:00
Alexander Epaneshnikov 95678616f7 android: integrate ndk-build step into main gradle pipeline
this greatly simplifies the assembly of the android application. moreover, ndk
will be downloaded automatically via sdk-manager.
2022-04-15 19:06:53 +03:00
Alexander Epaneshnikov 41c5adc837 android: cleanup project 2022-04-15 19:04:58 +03:00
Alexander Epaneshnikov 12754cc7bc android: add gradle wrapper
this simplifies CI/CD and building android application on windows.
2022-04-15 19:04:42 +03:00
Alexander Epaneshnikov 77b66d175c android: update AGP 2022-04-15 19:04:13 +03:00
Valdis Vitolins 4485927c85 Fix pronunciation of Bellevue and Bothell 2022-04-14 19:03:48 +03:00
Valdis Vitolins abd8ff5f71 Merge pull request #1158 2022-04-14 17:30:08 +03:00
Valdis Vitolins 77cc6c1a9c Merge pull request #1157 2022-04-14 17:29:55 +03:00
Valdis Vitolins bff48e078e Merge pull request #1156 2022-04-14 17:29:43 +03:00
Samuel Thibault 5087b05c52 Mark re-used "source" array as undefined
And fix the prefetches after \0.
2022-04-13 23:24:30 +02:00
Samuel Thibault 1228094127 Mark re-used phoneme_tab array as undefined
And make sure that the unfilled entries are NULL to catch any spurious
reference.

Also fix some missing phoneme table switch according to language
changes.
2022-04-13 23:24:13 +02:00
Samuel Thibault 199cbe4a1a Mark re-used phoneme_list as undefined
And fill the last phlist prepause and newword fields, otherwise they are
detected as undefined:

==483407== Conditional jump or move depends on uninitialised value(s)
==483407==    at 0x488E6AB: Generate (synthesize.c:1228)
==483407==    by 0x488FD94: SpeakNextClause (synthesize.c:1587)
==483407==    by 0x4887F56: Synthesize (speech.c:457)
==483407==    by 0x488884C: sync_espeak_Synth (speech.c:570)
==483407==    by 0x487B270: espeak_Synth (espeak_api.c:90)
==483407==    by 0x10ACA0: main (espeak-ng.c:691)
==483407==  Uninitialised value was created by a client request
==483407==    at 0x4884893: MakePhonemeList (phonemelist.c:155)
==483407==    by 0x4895712: TranslateClause (translate.c:2682)
==483407==    by 0x488FCCF: SpeakNextClause (synthesize.c:1569)
==483407==    by 0x4887F56: Synthesize (speech.c:457)
==483407==    by 0x488884C: sync_espeak_Synth (speech.c:570)
==483407==    by 0x487B270: espeak_Synth (espeak_api.c:90)
==483407==    by 0x10ACA0: main (espeak-ng.c:691)
==483407==
==483407== Conditional jump or move depends on uninitialised value(s)
==483407==    at 0x488E622: Generate (synthesize.c:1211)
==483407==    by 0x488FD94: SpeakNextClause (synthesize.c:1587)
==483407==    by 0x4887F56: Synthesize (speech.c:457)
==483407==    by 0x488884C: sync_espeak_Synth (speech.c:570)
==483407==    by 0x487B270: espeak_Synth (espeak_api.c:90)
==483407==    by 0x10ACA0: main (espeak-ng.c:691)
==483407==  Uninitialised value was created by a client request
==483407==    at 0x4884893: MakePhonemeList (phonemelist.c:155)
==483407==    by 0x4895712: TranslateClause (translate.c:2682)
==483407==    by 0x488FCCF: SpeakNextClause (synthesize.c:1569)
==483407==    by 0x4887F56: Synthesize (speech.c:457)
==483407==    by 0x488884C: sync_espeak_Synth (speech.c:570)
==483407==    by 0x487B270: espeak_Synth (espeak_api.c:90)
==483407==    by 0x10ACA0: main (espeak-ng.c:691)
==483407==

This is changing the ssml.test output, but with no audible difference,
so this is probably a real fix for it.
2022-04-13 23:24:04 +02:00
Samuel Thibault f1ce2ec423 Mark re-used ph_list2 array as undefined
And fix looking after end of array.
2022-04-13 23:23:51 +02:00
Valdis Vitolins cb35b95f67 Merge pull request #1162 2022-04-13 22:43:18 +03:00
Valdis Vitolins f56c7ea185 Merge pull request #1154 2022-04-13 22:43:06 +03:00
Samuel Thibault 7954418b88 Fix generated tarball
The tarball produced by make dist was missing a lot of files, so that
building from it would completely fail.
2022-04-13 09:18:12 +02:00
Samuel Thibault 15804e57a2 Constify tables
So they are protected from overflows, and shared between processes
2022-04-10 22:48:40 +02:00
Samuel Thibault 3ce135ac2b Mark re-used buffers as undefined
These are global arrays reused several times. When using them msan and
valgrind thus believe they are always initialized, which reduces their
capacity to detect uninitialized values. We can however explicitly tell them
when they are reused, and thus to be considered as uninitialized.
2022-04-10 22:42:51 +02:00
Samuel Thibault 43eb231d6c Merge pull request #1150 from sthibaul/CI-32bits
Add x86-32 CI
2022-04-10 22:41:31 +02:00
Samuel Thibault 36feb2dc5c Add x86-32 CI 2022-04-10 22:18:27 +02:00
Samuel Thibault a34d74ed43 Make envelope computation more robust
When pollint() returns 100.0, multiplying by 2.55 doesn't actually seem to
be getting 255 on i386. Multiplying by 255 and dividing by 100, however,
does (probably because float computation with small integer values are
guaranteed to have integer results).

Fixes #1151
2022-04-10 22:12:28 +02:00
Samuel Thibault 310e8fc768 Avoid using floating-point operation
This has varying behavior depending on toolchain and processor.

Fixes #1151
2022-04-10 20:48:43 +02:00
Samuel Thibault b3ba314ba7 CI: Add reprotest 2022-04-10 16:32:40 +02:00
Samuel Thibault e8253c6513 ssml: Use a larger buffer
When building espeak-ng in a directory that has a long path, 80 bytes to
store it is quite short.
2022-04-10 16:16:00 +02:00
Samuel Thibault 2878e91db0 Fix testsuite under various locales
When the current locale doesn't match the current voice, grep would be
surprised by the produced output and believe that this is not text, for
instance with LC_ALL=ru_RU.CP1251 we get:

  TEST      tests/language-replace.test
[...]
testing mk
grep: (standard input): binary file matches
2d1
< Translate 'пејзаж'

But we can give -a to grep so it always considers its input as text.
2022-04-10 15:40:09 +02:00
Samuel Thibault 90c035c406 Fix overflow while capping to signed 16bit 2022-04-08 01:59:31 +02:00
Samuel Thibault c91aa78363 LoadSoundFile: Fix char signedness 2022-04-08 01:24:50 +02:00
Samuel Thibault 2c524ec8df Fix loading wav files on big-endian architectures
Fixes #1152
2022-04-08 01:18:16 +02:00