Update VocalRender model card and inference guide
Browse files
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 |
-
-
|
|
|
|
|
|
|
|
|
|
| 9 |
---
|
| 10 |
|
| 11 |
# VocalRender
|
| 12 |
|
| 13 |
-
VocalRender
|
| 14 |
-
[VoxCPM2](https://huggingface.co/openbmb/VoxCPM2).
|
| 15 |
|
| 16 |
-
|
|
|
|
| 17 |
|
| 18 |
-
|
| 19 |
-
|
| 20 |
-
|
| 21 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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 |
+

|
| 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 |
+

|
| 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.
|