Upload README.md with huggingface_hub
Browse files
README.md
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: mit
|
| 3 |
+
library_name: candle
|
| 4 |
+
tags:
|
| 5 |
+
- voice-conversion
|
| 6 |
+
- vocoder
|
| 7 |
+
- real-time
|
| 8 |
+
- low-latency
|
| 9 |
+
- rust
|
| 10 |
+
- candle
|
| 11 |
+
- asmr
|
| 12 |
+
language:
|
| 13 |
+
- ja
|
| 14 |
+
pipeline_tag: audio-to-audio
|
| 15 |
+
---
|
| 16 |
+
|
| 17 |
+
# LightVC — model suite
|
| 18 |
+
|
| 19 |
+
Own-weights model suite for real-time Japanese voice conversion (ASMR / バ美声).
|
| 20 |
+
Inference is **pure Rust / [Candle](https://github.com/huggingface/candle)** (no Python runtime),
|
| 21 |
+
target **E2E < 50 ms, CPU, causal**. Code: <https://github.com/kjranyone/LightVC>. License **MIT**.
|
| 22 |
+
|
| 23 |
+
All weights are **100% own** (no distillation from other voice-conversion models; targets are real audio only).
|
| 24 |
+
|
| 25 |
+
## Components
|
| 26 |
+
|
| 27 |
+
| component | folder | status | notes |
|
| 28 |
+
|---|---|---|---|
|
| 29 |
+
| **vocoder (freeC)** | `vocoder/` | ✅ released | low-latency neural vocoder, ear-parity with BigVGAN |
|
| 30 |
+
| content encoder (G-enc) | `content-encoder/` | ⬜ planned | causal HuBERT-distilled, leakage-suppressed |
|
| 31 |
+
| VC generator (AdaIN + CIPT) | `vc/` | ⬜ planned | mel generator, multi-reference moe-factor compositor |
|
| 32 |
+
| prosody / s_art | `prosody/` | ⬜ planned | articulation clone, prosody policy |
|
| 33 |
+
| voices | `voices/` | ⬜ planned | target / reference embeddings for the compositor |
|
| 34 |
+
|
| 35 |
+
Download the whole suite or one component:
|
| 36 |
+
|
| 37 |
+
```bash
|
| 38 |
+
huggingface-cli download mus8tte/lightvc --local-dir models/ # all
|
| 39 |
+
huggingface-cli download mus8tte/lightvc --include 'vocoder/*' --local-dir models/ # vocoder only
|
| 40 |
+
```
|
| 41 |
+
|
| 42 |
+
---
|
| 43 |
+
|
| 44 |
+
## vocoder/ — freeC (low-latency neural vocoder)
|
| 45 |
+
|
| 46 |
+
F0-free ISTFT-head neural vocoder (Vocos-style ConvNeXt backbone + complex-STFT head), 27.9 M params, groups=1.
|
| 47 |
+
|
| 48 |
+
- **Quality**: ear-parity with BigVGAN on the target voice (human-ear gate).
|
| 49 |
+
- **Latency**: causal; synthesis window 5.8 ms; streaming E2E ≈ 39 ms (K=4) incl. mel-analysis lookahead (< 50 ms budget).
|
| 50 |
+
- **Realtime**: chunked streaming RTF 0.94 @ K=4, single-thread CPU.
|
| 51 |
+
- **Parity (Rust/Candle vs PyTorch)**: vocoder mel→wave **SNR 88.5 dB**; end-to-end audio→mel→wave resynth **62 dB**.
|
| 52 |
+
|
| 53 |
+
**Files**
|
| 54 |
+
|
| 55 |
+
| file | what |
|
| 56 |
+
|---|---|
|
| 57 |
+
| `vocoder/freeC.safetensors` | weights (fp32). Keys: `embed.*`, `blocks.{0..7}.{dw,norm,pw1,pw2}.*`, `norm.*`, `head.*`. |
|
| 58 |
+
| `vocoder/mel_basis_44k_2048_128.safetensors` | librosa slaney mel filterbank `[128,1025]` (key `mel_basis`) for the input mel extractor. |
|
| 59 |
+
|
| 60 |
+
**Grid / config**
|
| 61 |
+
|
| 62 |
+
- Synthesis: causal, `n_fft = win = 256`, `hop = 128`, `NB = 129`.
|
| 63 |
+
- Input mel (BigVGAN `mel_spectrogram`): `n_fft = win = 2048`, `hop = 128`, `n_mels = 128`, `sr = 44100`, `fmin = 0`, `fmax = 22050`, Hann, `center=False` + reflect-pad `(n_fft-hop)//2=960`, magnitude `sqrt(·+1e-9)`, `log(clamp(·,1e-5))`. Mel hop = synthesis hop.
|
| 64 |
+
|
| 65 |
+
**Usage**
|
| 66 |
+
|
| 67 |
+
```bash
|
| 68 |
+
git clone https://github.com/kjranyone/LightVC && cd LightVC
|
| 69 |
+
huggingface-cli download mus8tte/lightvc --include 'vocoder/*' --local-dir models_dl/
|
| 70 |
+
cargo run -p lightvc-app --release -- resynth \
|
| 71 |
+
--input in.wav --weights models_dl/vocoder/freeC.safetensors \
|
| 72 |
+
--mel-basis models_dl/vocoder/mel_basis_44k_2048_128.safetensors --output out.wav --k 4
|
| 73 |
+
```
|
| 74 |
+
|
| 75 |
+
> Note: freeC's "5.8 ms" is the synthesis-window figure; matching-quality streaming needs ~23 ms mel-analysis lookahead (mel trained quasi-centered). A causal-mel retrain restores true ~5.8 ms — see the repo roadmap.
|
| 76 |
+
|
| 77 |
+
**Training**: female multi-speaker corpus, universal vocoder, full-corpus rolling + AMP. No VC-teacher distillation.
|