From 434fd5b31ca0fc9d510bed9a7d7a5554c6823743 Mon Sep 17 00:00:00 2001 From: Ettore Di Giacinto Date: Fri, 12 Jun 2026 17:40:17 +0000 Subject: [PATCH] fix(darwin): publish sherpa-onnx and speaker-recognition images for darwin/arm64 Neither the sherpa-onnx nor the speaker-recognition backend had a darwin/arm64 image, so `local-ai backends install` failed with "no child with platform darwin/arm64" on macOS. This left /v1/audio/diarization (the sherpa-onnx path) and /v1/voice/embed without any usable backend on Apple Silicon. Both backends build on darwin/arm64: - sherpa-onnx (Go) already fetches the onnxruntime osx-arm64 runtime in its Makefile; it only needed a darwin matrix entry (build-type metal, lang go, like whisper and silero-vad). - speaker-recognition (Python) needed a requirements-mps.txt so the mps build installs plain onnxruntime (which ships a macOS arm64 wheel) instead of the onnxruntime-gpu pulled by its base requirements (which does not). Add both to the includeDarwin build matrix, wire the metal capability and metal image aliases into the gallery, and add the speaker-recognition requirements-mps.txt. Fixes #10268 Signed-off-by: Ettore Di Giacinto Assisted-by: Claude:claude-opus-4-8 [Claude Code] --- .github/backend-matrix.yml | 7 ++++++ backend/index.yaml | 24 +++++++++++++++++++ .../speaker-recognition/requirements-mps.txt | 5 ++++ 3 files changed, 36 insertions(+) create mode 100644 backend/python/speaker-recognition/requirements-mps.txt diff --git a/.github/backend-matrix.yml b/.github/backend-matrix.yml index 1bb850de1233..7df58bf6d1d6 100644 --- a/.github/backend-matrix.yml +++ b/.github/backend-matrix.yml @@ -4461,6 +4461,10 @@ includeDarwin: tag-suffix: "-metal-darwin-arm64-silero-vad" build-type: "metal" lang: "go" + - backend: "sherpa-onnx" + tag-suffix: "-metal-darwin-arm64-sherpa-onnx" + build-type: "metal" + lang: "go" - backend: "local-store" tag-suffix: "-metal-darwin-arm64-local-store" build-type: "metal" @@ -4468,3 +4472,6 @@ includeDarwin: - backend: "llama-cpp-quantization" tag-suffix: "-metal-darwin-arm64-llama-cpp-quantization" build-type: "mps" + - backend: "speaker-recognition" + tag-suffix: "-metal-darwin-arm64-speaker-recognition" + build-type: "mps" diff --git a/backend/index.yaml b/backend/index.yaml index b25d0a406261..a3af8e01cc95 100644 --- a/backend/index.yaml +++ b/backend/index.yaml @@ -1254,6 +1254,7 @@ default: "cpu-sherpa-onnx" nvidia: "cuda12-sherpa-onnx" nvidia-cuda-12: "cuda12-sherpa-onnx" + metal: "metal-sherpa-onnx" - !!merge <<: *neutts name: "neutts-development" capabilities: @@ -4716,12 +4717,14 @@ default: "cpu-speaker-recognition" nvidia: "cuda12-speaker-recognition" nvidia-cuda-12: "cuda12-speaker-recognition" + metal: "metal-speaker-recognition" - !!merge <<: *speakerrecognition name: "speaker-recognition-development" capabilities: default: "cpu-speaker-recognition-development" nvidia: "cuda12-speaker-recognition-development" nvidia-cuda-12: "cuda12-speaker-recognition-development" + metal: "metal-speaker-recognition-development" - !!merge <<: *speakerrecognition name: "cpu-speaker-recognition" uri: "quay.io/go-skynet/local-ai-backends:latest-cpu-speaker-recognition" @@ -4742,6 +4745,16 @@ uri: "quay.io/go-skynet/local-ai-backends:master-gpu-nvidia-cuda-12-speaker-recognition" mirrors: - localai/localai-backends:master-gpu-nvidia-cuda-12-speaker-recognition +- !!merge <<: *speakerrecognition + name: "metal-speaker-recognition" + uri: "quay.io/go-skynet/local-ai-backends:latest-metal-darwin-arm64-speaker-recognition" + mirrors: + - localai/localai-backends:latest-metal-darwin-arm64-speaker-recognition +- !!merge <<: *speakerrecognition + name: "metal-speaker-recognition-development" + uri: "quay.io/go-skynet/local-ai-backends:master-metal-darwin-arm64-speaker-recognition" + mirrors: + - localai/localai-backends:master-metal-darwin-arm64-speaker-recognition ## sherpa-onnx - !!merge <<: *sherpa-onnx name: "sherpa-onnx-development" @@ -4749,6 +4762,7 @@ default: "cpu-sherpa-onnx-development" nvidia: "cuda12-sherpa-onnx-development" nvidia-cuda-12: "cuda12-sherpa-onnx-development" + metal: "metal-sherpa-onnx-development" - !!merge <<: *sherpa-onnx name: "cpu-sherpa-onnx" uri: "quay.io/go-skynet/local-ai-backends:latest-cpu-sherpa-onnx" @@ -4769,3 +4783,13 @@ uri: "quay.io/go-skynet/local-ai-backends:master-gpu-nvidia-cuda-12-sherpa-onnx" mirrors: - localai/localai-backends:master-gpu-nvidia-cuda-12-sherpa-onnx +- !!merge <<: *sherpa-onnx + name: "metal-sherpa-onnx" + uri: "quay.io/go-skynet/local-ai-backends:latest-metal-darwin-arm64-sherpa-onnx" + mirrors: + - localai/localai-backends:latest-metal-darwin-arm64-sherpa-onnx +- !!merge <<: *sherpa-onnx + name: "metal-sherpa-onnx-development" + uri: "quay.io/go-skynet/local-ai-backends:master-metal-darwin-arm64-sherpa-onnx" + mirrors: + - localai/localai-backends:master-metal-darwin-arm64-sherpa-onnx diff --git a/backend/python/speaker-recognition/requirements-mps.txt b/backend/python/speaker-recognition/requirements-mps.txt new file mode 100644 index 000000000000..9fe714abee09 --- /dev/null +++ b/backend/python/speaker-recognition/requirements-mps.txt @@ -0,0 +1,5 @@ +torch +torchaudio +speechbrain +transformers +onnxruntime