Model or dataset
fishaudio/Bert-VITS2 avatar
fishaudio/Bert-VITS2

Bert-VITS2: A Multilingual TTS Backbone That the Authors Have Already Left Behind

vits2 backbone with multilingual-bert

8,800 stars1,305 forksPythonAGPL-3.0

At a glance

What is it?
Bert-VITS2 pairs a VITS2 backbone with multilingual BERT for expressive Chinese and Japanese speech, but the repository is now in maintenance-only mode. This review covers its mechanism, setup, limitations, and why the authors point you elsewhere.
Who is it for?
Bert-VITS2 is for researchers and hobbyists who want to experiment with BERT-guided prosody in VITS2 and are comfortable with a Python codebase that expects manual training. It is not for production deployments or for teams that need ongoing support, since the repository is no longer actively maintained and the authors explicitly recommend Fish-Speech as a replacement.
Can I use it commercially?
Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
Is it still maintained?
Yes. The repository last received commits 1 day 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 September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

What Bert-VITS2 Actually Does

Bert-VITS2 is a text-to-speech model that takes the VITS2 architecture and adds a multilingual BERT layer to improve prosody and pronunciation, particularly for Chinese and Japanese. The core problem it addresses is that standard VITS models often produce flat or unnatural intonation when the input text is ambiguous, because they rely only on phoneme sequences. By injecting BERT's contextual embeddings into the model, Bert-VITS2 attempts to give the decoder more information about the meaning and stress of each word. The intended user is someone who has experience training neural TTS models and wants a higher-quality voice for a specific character or language, not a beginner looking for a plug-and-play tool. The README is blunt about this: mature users are told to read the code and learn how to train on their own.

Architecture: VITS2 Meets BERT

The repository builds on the VITS2 backbone, which is itself an evolution of the original VITS model, and integrates a multilingual BERT model to condition the speech synthesis. The README credits several upstream projects: anyvoiceai/MassTTS for the core idea, jaywalnut310/vits for the base VITS implementation, and p0p4k/vits2_pytorch for the VITS2 code. The BERT part is not described in detail in the README, but the mechanism is visible in the project's name and in the release notes: BERT embeddings are combined with the text encoder's output before feeding the decoder. This allows the model to use semantic context, not just phonetic content, to shape pitch and duration. The data flow is typical of VITS-style models: text goes through a text encoder, BERT provides additional features, then a flow-based decoder and a vocoder produce the waveform. The practical effect is that the model can handle homographs and phrasing better than a plain VITS model, at the cost of added model size and inference time.

Getting It Running: Commands and Configuration

The README is sparse on setup instructions. It points to a file called webui_preprocess.py as the quick guide, which suggests that preprocessing and training are driven through a web interface or a Python script that handles dataset preparation. There are no explicit pip install commands or configuration keys in the README. Based on the repository layout and the release notes, you would clone the repository, install the dependencies listed in the project's requirements files, and then run webui_preprocess.py to prepare your dataset. The model expects paired text and audio files, and it uses BERT models for the target language, so you need to ensure that the appropriate BERT checkpoint is available for Chinese or Japanese. The release notes mention a Chinese-specialized version (Extra-v2) and a Japanese-specialized version (JP-Exta), which implies that language-specific tuning is required for best results. Without more documentation, you must rely on the code comments and the webui_preprocess.py script to understand the exact steps.

Limitations: Maintenance Has Stopped and Language Coverage Is Narrow

The most significant limitation is that the project is no longer actively maintained. The README states clearly that the project will not be maintained in the short term, and it recommends Fish-Speech as a replacement. This means that bugs, security issues, and compatibility problems with newer Python versions or PyTorch releases are unlikely to be fixed. Another limitation is language coverage: despite the name 'multilingual', the releases focus on Chinese and Japanese, and the BERT models are likely only available for those languages. If you need English or other languages, this is the wrong tool. The training pipeline is also complex, as the README hints that users are expected to learn from the code, which is a high barrier for entry. Finally, the model's performance is not documented in the README, so you cannot compare it quantitatively to other TTS systems without running your own experiments. The authors' own recommendation to switch to Fish-Speech suggests that Bert-VITS2's quality, while good, has been surpassed.

The Wrong Tool for Production, Maybe Right for Research

Bert-VITS2 is not a production-ready TTS service. It is a research codebase with a training pipeline that requires manual dataset preparation, GPU resources, and familiarity with the code. The lack of a simple inference API or prebuilt models means that deploying it would require significant engineering effort. For a hobbyist who wants to create a voice for a game character or an anime figure, the effort might be justified if the target language is Chinese or Japanese and the user is willing to troubleshoot. For a team that needs a reliable TTS engine, the maintenance status alone is a disqualifier. The README's own advice to use Fish-Speech is a strong signal that Bert-VITS2 is a stepping stone, not a destination. If you are researching BERT-guided TTS, this repository is a useful reference implementation, but expect to fork it and maintain it yourself.

Alternatives: Fish-Speech and the Original VITS

The README explicitly names Fish-Speech as the recommended alternative. Fish-Speech is an autoregressive TTS model from the same organization, FishAudio, and it is described as having the best open-source performance at the time of writing, with ongoing maintenance. The key difference in approach is that Fish-Speech uses an autoregressive architecture, which generates speech token by token, whereas Bert-VITS2 uses a non-autoregressive flow-based model that generates speech in parallel. Autoregressive models often produce more natural prosody but are slower at inference. Another alternative is the original VITS2 implementation from p0p4k/vits2_pytorch, which Bert-VITS2 builds upon. That project offers a cleaner VITS2 baseline without BERT, which might be easier to understand and train if you do not need the semantic conditioning. For Chinese TTS, the README also references PaddleSpeech, which is a broader speech toolkit that includes TTS and might offer more production-ready deployment options. The choice between these depends on whether you prioritize quality (Fish-Speech), simplicity (VITS2), or ecosystem support (PaddleSpeech).

Licence and Upgrade Cost

Bert-VITS2 is licensed under AGPL-3.0, which has implications if you plan to use it in a commercial product. The AGPL requires that if you modify the code and provide it over a network, you must make the source code available to users. This is a strict copyleft license, and it may be a barrier for companies that do not want to open-source their modifications. The README also contains a warning against using the project for any purpose that violates Chinese law or for political uses, which is a legal restriction that may be relevant depending on your jurisdiction. As for maintenance and upgrade cost, the project is not being actively developed, so there is no upgrade path. You would have to monitor the repository for any changes, but the last push is from September 2026, and the README explicitly says maintenance has stopped. If you adopt Bert-VITS2, you are taking on the full burden of fixing any issues that arise with your environment. The release history shows that the last releases were in early 2024, with a Japanese-specialized version and two Chinese-specialized versions, but no further updates after that. This means the model architecture is frozen, and you cannot expect improvements or new features.

Editorial conclusion

Bert-VITS2 is for researchers and hobbyists who want to experiment with BERT-guided prosody in VITS2 and are comfortable with a Python codebase that expects manual training. It is not for production deployments or for teams that need ongoing support, since the repository is no longer actively maintained and the authors explicitly recommend Fish-Speech as a replacement. Before adopting it, verify that your target language is covered by the available BERT models, check the licensing terms of any pretrained checkpoints you plan to use, and review the training pipeline in webui_preprocess.py to confirm you can supply the required text and audio alignment. If you need a maintained, out-of-the-box TTS, choose Fish-Speech instead.

Official sources

  1. fishaudio/Bert-VITS2 on GitHub
  2. Issues
  3. License: AGPL-3.0
  4. README
  5. Releases
Community notes

Community notes