Add AMD ROCm support and generic voice service tooling #2

Closed
nsaspy wants to merge 0 commits from feat/rocm-flake-voice-service into main
Owner

What changed

  • add an AMD ROCm image based on the official rocm/pytorch image
  • pass /dev/kfd and /dev/dri, select FP16 when BF16 is unsupported, and expose backend/device health data
  • add a generic Nix flake CLI plus NixOS and Home Manager service modules
  • persist model caches, outputs, and voices across container rebuilds
  • add integration-neutral systemd user-service installation
  • add voice management for audio/video/MP3 clips: add/create, list, inspect, correct transcript, rename, set default, export, and remove
  • hot-reload voice files and metadata without restarting the server
  • remove the pre-existing application-specific integration section so this repository remains a standalone TTS service
  • run Uvicorn as PID 1 for correct Docker/systemd lifecycle behavior

Validation

  • python3 -m unittest discover -s tests -v (3 passing, including MP4 audio extraction)
  • python3 -m py_compile server.py scripts/voice_manager.py
  • bash -n scripts/qwen3-tts build.sh start.sh
  • git diff --check

The workspace has no Docker daemon or AMD device, so live ROCm probing remains a target-host validation with nix run .# -- doctor rocm. CI validates the flake and scripts.

## What changed - add an AMD ROCm image based on the official `rocm/pytorch` image - pass `/dev/kfd` and `/dev/dri`, select FP16 when BF16 is unsupported, and expose backend/device health data - add a generic Nix flake CLI plus NixOS and Home Manager service modules - persist model caches, outputs, and voices across container rebuilds - add integration-neutral systemd user-service installation - add voice management for audio/video/MP3 clips: add/create, list, inspect, correct transcript, rename, set default, export, and remove - hot-reload voice files and metadata without restarting the server - remove the pre-existing application-specific integration section so this repository remains a standalone TTS service - run Uvicorn as PID 1 for correct Docker/systemd lifecycle behavior ## Validation - `python3 -m unittest discover -s tests -v` (3 passing, including MP4 audio extraction) - `python3 -m py_compile server.py scripts/voice_manager.py` - `bash -n scripts/qwen3-tts build.sh start.sh` - `git diff --check` The workspace has no Docker daemon or AMD device, so live ROCm probing remains a target-host validation with `nix run .# -- doctor rocm`. CI validates the flake and scripts.
nsaspy closed this pull request 2026-09-11 01:05:59 +00:00
Some checks failed
CI / flake (pull_request) Failing after 5s

Pull request closed

Sign in to join this conversation.
No description provided.