diff --git a/README.md b/README.md index 8b6c73d..d6bc798 100644 --- a/README.md +++ b/README.md @@ -585,7 +585,7 @@ VR Architecture Parameters: --vr_post_process_threshold VR_POST_PROCESS_THRESHOLD Threshold for post_process feature: 0.1-0.3 (default: 0.2). Example: --vr_post_process_threshold=0.1 Demucs Architecture Parameters: - --demucs_segment_size DEMUCS_SEGMENT_SIZE Size of segments into which the audio is split, 1-100. Higher = slower but better quality (default: Default). Example: --demucs_segment_size=256 + --demucs_segment_size DEMUCS_SEGMENT_SIZE Segment length in seconds, 1-100. Smaller values use less memory. Use 'Default' to use the model's configured segment length (default: Default). Example: --demucs_segment_size=40 --demucs_shifts DEMUCS_SHIFTS Number of predictions with random shifts, higher = slower but better quality (default: 2). Example: --demucs_shifts=4 --demucs_overlap DEMUCS_OVERLAP Overlap between prediction windows, 0.001-0.999. Higher = slower but better quality (default: 0.25). Example: --demucs_overlap=0.25 --demucs_segments_enabled DEMUCS_SEGMENTS_ENABLED Enable segment-wise processing (default: True). Example: --demucs_segments_enabled=False diff --git a/audio_separator/utils/cli.py b/audio_separator/utils/cli.py index 927b7ad..d37a5c2 100755 --- a/audio_separator/utils/cli.py +++ b/audio_separator/utils/cli.py @@ -134,7 +134,7 @@ def main(): vr_params.add_argument("--vr_enable_post_process", action="store_true", help=vr_enable_post_process_help) vr_params.add_argument("--vr_post_process_threshold", type=float, default=0.2, help=vr_post_process_threshold_help) - demucs_segment_size_help = "Size of segments into which the audio is split, 1-100. Higher = slower but better quality (default: %(default)s). Example: --demucs_segment_size=256" + demucs_segment_size_help = "Segment length in seconds, 1-100. Smaller values use less memory. Use 'Default' to use the model's configured segment length (default: %(default)s). Example: --demucs_segment_size=40" demucs_shifts_help = "Number of predictions with random shifts, higher = slower but better quality (default: %(default)s). Example: --demucs_shifts=4" demucs_overlap_help = "Overlap between prediction windows, 0.001-0.999. Higher = slower but better quality (default: %(default)s). Example: --demucs_overlap=0.25" demucs_segments_enabled_help = "Enable segment-wise processing (default: %(default)s). Example: --demucs_segments_enabled=False" diff --git a/tests/unit/test_cli.py b/tests/unit/test_cli.py index ebd419f..457c513 100644 --- a/tests/unit/test_cli.py +++ b/tests/unit/test_cli.py @@ -1,6 +1,7 @@ import json import pytest import logging +from pathlib import Path from audio_separator.utils.cli import main import subprocess import importlib.metadata @@ -76,6 +77,21 @@ def test_cli_no_args(capsys): assert "Separate audio file into different stems." in captured.out +def test_cli_demucs_segment_size_help(capsys): + with patch("sys.argv", ["cli.py", "--help"]): + with pytest.raises(SystemExit) as exc_info: + main() + + assert exc_info.value.code == 0 + help_output = capsys.readouterr().out + assert "Use 'Default' to use the model's configured segment length" in help_output + assert "Example: --demucs_segment_size=40" in help_output + + readme = Path(__file__).parents[2].joinpath("README.md").read_text(encoding="utf-8") + assert "Use 'Default' to use the model's configured segment length" in readme + assert "Example: --demucs_segment_size=40" in readme + + # Test with multiple filename arguments def test_cli_multiple_filenames(): test_args = ["cli.py", "test1.mp3", "test2.mp3"]