Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Eliminate "Text-to-speech configuration file" options #66

Open
8 tasks done
bertfrees opened this issue Oct 26, 2023 · 3 comments
Open
8 tasks done

Eliminate "Text-to-speech configuration file" options #66

bertfrees opened this issue Oct 26, 2023 · 3 comments
Assignees

Comments

@bertfrees
Copy link
Member

bertfrees commented Oct 26, 2023

I want to eliminate the "Text-to-speech configuration file" options, and replace it with the following:

  • A dedicated option to specify CSS style sheets (in addition to the possibility to attach style sheets to the input)
  • A dedicated option to specify lexicons (in addition to the possibility to attach lexicons to the input)
    • in addition there could be a global setting to specify default user lexicons (used as default value for the lexicon job options); could also be achieved with a templates feature too
  • Remove the need to set TTS properties via TTS configuration file
    • org.daisy.pipeline.tts.log: already a dedicated option
    • org.daisy.pipeline.tts.mp3.bitrate: makes most sense as global setting; per-job settings could be achieved with a templates feature
    • org.daisy.pipeline.tts.lame.cli.options: has already been deprecated
  • Possibly also make it not possible anymore to set other TTS properties dynamically (per job). Note that org.daisy.pipeline.tts.host.protection has already been deprecated, but that the deprecation warning has been disabled because the GUI needs this feature in order to avoid restarts (and because in the future we might want to be able to connect to remote engines and yet use or own TTS engine credentials). One possible solution is to continue supporting the org.daisy.pipeline.tts.host.protection setting, but limit it to very specific properties. Another solution is to create a settings API. The benefit of the latter is that we can get ditch the XML configuration format. The downside is that the API would require admin privileges, so it wouldn't be possible to use different credentials for different clients/jobs.
  • The per-job voice configuration could be replaced by a system wide voice configuration, using the org.daisy.pipeline.tts.config setting. The same remarks as above also count for setting the org.daisy.pipeline.tts.config property dynamically.
@bertfrees
Copy link
Member Author

  • A dedicated option to specify lexicons (in addition to the possibility to attach lexicons to the input)
  • A dedicated option to specify CSS style sheets (in addition to the possibility to attach style sheets to the input)

In addition, there could also be a global setting for the default lexicons, so that the user doesn't need to specify it for every job. The need for a default style sheet is less obvious, but might also exist. Note that there would have to be separate settings for HTML and DTBook.

  • Dedicated options for certain TTS properties
    • org.daisy.pipeline.tts.mp3.bitrate

Here also, it would make sense to keep the global setting for the default bit rate, as a producer will usually have a standard for MP3 quality and wouldn't want to set it on a per job basis.

A generic solution for this kind of global defaults is a templating feature. However such a feature is probably still further away, and might not be implemented on the level of the engine, but only in the GUI.

@bertfrees bertfrees modified the milestones: v1.14.16, v1.14.17 Jan 3, 2024
@bertfrees bertfrees self-assigned this Jan 3, 2024
@bertfrees
Copy link
Member Author

bertfrees commented Jan 3, 2024

Note that we should probably not completely eliminate the options yet in release 1.14.17 because the UI currently still relies on these options and there might not be enough time to update it.

@bertfrees
Copy link
Member Author

The per-job voice configuration could be replaced by a system wide voice configuration, using the org.daisy.pipeline.tts.config setting.

This has been done. The per job configuration is still possible, but the org.daisy.pipeline.tts.config setting can be set through the settings API now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: In Progress
Status: In Progress
Development

No branches or pull requests

1 participant