makepad/libs/ai/models/sing/CREDITS.md
Admin c82e469be6 ai sing: Cantor, a neural singing voice -- score notes + syllables are aligned to 10 ms frames (the vowel owns the note, onsets lead the beat, codas close it, melismas carry the vowel) with a rule pitch curve (legato spring, scoop, delayed vibrato, drift); an acoustic model (phoneme transformer with a duration head, note/f0 features, an f0 head, a conformer decoder to a 128-bin 48 kHz log-mel, a shallow rectified-flow refiner) and a harmonic-plus-noise source-filter vocoder (every harmonic of f0 from a DSP source, gains and phase per STFT bin from a frame-rate ConvNeXt, iSTFT) so the output pitch is the f0 curve by construction. One model definition for inference and training: nn.rs is a small tape-autograd tensor library with a CPU backend (the reference; matmuls through the Metal/cuBLAS gateway) and nn_gpu.rs a fully device-resident CUDA backend over the new ai-cuda training kernels; batches are items of seg rows (convolutions, RoPE, attention and the STFT family stay inside an item). train.rs has the vocoder loss (3-resolution log-STFT + mel L1, band-limited per item), the acoustic loss (mel, duration, f0 residual, voicing, flow, and monotonic alignment on token means for speech without durations), AdamW with clipping and EMA on host or device, MKSING checkpoints, and a synthetic singer for T0. Bins: sing_render (a sung line, random or trained weights), sing_train (check | t0 | voc | ac), sing_prep (dataset shards). CREDITS.md records the training data (VocalSet, LibriTTS; CC BY 4.0) with checksums. Design: local/agent_state/edits/design/NEURAL-VOICE.md. Checked: cargo test --release -p makepad-ai-sing (11: FFT, STFT/iSTFT inverse and adjoints, finite-difference gradients of every op incl. batched attention and the audio ops, alignment, weights, shards); sing_render on random base weights (22.4 M params) renders 5.7 s at 9.2x real time on this Mac with 2.4 cents pitch error; sing_train check on node 165 (CPU vs GPU losses and gradients within 3.9e-4 exact f32); T0 base run on node 165 (both models' losses fall; vocoder copy f0 error 1.2 cents).
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-30 22:51:40 +02:00

48 lines
2.8 KiB
Markdown

# Credits: data used to train the Cantor singing voice
Cantor's code is our own. The voice weights are trained on the datasets below. Each is used under its
licence, and each entry says how we modified it. A shipped voice asset carries this text in its
metadata (`credits`), and Stage's about screen lists it wherever the voice ships.
## VocalSet: A Singing Voice Dataset
- Authors: Julia Wilkins, Prem Seetharaman, Alison Wahl, Bryan Pardo (Northwestern University).
- Citation: J. Wilkins, P. Seetharaman, A. Wahl, B. Pardo. "VocalSet: A Singing Voice Dataset."
Proceedings of the 19th International Society for Music Information Retrieval Conference (ISMIR), 2018.
- Link: https://zenodo.org/records/1442513 (version 1.2, `VocalSet1-2.zip`).
- Licence: Creative Commons Attribution 4.0 International (CC BY 4.0).
https://creativecommons.org/licenses/by/4.0/
- Modified: resampled to 48 kHz, peak-normalised, cut into training crops, and annotated with our own
f0 curves, notes and vowel alignments. Used to train the Cantor singing voice (vocoder and acoustic
model).
## LibriTTS
- Authors: Heiga Zen, Viet Dang, Rob Clark, Yu Zhang, Ron J. Weiss, Ye Jia, Zhifeng Chen, Yonghui Wu.
- Citation: H. Zen et al. "LibriTTS: A Corpus Derived from LibriSpeech for Text-to-Speech."
Proc. Interspeech 2019.
- Link: https://www.openslr.org/60/ (subsets train-clean-100, train-clean-360, dev-clean, test-clean).
- Licence: Creative Commons Attribution 4.0 International (CC BY 4.0).
https://creativecommons.org/licenses/by/4.0/
- Source: derived from LibriSpeech (V. Panayotov, G. Chen, D. Povey, S. Khudanpur, ICASSP 2015), which
is built from public-domain LibriVox audiobook recordings.
- Modified: resampled to 48 kHz, peak-normalised, and annotated with our own phoneme transcriptions,
f0 curves and alignments. Used to pre-train the Cantor singing voice (vocoder and acoustic model).
## Pronunciations
Lyrics and transcripts are phonemised with the English pronunciation lexicon embedded in
`libs/ai/models/speech` (Apache-2.0; see that crate's notices) and our own letter-to-sound rules.
## Download record
Downloaded 2026-09-30 on the training node, from the official sources above (licence text read on each
source page at download time):
| File | Bytes | SHA-256 |
|---|---|---|
| VocalSet1-2.zip | 5991573193 | 1745257239c9ff92cbd4ebb7ca52809f99682876b57495f01a7f69a1704f9b13 |
| LibriTTS dev-clean.tar.gz | 1291469655 | da0864e1bd26debed35da8a869dd5c04dfc27682921936de7cff9c8a254dbe1a |
| LibriTTS test-clean.tar.gz | 1230670113 | 234ea5b25859102a87024a4b9b86641f5b5aaaf1197335c95090cde04fe9a4f5 |
| LibriTTS train-clean-100.tar.gz | 7723686890 | c5608bf1ef74bb621935382b8399c5cdd51cd3ee47cec51f00f885a64c6c7f6b |
| LibriTTS train-clean-360.tar.gz | 27504073644 | ce7cff44dcac46009d18379f37ef36551123a1dc4e5c8e4eb73ae57260de4886 |