text2wave crashes with "undefined symbol: _Z19wave_io_save_headerP8_IO_FILEiiiRK10EST_StringiS3_"

Bug #1505946 reported by jose
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
festival (Ubuntu)
Invalid
Undecided
Sergio Oller

Bug Description

$ echo 'hello, world!' | text2wave -o out.wav -otype nist
/usr/bin/festival: symbol lookup error: /usr/bin/festival: undefined symbol: _Z19wave_io_save_headerP8_IO_FILEiiiRK10EST_StringiS3_

As shown in the above command, text2wave can't find a function. After a bit of googling, I could find this:
https://github.com/zeehio/speech-tools/blob/d5b799b1abbe734b5e6fda5d94d2e5b2c2ca5302/speech_class/EST_wave_io.cc#L2000
I'm not sure how to fix this problem, though. I guess there could be a missing dependency.

Running the previous command with LD_DEBUG=all shows:
     20032: symbol=_Z19wave_io_save_headerP8_IO_FILEiiiRK10EST_StringiS3_; lookup in file=/usr/bin/festival [0]
     20032: symbol=_Z19wave_io_save_headerP8_IO_FILEiiiRK10EST_StringiS3_; lookup in file=/usr/lib/x86_64-linux-gnu/libestools.so.2.1 [0]
     20032: symbol=_Z19wave_io_save_headerP8_IO_FILEiiiRK10EST_StringiS3_; lookup in file=/usr/lib/x86_64-linux-gnu/libestbase.so.2.1 [0]
     20032: symbol=_Z19wave_io_save_headerP8_IO_FILEiiiRK10EST_StringiS3_; lookup in file=/usr/lib/x86_64-linux-gnu/libeststring.so.2.1 [0]
     20032: symbol=_Z19wave_io_save_headerP8_IO_FILEiiiRK10EST_StringiS3_; lookup in file=/usr/lib/x86_64-linux-gnu/libstdc++.so.6 [0]
     20032: symbol=_Z19wave_io_save_headerP8_IO_FILEiiiRK10EST_StringiS3_; lookup in file=/lib/x86_64-linux-gnu/libm.so.6 [0]
     20032: symbol=_Z19wave_io_save_headerP8_IO_FILEiiiRK10EST_StringiS3_; lookup in file=/lib/x86_64-linux-gnu/libgcc_s.so.1 [0]
     20032: symbol=_Z19wave_io_save_headerP8_IO_FILEiiiRK10EST_StringiS3_; lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
     20032: symbol=_Z19wave_io_save_headerP8_IO_FILEiiiRK10EST_StringiS3_; lookup in file=/lib/x86_64-linux-gnu/libtinfo.so.5 [0]
     20032: symbol=_Z19wave_io_save_headerP8_IO_FILEiiiRK10EST_StringiS3_; lookup in file=/usr/lib/x86_64-linux-gnu/libpulse-simple.so.0 [0]
     20032: symbol=_Z19wave_io_save_headerP8_IO_FILEiiiRK10EST_StringiS3_; lookup in file=/usr/lib/x86_64-linux-gnu/libpulse.so.0 [0]
     20032: symbol=_Z19wave_io_save_headerP8_IO_FILEiiiRK10EST_StringiS3_; lookup in file=/usr/lib/x86_64-linux-gnu/libasound.so.2 [0]
     20032: symbol=_Z19wave_io_save_headerP8_IO_FILEiiiRK10EST_StringiS3_; lookup in file=/lib64/ld-linux-x86-64.so.2 [0]
     20032: symbol=_Z19wave_io_save_headerP8_IO_FILEiiiRK10EST_StringiS3_; lookup in file=/usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-4.0.so [0]
     20032: symbol=_Z19wave_io_save_headerP8_IO_FILEiiiRK10EST_StringiS3_; lookup in file=/lib/x86_64-linux-gnu/libpthread.so.0 [0]
     20032: symbol=_Z19wave_io_save_headerP8_IO_FILEiiiRK10EST_StringiS3_; lookup in file=/lib/x86_64-linux-gnu/libjson-c.so.2 [0]
     20032: symbol=_Z19wave_io_save_headerP8_IO_FILEiiiRK10EST_StringiS3_; lookup in file=/lib/x86_64-linux-gnu/libdbus-1.so.3 [0]
     20032: symbol=_Z19wave_io_save_headerP8_IO_FILEiiiRK10EST_StringiS3_; lookup in file=/lib/x86_64-linux-gnu/libdl.so.2 [0]
     20032: symbol=_Z19wave_io_save_headerP8_IO_FILEiiiRK10EST_StringiS3_; lookup in file=/lib/x86_64-linux-gnu/librt.so.1 [0]
     20032: symbol=_Z19wave_io_save_headerP8_IO_FILEiiiRK10EST_StringiS3_; lookup in file=/usr/lib/x86_64-linux-gnu/libxcb.so.1 [0]
     20032: symbol=_Z19wave_io_save_headerP8_IO_FILEiiiRK10EST_StringiS3_; lookup in file=/lib/x86_64-linux-gnu/libwrap.so.0 [0]
     20032: symbol=_Z19wave_io_save_headerP8_IO_FILEiiiRK10EST_StringiS3_; lookup in file=/usr/lib/x86_64-linux-gnu/libsndfile.so.1 [0]
     20032: symbol=_Z19wave_io_save_headerP8_IO_FILEiiiRK10EST_StringiS3_; lookup in file=/usr/lib/x86_64-linux-gnu/libasyncns.so.0 [0]
     20032: symbol=_Z19wave_io_save_headerP8_IO_FILEiiiRK10EST_StringiS3_; lookup in file=/usr/lib/x86_64-linux-gnu/libXau.so.6 [0]
     20032: symbol=_Z19wave_io_save_headerP8_IO_FILEiiiRK10EST_StringiS3_; lookup in file=/usr/lib/x86_64-linux-gnu/libXdmcp.so.6 [0]
     20032: symbol=_Z19wave_io_save_headerP8_IO_FILEiiiRK10EST_StringiS3_; lookup in file=/lib/x86_64-linux-gnu/libnsl.so.1 [0]
     20032: symbol=_Z19wave_io_save_headerP8_IO_FILEiiiRK10EST_StringiS3_; lookup in file=/usr/lib/x86_64-linux-gnu/libFLAC.so.8 [0]
     20032: symbol=_Z19wave_io_save_headerP8_IO_FILEiiiRK10EST_StringiS3_; lookup in file=/usr/lib/x86_64-linux-gnu/libvorbisenc.so.2 [0]
     20032: symbol=_Z19wave_io_save_headerP8_IO_FILEiiiRK10EST_StringiS3_; lookup in file=/usr/lib/x86_64-linux-gnu/libvorbis.so.0 [0]
     20032: symbol=_Z19wave_io_save_headerP8_IO_FILEiiiRK10EST_StringiS3_; lookup in file=/usr/lib/x86_64-linux-gnu/libogg.so.0 [0]
     20032: symbol=_Z19wave_io_save_headerP8_IO_FILEiiiRK10EST_StringiS3_; lookup in file=/lib/x86_64-linux-gnu/libresolv.so.2 [0]
     20032: /usr/bin/festival: error: symbol lookup error: undefined symbol: _Z19wave_io_save_headerP8_IO_FILEiiiRK10EST_StringiS3_ (fatal)
/usr/bin/festival: symbol lookup error: /usr/bin/festival: undefined symbol: _Z19wave_io_save_headerP8_IO_FILEiiiRK10EST_StringiS3_

I'm using Ubuntu 14.04.3 LTS, and
$ festival -v
festival: Festival Speech Synthesis System: 2.1:release November 2010
$ dpkg -l festival
ii festival 1:2.1~release-8 amd64 General multi-lingual speech synthesis system

Tags: amd64 trusty
Revision history for this message
Luke Yelavich (themuso) wrote : Re: [Bug 1505946] [NEW] text2wave crashes with "undefined symbol: _Z19wave_io_save_headerP8_IO_FILEiiiRK10EST_StringiS3_"

 affects ubuntu/festival
 status incomplete

I cannot reproduce this on 14.04.3, using the festvox-kallpc16k voice. What voice are you trying to use? Perhaps if you re-install festival and all its dependencies, and try again, particularly the libestools2.4 package.

Changed in festival (Ubuntu):
status: New → Incomplete
Revision history for this message
jose (o1485726) wrote :

@themuso : I can't find the libestools2.4 package in trusty, only libestools2.1. Google also shows that this package is in wily: https://launchpad.net/ubuntu/trusty/+source/speech-tools https://launchpad.net/ubuntu/wily/+source/speech-tools
Festival works fine for me (well, kind of...), the problem is text2wave.

Revision history for this message
Luke Yelavich (themuso) wrote : Re: [Bug 1505946] Re: text2wave crashes with "undefined symbol: _Z19wave_io_save_headerP8_IO_FILEiiiRK10EST_StringiS3_"

Sorry, I meant whatever is in trusty, 2.1 then, I checked on my wily machine.

Text2wave itself is actually a scheme script, which I think calls festival.

Revision history for this message
jose (o1485726) wrote :

The wave_io_save_header function is missing:
$ mkdir /tmp/festival && cd /tmp/festival && apt-get source speech-tools festival festvox-ellpc11k libestools2.1
...
$ find . -name EST_wave_io.cc
./speech-tools-2.1~release/speech_class/EST_wave_io.cc
./speech-tools-2.1~release/.pc/speech_class_EST_wave_io.cc.diff/speech_class/EST_wave_io.cc
$ c++filt _Z19wave_io_save_headerP8_IO_FILEiiiRK10EST_StringiS3_
wave_io_save_header(_IO_FILE*, int, int, int, EST_String const&, int, EST_String const&)
$ grep -ran wave_io_save_header *
$

Something similar happens when I try to save a file directly from festival:
$ festival
...
festival> (utt.save.wave (SayText "Put something here") "name.wav" 'riff)
festival: symbol lookup error: festival: undefined symbol: _ZN8EST_Wave9save_fileE10EST_StringS0_S0_iPKc
$

The method is there, but signatures don't match:
$ c++filt _ZN8EST_Wave9save_fileE10EST_StringS0_S0_iPKc
EST_Wave::save_file(EST_String, EST_String, EST_String, int, char const*)
$ grep -ran save_file *
...
speech-tools-2.1~release/speech_class/EST_Wave.cc:393:EST_write_status EST_Wave::save_file(const EST_String filename,
speech-tools-2.1~release/speech_class/EST_Wave.cc:408: EST_write_status r = save_file(fp,ftype,stype,obo);
speech-tools-2.1~release/speech_class/EST_Wave.cc:414:EST_write_status EST_Wave::save_file(FILE *fp,
speech-tools-2.1~release/speech_class/EST_WaveFile.cc:525: if (sig.save_file(out_file, file_type,
speech-tools-2.1~release/.pc/speech_class_EST_WaveFile.cc.diff/speech_class/EST_WaveFile.cc:491: if (sig.save_file(out_file, file_type,
speech-tools-2.1~release/include/EST_Wave.h:296: EST_write_status save_file(const EST_String filename,
speech-tools-2.1~release/include/EST_Wave.h:300: EST_write_status save_file(FILE *fp,

In speech-tools-2.1~release/speech_class/EST_Wave.cc
393 EST_write_status EST_Wave::save_file(const EST_String filename,
394 EST_String ftype,
395 EST_String stype, int obo)
...
414 EST_write_status EST_Wave::save_file(FILE *fp,
415 EST_String ftype,
416 EST_String stype, int obo)

I guess festival in ubuntu 14.04.3 is missing a patch or something.

Revision history for this message
Sergio Oller (zeehio) wrote :

Hi,

I see in the bug report:

I'm using Ubuntu 14.04.3 LTS, and
$ festival -v
festival: Festival Speech Synthesis System: 2.1:release November 2010
$ dpkg -l festival
ii festival 1:2.1~release-8 amd64 General multi-lingual speech synthesis system

According to http://packages.ubuntu.com/search?suite=trusty&searchon=names&keywords=festival I see that on trusty there is 1:2.1~release-6ubuntu1: amd64, however you report a higher festival package version (the festival version from debian jessie).

Either you downgrade festival to the released trusty version (recommended if you are under ubuntu trusty) or you upgrade libestools2.1 to the version released on jessie too.

Feel free to ask if you have questions or doubts

Changed in festival (Ubuntu):
assignee: nobody → Sergio Oller (zeehio)
Revision history for this message
jose (o1485726) wrote :

Ah, thank you! Downgrading fixed it. I don't really know or remember how I got that version... I think that that package was in proposed at some point, but was deleted: https://launchpad.net/ubuntu/+source/festival/1%3A2.1~release-8/+publishinghistory . Guess I shouldn't be using -proposed...
Should I close this bug report?

Revision history for this message
Sergio Oller (zeehio) wrote :

Great to see that you have fixed the issue downgrading the package.

I flagged the bug as invalid as it wasn't actually a bug :-).

Best!

Changed in festival (Ubuntu):
status: Incomplete → Invalid
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.