• Status Closed
  • Percent Complete
  • Task Type Patches
  • Category Rbutil
  • Assigned To No-one
  • Operating System All players
  • Severity Low
  • Priority Very Low
  • Reported Version Daily build (which?)
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: Rockbox
Opened by archivator - 2009-03-05
Last edited by Domonoky - 2009-03-27

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

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

Closed by  Domonoky
2009-03-27 19:18
Reason for closing:  Accepted
Additional comments about closing:   Warning: Undefined array key "typography" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 371 Warning: Undefined array key "camelcase" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 407

This code is now in svn.

* 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.

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).

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.

Changes over v3:

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


Available keyboard shortcuts


Task Details

Task Editing