Skip to content

Fast-VC: real-time streaming voice conversion service

GPL v3Python 3.10+GitHub release

Fast-VC ​

A real-time streaming voice conversion service built on Seed-VC. Integrate voice conversion into speech applications over WebSocket, with audio buffering, session management and multi-Worker deployment.

Online documentation: Visit the Fast-VC documentation site for the quick start, configuration and deployment, API integration, and troubleshooting guides.

1. Purpose and capabilities ​

Fast-VC is for developers who want to convert a continuous speech stream to a configured reference voice and feed the result back into an application. It adds service interfaces and streaming orchestration around Seed-VC inference.

  • Bidirectional audio streaming over WebSocket, with standard and simple protocols.
  • Audio adaptation: PCM or Opus input, mono 16-bit PCM output with a configurable output sample rate.
  • Streaming conversion: chunking, VAD, retained context, optional pitch adjustment and semantic retrieval, RMS mixing and SOLA stitching.
  • Service deployment: configured models and reference voices, multiple Workers, device lists and separate service ports.
  • Sessions and analysis: audio/timeline recording, health/version/session endpoints and offline analysis tools.

Reference conditions are loaded at service startup and reused by Workers; there is no per-request reference-upload interface. See the architecture (Chinese).

2. Audio samples ​

Use the bundled source and reference files to generate a converted result with the quick start:

RoleFile
SourceMale sample · Female sample
Default reference voiceReference audio
Converted resultGenerated in outputs/quickstart by the example below

These files provide reproducible inputs; a collection of converted outputs tied to the current version is not bundled. Record the model, configuration and reference when comparing quality. See the evaluation guide (Chinese).

3. Requirements and scope ​

  • The quick start targets Linux, NVIDIA CUDA, Python 3.10 and uv. Historical reports contain NVIDIA GPU results; memory needs vary by model and Worker count.
  • System audio libraries are required. Initial startup may download model files.
  • The default configuration uses cuda:0, two Workers, the tiny model and a bundled reference. Native Windows support and real-time CPU performance have not been established by current validation.
  • The built-in api_key check only checks for a nonempty value. Supply authentication and access controls at the deployment layer. Session audio is recorded by default; configure recording for your use case.

See configuration and deployment.

4. Quick start ​

Follow the quick start to install system and Python dependencies, clone the repository with submodules, and prepare .env. From the repository root:

bash
uv run fast-vc serve -c configs/prod.yaml

Adjust device and workers in configs/prod.yaml for your hardware before starting. After model initialization, open another terminal at the repository root:

bash
curl http://localhost:8042/health
uv run python examples/websocket/simple_protocol_ws_client.py \
  --source-wav-path resources/srcs/male-0-16khz.wav \
  --output-wav-dir outputs/quickstart \
  --encoding PCM \
  --samplerate 16000 \
  --url ws://localhost:8042/ws

Check the Output saved to path and the generated WAV in outputs/quickstart. This example uses the simple protocol with PCM input and 16000 Hz PCM output. For Opus input, 22050 Hz output or concurrent requests, use the standard client in the full quick start.

5. Historical performance ​

The following results are from v0.1.0: Seed-VC v1.0 tiny, 16 kHz / 16-bit PCM, 500 ms inference blocks and 10 diffusion steps. They are not fresh measurements of the current version or a deployment-capacity guarantee.

GPUConcurrencyWorkersReported average chunk latency (ms)Reported average RTF
RTX 4090D16105.00.21
RTX 4090D1212216.60.44
GTX 1080 Ti16252.20.50

Original reports: 4090D (2025-06-15), 1080 Ti (2025-06-14), all reports (Chinese index; reports retain their original language).

Model processing time, first-chunk wait, final send/receive gap and capture-to-playback latency are different measurements. Review metric definitions and limitations (Chinese) before measuring again.

6. Documentation ​

GoalEntry
Install and convert your first fileQuick start
Integrate a speech applicationVoice conversion · System · Session data
Configure models, voices and deploymentDeployment guide
Troubleshoot and evaluateTroubleshooting · Evaluation (Chinese)
Understand and contributeDesign (Chinese) · Contributing (Chinese)
Browse user documentationDocumentation index

7. Version updates ​

The repository package version is 0.1.7. Its main changes include CFM time-step scheduling, 22.05 kHz model post-processing output and configurable WebSocket output sample rates. See the release history.

GitHub Releases · Daily engineering changes (Chinese) · Confirmed tasks (Chinese)

8. Help and contributions ​

Report reproducible bugs and proposals through Issues, or follow the contribution guide (Chinese). Include the version, environment, configuration, input format and reproduction steps.

9. License and acknowledgements ​

This project's code is licensed under GPL-3.0. Consult the respective sources for the terms of model weights and audio assets.

Thanks to Seed-VC for the underlying conversion model and RVC for its streaming-processing work.

Fast-VC · Real-time streaming voice conversion