ASLP-lab commited on
Commit
ca1eda7
·
verified ·
1 Parent(s): b34edf3
Files changed (3) hide show
  1. .gitattributes +1 -0
  2. README.md +181 -0
  3. asset/sembridge.png +3 -0
.gitattributes CHANGED
@@ -33,3 +33,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ asset/sembridge.png filter=lfs diff=lfs merge=lfs -text
README.md CHANGED
@@ -1,3 +1,184 @@
1
  ---
2
  license: apache-2.0
 
 
 
 
 
 
 
 
3
  ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  ---
2
  license: apache-2.0
3
+ pipeline_tag: text-to-speech
4
+ language:
5
+ - zh
6
+ - en
7
+ tags:
8
+ - speech
9
+ - singing-voice-synthesis
10
+ - continuous-latent
11
  ---
12
+
13
+ <div align="center">
14
+ <h1>SemBridge</h1>
15
+ <p><strong>Semantic Token Anchoring for Continuous-Latent Autoregressive Speech Generation</strong></p>
16
+ <p><em>Speech. Singing. One continuous voice.</em></p>
17
+ <p>
18
+ <a href="https://arxiv.org/pdf/2608.07462"><img src="https://img.shields.io/badge/arXiv-2608.07462-b31b1b.svg" alt="Paper"></a>
19
+ <a href="https://tiamojames.github.io/SemBridge_Demo/"><img src="https://img.shields.io/badge/Listen-Demo-15803d.svg" alt="Audio demos"></a>
20
+ <a href="https://huggingface.co/ASLP-lab/SemBridge"><img src="https://img.shields.io/badge/Hugging_Face-Model-f2c744.svg" alt="Model"></a>
21
+ <a href="https://github.com/ASLP-lab/SemBridge"><img src="https://img.shields.io/badge/GitHub-Code-181717.svg?logo=github" alt="Code"></a>
22
+ <a href="https://github.com/ASLP-lab/SemBridge/blob/main/LICENSE"><img src="https://img.shields.io/badge/License-Apache_2.0-2563eb.svg" alt="Code license"></a>
23
+ </p>
24
+ <p>
25
+ <a href="#introduction">Introduction</a> &nbsp;&middot;&nbsp;
26
+ <a href="#installation">Installation</a> &nbsp;&middot;&nbsp;
27
+ <a href="#inference">Inference</a> &nbsp;&middot;&nbsp;
28
+ <a href="#citation">Citation</a>
29
+ </p>
30
+ </div>
31
+
32
+ ## Introduction
33
+
34
+ SemBridge bridges discrete semantic supervision and continuous acoustic generation.
35
+ A shared semantic tokenizer anchors both acoustic latents and autoregressive language-model
36
+ states, improving linguistic fidelity while retaining continuous-latent generation.
37
+ The unified model supports **text-to-speech**, **note-conditioned singing**, and
38
+ **mixed speech and singing**.
39
+
40
+ <div align="center">
41
+ <img src="https://huggingface.co/ASLP-lab/SemBridge/resolve/main/asset/sembridge.png" alt="SemBridge architecture: semantic anchoring for continuous-latent autoregressive generation" width="100%">
42
+ </div>
43
+
44
+ ## News
45
+
46
+ - **[2026-10]**: Released the [inference code](https://github.com/ASLP-lab/SemBridge) and [model checkpoints](https://huggingface.co/ASLP-lab/SemBridge).
47
+ - **[2026-08]**: Released the [arXiv paper](https://arxiv.org/pdf/2608.07462).
48
+
49
+ ## Installation
50
+
51
+ Use **Python 3.10+** and a matching **PyTorch / torchaudio 2.6-2.8** pair.
52
+ CUDA inference is recommended; BigVGAN uses standard PyTorch operations and
53
+ does not require custom CUDA extensions.
54
+
55
+ ```bash
56
+ conda create -n sembridge python=3.10 -y
57
+ conda activate sembridge
58
+
59
+ git clone https://github.com/ASLP-lab/SemBridge.git
60
+ cd SemBridge
61
+
62
+ # CUDA 12.4 example; choose a build compatible with your NVIDIA driver.
63
+ python -m pip install torch==2.6.0 torchaudio==2.6.0 \
64
+ --index-url https://download.pytorch.org/whl/cu124
65
+ python -m pip install -e .
66
+ ```
67
+
68
+ For other CUDA versions or CPU-only installation, use the
69
+ [official PyTorch installation commands](https://pytorch.org/get-started/previous-versions/).
70
+ Keep the `torch` and `torchaudio` versions matched.
71
+
72
+ ## Inference
73
+
74
+ The examples and scripts below are included in the [GitHub repository](https://github.com/ASLP-lab/SemBridge).
75
+ Run them from the cloned `SemBridge` directory after installation.
76
+
77
+ ```python
78
+ from sembridge import SemBridge
79
+ from sembridge.requests import load_request
80
+
81
+ # Automatically download and load the checkpoint.
82
+ model = SemBridge.from_pretrained(
83
+ "ASLP-lab/SemBridge", device="cuda", dtype="bfloat16"
84
+ )
85
+ model.generate_to_file(
86
+ "outputs/singing.wav",
87
+ **load_request("examples/svs/zh_r001.json"),
88
+ )
89
+ ```
90
+
91
+ | Task | Input | Default decoder |
92
+ | :--- | :--- | :--- |
93
+ | **TTS** | Text | Native causal |
94
+ | **SVS** | Lyrics, MIDI pitches, note durations | BigVGAN-Large |
95
+ | **Unified** | Ordered speech and singing segments | BigVGAN-Large |
96
+
97
+ ### Examples
98
+
99
+ The repository includes **10 complete examples from our [Demo page](https://tiamojames.github.io/SemBridge_Demo/)**:
100
+ 4 TTS, 4 SVS, and 2 Unified cases, with reference audio and prepared requests.
101
+ SVS and Unified include **aligned lyrics, pitches, durations, and note-continuation labels**;
102
+ you do not need to prepare MIDI files or write note JSON to try them.
103
+
104
+ ```bash
105
+ # Browse the available examples without loading a model
106
+ bash scripts/infer_examples.sh --list
107
+
108
+ # Run all four singing examples
109
+ CUDA_VISIBLE_DEVICES=0 bash scripts/infer_examples.sh --task svs
110
+
111
+ # Run one speech-singing-speech example
112
+ CUDA_VISIBLE_DEVICES=0 bash scripts/infer_examples.sh --example unified_zh_novel_wukong
113
+
114
+ # Run all 10 examples; the model is loaded only once
115
+ CUDA_VISIBLE_DEVICES=0 bash scripts/infer_examples.sh
116
+ ```
117
+
118
+ Audio is saved to `outputs/examples/<example_id>.wav`. Set `MODEL=/path/to/SemBridge`
119
+ to use local weights. See the **[example catalog](https://github.com/ASLP-lab/SemBridge/blob/main/examples/README.md)** for the
120
+ complete list, reference recordings, and guidance on using your own songs.
121
+
122
+ ### Single Request
123
+
124
+ ```bash
125
+ # Text-to-speech
126
+ sembridge-infer --model ASLP-lab/SemBridge --task tts \
127
+ --input examples/tts/zh_r001.json --output outputs/tts.wav \
128
+ --device cuda --dtype bfloat16
129
+
130
+ # Singing voice synthesis
131
+ sembridge-infer --model ASLP-lab/SemBridge --task svs \
132
+ --input examples/svs/zh_r001.json --output outputs/svs.wav \
133
+ --device cuda --dtype bfloat16
134
+
135
+ # Mixed speech and singing
136
+ sembridge-infer --model ASLP-lab/SemBridge --task unified \
137
+ --input examples/unified/zh_novel_wukong.json --output outputs/unified.wav \
138
+ --device cuda --dtype bfloat16
139
+ ```
140
+
141
+ Outputs are **mono, 44.1 kHz WAV**. `--decoder auto` uses the defaults above;
142
+ `--decoder native` or `--decoder bigvgan` selects a decoder explicitly for any task.
143
+ Prepared requests include per-example generation settings, which both entry points
144
+ honor. Explicit CLI options override those settings. Without request-specific limits,
145
+ `--max-patches 500` caps generation at 40 seconds; generation can stop earlier.
146
+
147
+ Add `prompt_audio` and its matching `prompt_text` for reference-conditioned generation.
148
+ Reference audio is automatically downmixed and resampled to 44.1 kHz.
149
+ For SVS, each note contains `text`, MIDI `pitch`, and `duration` **in seconds**.
150
+
151
+ See the **[inference guide](https://github.com/ASLP-lab/SemBridge/blob/main/docs/INFERENCE.md)** for reference voices, singing and
152
+ mixed-generation examples, sampling controls, and offline loading.
153
+
154
+ ## Acknowledgements
155
+
156
+ We thank the authors of the following projects for their open research and resources:
157
+
158
+ - **Speech generation:** [VoxCPM](https://github.com/OpenBMB/VoxCPM) and [DiTAR](https://arxiv.org/abs/2502.03930).
159
+ - **Audio codecs:** [DAC](https://github.com/descriptinc/descript-audio-codec), [SAC](https://github.com/Soul-AILab/SAC), and [BigVGAN](https://github.com/NVIDIA/BigVGAN).
160
+
161
+ See [third-party notices](https://github.com/ASLP-lab/SemBridge/blob/main/THIRD_PARTY_NOTICES.md) for implementation attributions.
162
+
163
+ ## Citation
164
+
165
+ If you find SemBridge useful in your research, please cite:
166
+
167
+ ```bibtex
168
+ @article{xie2026sembridge,
169
+ title = {SemBridge: Semantic Token Anchoring for Continuous-Latent Autoregressive Speech Generation},
170
+ author = {Hanke Xie and Haopeng Lin and Jiale Qian and Dake Guo and Yuepeng Jiang and Zhichao Wang and Wenxiao Cao and Jingbin Hu and Guobin Ma and Wenhao Li and Huakang Chen and Chengyou Wang and Ming Tao and Zhonghua Fu and Lei Xie and Xinsheng Wang},
171
+ journal = {arXiv preprint arXiv:2608.07462},
172
+ year = {2026},
173
+ eprint = {2608.07462},
174
+ archivePrefix = {arXiv},
175
+ primaryClass = {eess.AS},
176
+ url = {https://arxiv.org/abs/2608.07462}
177
+ }
178
+ ```
179
+
180
+ ## License
181
+
182
+ Code is released under [Apache-2.0](https://github.com/ASLP-lab/SemBridge/blob/main/LICENSE).
183
+ Model weights and third-party resources are subject to their respective licenses.
184
+ Use reference recordings only with permission, and disclose synthetic audio where appropriate.
asset/sembridge.png ADDED

Git LFS Details

  • SHA256: 79296dacd4af63e3c5cf28b66b98c7a7a285dbdd8f38b03d74c0c5bec72c5cd6
  • Pointer size: 131 Bytes
  • Size of remote file: 312 kB