coqui-ai / TTS

πŸΈπŸ’¬ - a deep learning toolkit for Text-to-Speech, battle-tested in research and production
http://coqui.ai
Mozilla Public License 2.0
35.88k stars 4.39k forks source link

[Discussion] Ideas for better model config management #21

Closed erogol closed 3 years ago

erogol commented 3 years ago

(I keep it in the issues to refer back to the initial discussion)

Hi All!!

I guess one of the biggest issues in TTS is the way we handle the configs for models and training. Putting example config files under the config folder is hard to maintain and looks complicated for people to start using TTS.

So I want to discuss here some better alternatives and ask for the wisdom of the crowd πŸ§‘β€πŸ€β€πŸ§‘.

Couple of constraints we need to consider from the top of my head.

If you have an idea please share it below and let's discuss it.

Edit:

I should also add one more constraint.

NOTE: This is a continuation of previously started conversion https://github.com/mozilla/TTS/issues/660

Originally posted by @erogol in https://github.com/coqui-ai/TTS/discussions/20

thorstenMueller commented 3 years ago

In addition to the previous conversation i'd like to add:

WeberJulian commented 3 years ago

Maybe we could have an internal default for each model and only write default override in a YAML file (which allows for comments and is more user friendly). And since we don't have the json to explain the fields, we can have a .md per model or concept (like the audio processor) explaining the fields.

gerazov commented 3 years ago

If we're leaning towards YAML maybe strict-yaml is worth considering.

On the other hand Python devs seem to be going for TOML - PEP 621

WeberJulian commented 3 years ago

On the other hand Python devs seem to be going for TOML - PEP 621

I don't know the ambitions of coqui-TTS but if one day you decide to have model run on iOS or android (or something else) it seems that keeping the config in a non specific to python format might be a good idea

erogol commented 3 years ago

do you know what are good formats with multiple platform support?

I guess json is one and that was the reason I choose it initially.

Btw one good option could be using just Python classes as config files and export them to generic formats when necessary.

gerazov commented 3 years ago

+1 for a Python class that could get exported if need be.

erogol commented 3 years ago

this looks like a good option https://pypi.org/project/dataclasses-json/ as @reuben suggested

erogol commented 3 years ago

I created this to use an in house solution https://github.com/erogol/coqpit

erogol commented 3 years ago

here we go https://github.com/coqui-ai/TTS/pull/476

stale[bot] commented 3 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. You might also look our discussion channels.

erogol commented 3 years ago

I think we can close this as it is solved with the new Coqpit integration.

Thx everyone for your discussion.

erogol commented 2 years ago

@omkarade why are you spamming here and there? Please create a new topic under discussion and ask your questions there.