jade-hpc-gpu / jade-hpc-gpu.github.io

Joint Academic Data Science Endeavour (JADE) is the largest GPU facility in the UK supporting world-leading research in machine learning (and this is the repo that powers its website)
http://www.jade.ac.uk/
Other
24 stars 7 forks source link

Festival speech synthesis frontend | software request #107

Open ZackHodari opened 4 years ago

ZackHodari commented 4 years ago

Software Request

What software is required?

Festival (speech synthesis frontend)

The following install instructions are well tested:

Also see the following reference material

Explain why this software is required?

Required as a text processing tool for speech synthesis (known as a frontend). Cannot be compiled by a user, as it requires lib32ncurses5-dev and libX11-dev Explain why software which is already installed cannot be used? Speech synthesis frontends are very complex and a toolkit is necessary to perform the requires text processing.

Please provide the version details.

Any festival version (the one installed by the following code is sufficient)

Please state any dependancies below:

Edinburgh Speech Tools (the code linked will install a sufficient version)

(it is due to these dependencies that I am unable to compile the toolkit myself)

ZackHodari commented 4 years ago

Alternatively, if it is possible for an admin to install lib32ncurses5-dev and libX11-dev I can try and compile Festival myself again.

sudo apt-get install lib32ncurses5-dev sudo apt-get install libX11-dev

ZackHodari commented 4 years ago

I was searching around to see if lib32ncurses5-dev and libX11-dev were available and found them in the utilities module module load utilities

However, ld is unable to link ncurses5 correctly. Not sure if this is due to configuration being different when using module, or another problem

gcc -O3 -Wall -o festival festival_main.o -L../../src/lib -lFestival -L../../../speech_tools/lib -lestools -L../../../speech_tools/lib -lestbase -L../../../speech_tools/lib -leststring -lcurses -ldl -lncurses -lm -lstdc++ /usr/bin/ld: cannot find -lcurses /usr/bin/ld: cannot find -lncurses collect2: error: ld returned 1 exit status Makefile:57: recipe for target 'festival' failed make[2]: [festival] Error 1 ../../speech_tools/config/rules/targets.mak:55: recipe for target 'main' failed make[1]: [main] Error 2 ../speech_tools/config/rules/targets.mak:55: recipe for target 'src' failed make: *** [src] Error 2 No definition for module wrappers

ZackHodari commented 4 years ago

Came back to this and managed to compile http://www.cstr.ed.ac.uk/projects/speech_tools/

Since curses is not available on Jade I modified speech_tools/configure to only use ncurses

sed -i 's/-lcurses/-lncurses/g' speech_tools/configure

But using module load utilities was not enough for ld to successfully find the library, which is located at /jmain01/apps/gcc/utilities, so I created a symbolic link in speech_tools/lib (this was easier than adding an additional -L/jmain01/apps/gcc/utilities/lib flag

ln -s /jmain01/apps/gcc/utilities/lib/libncurses.a speech_tools/lib
ln -s /jmain01/apps/gcc/utilities/lib/libncurses.so speech_tools/lib

Then install as normal

./configure
make
make install
Unfortunately, on this attempt I have been unable to then install Festival successfully. (./configure; ./make) completes without errors, but then running the executable ./bin/festival returns the following (malloc?) error

free(): invalid next size (fast) Aborted (core dumped)