pymaster commited on
Commit
52bc50f
·
verified ·
1 Parent(s): 59db9c8

Update VocalRender model card and inference guide

Browse files
Files changed (1) hide show
  1. README.md +129 -8
README.md CHANGED
@@ -2,20 +2,141 @@
2
  license: apache-2.0
3
  base_model: openbmb/VoxCPM2
4
  pipeline_tag: text-to-speech
 
 
5
  tags:
6
  - voxcpm
7
  - voxcpm2
8
- - text-to-speech
 
 
 
9
  ---
10
 
11
  # VocalRender
12
 
13
- VocalRender is a fine-tuned model based on
14
- [VoxCPM2](https://huggingface.co/openbmb/VoxCPM2).
15
 
16
- This repository contains two variants:
 
17
 
18
- | Variant | Repository path |
19
- | --- | --- |
20
- | VocalRender | `VocalRender/` |
21
- | VocalRender-Pro | `VocalRender-Pro/` |
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  license: apache-2.0
3
  base_model: openbmb/VoxCPM2
4
  pipeline_tag: text-to-speech
5
+ language:
6
+ - zh
7
  tags:
8
  - voxcpm
9
  - voxcpm2
10
+ - singing-voice-synthesis
11
+ - score-conditioned
12
+ - music
13
+ - arxiv:2607.27768
14
  ---
15
 
16
  # VocalRender
17
 
18
+ **VocalRender: Score-Native Singing Voice Synthesis for Real-World Composition**
 
19
 
20
+ - [Paper](https://arxiv.org/abs/2607.27768)
21
+ - [Code and documentation](https://github.com/pymaster17/VocalRender)
22
 
23
+ VocalRender is a score-native singing voice synthesis (SVS) model built on
24
+ [VoxCPM2](https://huggingface.co/openbmb/VoxCPM2). It synthesizes 48 kHz
25
+ singing directly from lyrics, MIDI pitches, symbolic note values, and tempo,
26
+ without requiring phoneme-level durations, an explicit duration predictor, or
27
+ a time-aligned acoustic reference.
28
+
29
+ ![VocalRender overview](https://raw.githubusercontent.com/pymaster17/VocalRender/main/assets/intro.png)
30
+
31
+ ## How it works
32
+
33
+ VocalRender combines three components:
34
+
35
+ 1. A score-native interleaved representation serializes BPM followed by each
36
+ lyric syllable and its associated `(pitch, note-value)` pairs. This retains
37
+ lyric-to-note alignment and supports melisma.
38
+ 2. An Audio VAE represents singing as compact continuous acoustic latents.
39
+ 3. An autoregressive diffusion model generates the latent sequence patch by
40
+ patch and decides when to stop. The VAE decoder renders the result as a
41
+ waveform.
42
+
43
+ ![VocalRender architecture](https://raw.githubusercontent.com/pymaster17/VocalRender/main/assets/structure.png)
44
+
45
+ ## Checkpoints
46
+
47
+ This repository contains two variants with the same architecture and different
48
+ training recipes:
49
+
50
+ | Variant | Repository path | Approximate download |
51
+ | --- | --- | ---: |
52
+ | VocalRender | `VocalRender/` | 9.5 GB |
53
+ | VocalRender-Pro | `VocalRender-Pro/` | 9.5 GB |
54
+
55
+ Each directory contains the model weights, AudioVAE, model configuration, and
56
+ extended SVS tokenizer required by the inference code.
57
+
58
+ ## Installation
59
+
60
+ ```bash
61
+ git clone --recurse-submodules https://github.com/pymaster17/VocalRender.git
62
+ cd VocalRender
63
+ uv sync
64
+ source .venv/bin/activate
65
+ ```
66
+
67
+ ## Download
68
+
69
+ Download either checkpoint into the repository's `pretrained_models/`
70
+ directory:
71
+
72
+ ```bash
73
+ # VocalRender
74
+ hf download pymaster/VocalRender \
75
+ --include "VocalRender/*" \
76
+ --local-dir pretrained_models
77
+
78
+ # Or VocalRender-Pro
79
+ hf download pymaster/VocalRender \
80
+ --include "VocalRender-Pro/*" \
81
+ --local-dir pretrained_models
82
+ ```
83
+
84
+ ## Quick inference
85
+
86
+ The GitHub repository includes a ready-to-use symbolic score example:
87
+
88
+ ```bash
89
+ python scripts/infer_vocalrender_svs_single.py \
90
+ --ckpt_dir pretrained_models/VocalRender \
91
+ --json_file examples/inference_input.json \
92
+ --item_name demo \
93
+ --output svs_output.wav
94
+ ```
95
+
96
+ Use `pretrained_models/VocalRender-Pro` as `--ckpt_dir` to run the Pro model.
97
+ Full generation requires a CUDA-capable compute node. The example runs without
98
+ reference audio; see the
99
+ [repository README](https://github.com/pymaster17/VocalRender#inference) for
100
+ timbre-prompt and batch-inference options.
101
+
102
+ ## Input format
103
+
104
+ ```json
105
+ {
106
+ "item_name": "demo",
107
+ "word": ["我", "的", "孤", "独"],
108
+ "pitch": [65, 64, 64, 65, 67, 65],
109
+ "note": ["<NOTE_8>", "<NOTE_32>", "<NOTE_16>", "<NOTE_16>", "<NOTE_16>", "<NOTE_8>"],
110
+ "pitch2word": [0, 1, 2, 2, 2, 3],
111
+ "bpm": 64
112
+ }
113
+ ```
114
+
115
+ `pitch2word[i]` identifies the lyric index associated with note `i`, allowing
116
+ one lyric syllable to span multiple notes. `word_dur` and `pitch_dur` are
117
+ optional fields used only for visualization and evaluation; they are not model
118
+ inputs.
119
+
120
+ ## Limitations
121
+
122
+ - The released checkpoints primarily target Mandarin Chinese singing.
123
+ - Checkpoint loading and generation require substantial disk space, system
124
+ memory, and GPU memory.
125
+ - Output quality depends on the musical validity and lyric-to-note alignment of
126
+ the input score.
127
+
128
+ ## Citation
129
+
130
+ ```bibtex
131
+ @article{chen2026vocalrender,
132
+ title = {VocalRender: Score-Native Singing Voice Synthesis for Real-World Composition},
133
+ author = {Chen, Yukun and Wang, Tianrui and Mu, Zhaoxi and Yang, Xinyu and Chng, EngSiong},
134
+ journal = {arXiv preprint arXiv:2607.27768},
135
+ year = {2026},
136
+ url = {https://arxiv.org/abs/2607.27768}
137
+ }
138
+ ```
139
+
140
+ ## License
141
+
142
+ Apache License 2.0. See the repository's `LICENSE` file for details.