Releases: nomadkaraoke/python-audio-separator
Releases · nomadkaraoke/python-audio-separator
v0.44.2
fix(remote): unblock audio-separator-remote for typical files (#288) * fix(remote): unblock audio-separator-remote for typical files Two independent issues prevented `audio-separator-remote` from working end-to-end against the GCP Cloud Run deployment: 1. **CLI hits Cloud Run's 32 MiB request body limit on real audio files.** The underlying AudioSeparatorAPIClient already supports a `gcs_uri` mode where the server fetches from GCS (used by karaoke-gen), but the CLI only exposed the multipart upload path. Now the CLI detects files >30 MiB and auto-uploads to GCS, passes `gcs_uri` to the API, and cleans up the GCS object in a `finally` block (the bucket's 1-day lifecycle is the safety net). Bucket configurable via `--gcs-bucket` or `AUDIO_SEPARATOR_GCS_INPUT_BUCKET`; defaults to the existing `nomadkaraoke-audio-separator-outputs` (separator SA already has objectAdmin, no infra change needed). `google-cloud-storage` is lazy-imported with a clear install hint if missing. 2. **Cloud Run server silently runs in CPU mode, not GPU.** The image relied on `pip install ".[gpu]"` for GPU support, which only swaps in `onnxruntime-gpu` — the `torch>=2.3` constraint pulls PyPI's default CPU-only PyTorch wheel. Result: `torch.cuda.is_available()` returns False, Separator falls back to CPU, jobs run ~10x slower (50 min instead of 5 min for the vocal_balanced preset). karaoke-gen's audio-separation-job image already documents this gotcha in `Dockerfile.gpu-base:100-106`; mirroring that pattern here: install `torch==2.6.0+cu126` from the cu126 index first so audio-separator[gpu] sees torch as already satisfied. Tests: 7 new unit tests covering GCS upload helpers (blob path format, URI parsing, error handling), bucket resolution priority (--flag > env > default), and the integration into handle_separate_command (large/small file, cleanup on failure, upload failure). Bumps version to 0.44.2. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * test: pass gcs_bucket to handle_separate_command in integration test Missed this call site when updating the function signature. Unit tests in tests/unit/test_remote_cli.py were updated, but integration test test_cli_separate_command_integration still passed only 3 args. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
v0.44.1
fix: send multipart encoding when using gcs_uri (fixes 400 error) (#278) FastAPI requires multipart/form-data for endpoints with File()/Form() parameters. When gcs_uri is used without a file upload, requests defaulted to x-www-form-urlencoded, causing a 400 Bad Request. Fix: send a dummy empty file field to force multipart encoding. Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
v0.44.0
feat: add GCS URI support to /separate endpoint (#277) Allow callers to pass a gcs_uri (gs://bucket/path) instead of uploading the audio file as a multipart POST body. This avoids Cloud Run's 32MB request body limit for large FLAC files. - Server: new gcs_uri parameter on /separate, downloads from GCS directly - Client: separate_audio() and separate_audio_and_wait() accept gcs_uri - Backward compatible: file upload still works when gcs_uri is not set - Version bump to 0.44.0 Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
v0.43.1
fix: ensemble separation ignores custom_output_names, misclassifies s…
v0.43.0
chore: bump version to 0.43.0 (#274) * chore: bump version to 0.43.0 New features in this release: - Cloud Run GPU deployment support (deploy_cloudrun.py, Dockerfile.cloudrun) - Ensemble preset support in API client (-p/--preset flag in CLI) - Preset parameter in separate_audio() and separate_audio_and_wait() - Stem marker stripping for chained separations Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Trigger CI: runners restarted, idle check paused --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
v0.42.1
chore: bump version to 0.42.1 (#271) Patch release for: - Fix chunk overwrite when using custom_output_names with chunk_duration (#259, #270) - Clarify demucs segment_size "Default" documentation (#264, #270) Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
v0.42.0
feat: multi-model ensemble separation with 9 community-curated preset…
v0.41.1
fix: RFC 5987 encoding for Unicode filenames in Content-Disposition h…
v0.41.0
Update pyproject.toml
v0.40.0
Preserve bit depth of input audio (don't down sample everything to 16…