torchaudio 2.11 routes torchaudio.save()/load() through TorchCodec and
ignores the `backend` argument, so every generation died at the save
step with "ImportError: TorchCodec is required for save_with_torchcodec"
after the diffusion had already finished. Reference-audio loading
(audio2audio, repaint, extend) and the training dataset loader hit the
same wall.
soundfile is already a required dependency and covers all four output
formats the UI offers, so use it directly rather than pulling in
TorchCodec and its native FFmpeg stack:
- pipeline_ace_step.save_wav_file(): sf.write(), transposing
(channels, samples) -> (samples, channels); drops the now-unused
torchaudio import
- MusicDCAE.load_audio() and text2music_dataset: sf.read(dtype=float32,
always_2d=True), transposed back to (channels, samples)
torchaudio is still used for Resample/MelScale transforms, which are
unaffected.
Verified end to end: 10s generation on an RTX 3060 in 9.7s, output is
valid non-silent 48kHz stereo; load_audio round-trips it; wav/mp3/ogg/
flac all write and read back.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>