feat(backend): add moss-tts-cpp text-to-speech backend#10860
Open
localai-bot wants to merge 3 commits into
Open
feat(backend): add moss-tts-cpp text-to-speech backend#10860localai-bot wants to merge 3 commits into
localai-bot wants to merge 3 commits into
Conversation
Add a Go + purego backend wrapping the moss-tts.cpp ggml port of the OpenMOSS MOSS-TTS-Local v1.5 text-to-speech model (GPT-J local transformer decoded through MOSS-Audio-Tokenizer-v2), producing 48 kHz stereo audio with optional reference-audio voice cloning. Mirrors the qwen3-tts-cpp backend: dlopen the static-ggml shared library, bind the moss-tts.cpp C-API via purego, and serve the gRPC TTS method. A thin C shim holds the pipeline handle and copies engine PCM into a Go-freeable buffer. Wires the CI registration: backend-matrix.yml (CPU, CUDA 12/13, Intel SYCL f16/f32, Vulkan, ROCm, NVIDIA L4T, plus Darwin metal), backend/index.yaml metas and image entries pointing at mudler/MOSS-TTS-Local-Transformer-v1.5-GGUF, the root Makefile build targets, and the changed-backends.js path mapping. Assisted-by: Claude:claude-opus-4-8 [Claude Code] Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
Add moss-tts.cpp to the README "Backends built by us" table, the Text-to-Speech compatibility table, and the reference-audio voice-cloning backend list, so the new backend is documented alongside its peers. Assisted-by: Claude:claude-opus-4-8 [Claude Code] Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
… release moss-tts.cpp history was collapsed to a single commit; repoint MOSSTTS_CPP_VERSION to ee722b8e9205ee9b1b1c398a4e87e4e393e9be41. Assisted-by: Claude:claude-opus-4-8 [Claude Code] Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
mudler
force-pushed
the
feat/moss-tts-cpp-backend
branch
from
July 16, 2026 21:54
b39c8ef to
20aee7b
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a new
moss-tts-cppGo + purego backend wrapping moss-tts.cpp, the C++/ggml inference port of the OpenMOSS MOSS-TTS family. It serves text-to-speech for the MOSS-TTS-Local v1.5 model (a GPT-J local transformer decoded through MOSS-Audio-Tokenizer-v2), producing 48 kHz stereo audio with optional reference-audio voice cloning, entirely on ggml with no Python at inference.It mirrors the existing
qwen3-tts-cppbackend:dlopenthe static-ggml shared library, bind the moss-tts.cpp C-API via purego, and serve the gRPCTTSmethod. A thin C shim holds the pipeline handle and copies engine PCM into a Go-freeable buffer.GGUFs are published at
mudler/MOSS-TTS-Local-Transformer-v1.5-GGUF(f16 + q8_0 + codec + tokenizer).What is included
backend/go/moss-tts-cpp/— the backend (main.gopurego wiring,gomossttscpp.gogRPC TTS impl + 3-GGUF resolution,cpp/C shim,audio.gostereo WAV writer,options.go,CMakeLists.txtstatic-ggml link,Makefilepinning moss-tts.cpp,run.sh/package.sh/test.sh,README.md, tests)..github/backend-matrix.yml(CPU, CUDA 12/13, Intel SYCL f16/f32, Vulkan, ROCm, NVIDIA L4T, and Darwin metal),backend/index.yamlmetas + image entries, rootMakefilebuild targets, and thescripts/changed-backends.jspath mapping. Tag-suffixes verified consistent between the matrix andindex.yaml.Test plan
gofmtclean,go build ./...inbackend/go/moss-tts-cpp/,go vetclean (sameunsafe.Pointernolint pattern asqwen3-tts-cpp).changed-backends.jsresolves the backend tobackend/go/moss-tts-cpp/(Linux + Darwin).index.yamlshape parity withqwen3-tts-cpp; every image tag maps to a real build tag.Notes
This is an AI-assisted contribution (
Assisted-by:trailer per the project policy; the submitter owns and must review it). The local pre-commit coverage gate was skipped for this commit because this dev box currently has:9090bound by another process; the change is coverage-neutral (nocore//pkg/Go code, only a new backend module + registration data), so CI will run the real gate on clean infra. DCO sign-off pending from the human submitter.