Notice: A non well formed numeric value encountered in /sites/ on line 96 Notice: A non well formed numeric value encountered in /sites/ on line 96 Notice: A non well formed numeric value encountered in /sites/ on line 96 Deprecated: Function create_function() is deprecated in /sites/ on line 104 Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /sites/ on line 845 Deprecated: Function create_function() is deprecated in /sites/ on line 111 FS#9983 : Rbutil: Add Festival support, ignore non-ascii option



FS#9983 - Rbutil: Add Festival support, ignore non-ascii option

Attached to Project: Rockbox
Opened by Delyan Kratunov (archivator) - Thursday, 05 March 2009, 10:42 GMT
Last edited by Dominik Wenger (Domonoky) - Friday, 27 March 2009, 19:18 GMT
Task Type Patches
Category Rbutil
Status Closed
Assigned To No-one
Operating System All players
Severity Low
Priority Normal
Reported Version Daily build (which?)
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No


Attached is a patch to add festival as a rbutilqt backend for .talk and voicefile generation. Festival has a server-client model and thus there might be some delays while starting the server (especially if the default festival voice uses a multisyn model).

As festival handles non-ascii poorly, there is a new option for talk files - Ignore Non-ASCII filenames.
Further, I am not sure how the CLI mode works, so there isn't any support for that yet.

Please note that configuration is shaky at best, so you might need to open the configuration dialog more than once or click Refresh a couple of times (there is little I can do to improve this but I'll look into it).

Lastly, the code is more proof of concept (and this task - a placeholder) than a comittable change. Thus, excuse the multiple empty lines entries in the diff. Differently configured editor, apparently.

Tested with rev. 20206
This task depends upon

Closed by  Dominik Wenger (Domonoky)
Friday, 27 March 2009, 19:18 GMT
Reason for closing:  Accepted
Additional comments about closing:  This code is now in svn.
Comment by Delyan Kratunov (archivator) - Thursday, 12 March 2009, 20:26 GMT
* Added a "Starting festival" dialog. Note: if the progress bar doesn't move, it's Qt's fault. Apparently, some themes don't render the progress bar properly - Plastique and QGtkStyle are among those.

* improved general stability, most notably in the configuration dialog
* Added voice description - in theory, voices that use non-ASCII text will have a "Coding" line there. In practice, I don't have such voices to test.
Comment by Dominik Wenger (Domonoky) - Sunday, 15 March 2009, 16:48 GMT
I just tested this patch, and while i was able to generate working talkfiles with festival, the configuration dialog seems to be very unstable.
I needed 3 attempts to correctly configure a voice. The first time, no voice was listed, a restart cured that. Afterwards it even gave a segmentation fault, when trying to open the configuration dialog. :-)

Also the compilation process gave many warnings, so the code probably needs more cleanup. Perhaps it would be better to seperate the "skip non-ascii files" feature into a seperate patch. So its is easier to review and commit the festival engine support.
Also i think such a skipping feature needs to be more general, perhaps based on encoding ? (like skipping all files with chars not in ISO8859-1 or alike).
Comment by Delyan Kratunov (archivator) - Friday, 20 March 2009, 22:17 GMT
Dominik, thanks for the feedback!

Your first restart was the result of a bug - the refresh button used the saved settings and not the ones just entered in the configuration window. It should be fixed now.

The segmentation fault was either an assert in one of the code paths or a festival crash. When festival is involved, you can never be sure. :) If it was an assert, it should be fixed now.

Other changes from the previous patch:

- Removed the "Ignore Non-ASCII" option - the festival backend issues a warning (and not an error) for any string it cannot voice.
- Added a "Show voice description" checkbox. This removes the initial voice description query which in turn slowed startup by quite a bit. Also, voice descriptions are now cached.
- There was a short period right after the "Starting festival" dialog had closed and before the configuration window had started that gave no indication of anything taking place. Thus, I opted to show the configuration window at the very beginning, disable it and then show the "Starting festival" progress bar. That way, it's clear festival is loading, even if the progress bar had been closed.
- I felt that path autodetection was counter-intuitive and chose to remove it completely. If needed, I can always put it back in.

Sorry for the .pro clutter, that'll be removed in the final patch.
Comment by Delyan Kratunov (archivator) - Saturday, 21 March 2009, 23:23 GMT
Changes over v3:

Implemented the browse buttons. I don't know how I missed those.