Skip to content

Iterate on cross-platform support#132

Merged
BeckettFrey merged 11 commits into
mainfrom
VOX-98-QA-Testing
May 8, 2026
Merged

Iterate on cross-platform support#132
BeckettFrey merged 11 commits into
mainfrom
VOX-98-QA-Testing

Conversation

@BeckettFrey

Copy link
Copy Markdown
Member

This pull request improves cross-platform compatibility (Windows, Mac, Linux); and updates dependency management for better reproducibility and packaging. Also the addition of two new analyzers for audio statistics. Some cleanup and refactoring ensued along the way.

New Dataset Analyzers:

  • Added ClipDurationStatisticsAnalyzer to compute total, average, min, and max clip durations per speaker, including a bar chart visualization. [1] [2] [3] [4]
  • Added AudioFormatProfileAnalyzer to summarize dominant sample rate, channel count, and flag inconsistent files per speaker. [1] [2] [3] [4]

Windows and Cross-Platform Improvements:

  • Updated main.py to call multiprocessing.freeze_support() at the top for PyInstaller compatibility, redirect sys.stdout/sys.stderr to os.devnull if missing, and set UTF-8 encoding on Windows to prevent Unicode errors. [1] [2]
  • Added Windows installer script VoxKit.iss and Linux desktop entry for packaging and distribution. [1] [2]

Dependency Management and Packaging:

  • Refactored pyproject.toml to specify key dependencies (e.g., pypllrcomputer, wav2textgrid, alignment-comparison-plots, speechbrain) via [tool.uv.sources] for Windows compatibility and reproducibility. [1] [2] [3]
  • Updated exclusion patterns in pyproject.toml to ignore build artifacts (build/, dist/).

Bug Fixes and Minor Improvements:

  • Fixed YAML and JSON config file reading to always use UTF-8 encoding for cross-platform safety. [1] [2] [3]
  • Improved faster_whisper_engine.py to skip hidden files when globbing for audio files.
  • Ensured exceptions are raised on alignment failure in mfa_engine.py for better error reporting.

Developer Experience:

  • Updated .pre-commit-config.yaml to run the shredguard check via uv for consistent development environment.

BeckettFrey and others added 11 commits April 28, 2026 15:18
* Adapt logic to pass tests on windows and macos

* Configure stdout/stderr to use UTF-8 before any output in main.py

* Skip lab file validation when registering an untranscribed dataset

* Skip dot-underscore macOS resource fork files during transcription

* Resolve conda executable path across platforms for MFA service calls

* Pin separate git dependencies to local branches

* Switch to editable for local deps

* Fix cache default based on dataset cached

* Pin forked speechbrain to patch problems

* Add lock file updates

* Fix purple alternating table rows by overriding system palette alternate-background-color

* Separate tasks for build by os, add windows-build

* Block terminal from opening during subprocesses in built exe

* Add windows voxkit icon for exe

* Add transcription verification w.r.t. expectation

* Store textgrids in local storage for all datasets and fix w2tg using wrong audio root for non-cached

* Add 2 additional dataset analysis methods

* Fix and expand dataset validation tests

* Fix model import path rewrite on Windows

* Fix training using wrong audio path for non-cached datasets

* Fix aggregation function resolution for compute_pllr

* Remove local task file

* Move some dependencies to remote
MFA 3.3.x's SQLite backend hits a multiprocessing race in
collect_alignments on Windows where the word_interval_temp staging table
disappears between worker connections, aborting alignment. Run
`mfa server init` + `mfa server start` (both idempotent) before align
and adapt so the bundled Postgres backend is used instead. Gated to
win32 so macOS and Linux behavior is unchanged.
Old install script added $HOME/.cargo/bin to PATH, but modern uv
installs to $HOME/.local/bin, breaking Windows and Ubuntu jobs.
pytest-qt failed with 'libEGL.so.1: cannot open shared object file' on
ubuntu-latest because Qt's runtime libraries aren't preinstalled and
there's no display server available.
@BeckettFrey BeckettFrey merged commit a721052 into main May 8, 2026
6 checks passed
@BeckettFrey BeckettFrey deleted the VOX-98-QA-Testing branch May 8, 2026 22:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant