* Update requirements.txt * Create constraints.txt * Update README.md * Update README.md * Update README.md * Update README.md * Update README.md * pyopenjtalk and onnx fix * Update requirements.txt * Update requirements.txt * Update install.sh * update shell install.sh * update docs * Update Install.sh * fix bugs * Update .gitignore * Update .gitignore * Update install.sh * Update install.sh * Update extra-req.txt * Update requirements.txt
17 KiB
GPT-SoVITS-WebUI
Güçlü Birkaç Örnekli Ses Dönüştürme ve Metinden Konuşmaya Web Arayüzü.Özellikler:
-
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.
-
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.
-
Çapraz Dil Desteği: Eğitim veri setinden farklı dillerde çıkarım, şu anda İngilizce, Japonca, Çince, Kantonca ve Koreceyi destekliyor.
-
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 3.9, PyTorch 2.0.1, CUDA 11
- Python 3.10.13, PyTorch 2.1.2, CUDA 12.3
- Python 3.9, PyTorch 2.2.2, macOS 14.4.1 (Apple silikon)
- Python 3.9, PyTorch 2.2.2, CPU cihazları
Not: numba==0.56.4, py<3.11 gerektirir
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.9
conda activate GPTSoVits
bash install.sh
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.
xcode-select --install
komutunu çalıştırarak Xcode komut satırı araçlarını yükleyin.- FFmpeg'i yüklemek için
brew install ffmpeg
komutunu çalıştırın. - Aşağıdaki komutları çalıştırarak programı yükleyin:
conda create -n GPTSoVits python=3.9
conda activate GPTSoVits
pip install -r extra-req.txt --no-deps
pip install -r requirements.txt
El ile Yükleme
FFmpeg'i Yükleme
Conda Kullanıcıları
conda install ffmpeg
Ubuntu/Debian Kullanıcıları
sudo apt install ffmpeg
sudo apt install libsox-dev
conda install -c conda-forge 'ffmpeg<7'
Windows Kullanıcıları
ffmpeg.exe ve ffprobe.exe dosyalarını indirin ve GPT-SoVITS kök dizinine yerleştirin.
MacOS Kullanıcıları
brew install ffmpeg
Bağımlılıkları Yükleme
pip install -r extra-req.txt --no-deps
pip install -r requirements.txt
Docker Kullanarak
docker-compose.yaml yapılandırması
- Görüntü etiketleri hakkında: Kod tabanındaki hızlı güncellemeler ve görüntüleri paketleme ve test etme işleminin yavaş olması nedeniyle, lütfen şu anda paketlenmiş en son görüntüleri kontrol etmek için Docker Hub adresini kontrol edin ve durumunuza göre seçim yapın veya alternatif olarak, kendi ihtiyaçlarınıza göre bir Dockerfile kullanarak yerel olarak oluşturun.
- Ortam Değişkenleri:
- is_half: Yarım hassasiyet/çift hassasiyeti kontrol eder. Bu genellikle "SSL çıkarma" adımı sırasında 4-cnhubert/5-wav32k dizinleri altındaki içeriğin doğru şekilde oluşturulmamasının nedenidir. Gerçek durumunuza göre True veya False olarak ayarlayın.
- Birim Yapılandırması,Kapsayıcı içindeki uygulamanın kök dizini /workspace olarak ayarlanmıştır. Varsayılan docker-compose.yaml, içerik yükleme/indirme için bazı pratik örnekler listeler.
- shm_size: Windows üzerinde Docker Desktop için varsayılan kullanılabilir bellek çok küçüktür, bu da anormal işlemlere neden olabilir. Kendi durumunuza göre ayarlayın.
- Dağıtım bölümü altında, GPU ile ilgili ayarlar sisteminize ve gerçek koşullara göre dikkatlice ayarlanmalıdır.
docker compose ile çalıştırma
docker compose -f "docker-compose.yaml" up -d
docker komutu ile çalıştırma
Yukarıdaki gibi, ilgili parametreleri gerçek durumunuza göre değiştirin, ardından aşağıdaki komutu çalıştırın:
docker run --rm -it --gpus=all --env=is_half=False --volume=G:\GPT-SoVITS-DockerTest\output:/workspace/output --volume=G:\GPT-SoVITS-DockerTest\logs:/workspace/logs --volume=G:\GPT-SoVITS-DockerTest\SoVITS_weights:/workspace/SoVITS_weights --workdir=/workspace -p 9880:9880 -p 9871:9871 -p 9872:9872 -p 9873:9873 -p 9874:9874 --shm-size="16G" -d breakstring/gpt-sovits:xxxxx
Önceden Eğitilmiş Modeller
-
GPT-SoVITS Models üzerinden önceden eğitilmiş modelleri indirip
GPT_SoVITS/pretrained_models
dizinine yerleştirin. -
G2PWModel_1.1.zip üzerinden modeli indirip sıkıştırmayı açın ve
G2PWModel
olarak yeniden adlandırın, ardındanGPT_SoVITS/text
dizinine yerleştirin. (Sadece Çince TTS için) -
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
vekim_mel_band_roformer.yaml
da bir çifttir.
-
-
Çince ASR için, Damo ASR Model, Damo VAD Model ve Damo Punc Model üzerinden modelleri indirip
tools/asr/models
dizinine yerleştirin. -
İ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:
-
Korece ve Kantonca destekler
-
Optimize edilmiş metin ön yüzü
-
Önceden eğitilmiş model 2k saatten 5k saate kadar genişletildi
-
Düşük kaliteli referans sesler için geliştirilmiş sentez kalitesi
V1 ortamından V2'yi kullanmak için:
-
pip install -r requirements.txt
ile bazı paketleri güncelleyin -
github'dan en son kodları klonlayın.
-
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_1.1.zip (G2PW modellerini indirip, zipten çıkarıp,
G2PWModel
olarak yeniden adlandırıpGPT_SoVITS/text
dizinine yerleştirin.)
V3 Sürüm Notları
Yeni Özellikler:
-
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).
-
GPT modeli daha kararlı hale geldi, tekrarlar ve atlamalar azaldı ve daha zengin duygusal ifadeler ile konuşma üretmek daha kolay hale geldi.
v2 ortamında v3 kullanımı:
-
pip install -r requirements.txt
ile bazı paketleri güncelleyin. -
GitHub’dan en son kodları klonlayın.
-
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.