replace descript-audio-codec with lightweight DAC shim

The real descript-audio-codec package pulls in descript-audiotools,
which transitively requires onnx, tensorboard, protobuf, matplotlib,
pystoi, and other heavy dependencies. onnx fails to build from source
on macOS due to CMake version incompatibility.

TADA only uses Snake1d (a 7-line PyTorch module) from DAC. This commit
adds a shim in backend/utils/dac_shim.py that registers fake dac.*
modules in sys.modules with just the Snake1d class, completely
eliminating the DAC/audiotools dependency chain.
This commit is contained in:
James Pine
2026-03-17 02:16:33 -07:00
parent 4e7772a21d
commit b02ce8e2f3
4 changed files with 108 additions and 14 deletions
+4 -12
View File
@@ -213,19 +213,11 @@ def build_server(cuda=False):
"tada.utils.gray_code",
"--hidden-import",
"tada.utils.text",
# descript-audio-codec (DAC) — used by TADA for Snake1d layers
# DAC shim — provides dac.nn.layers.Snake1d without the real
# descript-audio-codec package (which pulls onnx/tensorboard via
# descript-audiotools). The shim is in backend/utils/dac_shim.py.
"--hidden-import",
"dac",
"--hidden-import",
"dac.nn",
"--hidden-import",
"dac.nn.layers",
"--hidden-import",
"dac.model",
"--hidden-import",
"dac.model.dac",
"--collect-all",
"dac",
"backend.utils.dac_shim",
"--hidden-import",
"torchaudio",
"--collect-submodules",