Updates to Github #github


espeak-ng@groups.io Integration <espeak-ng@...>
 

[espeak-ng:master] New Comment on Issue #931 Android build fails
By Matombo:

Just as i wrote this I found a solution:

You need to use Gradle 6(.8.3) (also tried 4 and 5 which failed with different errors) and manually install ndk 20.0.5594570 using sdkmanager (<sdk_path>/cmdline-tools/bin/sdkmanager --sdk_root=<sdk_path> --install "ndk;20.0.5594570")


[espeak-ng:master] Issue #931 Android build fails closed by Matombo.


[espeak-ng:master] New Comment on Issue #931 Android build fails
By Matombo:

Just as I wrote this I found a solution:

You need to use Gradle 6(.8.3) (also tried 4 and 5 which failed with different errors) and manually install ndk 20.0.5594570 using sdkmanager (<sdk_path>/cmdline-tools/bin/sdkmanager --sdk_root=<sdk_path> --install "ndk;20.0.5594570")


espeak-ng@groups.io Integration <espeak-ng@...>
 

[espeak-ng:master] New Comment on Issue #922 Procedure not clear on how to remove/disable a language
By jbowler:

That's not the whole picture, take a look at the code of src/libespeak-ng/tr_languages.c

$ wc src/libespeak-ng/tr_languages.c 1658 8976 72076 src/libespeak-ng/tr_languages.c

It's crude but if I look at the .o sizes I see this:

text data bss dec hex filename 28496 3024 35552 67072 10600 src/libespeak-ng/la-compiledata.o 16593 1256 8960 26809 68b9 src/libespeak-ng/la-compiledict.o 1398 0 0 1398 576 src/libespeak-ng/la-compilembrola.o 28305 280 272 28857 70b9 src/libespeak-ng/la-dictionary.o 7760 2176 0 9936 26d0 src/libespeak-ng/la-encoding.o 2139 0 0 2139 85b src/libespeak-ng/la-error.o 2324 0 0 2324 914 src/libespeak-ng/la-espeak_api.o 2476 0 4 2480 9b0 src/libespeak-ng/la-espeak_command.o 3367 0 296 3663 e4f src/libespeak-ng/la-event.o 4288 0 264 4552 11c8 src/libespeak-ng/la-fifo.o 2719 0 0 2719 a9f src/libespeak-ng/la-ieee80.o 6357 2528 40 8925 22dd src/libespeak-ng/la-intonation.o 9251 736 4296 14283 37cb src/libespeak-ng/la-klatt.o 6154 4 292 6450 1932 src/libespeak-ng/la-mbrowrap.o 234 0 0 234 ea src/libespeak-ng/la-mnemonics.o 21879 450 68 22397 577d src/libespeak-ng/la-numbers.o 3982 5 0 3987 f93 src/libespeak-ng/la-phonemelist.o 1946 0 0 1946 79a src/libespeak-ng/la-phoneme.o 10974 12 3216 14202 377a src/libespeak-ng/la-readclause.o 5212 12 4 5228 146c src/libespeak-ng/la-setlengths.o 1494 0 1924 3418 d5a src/libespeak-ng/la-soundicon.o 4030 0 0 4030 fbe src/libespeak-ng/la-spect.o 7195 12 420 7627 1dcb src/libespeak-ng/la-speech.o 2228 0 8 2236 8bc src/libespeak-ng/la-sPlayer.o 8884 2000 44 10928 2ab0 src/libespeak-ng/la-ssml.o 8335 0 9752 18087 46a7 src/libespeak-ng/la-synthdata.o 15178 0 51112 66290 102f2 src/libespeak-ng/la-synthesize.o 5611 0 120 5731 1663 src/libespeak-ng/la-synth_mbrola.o 28815 500 10884 40199 9d07 src/libespeak-ng/la-translate.o 18274 1064 0 19338 4b8a src/libespeak-ng/la-tr_languages.o 16420 896 5332 22648 5878 src/libespeak-ng/la-voices.o 10667 5056 22836 38559 969f src/libespeak-ng/la-wavegen.o

There are some big sore points in there. The language related one is that even if you comment out all the languages you don't need in tr_languges.c the code it no longer requires is still in translate.c.

The bigger elephant is that the --compile support is still in libespeak. compiledata.c, which is only concerned with compiling intonation and phoneme data, is the single biggest blob in there.

I did this many years ago (December 1996) with libpng - in the end I gave up and wrote it (libpng) from scratch. It is possible to build software that is configurable in this way (I later did this with libpng) but espeak-ng has absolutely no configurability in this regard, so the only choice (seriously) is to fork it and eliminate everything you don't need. You don't need the compilation stuff because, so far as I can see, if you can correctly build the dictionaries on your build platform you can just keep on doing that; so you build and do install-data using this repo but maintain a separate fork with your embedded version of the binaries, which have been hacked to remove all the compile support, all the language support you don't need etc.

Bear in mind you will have to produce flashes for each language set the product is sold on and they will differ significantly in size. I suspect a useful contribution to espeak-ng would be a rewrite of translate.c to be entirely data driven.


[espeak-ng:master] New Comment on Issue #922 Procedure not clear on how to remove/disable a language
By jbowler:

That's not the whole picture, take a look at the code of src/libespeak-ng/tr_languages.c

$ wc src/libespeak-ng/tr_languages.c 1658 8976 72076 src/libespeak-ng/tr_languages.c

It's crude but if I look at the .o sizes I see this:

   text    data     bss     dec     hex filename
  28496    3024   35552   67072   10600 src/libespeak-ng/la-compiledata.o
  16593    1256    8960   26809    68b9 src/libespeak-ng/la-compiledict.o
   1398       0       0    1398     576 src/libespeak-ng/la-compilembrola.o
  28305     280     272   28857    70b9 src/libespeak-ng/la-dictionary.o
   7760    2176       0    9936    26d0 src/libespeak-ng/la-encoding.o
   2139       0       0    2139     85b src/libespeak-ng/la-error.o
   2324       0       0    2324     914 src/libespeak-ng/la-espeak_api.o
   2476       0       4    2480     9b0 src/libespeak-ng/la-espeak_command.o
   3367       0     296    3663     e4f src/libespeak-ng/la-event.o
   4288       0     264    4552    11c8 src/libespeak-ng/la-fifo.o
   2719       0       0    2719     a9f src/libespeak-ng/la-ieee80.o
   6357    2528      40    8925    22dd src/libespeak-ng/la-intonation.o
   9251     736    4296   14283    37cb src/libespeak-ng/la-klatt.o
   6154       4     292    6450    1932 src/libespeak-ng/la-mbrowrap.o
    234       0       0     234      ea src/libespeak-ng/la-mnemonics.o
  21879     450      68   22397    577d src/libespeak-ng/la-numbers.o
   3982       5       0    3987     f93 src/libespeak-ng/la-phonemelist.o
   1946       0       0    1946     79a src/libespeak-ng/la-phoneme.o
  10974      12    3216   14202    377a src/libespeak-ng/la-readclause.o
   5212      12       4    5228    146c src/libespeak-ng/la-setlengths.o
   1494       0    1924    3418     d5a src/libespeak-ng/la-soundicon.o
   4030       0       0    4030     fbe src/libespeak-ng/la-spect.o
   7195      12     420    7627    1dcb src/libespeak-ng/la-speech.o
   2228       0       8    2236     8bc src/libespeak-ng/la-sPlayer.o
   8884    2000      44   10928    2ab0 src/libespeak-ng/la-ssml.o
   8335       0    9752   18087    46a7 src/libespeak-ng/la-synthdata.o
  15178       0   51112   66290   102f2 src/libespeak-ng/la-synthesize.o
   5611       0     120    5731    1663 src/libespeak-ng/la-synth_mbrola.o
  28815     500   10884   40199    9d07 src/libespeak-ng/la-translate.o
  18274    1064       0   19338    4b8a src/libespeak-ng/la-tr_languages.o
  16420     896    5332   22648    5878 src/libespeak-ng/la-voices.o
  10667    5056   22836   38559    969f src/libespeak-ng/la-wavegen.o

There are some big sore points in there. The language related one is that even if you comment out all the languages you don't need in tr_languges.c the code it no longer requires is still in translate.c.

The bigger elephant is that the --compile support is still in libespeak. compiledata.c, which is only concerned with compiling intonation and phoneme data, is the single biggest blob in there.

I did this many years ago (December 1996) with libpng - in the end I gave up and wrote it (libpng) from scratch. It is possible to build software that is configurable in this way (I later did this with libpng) but espeak-ng has absolutely no configurability in this regard, so the only choice (seriously) is to fork it and eliminate everything you don't need. You don't need the compilation stuff because, so far as I can see, if you can correctly build the dictionaries on your build platform you can just keep on doing that; so you build and do install-data using this repo but maintain a separate fork with your embedded version of the binaries, which have been hacked to remove all the compile support, all the language support you don't need etc.

Bear in mind you will have to produce flashes for each language set the product is sold on and they will differ significantly in size. I suspect a useful contribution to espeak-ng would be a rewrite of translate.c to be entirely data driven.


[espeak-ng:master] New Comment on Issue #922 Procedure not clear on how to remove/disable a language
By jbowler:

That's not the whole picture, take a look at the code of src/libespeak-ng/tr_languages.c

$ wc src/libespeak-ng/tr_languages.c
1658  8976 72076 src/libespeak-ng/tr_languages.c

It's crude but if I look at the .o sizes I see this:

   text    data     bss     dec     hex filename
  28496    3024   35552   67072   10600 src/libespeak-ng/la-compiledata.o
  16593    1256    8960   26809    68b9 src/libespeak-ng/la-compiledict.o
   1398       0       0    1398     576 src/libespeak-ng/la-compilembrola.o
  28305     280     272   28857    70b9 src/libespeak-ng/la-dictionary.o
   7760    2176       0    9936    26d0 src/libespeak-ng/la-encoding.o
   2139       0       0    2139     85b src/libespeak-ng/la-error.o
   2324       0       0    2324     914 src/libespeak-ng/la-espeak_api.o
   2476       0       4    2480     9b0 src/libespeak-ng/la-espeak_command.o
   3367       0     296    3663     e4f src/libespeak-ng/la-event.o
   4288       0     264    4552    11c8 src/libespeak-ng/la-fifo.o
   2719       0       0    2719     a9f src/libespeak-ng/la-ieee80.o
   6357    2528      40    8925    22dd src/libespeak-ng/la-intonation.o
   9251     736    4296   14283    37cb src/libespeak-ng/la-klatt.o
   6154       4     292    6450    1932 src/libespeak-ng/la-mbrowrap.o
    234       0       0     234      ea src/libespeak-ng/la-mnemonics.o
  21879     450      68   22397    577d src/libespeak-ng/la-numbers.o
   3982       5       0    3987     f93 src/libespeak-ng/la-phonemelist.o
   1946       0       0    1946     79a src/libespeak-ng/la-phoneme.o
  10974      12    3216   14202    377a src/libespeak-ng/la-readclause.o
   5212      12       4    5228    146c src/libespeak-ng/la-setlengths.o
   1494       0    1924    3418     d5a src/libespeak-ng/la-soundicon.o
   4030       0       0    4030     fbe src/libespeak-ng/la-spect.o
   7195      12     420    7627    1dcb src/libespeak-ng/la-speech.o
   2228       0       8    2236     8bc src/libespeak-ng/la-sPlayer.o
   8884    2000      44   10928    2ab0 src/libespeak-ng/la-ssml.o
   8335       0    9752   18087    46a7 src/libespeak-ng/la-synthdata.o
  15178       0   51112   66290   102f2 src/libespeak-ng/la-synthesize.o
   5611       0     120    5731    1663 src/libespeak-ng/la-synth_mbrola.o
  28815     500   10884   40199    9d07 src/libespeak-ng/la-translate.o
  18274    1064       0   19338    4b8a src/libespeak-ng/la-tr_languages.o
  16420     896    5332   22648    5878 src/libespeak-ng/la-voices.o
  10667    5056   22836   38559    969f src/libespeak-ng/la-wavegen.o

There are some big sore points in there. The language related one is that even if you comment out all the languages you don't need in tr_languges.c the code it no longer requires is still in translate.c.

The bigger elephant is that the --compile support is still in libespeak. compiledata.c, which is only concerned with compiling intonation and phoneme data, is the single biggest blob in there.

I did this many years ago (December 1996) with libpng - in the end I gave up and wrote it (libpng) from scratch. It is possible to build software that is configurable in this way (I later did this with libpng) but espeak-ng has absolutely no configurability in this regard, so the only choice (seriously) is to fork it and eliminate everything you don't need. You don't need the compilation stuff because, so far as I can see, if you can correctly build the dictionaries on your build platform you can just keep on doing that; so you build and do install-data using this repo but maintain a separate fork with your embedded version of the binaries, which have been hacked to remove all the compile support, all the language support you don't need etc.

Bear in mind you will have to produce flashes for each language set the product is sold on and they will differ significantly in size. I suspect a useful contribution to espeak-ng would be a rewrite of translate.c to be entirely data driven.


espeak-ng@groups.io Integration <espeak-ng@...>
 

[espeak-ng/espeak-ng] Pull request opened by CMB:

#932 Memory Access Fixes

  • Fix buffer size calculation when initializing output.
  • Fix out-of-bounds read when processing malformed SSML.

These issues were found with valgrind. I am not very confident in the fix for SSML parsing. It does work, but it needs careful review please.


[espeak-ng:master] New Comment on Pull Request #932 Memory Access Fixes
By CMB:

You can use espeak -m 'compile&flash' to reproduce the out-of-bounds read when parsing malformed SSML. Using -w out.wav with this command to generate a .wav file, espeak-ng generated 5 minutes of speech from memory contents before segfaulting.


espeak-ng@groups.io Integration <espeak-ng@...>
 

10 New Commits:

[espeak-ng:master] By Reece H. Dunn <msclrhd@...>:
da95f5d5c727: Update the Unicode Data Files license.

Modified: COPYING.UCD


[espeak-ng:master] By Philippe Antoine <contact@...>:
24bfbcfeca45: 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

Modified: Makefile.am
Modified: src/ucd-tools/src/case.c
Modified: tests/ssml-fuzzer.c


[espeak-ng:master] By Philippe Antoine <contact@...>:
39e6a586596a: Take comments into account

Modified: Makefile.am
Modified: src/ucd-tools/src/case.c


[espeak-ng:master] By Philippe Antoine <contact@...>:
2cd39373eb01: Exlcude ucd-tools overread from this PR

Modified: src/ucd-tools/src/case.c


[espeak-ng:master] By Reece H. Dunn <msclrhd@...>:
1a895f37b9cb: Fix running the tests with -fsanitize=address.

Modified: src/case.c
Modified: tools/case.py


[espeak-ng:master] By Reece H. Dunn <msclrhd@...>:
2b2eac1d8bed: Fix the note in case.py/case.c.

Modified: src/case.c
Modified: tools/case.py


[espeak-ng:master] By Reece H. Dunn <msclrhd@...>:
566e12e72652: ucd-tools 11.0.0.1

Modified: CHANGELOG.md


[espeak-ng:master] By Reece H. Dunn <msclrhd@...>:
acb7248562ec: Fix running the non-executable-files-with-executable-bit test.

Modified: tests/non-executable-files-with-executable-bit.test


[espeak-ng:master] By Reece H. Dunn <msclrhd@...>:
bcf3b5fec2b3: Ignore the ucd-tools test executables in the non-executable file test.

Modified: tests/non-executable-files-with-executable-bit.test


[espeak-ng:master] By Reece H. Dunn <msclrhd@...>:
379403d1026f: Merge tag 'de5e36b4ad69c4acfdd728b2ca3e0e472d91afd1'

ucd-tools 11.0.0.1

Modified: src/ucd-tools/CHANGELOG.md
Modified: src/ucd-tools/COPYING.UCD
Modified: src/ucd-tools/src/case.c
Modified: src/ucd-tools/tools/case.py


[espeak-ng/espeak-ng] Pull request closed by rhdunn:

#934 Oss-fuzz integration

cf https://github.com/google/oss-fuzz/pull/5543

  • 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


espeak-ng@groups.io Integration <espeak-ng@...>
 

[espeak-ng/espeak-ng] Pull request updated by CMB:

#932 Memory Access Fixes

  • Fix buffer size calculation when initializing output.
  • Fix out-of-bounds read when processing malformed SSML.

These issues were found with valgrind. I am not very confident in the fix for SSML parsing. It does work, but it needs careful review please.


[espeak-ng:master] New Comment on Pull Request #932 Memory Access Fixes
By CMB:

I force-pushed. I tracked down the regression I introduced that was causing readclause.check to fail. translate.check fails for me, but it fails for me at the exact same spot when running from master. So there's no regression there.


espeak-ng@groups.io Integration <espeak-ng@...>
 

[espeak-ng:master] New Comment on Issue #922 Procedure not clear on how to remove/disable a language
By Nafihahmd:

Thank you guys for your valuable replies. I was working on setting up the cross compiling toolchain for a couple days hence the delay in my reply. And to be frank I haven't quite understood what @jbowler had suggested. But I will work on it from today onward. I have started a separate fork where my development will be carried out as you have suggested.


[espeak-ng:master] New Comment on Issue #922 Procedure not clear on how to remove/disable a language
By Nafihahmd:

Thank you guys for your valuable replies. I was working on setting up the cross compiling toolchain for a couple days, hence the delay in my reply. And to be frank I haven't quite understood what @jbowler had suggested. But I will work on it from today onward. I have started a separate fork where my development will be carried out as you have suggested.


espeak-ng@groups.io Integration <espeak-ng@...>
 

[espeak-ng:master] New Comment on Issue #935 Install it in google colab? RuntimeError: espeak not installed on your system
By valdisvi:

Standard way to install built package of espeak-ng is sudo apt-get install espeak-ng or yum install espeak-ng etc. If this or other non-standard way to set up espeak-ng doesn't work, please report it to provider of that package/installation manager. We maintain only building process from the source.


[espeak-ng:master] New Comment on Issue #864 Can't find Japanese language code.
By valdisvi:

@kanjieater

This is reproducible with this Dockerfile: https://gist.github.com/kanjieater/79d86540215facb1cc383bbc73e34c08

Standard way to install built package of espeak-ng is sudo apt-get install espeak-ng or yum install espeak-ng etc. If this or other non-standard way to set up espeak-ng doesn't work, please report it to provider of that package or installation manager. We maintain only building process from the source.


[espeak-ng:master] New Comment on Issue #935 Install it in google colab? RuntimeError: espeak not installed on your system
By valdisvi:

Standard way to install built package of espeak-ng is sudo apt-get install espeak-ng or yum install espeak-ng etc. If this or other non-standard way to set up espeak-ng doesn't work, please report it to provider of that package or installation manager. We maintain only building process from the source.


espeak-ng@groups.io Integration <espeak-ng@...>
 

[espeak-ng:master] New Comment on Issue #864 Can't find Japanese language code.
By kanjieater:

@kanjieater

This is reproducible with this Dockerfile: gist.github.com/kanjieater/79d86540215facb1cc383bbc73e34c08

Standard way to install built package of espeak-ng is sudo apt-get install espeak-ng or yum install espeak-ng etc. If this or other non-standard way to set up espeak-ng doesn't work, please report it to provider of that package or installation manager. We maintain only building process from the source.

I'm not sure which part in particular would be non-standard. As a Dockerfile it's already running as root. The apt-get install command then has espeak-ng in it. This seems like it's an issue with the building process.

# Make sure to install sudo to match command
RUN set -x \
      && apt-get update \
      && apt-get install -y sudo 

RUN sudo apt update \
 && sudo apt-get install -y espeak-ng

Surely something like this would be supported? Japanese is not found when espeak is installed espeak-ng --voices image


[espeak-ng:master] New Comment on Issue #864 Can't find Japanese language code.
By kanjieater:

@kanjieater

This is reproducible with this Dockerfile: gist.github.com/kanjieater/79d86540215facb1cc383bbc73e34c08

Standard way to install built package of espeak-ng is sudo apt-get install espeak-ng or yum install espeak-ng etc. If this or other non-standard way to set up espeak-ng doesn't work, please report it to provider of that package or installation manager. We maintain only building process from the source.

I'm not sure which part in particular would be non-standard. As a Dockerfile it's already running as root (so do I really need to sudo?). The apt-get install command then has espeak-ng in it. This seems like it's an issue with the building process.

# Make sure to install sudo to match command
RUN set -x \
      && apt-get update \
      && apt-get install -y sudo 

RUN sudo apt update \
 && sudo apt-get install -y espeak-ng

Surely something like this would be supported? Japanese is not found when espeak is installed espeak-ng --voices image


[espeak-ng:master] New Comment on Issue #864 Can't find Japanese language code.
By kanjieater:

The _dict files go to /usr/share/espeak-ng-data/ on a typical install.

That error message seems weird in this situation. Check if you can compile other languages, like English (en). You'll need the files in dictsource/en_rules in your $PWD.

I don't think the standard install from apt-get is working. There is no usr/share/espeak-ng-data when you install by sudo apt-get install espeak-ng


espeak-ng@groups.io Integration <espeak-ng@...>
 

[espeak-ng:master] New Comment on Issue #864 Can't find Japanese language code.
By kanjieater:

The _dict files go to /usr/share/espeak-ng-data/ on a typical install.

That error message seems weird in this situation. Check if you can compile other languages, like English (en). You'll need the files in dictsource/en_rules in your $PWD.

I don't think the standard install from apt-get is working. There is no usr/share/espeak-ng-data when you install by sudo apt-get install espeak-ng

All of the other dicts were available in /usr/lib/x86_64-linux-gnu/espeak-ng-data/


[espeak-ng:master] New Comment on Issue #864 Can't find Japanese language code.
By kanjieater:

The _dict files go to /usr/share/espeak-ng-data/ on a typical install.

That error message seems weird in this situation. Check if you can compile other languages, like English (en). You'll need the files in dictsource/en_rules in your $PWD.

All of the other dicts were available in /usr/lib/x86_64-linux-gnu/espeak-ng-data/


[espeak-ng:master] New Comment on Issue #864 Can't find Japanese language code.
By kanjieater:

The _dict files go to /usr/share/espeak-ng-data/ on a typical install.

That error message seems weird in this situation. Check if you can compile other languages, like English (en). You'll need the files in dictsource/en_rules in your $PWD.

All of the other dicts were available in /usr/lib/x86_64-linux-gnu/espeak-ng-data/ image


espeak-ng@groups.io Integration <espeak-ng@...>
 

[espeak-ng:master] New Comment on Issue #922 Procedure not clear on how to remove/disable a language
By Nafihahmd:

Your method was very quick buddy. Removed SSML functionality. I just had to add 2 dummy functions. I will write the new ssml.c below.



#include "config.h"

#include <ctype.h>
#include <errno.h>
#include <locale.h>
#include <math.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <wchar.h>
#include <wctype.h>


#include <espeak-ng/espeak_ng.h>
#include <espeak-ng/speak_lib.h>
#include <espeak-ng/encoding.h>
#include <ucd/ucd.h>

#include "ssml.h"
#include "dictionary.h"           // for strncpy0
#include "mnemonics.h"               // for LookupMnemName, MNEM_TAB, 
#include "readclause.h"           // for PARAM_STACK, param_stack, AddNameData
#include "soundicon.h"               // for LoadSoundFile2
#include "synthesize.h"           // for SPEED_FACTORS, speed
#include "translate.h"            // for CTRL_EMBEDDED, IsDigit09, utf8_out
#include "voice.h"                // for SelectVoice, SelectVoiceByName

static MNEM_TAB ssmltags[] = {
	{ "speak",     SSML_SPEAK },
	{ "voice",     SSML_VOICE },
	{ "prosody",   SSML_PROSODY },
	{ "say-as",    SSML_SAYAS },
	{ "mark",      SSML_MARK },
	{ "s",         SSML_SENTENCE },
	{ "p",         SSML_PARAGRAPH },
	{ "phoneme",   SSML_PHONEME },
	{ "sub",       SSML_SUB },
	{ "tts:style", SSML_STYLE },
	{ "audio",     SSML_AUDIO },
	{ "emphasis",  SSML_EMPHASIS },
	{ "break",     SSML_BREAK },
	{ "metadata",  SSML_IGNORE_TEXT },

	{ "br",     HTML_BREAK },
	{ "li",     HTML_BREAK },
	{ "dd",     HTML_BREAK },
	{ "img",    HTML_BREAK },
	{ "td",     HTML_BREAK },
	{ "h1",     SSML_PARAGRAPH },
	{ "h2",     SSML_PARAGRAPH },
	{ "h3",     SSML_PARAGRAPH },
	{ "h4",     SSML_PARAGRAPH },
	{ "hr",     SSML_PARAGRAPH },
	{ "script", SSML_IGNORE_TEXT },
	{ "style",  SSML_IGNORE_TEXT },
	{ "font",   HTML_NOSPACE },
	{ "b",      HTML_NOSPACE },
	{ "i",      HTML_NOSPACE },
	{ "strong", HTML_NOSPACE },
	{ "em",     HTML_NOSPACE },
	{ "code",   HTML_NOSPACE },

	{ NULL, 0 }
};

/********* Dummy Functions *********/

int ProcessSsmlTag(wchar_t *xml_buf, char *outbuf, int *outix, int n_outbuf, const char *xmlbase, bool *audio_text, char *current_voice_id, espeak_VOICE *base_voice, char *base_voice_variant_name, bool *ignore_text, bool *clear_skipping_text, int *sayas_mode, int *sayas_start, SSML_STACK *ssml_stack, int *n_ssml_stack, int *n_param_stack, int *speech_parameters)
{
	return 0;
}

int ParseSsmlReference(char *ref, int *c1, int *c2) {

	return -1; //Failure to Parse

}

And now to the real business. With SSML |file | size (bytes) | |libespeak-ng.a |2,584,008 | |libespeak-ng.so |1,557,248 |

Without SSML |file | size (bytes) | |libespeak-ng.a |2,516,848 | |libespeak-ng.so |1,514,088 |


[espeak-ng:master] New Comment on Issue #922 Procedure not clear on how to remove/disable a language
By Nafihahmd:

Your method was very quick buddy. Removed SSML functionality. I just had to add 2 dummy functions. I will write the new ssml.c below.



#include "config.h"

#include <ctype.h>
#include <errno.h>
#include <locale.h>
#include <math.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <wchar.h>
#include <wctype.h>


#include <espeak-ng/espeak_ng.h>
#include <espeak-ng/speak_lib.h>
#include <espeak-ng/encoding.h>
#include <ucd/ucd.h>

#include "ssml.h"
#include "dictionary.h"           // for strncpy0
#include "mnemonics.h"               // for LookupMnemName, MNEM_TAB, 
#include "readclause.h"           // for PARAM_STACK, param_stack, AddNameData
#include "soundicon.h"               // for LoadSoundFile2
#include "synthesize.h"           // for SPEED_FACTORS, speed
#include "translate.h"            // for CTRL_EMBEDDED, IsDigit09, utf8_out
#include "voice.h"                // for SelectVoice, SelectVoiceByName

static MNEM_TAB ssmltags[] = {
	{ "speak",     SSML_SPEAK },
	{ "voice",     SSML_VOICE },
	{ "prosody",   SSML_PROSODY },
	{ "say-as",    SSML_SAYAS },
	{ "mark",      SSML_MARK },
	{ "s",         SSML_SENTENCE },
	{ "p",         SSML_PARAGRAPH },
	{ "phoneme",   SSML_PHONEME },
	{ "sub",       SSML_SUB },
	{ "tts:style", SSML_STYLE },
	{ "audio",     SSML_AUDIO },
	{ "emphasis",  SSML_EMPHASIS },
	{ "break",     SSML_BREAK },
	{ "metadata",  SSML_IGNORE_TEXT },

	{ "br",     HTML_BREAK },
	{ "li",     HTML_BREAK },
	{ "dd",     HTML_BREAK },
	{ "img",    HTML_BREAK },
	{ "td",     HTML_BREAK },
	{ "h1",     SSML_PARAGRAPH },
	{ "h2",     SSML_PARAGRAPH },
	{ "h3",     SSML_PARAGRAPH },
	{ "h4",     SSML_PARAGRAPH },
	{ "hr",     SSML_PARAGRAPH },
	{ "script", SSML_IGNORE_TEXT },
	{ "style",  SSML_IGNORE_TEXT },
	{ "font",   HTML_NOSPACE },
	{ "b",      HTML_NOSPACE },
	{ "i",      HTML_NOSPACE },
	{ "strong", HTML_NOSPACE },
	{ "em",     HTML_NOSPACE },
	{ "code",   HTML_NOSPACE },

	{ NULL, 0 }
};

/********* Dummy Functions *********/

int ProcessSsmlTag(wchar_t *xml_buf, char *outbuf, int *outix, int n_outbuf, const char *xmlbase, bool *audio_text, char *current_voice_id, espeak_VOICE *base_voice, char *base_voice_variant_name, bool *ignore_text, bool *clear_skipping_text, int *sayas_mode, int *sayas_start, SSML_STACK *ssml_stack, int *n_ssml_stack, int *n_param_stack, int *speech_parameters)
{
	return 0;
}

int ParseSsmlReference(char *ref, int *c1, int *c2) {

	return -1; //Failure to Parse

}

And now to the real business. With SSML |file | size (bytes) | --------------------- | ---------------- |libespeak-ng.a |2,584,008 | |libespeak-ng.so |1,557,248 |

Without SSML |file | size (bytes) | --------------------- | ---------------- |libespeak-ng.a |2,516,848 | |libespeak-ng.so |1,514,088 |


[espeak-ng/espeak-ng] Pull request opened by Christianlm:

#937 Updates italian source dictionaries

Improvements to rules for irregular/pronominal verbs and exceptions.


espeak-ng@groups.io Integration <espeak-ng@...>
 

[espeak-ng:master] New Comment on Issue #922 Procedure not clear on how to remove/disable a language
By Nafihahmd:

No luck still. Modifying the make file as you said resulted in the following error:

src/src_speak_ng-speak-ng.o: In function `main':
/home/melayil/Github/espeak-ng/src/espeak-ng.c:544: undefined reference to `espeak_ng_CompileIntonation'
/home/melayil/Github/espeak-ng/src/espeak-ng.c:532: undefined reference to `espeak_ng_CompileMbrolaVoice'
/home/melayil/Github/espeak-ng/src/espeak-ng.c:558: undefined reference to `espeak_ng_CompilePhonemeDataPath'
/home/melayil/Github/espeak-ng/src/espeak-ng.c:560: undefined reference to `espeak_ng_CompilePhonemeData'
/home/melayil/Github/espeak-ng/src/espeak-ng.c:632: undefined reference to `espeak_ng_CompileDictionary'
src/.libs/libespeak-ng.a(src_libespeak_ng_la-dictionary.o): In function `LookupDict2':
/home/melayil/Github/espeak-ng/src/libespeak-ng/dictionary.c:2784: undefined reference to `print_dictionary_flags'
/home/melayil/Github/espeak-ng/src/libespeak-ng/dictionary.c:2814: undefined reference to `print_dictionary_flags'
src/.libs/libespeak-ng.a(src_libespeak_ng_la-dictionary.o): In function `MatchRule':
/home/melayil/Github/espeak-ng/src/libespeak-ng/dictionary.c:2150: undefined reference to `DecodeRule'
src/.libs/libespeak-ng.a(src_libespeak_ng_la-espeak_api.o): In function `espeak_CompileDictionary':
/home/melayil/Github/espeak-ng/src/libespeak-ng/espeak_api.c:156: undefined reference to `espeak_ng_CompileDictionary'
collect2: error: ld returned 1 exit status
Makefile:1166: recipe for target 'src/speak-ng' failed
make[1]: *** [src/speak-ng] Error 1


[espeak-ng:master] New Comment on Issue #922 Procedure not clear on how to remove/disable a language
By Nafihahmd:

Still no luck. Modifying the make file as you said resulted in the following error:

src/src_speak_ng-speak-ng.o: In function `main':
/home/melayil/Github/espeak-ng/src/espeak-ng.c:544: undefined reference to `espeak_ng_CompileIntonation'
/home/melayil/Github/espeak-ng/src/espeak-ng.c:532: undefined reference to `espeak_ng_CompileMbrolaVoice'
/home/melayil/Github/espeak-ng/src/espeak-ng.c:558: undefined reference to `espeak_ng_CompilePhonemeDataPath'
/home/melayil/Github/espeak-ng/src/espeak-ng.c:560: undefined reference to `espeak_ng_CompilePhonemeData'
/home/melayil/Github/espeak-ng/src/espeak-ng.c:632: undefined reference to `espeak_ng_CompileDictionary'
src/.libs/libespeak-ng.a(src_libespeak_ng_la-dictionary.o): In function `LookupDict2':
/home/melayil/Github/espeak-ng/src/libespeak-ng/dictionary.c:2784: undefined reference to `print_dictionary_flags'
/home/melayil/Github/espeak-ng/src/libespeak-ng/dictionary.c:2814: undefined reference to `print_dictionary_flags'
src/.libs/libespeak-ng.a(src_libespeak_ng_la-dictionary.o): In function `MatchRule':
/home/melayil/Github/espeak-ng/src/libespeak-ng/dictionary.c:2150: undefined reference to `DecodeRule'
src/.libs/libespeak-ng.a(src_libespeak_ng_la-espeak_api.o): In function `espeak_CompileDictionary':
/home/melayil/Github/espeak-ng/src/libespeak-ng/espeak_api.c:156: undefined reference to `espeak_ng_CompileDictionary'
collect2: error: ld returned 1 exit status
Makefile:1166: recipe for target 'src/speak-ng' failed
make[1]: *** [src/speak-ng] Error 1