Skip to content

need better help for how to use the -c | --config-args for every screen #732

@marctessier

Description

@marctessier

Bug description

We need a better help with examples on how to use --config-args | -c in the help screens.

  │ --config-args  -c      TEXT                                 Override the configuration.                                     │
                                                                       [default: None]   

It's not easy to override "not" standard variables where users will be presented non graceful pydantic errors when attempting....

How to reproduce the bug

everyvoice preprocess -c "batch_size=1"  --cpus 1 ./config/everyvoice-text-to-spec.yaml

Error messages and logs

⠙ Loading... (0:00:11.46)/gpfs/fs5/nrc/nrc-fs1/ict/others/u/tes001/miniforge3/envs/EveryVoice_2025-08-12/lib/python3.12/site-packages/panphon/featuretable.py:11: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.
  import pkg_resources
Done Loading... (0:00:12.25)
2025-08-15 12:07:41.249 | INFO     | everyvoice.utils:update_config_from_cli_args:170 - Updating config 'batch_size' to value '1'
2025-08-15 12:07:41.250 | INFO     | everyvoice.config.utils:load_partials:47 - You have both the key preprocessing and path_to_preprocessing_config_file defined in your configuration. We will override values from path_to_preprocessing_config_file with values from preprocessing
2025-08-15 12:07:41.255 | INFO     | everyvoice.config.utils:load_partials:47 - You have both the key text and path_to_text_config_file defined in your configuration. We will override values from path_to_text_config_file with values from text
╭───────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────╮
│ /gpfs/fs5/nrc/nrc-fs1/ict/others/u/tes001/TxT2SPEECH/EveryVoice_2025-08-12/everyvoice/model/feature_prediction/FastSpeech2_ │
│ lightning/fs2/cli/preprocess.py:37 in preprocess                                                                            │
│                                                                                                                             │
│   34 │   │                                                                                                                  │
│   35 │   │   from ..config import FastSpeech2Config                                                                         │
│   36 │                                                                                                                      │
│ ❱ 37 │   preprocessor, config, processed = preprocess_base_command(                                                         │
│   38 │   │   model_config=FastSpeech2Config,                                                                                │
│   39 │   │   steps=[step.name for step in steps],                                                                           │
│   40 │   │   **kwargs,                                                                                                      │
│                                                                                                                             │
│ /gpfs/fs5/nrc/nrc-fs1/ict/others/u/tes001/TxT2SPEECH/EveryVoice_2025-08-12/everyvoice/base_cli/helpers.py:132 in            │
│ preprocess_base_command                                                                                                     │
│                                                                                                                             │
│   129 ):                                                                                                                    │
│   130 │   from everyvoice.preprocessor import Preprocessor                                                                  │
│   131 │                                                                                                                     │
│ ❱ 132 │   config = load_config_base_command(model_config, config_args, config_file)                                         │
│   133 │   preprocessor = Preprocessor(config)                                                                               │
│   134 │   if (                                                                                                              │
│   135 │   │   isinstance(config, FastSpeech2Config)                                                                         │
│                                                                                                                             │
│ /gpfs/fs5/nrc/nrc-fs1/ict/others/u/tes001/TxT2SPEECH/EveryVoice_2025-08-12/everyvoice/base_cli/helpers.py:112 in            │
│ load_config_base_command                                                                                                    │
│                                                                                                                             │
│   109 │   │   logger.error(f"there was a problem with your config file:\n{error}")                                          │
│   110 │   │   sys.exit(1)                                                                                                   │
│   111 │                                                                                                                     │
│ ❱ 112 │   config = update_config_from_cli_args(config_args, config)                                                         │
│   113 │   return config                                                                                                     │
│   114                                                                                                                       │
│   115                                                                                                                       │
│                                                                                                                             │
│ /gpfs/fs5/nrc/nrc-fs1/ict/others/u/tes001/TxT2SPEECH/EveryVoice_2025-08-12/everyvoice/utils/__init__.py:171 in              │
│ update_config_from_cli_args                                                                                                 │
│                                                                                                                             │
│   168 │   for arg in arg_list:                                                                                              │
│   169 │   │   key, value = arg.split("=")                                                                                   │
│   170 │   │   logger.info(f"Updating config '{key}' to value '{value}'")                                                    │
│ ❱ 171 │   │   original_config = original_config.update_config(                                                              │
│   172 │   │   │   expand_config_string_syntax(arg)                                                                          │
│   173 │   │   )                                                                                                             │
│   174 │   return original_config                                                                                            │
│                                                                                                                             │
│ /gpfs/fs5/nrc/nrc-fs1/ict/others/u/tes001/TxT2SPEECH/EveryVoice_2025-08-12/everyvoice/config/shared_types.py:95 in          │
│ update_config                                                                                                               │
│                                                                                                                             │
│    92 │   def update_config(self, new_config: dict):                                                                        │
│    93 │   │   """Update the config with new values"""                                                                       │
│    94 │   │   new_data = self.combine_configs(dict(self), new_config)                                                       │
│ ❱  95 │   │   self.__init__(**new_data)  # type: ignore                                                                     │
│    96 │   │   return self                                                                                                   │
│    97 │                                                                                                                     │
│    98 │   @staticmethod                                                                                                     │
│                                                                                                                             │
│ /gpfs/fs5/nrc/nrc-fs1/ict/others/u/tes001/TxT2SPEECH/EveryVoice_2025-08-12/everyvoice/config/shared_types.py:128 in         │
│ __init__                                                                                                                    │
│                                                                                                                             │
│   125 │                                                                                                                     │
│   126 │   # [Using validation context with BaseModel initialization](https://docs.pydantic.dev                              │
│   127 │   def __init__(__pydantic_self__, **data: Any) -> None:                                                             │
│ ❱ 128 │   │   __pydantic_self__.__pydantic_validator__.validate_python(                                                     │
│   129 │   │   │   data,                                                                                                     │
│   130 │   │   │   self_instance=__pydantic_self__,                                                                          │
│   131 │   │   │   context=_init_context_var.get(),                                                                          │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
ValidationError: 1 validation error for FastSpeech2Config
batch_size
  Extra inputs are not permitted [type=extra_forbidden, input_value='1', input_type=str]
    For further information visit https://errors.pydantic.dev/2.7/v/extra_forbidden

Environment

Current environment
(EveryVoice_2025-08-12) [U24-GPSC5]:$ everyvoice --diagnostic
EveryVoice Diagnostic information
EveryVoice version: 0.4.0
Python version: 3.12.11 | packaged by conda-forge | (main, Jun  4 2025, 14:45:31) [GCC 13.3.0]
System: Linux 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC 2025 x86_64

Environment type: conda

Modules installed using conda:

packages in environment at /gpfs/fs5/nrc/nrc-fs1/ict/others/u/tes001/miniforge3/envs/EveryVoice_2025-08-12:

Name Version Build Channel

_libgcc_mutex 0.1 conda_forge conda-forge
_openmp_mutex 4.5 2_gnu conda-forge
alsa-lib 1.2.14 hb9d3cd8_0 conda-forge
aom 3.9.1 hac33072_0 conda-forge
attr 2.5.1 h166bdaf_1 conda-forge
bzip2 1.0.8 h4bc722e_7 conda-forge
ca-certificates 2025.8.3 hbd8a1cb_0 conda-forge
cairo 1.18.4 h3394656_0 conda-forge
dav1d 1.2.1 hd590300_0 conda-forge
dbus 1.16.2 h3c4dab8_0 conda-forge
ffmpeg 7.1.1 gpl_hea4b676_907 conda-forge
font-ttf-dejavu-sans-mono 2.37 hab24e00_0 conda-forge
font-ttf-inconsolata 3.000 h77eed37_0 conda-forge
font-ttf-source-code-pro 2.038 h77eed37_0 conda-forge
font-ttf-ubuntu 0.83 h77eed37_3 conda-forge
fontconfig 2.15.0 h7e30c49_1 conda-forge
fonts-conda-ecosystem 1 0 conda-forge
fonts-conda-forge 1 0 conda-forge
freetype 2.13.3 ha770c72_1 conda-forge
fribidi 1.0.10 h36c2ea0_0 conda-forge
gdk-pixbuf 2.42.12 h2b0a6b4_3 conda-forge
gettext 0.25.1 h3f43e3d_1 conda-forge
gettext-tools 0.25.1 h3f43e3d_1 conda-forge
gmp 6.3.0 hac33072_2 conda-forge
graphite2 1.3.14 hecca717_1 conda-forge
harfbuzz 11.3.3 hbb57e21_0 conda-forge
icu 75.1 he02047a_0 conda-forge
lame 3.100 h166bdaf_1003 conda-forge
ld_impl_linux-64 2.44 h1423503_1 conda-forge
lerc 4.0.0 h0aef613_1 conda-forge
level-zero 1.24.1 hb700be7_0 conda-forge
libabseil 20250512.1 cxx17_hba17884_0 conda-forge
libasprintf 0.25.1 h3f43e3d_1 conda-forge
libasprintf-devel 0.25.1 h3f43e3d_1 conda-forge
libass 0.17.4 h96ad9f0_0 conda-forge
libcap 2.75 h39aace5_0 conda-forge
libdeflate 1.24 h86f0d12_0 conda-forge
libdrm 2.4.125 hb9d3cd8_0 conda-forge
libegl 1.7.0 ha4b6fd6_2 conda-forge
libexpat 2.7.1 hecca717_0 conda-forge
libffi 3.4.6 h2dba641_1 conda-forge
libflac 1.4.3 h59595ed_0 conda-forge
libfreetype 2.13.3 ha770c72_1 conda-forge
libfreetype6 2.13.3 h48d6fc4_1 conda-forge
libgcc 15.1.0 h767d61c_4 conda-forge
libgcc-ng 15.1.0 h69a702a_4 conda-forge
libgcrypt-lib 1.11.1 hb9d3cd8_0 conda-forge
libgettextpo 0.25.1 h3f43e3d_1 conda-forge
libgettextpo-devel 0.25.1 h3f43e3d_1 conda-forge
libgl 1.7.0 ha4b6fd6_2 conda-forge
libglib 2.84.3 hf39c6af_0 conda-forge
libglvnd 1.7.0 ha4b6fd6_2 conda-forge
libglx 1.7.0 ha4b6fd6_2 conda-forge
libgomp 15.1.0 h767d61c_4 conda-forge
libgpg-error 1.55 h3f2d84a_0 conda-forge
libhwloc 2.12.1 default_h3d81e11_1000 conda-forge
libiconv 1.18 h3b78370_2 conda-forge
libjpeg-turbo 3.1.0 hb9d3cd8_0 conda-forge
liblzma 5.8.1 hb9d3cd8_2 conda-forge
liblzma-devel 5.8.1 hb9d3cd8_2 conda-forge
libnsl 2.0.1 hb9d3cd8_1 conda-forge
libogg 1.3.5 hd0c01bc_1 conda-forge
libopenvino 2025.2.0 hb617929_1 conda-forge
libopenvino-auto-batch-plugin 2025.2.0 hed573e4_1 conda-forge
libopenvino-auto-plugin 2025.2.0 hed573e4_1 conda-forge
libopenvino-hetero-plugin 2025.2.0 hd41364c_1 conda-forge
libopenvino-intel-cpu-plugin 2025.2.0 hb617929_1 conda-forge
libopenvino-intel-gpu-plugin 2025.2.0 hb617929_1 conda-forge
libopenvino-intel-npu-plugin 2025.2.0 hb617929_1 conda-forge
libopenvino-ir-frontend 2025.2.0 hd41364c_1 conda-forge
libopenvino-onnx-frontend 2025.2.0 h1862bb8_1 conda-forge
libopenvino-paddle-frontend 2025.2.0 h1862bb8_1 conda-forge
libopenvino-pytorch-frontend 2025.2.0 hecca717_1 conda-forge
libopenvino-tensorflow-frontend 2025.2.0 h0767aad_1 conda-forge
libopenvino-tensorflow-lite-frontend 2025.2.0 hecca717_1 conda-forge
libopus 1.5.2 hd0c01bc_0 conda-forge
libpciaccess 0.18 hb9d3cd8_0 conda-forge
libpng 1.6.50 h421ea60_1 conda-forge
libprotobuf 6.31.1 h9ef548d_1 conda-forge
librsvg 2.58.4 he92a37e_3 conda-forge
libsndfile 1.2.2 hc60ed4a_1 conda-forge
libsqlite 3.50.4 h0c1763c_0 conda-forge
libstdcxx 15.1.0 h8f9b012_4 conda-forge
libstdcxx-ng 15.1.0 h4852527_4 conda-forge
libsystemd0 257.7 h4e0b6ca_0 conda-forge
libtiff 4.7.0 h8261f1e_6 conda-forge
libudev1 257.7 hbe16f8c_0 conda-forge
libunwind 1.8.2 h1441ba7_0 conda-forge
liburing 2.11 h84d6215_0 conda-forge
libusb 1.0.29 h73b1eb8_0 conda-forge
libuuid 2.38.1 h0b41bf4_0 conda-forge
libva 2.22.0 h4f16b4b_2 conda-forge
libvorbis 1.3.7 h54a6638_2 conda-forge
libvpx 1.14.1 hac33072_0 conda-forge
libwebp-base 1.6.0 hd42ef1d_0 conda-forge
libxcb 1.17.0 h8a09558_0 conda-forge
libxcrypt 4.4.36 hd590300_1 conda-forge
libxkbcommon 1.11.0 he8b52b9_0 conda-forge
libxml2 2.13.8 h04c0eec_1 conda-forge
libzlib 1.3.1 hb9d3cd8_2 conda-forge
lz4-c 1.10.0 h5888daf_1 conda-forge
mad 0.15.1b h9c3ff4c_1 conda-forge
mpg123 1.32.9 hc50e24c_0 conda-forge
ncurses 6.5 h2d0b736_3 conda-forge
ocl-icd 2.3.3 hb9d3cd8_0 conda-forge
opencl-headers 2025.06.13 h5888daf_0 conda-forge
openh264 2.6.0 hc22cd8d_0 conda-forge
openssl 3.5.2 h26f9b46_0 conda-forge
pango 1.56.4 hadf4263_0 conda-forge
pcre2 10.45 hc749103_0 conda-forge
pip 25.2 pyh8b19718_0 conda-forge
pixman 0.46.4 h54a6638_1 conda-forge
pthread-stubs 0.4 hb9d3cd8_1002 conda-forge
pugixml 1.15 h3f63f65_0 conda-forge
pulseaudio-client 17.0 hac146a9_1 conda-forge
python 3.12.11 h9e4cc4f_0_cpython conda-forge
readline 8.2 h8c095d6_2 conda-forge
sdl2 2.32.54 h3f2d84a_0 conda-forge
sdl3 3.2.20 h68140b3_0 conda-forge
setuptools 80.9.0 pyhff2d567_0 conda-forge
snappy 1.2.2 h03e3b7b_0 conda-forge
sox 14.4.2 h59a48fd_1020 conda-forge
svt-av1 3.0.2 h5888daf_0 conda-forge
tbb 2022.2.0 hb60516a_0 conda-forge
tk 8.6.13 noxft_hd72426e_102 conda-forge
wayland 1.24.0 h3e06ad9_0 conda-forge
wayland-protocols 1.45 hd8ed1ab_0 conda-forge
wheel 0.45.1 pyhd8ed1ab_1 conda-forge
x264 1!164.3095 h166bdaf_2 conda-forge
x265 3.5 h924138e_3 conda-forge
xkeyboard-config 2.45 hb9d3cd8_0 conda-forge
xorg-libice 1.1.2 hb9d3cd8_0 conda-forge
xorg-libsm 1.2.6 he73a12e_0 conda-forge
xorg-libx11 1.8.12 h4f16b4b_0 conda-forge
xorg-libxau 1.0.12 hb9d3cd8_0 conda-forge
xorg-libxcursor 1.2.3 hb9d3cd8_0 conda-forge
xorg-libxdmcp 1.1.5 hb9d3cd8_0 conda-forge
xorg-libxext 1.3.6 hb9d3cd8_0 conda-forge
xorg-libxfixes 6.0.1 hb9d3cd8_0 conda-forge
xorg-libxrender 0.9.12 hb9d3cd8_0 conda-forge
xorg-libxscrnsaver 1.2.4 hb9d3cd8_0 conda-forge
zlib 1.3.1 hb9d3cd8_2 conda-forge
zstd 1.5.7 hb8e6e7a_2 conda-forge

torch modules installed using pip:
pytorch-lightning==2.5.2
torch==2.7.1+cu126
torchaudio==2.7.1+cu126
torchinfo==1.8.0
torchmetrics==1.8.1

Other modules installed using pip:
absl-py==2.3.1
aiofiles==24.1.0
aiohappyeyeballs==2.6.1
aiohttp==3.12.15
aiosignal==1.4.0
annotated-types==0.7.0
anyio==4.10.0
anytree==2.13.0
arrow==1.3.0
attrs==25.3.0
audioread==3.0.1
black==24.10.0
brotli==1.1.0
certifi==2025.8.3
cffi==1.17.1
cfgv==3.4.0
chardet==5.2.0
charset-normalizer==3.4.3
chevron==0.14.0
click==8.1.8
clipdetect==0.1.4
coloredlogs==15.0.1
contourpy==1.3.3
coverage==7.10.3
cycler==0.12.1
decorator==5.2.1
deepdiff==8.6.0
diff-cover==9.6.0
distlib==0.4.0
dnspython==2.7.0
docopt==0.6.2
editdistance==0.8.1
einops==0.5.0
email-validator==2.2.0
et-xmlfile==2.0.0
-e file:///gpfs/fs5/nrc/nrc-fs1/ict/others/u/tes001/TxT2SPEECH/EveryVoice_2025-08-12
fastapi==0.116.1
ffmpy==0.6.1
filelock==3.18.0
flake8==7.3.0
fonttools==4.59.0
frozenlist==1.7.0
fsspec==2025.7.0
g2p==2.2.2
gitlint-core==0.19.1
gradio==5.42.0
gradio-client==1.11.1
grapheme==0.6.0
greenlet==3.2.4
groovy==0.1.2
grpcio==1.74.0
h11==0.16.0
hf-xet==1.1.7
httpcore==1.0.9
httpx==0.28.1
huggingface-hub==0.34.4
humanfriendly==10.0
identify==2.6.13
idna==3.10
iniconfig==2.1.0
ipatok==0.4.2
isort==6.0.1
jinja2==3.1.6
joblib==1.5.1
jsonschema==4.25.0
jsonschema-specifications==2025.4.1
kiwisolver==1.4.9
lazy-loader==0.4
librosa==0.11.0
lightning==2.5.2
lightning-utilities==0.15.2
llvmlite==0.44.0
loguru==0.6.0
lxml==6.0.0
markdown==3.8.2
markdown-it-py==4.0.0
markupsafe==3.0.2
matplotlib==3.9.4
mccabe==0.7.0
mdurl==0.1.2
merge-args==0.1.5
mpmath==1.3.0
msgpack==1.1.1
multidict==6.6.4
munkres==1.1.4
mypy==1.17.1
mypy-extensions==1.1.0
networkx==3.5
nltk==3.9.1
nodeenv==1.9.1
numba==0.61.2
numpy==1.26.4
nvidia-cublas-cu12==12.6.4.1
nvidia-cuda-cupti-cu12==12.6.80
nvidia-cuda-nvrtc-cu12==12.6.77
nvidia-cuda-runtime-cu12==12.6.77
nvidia-cudnn-cu12==9.5.1.17
nvidia-cufft-cu12==11.3.0.4
nvidia-cufile-cu12==1.11.1.6
nvidia-curand-cu12==10.3.7.77
nvidia-cusolver-cu12==11.7.1.2
nvidia-cusparse-cu12==12.5.4.2
nvidia-cusparselt-cu12==0.6.3
nvidia-nccl-cu12==2.26.2
nvidia-nvjitlink-cu12==12.6.85
nvidia-nvtx-cu12==12.6.77
openpyxl==3.1.5
orderly-set==5.5.0
orjson==3.11.2
packaging==25.0
pandas==2.3.1
panphon==0.20.0
pathspec==0.12.1
pep440==0.1.2
pillow==11.3.0
pip @ file:///home/conda/feedstock_root/build_artifacts/pip_1753924886980/work
platformdirs==4.3.8
playwright==1.54.0
pluggy==1.6.0
pooch==1.8.2
pre-commit==4.3.0
prompt-toolkit==3.0.51
propcache==0.3.2
protobuf==4.25.8
pycodestyle==2.14.0
pycountry==22.3.5
pycparser==2.22
pydantic==2.7.4
pydantic-core==2.18.4
pydub==0.25.1
pyee==13.0.0
pyflakes==3.4.0
pygments==2.19.2
pympi-ling==1.70.2
pyparsing==3.2.3
pysdtw==0.0.5
pytest==7.4.4
python-dateutil==2.9.0.post0
python-multipart==0.0.20
python-slugify==5.0.0
pytz==2025.2
pyworld-prebuilt==0.3.4.4
pyyaml==6.0.2
questionary==1.10.0
readalongs==1.2.1
referencing==0.36.2
regex==2025.7.34
requests==2.32.4
rich==14.1.0
rpds-py==0.27.0
ruff==0.12.8
safehttpx==0.1.6
scikit-learn==1.7.1
scipy==1.16.1
semantic-version==2.10.0
setuptools==80.9.0
sh==2.2.2
shellingham==1.5.4
simple-term-menu==1.5.2
six==1.17.0
sniffio==1.3.1
soundfile==0.13.1
soundswallower==0.6.5
soxr==0.5.0.post1
starlette==0.47.2
sympy==1.14.0
tabulate==0.9.0
tensorboard==2.20.0
tensorboard-data-server==0.7.2
termcolor==2.3.0
text-unidecode==1.3
threadpoolctl==3.6.0
tomlkit==0.13.3
tqdm==4.67.1
triton==3.3.1
typer==0.16.0
types-python-dateutil==2.9.0.20250809
types-pyyaml==6.0.12.20250809
types-requests==2.32.4.20250809
types-setuptools==80.9.0.20250809
types-tabulate==0.9.0.0
types-tqdm==4.67.0.20250809
typing-extensions==4.14.1
tzdata==2025.2
unicodecsv==0.14.1
urllib3==2.5.0
uvicorn==0.35.0
virtualenv==20.33.1
wcwidth==0.2.13
websockets==15.0.1
webvtt-py==0.4.2
werkzeug==3.1.3
wheel==0.45.1
yarl==1.20.1
yaspin==3.1.0

More info

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions