From 60facc72529abc0e746b6dd97ef0a6a0b6d83d75 Mon Sep 17 00:00:00 2001 From: "LocalAI [bot]" <139863280+localai-bot@users.noreply.github.com> Date: Fri, 12 Jun 2026 22:32:42 +0200 Subject: [PATCH] fix(darwin): publish sherpa-onnx and speaker-recognition images for darwin/arm64 (#10275) 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 Assisted-by: Claude:claude-opus-4-8 [Claude Code] Signed-off-by: Ettore Di Giacinto Co-authored-by: Ettore Di Giacinto --- .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 1bb850de1..7df58bf6d 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 b25d0a406..a3af8e01c 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 000000000..9fe714abe --- /dev/null +++ b/backend/python/speaker-recognition/requirements-mps.txt @@ -0,0 +1,5 @@ +torch +torchaudio +speechbrain +transformers +onnxruntime