feat: add Apple Silicon Qwen3-TTS MLX backends - #8
Open
groxaxo wants to merge 1 commit into
Open
Conversation
- add exact aufklarer 1.7B 8-bit support through Speech Swift - add 1.7B 4-bit support through mlx-audio - introduce adapter-driven native FastAPI serving and model isolation - preserve the existing VibeVoice realtime CUDA subprocess path - isolate incompatible Transformers and Hugging Face Hub dependency stacks - add native macOS bootstrap, documentation, and hardware-free integration tests
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 native Apple Silicon serving path while preserving the existing VibeVoice CUDA/realtime workflow.
aufklarer/Qwen3-TTS-12Hz-1.7B-Base-MLX-8bitbundle through Speech Swiftmlx-community/Qwen3-TTS-12Hz-1.7B-Base-4bitthrough the model-compatiblemlx-audio==0.3.0loaderInconsistencies fixed
scripts/run_server.pyexited instead of serving non-realtime adapters.mlx-audioexpects reference audio as a loaded/resampled MLX waveform, not a filesystem string; the adapter now performs that conversion explicitly.Architecture
realtime-0.5b: unchanged subprocess-based VibeVoice demo, including its web UI and streaming route.qwen3-tts-mlx-8bit: Speech Swift CLI, using the exact requested model ID.qwen3-tts-mlx-4bit: in-processmlx-audioadapter with lazy model loading and serialized MLX generation.Local validation
python -m pytest -q test_macos_mlx.py— 17 passedpython -m compileall -q runner scripts main.py test_macos_mlx.pybash -n scripts/bootstrap_uv.sh scripts/bootstrap_macos.shmain, exactly 15 intended files, no accidental backend stubsNo GitHub Actions workflow was added or used.
Remaining target-hardware check
A real model download and Metal/Speech Swift synthesis smoke test must be run on native Apple Silicon macOS; the implementation environment used for this patch is Linux and cannot execute MLX/Metal or Speech Swift.