mirror of
https://github.com/mudler/LocalAI.git
synced 2026-06-26 01:16:58 -04:00
* feat(supertonic): vendor upstream Go TTS pipeline (helper.go) Assisted-by: Claude:claude-opus-4-8 [Claude Code] Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * feat(supertonic): add gRPC backend (Load/TTS/TTSStream, CPU) Assisted-by: Claude:claude-opus-4-8 [Claude Code] Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * fix(supertonic): satisfy unused linter (use onnxProvider; exclude vendored helper.go) Assisted-by: Claude:claude-opus-4-8 [Claude Code] Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * test(supertonic): unit tests for resolvers + gated end-to-end synthesis Assisted-by: Claude:claude-opus-4-8 [Claude Code] Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * style(supertonic): gofmt backend.go comment block Assisted-by: Claude:claude-opus-4-8 [Claude Code] Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * feat(supertonic): add Makefile, run.sh, package.sh (CPU build) Assisted-by: Claude:claude-opus-4-8 [Claude Code] Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * build(supertonic): wire backend into root Makefile Assisted-by: Claude:claude-opus-4-8 [Claude Code] Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * fix(supertonic): check ort.DestroyEnvironment return (errcheck) Assisted-by: Claude:claude-opus-4-8 [Claude Code] Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * fix(supertonic): resolve voice_styles as sibling of onnx dir; guard trim; test voice Assisted-by: Claude:claude-opus-4-8 [Claude Code] Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * feat(supertonic): add CPU build matrix + gallery index entries Assisted-by: Claude:claude-opus-4-8 [Claude Code] Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * feat(supertonic): expose as pref-only importable backend Assisted-by: Claude:claude-opus-4-8 [Claude Code] Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * feat(supertonic): add Supertonic/supertonic-3 TTS model to the gallery 16 files (4 onnx + tts.json + unicode_indexer.json + 10 voice styles) from HF Supertone/supertonic-3, served via the supertonic backend. Defaults to voice F1; onnx/ + sibling voice_styles/ layout matches the backend's resolveVoicesDir. Assisted-by: Claude:claude-opus-4-8 [Claude Code] Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * fix(meta): register pipeline.max_history_items config field Pre-existing on master: the field was added without a registry entry, failing TestAllFieldsHaveRegistryEntries (core/config/meta). Add the entry so it renders properly in the model-config UI. Assisted-by: Claude:claude-opus-4-8 [Claude Code] Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * ci(secscan): exclude vendored supertonic backend from gosec helper.go is vendored from supertone-inc/supertonic; its G304/G404/G104 findings are inherent to upstream and the math/rand use is correct for flow-matching noise (crypto/rand would be wrong). Assisted-by: Claude:claude-opus-4-8 [Claude Code] Signed-off-by: Ettore Di Giacinto <mudler@localai.io> --------- Signed-off-by: Ettore Di Giacinto <mudler@localai.io> Co-authored-by: Ettore Di Giacinto <mudler@localai.io>
63 lines
1.5 KiB
Makefile
63 lines
1.5 KiB
Makefile
CURRENT_DIR=$(abspath ./)
|
|
GOCMD=go
|
|
|
|
ONNX_VERSION?=1.24.4
|
|
ONNX_ARCH?=x64
|
|
ONNX_OS?=linux
|
|
|
|
ifneq (,$(findstring aarch64,$(shell uname -m)))
|
|
ONNX_ARCH=aarch64
|
|
endif
|
|
|
|
ifeq ($(OS),Darwin)
|
|
ONNX_OS=osx
|
|
ifneq (,$(findstring arm64,$(shell uname -m)))
|
|
ONNX_ARCH=arm64
|
|
else
|
|
ONNX_ARCH=x86_64
|
|
endif
|
|
endif
|
|
|
|
# CUDA 12 ships as -gpu, CUDA 13 as -gpu_cuda13 (underscore). CPU has no suffix.
|
|
ifeq ($(BUILD_TYPE),cublas)
|
|
ONNX_PROVIDER=cuda
|
|
ifeq ($(CUDA_MAJOR_VERSION),13)
|
|
ONNX_VARIANT=-gpu_cuda13
|
|
else
|
|
ONNX_VARIANT=-gpu
|
|
endif
|
|
else
|
|
ONNX_VARIANT=
|
|
ONNX_PROVIDER=cpu
|
|
endif
|
|
|
|
sources/onnxruntime:
|
|
mkdir -p sources/onnxruntime
|
|
curl -L https://github.com/microsoft/onnxruntime/releases/download/v$(ONNX_VERSION)/onnxruntime-$(ONNX_OS)-$(ONNX_ARCH)$(ONNX_VARIANT)-$(ONNX_VERSION).tgz \
|
|
-o sources/onnxruntime/onnxruntime.tgz
|
|
cd sources/onnxruntime && tar -xf onnxruntime.tgz --strip-components=1 && rm onnxruntime.tgz
|
|
|
|
backend-assets/lib: sources/onnxruntime
|
|
mkdir -p backend-assets/lib
|
|
cp -rfLv sources/onnxruntime/lib/* backend-assets/lib/
|
|
|
|
supertonic: backend-assets/lib
|
|
CGO_ENABLED=1 $(GOCMD) build \
|
|
-ldflags "$(LD_FLAGS) -X main.onnxProvider=$(ONNX_PROVIDER)" \
|
|
-tags "$(GO_TAGS)" -o supertonic ./
|
|
|
|
package:
|
|
bash package.sh
|
|
|
|
build: supertonic package
|
|
|
|
# Tests need only the Go toolchain (gcc); yalue dlopens onnxruntime at
|
|
# runtime, so no tarball download is required to compile or run unit specs.
|
|
test:
|
|
CGO_ENABLED=1 $(GOCMD) test -v -timeout 120s ./...
|
|
|
|
clean:
|
|
rm -rf supertonic sources/ backend-assets/ package/
|
|
|
|
.PHONY: build package clean test
|