File size: 5,627 Bytes
59dc849
 
1c36a7e
 
 
59dc849
 
 
 
76c09d1
1c36a7e
 
59dc849
1c36a7e
59dc849
 
1c36a7e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
59dc849
1c36a7e
 
 
59dc849
1c36a7e
59dc849
 
1c36a7e
59dc849
 
 
76c09d1
 
 
 
 
59dc849
76c09d1
 
1c36a7e
 
 
76c09d1
 
1c36a7e
76c09d1
 
1c36a7e
76c09d1
 
59dc849
 
1c36a7e
fd3bbe2
59dc849
 
1c36a7e
 
59dc849
1c36a7e
59dc849
 
1c36a7e
 
 
fd3bbe2
1c36a7e
 
 
 
 
 
 
 
 
 
 
 
 
59dc849
1c36a7e
59dc849
1c36a7e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
59dc849
 
 
1c36a7e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
---
license: apache-2.0
language:
  - en
pipeline_tag: text-to-speech
base_model: openbmb/VoxCPM2
library_name: voxcpm
tags:
  - text-to-speech
  - flow-matching
  - frechet-distance
  - few-step-generation
  - lora
  - fdspeech
---

# FDSpeech-VoxCPM2

**FDSpeech-VoxCPM2** is the selected compact three-target LoRA adapter from the paper
[Fréchet Distance Loss on Speech Representations for Text-to-Speech
Synthesis](https://arxiv.org/abs/2607.06027). It is trained with a
Fréchet-distance loss on speech representations for intelligible four-step
generation.

It is **not a standalone TTS checkpoint**. Use it with the external
[`openbmb/VoxCPM2`](https://huggingface.co/openbmb/VoxCPM2) base model. The FD
loss is used only during fine-tuning; inference is the ordinary four-step base
model with the LoRA adapter loaded.

## Model details

- **Base model:** `openbmb/VoxCPM2`, approximately 2B parameters
- **Artifact type:** LoRA adapter
- **Adapter:** rank 32, alpha 32, q/k/v/o projections in the language model and DiT
- **Inference sampler:** four Euler steps, CFG 2.35 in the paper evaluation
- **Selected checkpoint:** `srfd_compact3/step_0001600`
- **FDSpeech targets:** low-step Whisper anchor, ten-step teacher CTC, real-speech CTC
- **Primary evaluation:** Seed-TTS English `test-en`

## Files

```text
lora_config.json
lora_weights.safetensors
training_state.json
adapters/compact3_balanced/
ablations/
configs/
reports/
```

Optimizer, scheduler, reference statistics, and FD-loss feature-queue state are
not included because they are not needed for inference. Base-model weights are
downloaded separately.

## Usage

```bash
pip install -U voxcpm huggingface_hub soundfile
```

```python
import json
import os

import soundfile as sf
from huggingface_hub import snapshot_download
from voxcpm import VoxCPM
from voxcpm.model.voxcpm import LoRAConfig

adapter_dir = snapshot_download("voidful/FDSpeech-VoxCPM2")
with open(os.path.join(adapter_dir, "lora_config.json"), encoding="utf-8") as handle:
    adapter_info = json.load(handle)

model = VoxCPM.from_pretrained(
    hf_model_id="openbmb/VoxCPM2",
    load_denoiser=False,
    optimize=True,
    lora_config=LoRAConfig(**adapter_info["lora_config"]),
    lora_weights_path=adapter_dir,
)

wav = model.generate(
    text="The quick brown fox jumps over the lazy dog.",
    cfg_value=2.35,
    inference_timesteps=4,
    normalize=True,
    denoise=False,
    seed=0,
)
sf.write("fdspeech.wav", wav, model.tts_model.sample_rate)
```

The first run downloads the base model. A CUDA GPU is recommended. For
continuation-style voice cloning, provide a consented `prompt_wav_path` and its
exact `prompt_text`.

## Training data and reference statistics

The paper fine-tunes on a 767-row manifest derived from LibriTTS voice-cloning
material. Offline FDSpeech reference moments are computed from ASR-verified four-step
generations, ten-step teacher generations, and real LibriTTS speech. The
training manifest, source/reference audio, and precomputed moments are not
redistributed in this repository.

See the [training config](https://github.com/voidful/fd-speech/blob/main/configs/srfd_compact3.yaml)
for the released recipe and the
[integration guide](https://github.com/voidful/fd-speech/blob/main/docs/integration.md)
for implementation details. The `srfd` path and config key are retained as
compatibility identifiers for the released training artifacts.

## Evaluation

Results use the upstream Seed-TTS English scorer over 1,088 prompts and 11,805
reference words.

| System | Steps | Upstream WER ↓ | SIM ↑ | UTMOS / DNSMOS OVRL / P808 ↑ |
|---|:---:|---:|---:|---:|
| VoxCPM2 | 4 | 263/11805 = 2.2279% | 0.7433 | 3.2974 / 2.8950 / 3.5296 |
| VoxCPM2 | 10 | 205/11805 = 1.7366% | 0.7610 | 3.8072 / 3.0866 / 3.6689 |
| **FDSpeech-VoxCPM2** | **4** | **167/11805 = 1.4147%** | **0.7613** | **3.7637 / 3.0711 / 3.6507** |

The WER reductions against both original baselines are significant under an
utterance-level paired bootstrap. SIM, UTMOS, and DNSMOS are objective proxies,
not human MOS. A blinded comparison with the ten-step baseline produced a near
even decisive preference split, with equivalence supported within the paper's
pre-specified 10-point margin. See the paper for the complete protocol and
confidence intervals.

## Intended use

- Research on few-step flow-matching TTS and distributional regularization
- Reproduction and analysis of the paper's four-step English setting
- Evaluation of the released adapter on consented speech prompts

## Limitations and risks

- Evidence is concentrated on English Seed-TTS; multilingual gains are not established.
- FDSpeech primarily targets intelligibility and is not a general perceptual-quality objective.
- Aggregate WER improves, but individual prompts can still regress or contain substitutions.
- Raw representation FD should not be used as a standalone quality or checkpoint-selection metric.
- Voice cloning can enable impersonation and fraud. Use only consented voices, label synthetic audio, and do not use it for identity or access-control bypass.

## License

The adapter and FDSpeech code are released under Apache-2.0. The base model,
pretrained extractors, datasets, and evaluation tools remain subject to their
own terms.

## Citation

```bibtex
@article{chung2026fdspeech,
  title   = {Fr\'{e}chet Distance Loss on Speech Representations for Text-to-Speech Synthesis},
  author  = {Chung, Ho-Lam and Huang, Kuan-Po and Lu, Bo-Ru and Lee, Hung-yi},
  journal = {arXiv preprint arXiv:2607.06027},
  year    = {2026},
  url     = {https://arxiv.org/abs/2607.06027}
}
```