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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions