Wyoming-rvc: give any Assist TTS voice an RVC timbre (GPU, ~200 ms to first audio)

Just for the laughs, I wanted my assistant to answer me in Vocaloid voices (Kasane Teto, specifically), so I needed something like this. I couldn’t find it, so I built it.

wyoming-rvc is a Wyoming TTS service that runs Piper and passes the audio through an RVC voice model, so any Piper voice comes out with another voice’s timbre. It works with the built-in Wyoming Protocol integration: no custom component, no scripts.

Highlights

  • Everything stays loaded on the GPU (Piper, RVC, pitch model, index). No subprocesses, no temp files, no model reloads per request.
  • Speaks sentence by sentence, including streaming LLM replies. On my RTX 3080 Ti, the first audio arrives in about 200 ms.
  • Any RVC v1/v2 model from Hugging Face: set RVC_REPO_ID and it downloads on first start (zip archives work too).
  • Layer mode: put it in front of an existing Wyoming TTS (SOURCE=wyoming) instead of the built-in Piper.
  • Configured with env vars, prebuilt image, and tested against Home Assistant’s own Wyoming integration code.

Try it
docker run -d --gpus all -p 10200:10200 -v ./models:/models Package wyoming-rvc · GitHub
Then go to Settings → Devices & Services → Add Integration → Wyoming Protocol, enter your host and port 10200, and pick Wyoming RVC as the TTS in your voice assistant.

Needs an NVIDIA GPU (Turing or newer, about 3 GB VRAM). The default is an English female Piper voice with the TetoTalk RVC model; switch to another voice, language, or RVC model with env vars.

Repo, benchmarks and docs: GitHub - xchwarze/wyoming-rvc: Wyoming TTS layer for Home Assistant: gives any voice an RVC timbre (in-process Piper or any Wyoming TTS), fully resident on the GPU · GitHub

Feedback welcome, especially from anyone running other RVC voices. :microphone:

Update: now installable as a Home Assistant app (add-on) :tada:

You can now install it straight from Home Assistant:

  1. Add the repository: Add to my Home Assistant, or go to Settings → Apps → App Store → ⋮ → Repositories and add GitHub - xchwarze/wyoming-rvc: Wyoming TTS layer for Home Assistant: gives any voice an RVC timbre (in-process Piper or any Wyoming TTS), fully resident on the GPU · GitHub.
  2. Install Wyoming RVC and start it. The first start downloads about 1 GB of models.
  3. Home Assistant discovers it automatically. Accept the Wyoming Protocol entry and pick it as your TTS.

Voice, language, RVC model and pitch can all be changed from the app’s configuration tab.

Heads-up: the app is amd64 only, and Home Assistant OS can’t give apps access to an NVIDIA GPU, so there it runs on the CPU and is noticeably slower. For the ~200 ms response time, run the Docker image on a machine with an NVIDIA GPU, as described in the first post.