XXXXRT666 d5e479dad6
Introduce Docker and Windows CI Workflow, Pre-commit Formatting, and Language Resource Auto-Download (#2351)
* Docker Auto-Build Workflow

* Rename

* Update

* Fix Bugs

* Disable Progress Bar When workflows triggered

* Fix Wget

* Fix Bugs

* Fix Bugs

* Update Wget

* Update Workflows

* Accelerate Docker Image Building

* Fix Install.sh

* Add Skip-Check For Action Runner

* Fix Dockerfile

* .

* .

* .

* .

* Delete File in Runner

* Add Sort

* Delete More Files

* Delete More

* .

* .

* .

* Add Pre-Commit Hook
Update Docker

* Add Code Spell Check

* [pre-commit.ci] trigger

* [pre-commit.ci] trigger

* [pre-commit.ci] trigger

* Fix Bugs

* .

* Disable Progress Bar and Logs while using GitHub Actions

* .

* .

* Fix Bugs

* update conda

* fix bugs

* Fix Bugs

* fix bugs

* .

* .

* Quiet Installation

* fix bugs

* .

* fix bug

* .

* Fix pre-commit.ci and Docker

* fix bugs

* .

* Update Docker & Pre-Commit

* fix  bugs

* Update Req

* Update Req

* Update OpenCC

* update precommit

* .

* Update .pre-commit-config.yaml

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Update Docs and fix bugs

* Fix \

* Fix MacOS

* .

* test

* .

* Add Tag Alias

* .

* fix bugs

* fix bugs

* make image smaller

* update pre-commit config

* .

* .

* fix bugs

* use miniconda

* Fix Wrong Path

* .

* debug

* debug

* revert

* Fix Bugs

* Update Docs, Add Dict Auto Download in install.sh

* update docker_build

* Update Docs for Install.sh

* update docker docs about architecture

* Add Xcode-Commandline-Tool Installation

* Update Docs

1. Add Missing VC17
2. Modufied the Order of FFmpeg Installation and Requirements Installation
3. Remove Duplicate FFmpeg

* Fix Wrong Cuda Version

* Update TESTED ENV

* Add PYTHONNOUSERSITE(-s)

* Fix Wrapper

* Update install.sh For Robustness

* Ignore .git

* Preload CUDNN For Ctranslate2

* Remove Gradio Warnings

* Update Colab

* Fix OpenCC Problems

* Update Win DLL Strategy

* Fix Onnxruntime-gpu NVRTC Error

* Fix Path Problems

* Add Windows Packages Workflow

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* .

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* Fix Path

* Fix Path

* Enable Logging

* Set 7-Zip compression level to maximum (-mx=9)

* Use Multithread in ONNX Session

* Fix Tag Bugs

* Add Time

* Add Time

* Add Time

* Compress More

* Copy DLL to Solve VC Runtime DLL Missing Issues

* Expose FFmpeg Errors, Copy Only Part of Visual C++ Runtime

* Update build_windows_packages.ps1

* Update build_windows_packages.ps1

* Update build_windows_packages.ps1

* Update build_windows_packages.ps1

* WIP

* WIP

* WIP

* Update build_windows_packages.ps1

* Update install.sh

* Update build_windows_packages.ps1

* Update docker-publish.yaml

* Update install.sh

* Update Dockerfile

* Update docker_build.sh

* Update miniconda_install.sh

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update Colab-WebUI.ipynb

* Update Colab-Inference.ipynb

* Update docker-compose.yaml

* 更新 build_windows_packages.ps1

* Update install.sh

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-05-26 10:45:14 +08:00
..
2025-02-28 02:52:15 +08:00

GPT-SoVITS-WebUI

Güçlü Birkaç Örnekli Ses Dönüştürme ve Metinden Konuşmaya Web Arayüzü.

madewithlove

RVC-Boss%2FGPT-SoVITS | Trendshift

Open In Colab License Huggingface Discord

English | 中文简体 | 日本語 | 한국어 | Türkçe


Özellikler:

  1. Sıfır Örnekli Metinden Konuşmaya: 5 saniyelik bir vokal örneği girin ve anında metinden konuşmaya dönüşümünü deneyimleyin.

  2. Birkaç Örnekli Metinden Konuşmaya: Daha iyi ses benzerliği ve gerçekçiliği için modeli yalnızca 1 dakikalık eğitim verisiyle ince ayarlayın.

  3. Çapraz Dil Desteği: Eğitim veri setinden farklı dillerde çıkarım, şu anda İngilizce, Japonca, Çince, Kantonca ve Koreceyi destekliyor.

  4. Web Arayüzü Araçları: Entegre araçlar arasında vokal eşliğinde ayırma, otomatik eğitim seti segmentasyonu, Çince ASR ve metin etiketleme bulunur ve yeni başlayanların eğitim veri setleri ve GPT/SoVITS modelleri oluşturmalarına yardımcı olur.

Demo videomuzu buradan izleyin!

Görünmeyen konuşmacılar birkaç örnekli ince ayar demosu:

https://github.com/RVC-Boss/GPT-SoVITS/assets/129054828/05bee1fa-bdd8-4d85-9350-80c060ab47fb

Kullanıcı Kılavuzu: 简体中文 | English

Kurulum

Test Edilmiş Ortamlar

Python Version PyTorch Version Device
Python 3.10 PyTorch 2.5.1 CUDA 12.4
Python 3.11 PyTorch 2.5.1 CUDA 12.4
Python 3.11 PyTorch 2.7.0 CUDA 12.8
Python 3.9 PyTorch 2.8.0dev CUDA 12.8
Python 3.9 PyTorch 2.5.1 Apple silicon
Python 3.11 PyTorch 2.7.0 Apple silicon
Python 3.9 PyTorch 2.2.2 CPU

Windows

Eğer bir Windows kullanıcısıysanız (win>=10 ile test edilmiştir), entegre paketi indirin ve go-webui.bat dosyasına çift tıklayarak GPT-SoVITS-WebUI'yi başlatın.

Linux

conda create -n GPTSoVits python=3.10
conda activate GPTSoVits
bash install.sh --device <CU126|CU128|ROCM|CPU> --source <HF|HF-Mirror|ModelScope> [--download-uvr5]

macOS

Not: Mac'lerde GPU'larla eğitilen modeller, diğer cihazlarda eğitilenlere göre önemli ölçüde daha düşük kalitede sonuç verir, bu nedenle geçici olarak CPU'lar kullanıyoruz.

Aşağıdaki komutları çalıştırarak programı yükleyin:

conda create -n GPTSoVits python=3.10
conda activate GPTSoVits
bash install.sh --device <MPS|CPU> --source <HF|HF-Mirror|ModelScope> [--download-uvr5]

El ile Yükleme

Bağımlılıkları Yükleme

conda create -n GPTSoVits python=3.10
conda activate GPTSoVits

pip install -r extra-req.txt --no-deps
pip install -r requirements.txt

FFmpeg'i Yükleme

Conda Kullanıcıları
conda activate GPTSoVits
conda install ffmpeg
Ubuntu/Debian Kullanıcıları
sudo apt install ffmpeg
sudo apt install libsox-dev
Windows Kullanıcıları

ffmpeg.exe ve ffprobe.exe dosyalarını indirin ve GPT-SoVITS kök dizinine yerleştirin

Visual Studio 2017 ortamını yükleyin

MacOS Kullanıcıları
brew install ffmpeg

GPT-SoVITS Çalıştırma (Docker Kullanarak)

Docker İmajı Seçimi

Kod tabanı hızla geliştiği halde Docker imajları daha yavaş yayınlandığı için lütfen şu adımları izleyin:

  • En güncel kullanılabilir imaj etiketlerini görmek için Docker Hub adresini kontrol edin
  • Ortamınıza uygun bir imaj etiketi seçin
  • Lite, Docker imajında ASR modelleri ve UVR5 modellerinin bulunmadığı anlamına gelir. UVR5 modellerini manuel olarak indirebilirsiniz; ASR modelleri ise gerektiğinde program tarafından otomatik olarak indirilir
  • Docker Compose sırasında, uygun mimariye (amd64 veya arm64) ait imaj otomatik olarak indirilir
  • Opsiyonel: En güncel değişiklikleri almak için, sağlanan Dockerfile ile yerel olarak imajı kendiniz oluşturabilirsiniz

Ortam Değişkenleri

  • is_half: Yarı hassasiyet (fp16) kullanımını kontrol eder. GPUnuz destekliyorsa, belleği azaltmak için true olarak ayarlayın.

Paylaşılan Bellek Yapılandırması

Windows (Docker Desktop) ortamında, varsayılan paylaşılan bellek boyutu düşüktür ve bu beklenmedik hatalara neden olabilir. Sistem belleğinize göre Docker Compose dosyasındaki shm_size değerini (örneğin 16g) artırmanız önerilir.

Servis Seçimi

docker-compose.yaml dosyasında iki tür servis tanımlanmıştır:

  • GPT-SoVITS-CU126 ve GPT-SoVITS-CU128: Tüm özellikleri içeren tam sürüm.
  • GPT-SoVITS-CU126-Lite ve GPT-SoVITS-CU128-Lite: Daha az bağımlılığa ve sınırlı işlevselliğe sahip hafif sürüm.

Belirli bir servisi Docker Compose ile çalıştırmak için şu komutu kullanın:

docker compose run --service-ports <GPT-SoVITS-CU126-Lite|GPT-SoVITS-CU128-Lite|GPT-SoVITS-CU126|GPT-SoVITS-CU128>

Docker İmajını Yerel Olarak Oluşturma

Docker imajını kendiniz oluşturmak isterseniz şu komutu kullanın:

bash docker_build.sh --cuda <12.6|12.8> [--lite]

Çalışan Konteynere Erişim (Bash Shell)

Konteyner arka planda çalışırken, aşağıdaki komutla içine girebilirsiniz:

docker exec -it <GPT-SoVITS-CU126-Lite|GPT-SoVITS-CU128-Lite|GPT-SoVITS-CU126|GPT-SoVITS-CU128> bash

Önceden Eğitilmiş Modeller

Eğer install.sh başarıyla çalıştırılırsa, No.1,2,3 adımını atlayabilirsiniz.

  1. GPT-SoVITS Models üzerinden önceden eğitilmiş modelleri indirip GPT_SoVITS/pretrained_models dizinine yerleştirin.

  2. G2PWModel.zip(HF)| G2PWModel.zip(ModelScope) üzerinden modeli indirip sıkıştırmayıın ve G2PWModel olarak yeniden adlandırın, ardından GPT_SoVITS/text dizinine yerleştirin. (Sadece Çince TTS için)

  3. UVR5 (Vokal/Enstrümantal Ayrımı & Yankı Giderme) için, UVR5 Weights üzerinden modelleri indirip tools/uvr5/uvr5_weights dizinine yerleştirin.

    • UVR5'te bs_roformer veya mel_band_roformer modellerini kullanıyorsanız, modeli ve ilgili yapılandırma dosyasını manuel olarak indirip tools/UVR5/UVR5_weights klasörüne yerleştirebilirsiniz. Model dosyası ve yapılandırma dosyasının adı, uzantı dışında aynı olmalıdır. Ayrıca, model ve yapılandırma dosyasının adlarında "roformer" kelimesi yer almalıdır, böylece roformer sınıfındaki bir model olarak tanınır.

    • Model adı ve yapılandırma dosyası adı içinde doğrudan model tipini belirtmek önerilir. Örneğin: mel_mand_roformer, bs_roformer. Belirtilmezse, yapılandırma dosyasından özellikler karşılaştırılarak model tipi belirlenir. Örneğin, bs_roformer_ep_368_sdr_12.9628.ckpt modeli ve karşılık gelen yapılandırma dosyası bs_roformer_ep_368_sdr_12.9628.yaml bir çifttir. Aynı şekilde, kim_mel_band_roformer.ckpt ve kim_mel_band_roformer.yaml da bir çifttir.

  4. Çince ASR için, Damo ASR Model, Damo VAD Model ve Damo Punc Model üzerinden modelleri indirip tools/asr/models dizinine yerleştirin.

  5. İngilizce veya Japonca ASR için, Faster Whisper Large V3 üzerinden modeli indirip tools/asr/models dizinine yerleştirin. Ayrıca, diğer modeller benzer bir etki yaratabilir ve daha az disk alanı kaplayabilir.

Veri Seti Formatı

TTS açıklama .list dosya formatı:

vocal_path|speaker_name|language|text

Dil sözlüğü:

  • 'zh': Çince
  • 'ja': Japonca
  • 'en': İngilizce
  • 'ko': Korece
  • 'yue': Kantonca

Örnek:

D:\GPT-SoVITS\xxx/xxx.wav|xxx|en|I like playing Genshin.

İnce Ayar ve Çıkarım

WebUI'yi Açın

Entegre Paket Kullanıcıları

go-webui.bat dosyasına çift tıklayın veya go-webui.ps1 kullanın. V1'e geçmek istiyorsanız, go-webui-v1.bat dosyasına çift tıklayın veya go-webui-v1.ps1 kullanın.

Diğerleri

python webui.py <dil(isteğe bağlı)>

V1'e geçmek istiyorsanız,

python webui.py v1 <dil(isteğe bağlı)>

veya WebUI'de manuel olarak sürüm değiştirin.

İnce Ayar

Yol Otomatik Doldurma artık destekleniyor

  1. Ses yolunu doldurun
  2. Sesi küçük parçalara ayırın
  3. Gürültü azaltma (isteğe bağlı)
  4. ASR
  5. ASR transkripsiyonlarını düzeltin
  6. Bir sonraki sekmeye geçin ve modeli ince ayar yapın

Çıkarım WebUI'sini Açın

Entegre Paket Kullanıcıları

go-webui-v2.bat dosyasına çift tıklayın veya go-webui-v2.ps1 kullanın, ardından çıkarım webui'sini 1-GPT-SoVITS-TTS/1C-inference adresinde açın.

Diğerleri

python GPT_SoVITS/inference_webui.py <dil(isteğe bağlı)>

VEYA

python webui.py

ardından çıkarım webui'sini 1-GPT-SoVITS-TTS/1C-inference adresinde açın.

V2 Sürüm Notları

Yeni Özellikler:

  1. Korece ve Kantonca destekler

  2. Optimize edilmiş metin ön yüzü

  3. Önceden eğitilmiş model 2k saatten 5k saate kadar genişletildi

  4. Düşük kaliteli referans sesler için geliştirilmiş sentez kalitesi

    detaylar burada

V1 ortamından V2'yi kullanmak için:

  1. pip install -r requirements.txt ile bazı paketleri güncelleyin

  2. github'dan en son kodları klonlayın.

  3. huggingface adresinden v2 önceden eğitilmiş modelleri indirin ve bunları GPT_SoVITS/pretrained_models/gsv-v2final-pretrained dizinine yerleştirin.

    Ek olarak Çince V2: G2PWModel.zip(HF)| G2PWModel.zip(ModelScope) (G2PW modellerini indirip, zipten çıkarıp, G2PWModel olarak yeniden adlandırıp GPT_SoVITS/text dizinine yerleştirin.)

V3 Sürüm Notları

Yeni Özellikler:

  1. Tını benzerliği daha yüksek olup, hedef konuşmacıyı yakınsamak için daha az eğitim verisi gerekmektedir (tını benzerliği, base model doğrudan kullanılacak şekilde fine-tuning yapılmadan önemli ölçüde iyileştirilmiştir).

  2. GPT modeli daha kararlı hale geldi, tekrarlar ve atlamalar azaldı ve daha zengin duygusal ifadeler ile konuşma üretmek daha kolay hale geldi.

    daha fazla detay

v2 ortamında v3 kullanımı:

  1. pip install -r requirements.txt ile bazı paketleri güncelleyin.

  2. GitHub'dan en son kodları klonlayın.

  3. huggingface üzerinden v3 önceden eğitilmiş modellerini (s1v3.ckpt, s2Gv3.pth ve models--nvidia--bigvgan_v2_24khz_100band_256x klasörünü) indirin ve GPT_SoVITS/pretrained_models dizinine yerleştirin.

    ek: Ses Süper Çözünürlük modeli için nasıl indirileceği hakkında bilgi alabilirsiniz.

Yapılacaklar Listesi

  • Yüksek Öncelikli:

    • Japonca ve İngilizceye yerelleştirme.
    • Kullanıcı kılavuzu.
    • Japonca ve İngilizce veri seti ince ayar eğitimi.
  • Özellikler:

    • Sıfır örnekli ses dönüştürme (5s) / birkaç örnekli ses dönüştürme (1dk).
    • Metinden konuşmaya konuşma hızı kontrolü.
    • Gelişmiş metinden konuşmaya duygu kontrolü.
    • SoVITS token girdilerini kelime dağarcığı olasılık dağılımına değiştirme denemesi.
    • İngilizce ve Japonca metin ön ucunu iyileştirme.
    • Küçük ve büyük boyutlu metinden konuşmaya modelleri geliştirme.
    • Colab betikleri.
    • Eğitim veri setini genişletmeyi dene (2k saat -> 10k saat).
    • daha iyi sovits temel modeli (geliştirilmiş ses kalitesi)
    • model karışımı

(Ekstra) Komut satırından çalıştırma yöntemi

UVR5 için Web Arayüzünü açmak için komut satırını kullanın

python tools/uvr5/webui.py "<infer_device>" <is_half> <webui_port_uvr5>

Veri setinin ses segmentasyonu komut satırı kullanılarak bu şekilde yapılır

python audio_slicer.py \
    --input_path "<orijinal_ses_dosyası_veya_dizininin_yolu>" \
    --output_root "<alt_bölümlere_ayrılmış_ses_kliplerinin_kaydedileceği_dizin>" \
    --threshold <ses_eşiği> \
    --min_length <her_bir_alt_klibin_minimum_süresi> \
    --min_interval <bitişik_alt_klipler_arasındaki_en_kısa_zaman_aralığı>
    --hop_size <ses_eğrisini_hesaplamak_için_adım_boyutu>

Veri seti ASR işleme komut satırı kullanılarak bu şekilde yapılır (Yalnızca Çince)

python tools/asr/funasr_asr.py -i <girdi> -o <çıktı>

ASR işleme Faster_Whisper aracılığıyla gerçekleştirilir (Çince dışındaki ASR işaretleme)

(İlerleme çubukları yok, GPU performansı zaman gecikmelerine neden olabilir)

python ./tools/asr/fasterwhisper_asr.py -i <girdi> -o <çıktı> -l <dil>

Özel bir liste kaydetme yolu etkinleştirildi

Katkı Verenler

Özellikle aşağıdaki projelere ve katkıda bulunanlara teşekkür ederiz:

Teorik Araştırma

Önceden Eğitilmiş Modeller

Tahmin İçin Metin Ön Ucu

WebUI Araçları

@Naozumi520'ye Kantonca eğitim setini sağladığı ve Kantonca ile ilgili bilgiler konusunda rehberlik ettiği için minnettarım.

Tüm katkıda bulunanlara çabaları için teşekkürler