SoulX-Singer generates a voice for an unseen singer, if you can align the notes
Official inference code for SoulX-Singer: Towards High-Quality Zero-Shot Singing Voice Synthesis
At a glance
- What is it?
- SoulX-Singer is the official inference code for a zero-shot singing voice synthesis model that can produce a voice for a singer it has never heard, controlled either by a melody contour or by MIDI notes, and the repository also ships a conversion variant that needs no transcription at all. The hard part is not the model, it is the metadata alignment, and the project says so plainly.
- Who is it for?
- SoulX-Singer fits a researcher or a production team that needs a voice from a reference clip rather than a trained voice, and that is willing to do the alignment work the pipeline requires. It is the wrong tool if the input is a rough recording with no notes or lyrics, because the automatic metadata will not line up and the README is explicit that the result will suffer.
- Can I use it commercially?
- Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 147 days ago.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Editorial analysis
Zero-shot means no fine-tuning per singer
SoulX-Singer is a high-fidelity, zero-shot singing voice synthesis model that lets you generate realistic singing voices for unseen singers. The word zero-shot is doing the work here. There is no per-singer training step. You give the model a reference of the target voice and it produces singing in that timbre, which is a different starting point from the voice cloning systems that require a fine-tune on the target singer before they will work.
The stated feature set follows from that. Zero-shot singing for unseen singers, with no fine-tuning needed. Timbre cloning that preserves singer identity across languages, styles and edited lyrics. Singing voice editing, where the lyrics are modified while the prosody stays natural. And cross-lingual synthesis, described as high-fidelity synthesis by disentangling timbre from content, which is what lets a Mandarin reference voice sing English lyrics without becoming a different singer.
The training data is stated as well, 42,000 or more hours of aligned vocals, lyrics and notes across Mandarin, English and Cantonese. Aligned is the operative word, and it is the reason the data preparation step later in this article is not optional.
The project is Apache 2.0 licensed, the last push was on 2026-05-29, and the repository publishes no GitHub releases, so the model artefacts and the code are versioned separately, on GitHub for the code and on Hugging Face for the weights.
Two control modes, and they are not interchangeable
The model supports melody-conditioned and score-conditioned control for precise pitch, rhythm and expression, and the distinction determines what data you have to prepare before you can synthesise anything.
Melody conditioning takes an F0 contour, the fundamental frequency track, which is the pitch of the voice over time. Score conditioning takes MIDI notes, which is the actual musical score. Both give precise control over pitch and rhythm, but they come from different places: an F0 contour can be extracted from a recording, and MIDI notes have to be written or transcribed.
That is why the repository ships a MIDI Editor as an online Hugging Face Space, announced in the news section on 2026-02-08, and why the news list also has a separate online demo Space from 2026-02-09 and an evaluation dataset on Hugging Face Datasets from 2026-02-12.
The two modes also frame the difference between the two models in the project. SoulX-Singer synthesises singing from lyrics and notes. SoulX-Singer-SVC, the singing voice conversion model finetuned from SoulX-Singer, transforms a source singing recording into the target singer's voice while preserving the original melody, rhythm and lyrical content, and it works directly from raw singing audio without requiring lyric or MIDI transcriptions.
That is a real difference in approach rather than a quality claim. The synthesis route is transcription dependent, and the conversion route is not. The SVC feature list calls this transcription-free audio-to-audio conversion, and the conversion demo is described as performing audio-to-audio SVC, converting the target singing into the prompt timbre using waveform and F0 inputs.
The metadata alignment is the part that decides the output quality
The demo does not run on a raw file. The SVS inference script relies on metadata generated from the preprocessing pipeline, which includes vocal separation and transcription, and the README tells users to follow the steps in the preprocess documentation to prepare that metadata before running the demo with their own data.
Then comes the warning, and it is the most useful sentence in the README. The metadata produced by the automatic preprocessing pipeline may not perfectly align the singing audio with the corresponding lyrics and musical notes, and for the best synthesis quality the project strongly recommends manually correcting the alignment using the MIDI Editor.
This inverts the usual expectations. In a text to speech or voice cloning pipeline, the model is the hard part and the data preparation is plumbing. Here the model is capable and the alignment is the bottleneck, because a note that is a beat late produces a syllable that is a beat late, and the model reproduces the error faithfully rather than correcting it.
The tool for that job is the MIDI Editor Space, and the preprocess documentation links to the section on editing metadata with it. That workflow is why the project counts the web based UI, the online MIDI Editor deployment and the online demo as completed roadmap items, all of them in the same release window as the model itself.
There is a corresponding cost in effort. To get a usable result you need vocals separated, lyrics transcribed, notes aligned, and the alignment corrected by hand, and only then does the synthesis step run.
Running the demo, and the two entry points
The quick start is a clone, a conda environment and two downloads.
git clone https://github.com/Soul-AILab/SoulX-Singer.git
cd SoulX-SingerThe environment is Python 3.10 in a conda environment named soulxsinger, and the dependencies come from the requirements file. The README includes a mainland China note with a mirror for the install.
conda create -n soulxsinger -y python=3.10
conda activate soulxsinger
pip install -r requirements.txtThe models come from Hugging Face, in two parts, the synthesis and conversion models and the preprocessing models.
hf download Soul-AILab/SoulX-Singer --local-dir pretrained_models/SoulX-Singer
hf download Soul-AILab/SoulX-Singer-Preprocess --local-dir pretrained_models/SoulX-Singer-PreprocessFrom there there are two demos and two web interfaces. The SVS demo is example/infer.sh, and the SVC demo is example/infer_svc.sh, which performs audio-to-audio conversion into the prompt timbre using waveform and F0 inputs. To prepare your own SVC data you run example/preprocess.sh with midi_transcribe=False, which is the setting that skips the transcription step that the conversion path does not need.
bash example/infer.sh
bash example/infer_svc.shThe web interfaces are python webui.py for synthesis from lyrics and MIDI transcriptions, and python webui_svc.py for the audio to audio conversion. The repository layout matches this split, with the package in soulxsinger/, the command line entry points in cli/, the example scripts in example/, the preprocessing code and documentation in preprocess/, and the two web entry points at the root.
The requirements file is the architecture
The dependency list is long and pinned, and reading it tells you more about how the system works than any description would.
The core is torch and torchaudio at 2.2.0, with transformers at 4.41.2 and accelerate for the training and inference loop, plus a set of smaller pieces that pin down the implementation choices: rotary_embedding_torch for rotary position embeddings, sageattention for the attention kernel, loralib, beartype for runtime type checking, and einops for tensor reshaping.
The audio side is where the interesting choices are. funasr is a speech recognition toolkit, and it is what performs the transcription in the preprocessing pipeline. praat-parselmouth is a wrapper around the Praat phonetics library, and the g2p_en, g2pM and ToJyutping packages are three different grapheme to phoneme systems, one for English, one a general one, and ToJyutping for Chinese pinyin, which is what makes the Mandarin and Cantonese half of the dataset work. mido and pretty_midi handle MIDI, librosa and soundfile handle audio, and pyloudnorm and pyworld are analysis tools for loudness and pitch.
The application layer is gradio at 6.3.0, which is what the two web interfaces are built on, and webrtcvad for voice activity detection, which is how the pipeline decides what is singing and what is not. wandb is there for experiment tracking, ml_collections for configuration, and numba for the parts of the signal processing that need to be fast.
The numpy pin is the one detail worth noticing. numpy is held below 2.0.0, which is a sign of a dependency tree that has not been moved to the NumPy 2 series, and that is a normal thing to find in a pinned inference environment of this kind.
Where the artefacts live, and what the licence covers
The project spreads its outputs across several places, and knowing which is which saves time.
The code is on GitHub, in this repository. The model weights are on Hugging Face under the Soul-AILab organisation, with the SVS and SVC model in the SoulX-Singer repository and the preprocessing models in a separate SoulX-Singer-Preprocess repository. There is an online demo Space and a separate MIDI Editor Space, both under the same organisation, and an evaluation dataset, SoulX-Singer-Eval-Dataset, published on Hugging Face Datasets.
The research side is a technical report linked from the README as a PDF in the assets directory, and an arXiv entry, 2602.07803. The README also links a demo page hosted under the soul-ailab GitHub Pages site.
The news list gives a clear sequence. On 2026-02-06 the inference code and models were released. The MIDI Editor Space followed on 2026-02-08, the online demo Space on 2026-02-09, the evaluation dataset on 2026-02-12, and on 2026-03-16 the SVC model was released with the online demo updated to support conversion.
The licence question has two halves. The repository code is Apache 2.0, which is the permissive grant most teams expect. The model weights and the Spaces are hosted on Hugging Face under the same organisation, and the README does not state their terms, so an organisation planning to ship output built on these models needs to check the model repository and the dataset terms directly rather than assuming the code licence covers them.
The evaluation dataset being published alongside the model is the piece most likely to be useful to a reader deciding whether to trust the approach, since it is the reference set the project measures against.
Editorial conclusion
SoulX-Singer fits a researcher or a production team that needs a voice from a reference clip rather than a trained voice, and that is willing to do the alignment work the pipeline requires. It is the wrong tool if the input is a rough recording with no notes or lyrics, because the automatic metadata will not line up and the README is explicit that the result will suffer. Verify first which control mode fits your data, read the alignment note before you trust the automatic output, and check the Apache 2.0 licence and the model terms on Hugging Face against your own release plans.
Frequently asked questions
What does zero-shot mean in SoulX-Singer?
It means the model generates a voice for a singer it has never seen without any per-singer fine-tuning. The README describes zero-shot singing for unseen singers, timbre cloning that preserves identity across languages and styles, and cross-lingual synthesis by disentangling timbre from content.
What is the difference between SoulX-Singer and SoulX-Singer-SVC?
SoulX-Singer synthesises singing from lyrics and MIDI notes, while SoulX-Singer-SVC is a singing voice conversion model finetuned from it, transforming a source singing recording into the target voice while preserving melody, rhythm and lyrics, and working from raw singing audio without lyric or MIDI transcription.
Do I need to correct the metadata before the output will sound right?
Probably. The README warns that the metadata produced by the automatic preprocessing pipeline may not perfectly align the singing audio with the lyrics and musical notes, and it strongly recommends manually correcting the alignment with the MIDI Editor for the best synthesis quality.
How do I run the SoulX-Singer demos?
Create a conda environment with Python 3.10, install the requirements, download the models with hf download for both Soul-AILab/SoulX-Singer and Soul-AILab/SoulX-Singer-Preprocess, then run bash example/infer.sh for synthesis or bash example/infer_svc.sh for conversion, with example/preprocess.sh and midi_transcribe=False for your own conversion data.
Where are the SoulX-Singer models and the evaluation data?
The model weights and the preprocessing models are on Hugging Face under the Soul-AILab organisation, the online demo and the MIDI Editor are Hugging Face Spaces, and the SoulX-Singer-Eval-Dataset is published on Hugging Face Datasets. The repository code itself is Apache 2.0 licensed and was last pushed to on 2026-05-29.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/soul-ailab-soulx-singer)Was this useful?