[BRLTTY] the flite speech driver is broken

Nicolas Pitre nico at fluxnic.net
Fri Oct 7 13:13:08 EDT 2011


On Fri, 7 Oct 2011, Dave Mielke wrote:

> [quoted lines by Nicolas Pitre on 2011/10/06 at 23:25 -0400]
> 
> >Attempting to start latest BRLTTY from SVN with the fl speech driver 
> >produces this:
> >
> >brltty: /lib/brltty/libbrlttysfl.so: undefined symbol: register_cmu_us_kal
> >brltty: cannot load speech driver: /lib/brltty/libbrlttysfl.so
> >brltty: speech driver not loadable: fl
> 
> The make file for the driver is removing the trailing 16. When I remove that 
> bit of code then I get an unresolved symbol. I'm assuming, therefore, that this 
> is a change that Festival Lite has made which isn't backward compatible. Do you 
> think you might be able to help figure out in which version of Festival Lite 
> this change was introduced? Perhaps we can use the constants in flite_version.h 
> to deal with it.

Well, I don't know much about flite myself.

The version installed here is libflite 1.4-release-2.

The content of /usr/include/flite/flite_version.h is:

#define FLITE_PROJECT_NAME "Festival Lite"
#define FLITE_PROJECT_PREFIX "flite"
#define FLITE_PROJECT_VERSION "1.4"
#define FLITE_PROJECT_DATE "December 2009"
#define FLITE_PROJECT_STATE "release"
#define FLITE_PROJECT_SHLIB_VERSION "1"

Those are all strings and therefore not immediately useful for 
preprocessor conditionals.

Could the register/unregister symbols be dynamically resolved using 
dlsym() instead?  This way both possibilities could be attempted at run 
time, and the default voice could even be changed with a driver 
parameter using -S instead of being fixed at compile time.

Hmmm... looking at the interface exported by flite.h I don't see any of 
those explicit voice register declarations.  Instead there is a 
cst_voice *flite_voice_select(const char *name) which looks more 
appropriate it seems.  There is also a list of query methods such 
as flite_get_param_string() which I suppose could be used to get 
the list/name of the available voice(s).


Nicolas


More information about the BRLTTY mailing list