From 7293002f537e39c222cd1671e222b34c0a837d94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Do=C4=9Fa=20Ya=C4=9Fc=C4=B1zeybek?= <49113914+dogayagcizeybek@users.noreply.github.com> Date: Sun, 13 Aug 2023 06:52:24 +0300 Subject: [PATCH] chore: translate documents into turkish (#944) * chore: translate documents into turkish * chore: add turkish option to other readmes * chore: add turkish option to main readme --- README.md | 2 +- docs/Changelog_TR.md | 80 +++++++++++++++++++++++++ docs/README.en.md | 2 +- docs/README.ja.md | 2 +- docs/README.ko.han.md | 2 +- docs/README.ko.md | 2 +- docs/README.tr.md | 126 +++++++++++++++++++++++++++++++++++++++ docs/faiss_tips_tr.md | 105 ++++++++++++++++++++++++++++++++ docs/faq_tr.md | 96 +++++++++++++++++++++++++++++ docs/training_tips_tr.md | 68 +++++++++++++++++++++ 10 files changed, 480 insertions(+), 5 deletions(-) create mode 100644 docs/Changelog_TR.md create mode 100644 docs/README.tr.md create mode 100644 docs/faiss_tips_tr.md create mode 100644 docs/faq_tr.md create mode 100644 docs/training_tips_tr.md diff --git a/README.md b/README.md index 08aebdb..6ff947a 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ ------ -[**English**](./docs/README.en.md) | [**中文简体**](./README.md) | [**日本語**](./docs/README.ja.md) | [**한국어**](./docs/README.ko.md) ([**韓國語**](./docs/README.ko.han.md)) +[**English**](./docs/README.en.md) | [**中文简体**](./README.md) | [**日本語**](./docs/README.ja.md) | [**한국어**](./docs/README.ko.md) ([**韓國語**](./docs/README.ko.han.md)) | [**Türkçe**](./docs/README.tr.md) 点此查看我们的[演示视频](https://www.bilibili.com/video/BV1pm4y1z7Gm/) ! diff --git a/docs/Changelog_TR.md b/docs/Changelog_TR.md new file mode 100644 index 0000000..ffe6ba8 --- /dev/null +++ b/docs/Changelog_TR.md @@ -0,0 +1,80 @@ +### 2023-06-18 +- Yeni önceden eğitilmiş v2 modelleri: 32k ve 48k +- F0 olmayan model çıkarımlarındaki hatalar düzeltildi +- Eğitim kümesi 1 saatini aşarsa, özelliğin boyutunu azaltmak için otomatik minibatch-kmeans yapılır, böylece indeks eğitimi, ekleme ve arama işlemleri çok daha hızlı olur. +- Oyuncak sesden gitar huggingface alanı sağlanır +- Aykırı kısa kesme eğitim kümesi sesleri otomatik olarak silinir +- Onnx dışa aktarma sekmesi + +Başarısız deneyler: +- ~~Özellik çıkarımı: zamansal özellik çıkarımı ekleme: etkili değil~~ +- ~~Özellik çıkarımı: PCAR boyut indirgeme ekleme: arama daha da yavaş~~ +- ~~Eğitimde rastgele veri artırma: etkili değil~~ + +Yapılacaklar listesi: +- Vocos-RVC (küçük vokoder) +- Eğitim için Crepe desteği +- Yarı hassas Crepe çıkarımı +- F0 düzenleyici desteği + +### 2023-05-28 +- v2 jupyter not defteri eklendi, korece değişiklik günlüğü eklendi, bazı ortam gereksinimleri düzeltildi +- Sesli olmayan ünsüz ve nefes koruma modu eklendi +- Crepe-full pitch algılama desteği eklendi +- UVR5 vokal ayırma: dereverb ve de-echo modellerini destekler +- İndeksin adında deney adı ve sürümünü ekleyin +- Toplu ses dönüşüm işlemi ve UVR5 vokal ayırma sırasında çıktı seslerinin ihracat formatını manuel olarak seçme desteği eklendi +- v1 32k model eğitimi artık desteklenmiyor + +### 2023-05-13 +- Tek tıklamalı paketin eski sürümündeki gereksiz kodlar temizlendi: lib.infer_pack ve uvr5_pack +- Eğitim kümesi ön işlemesinde sahte çok işlem hatası düzeltildi +- Harvest pitch algı algoritması için median filtre yarıçapı ayarlama eklendi +- Ses ihracatı için yeniden örnekleme desteği eklendi +- Eğitimde "n_cpu" için çoklu işlem ayarı "f0 çıkarma" dan "veri ön işleme ve f0 çıkarma" olarak değiştirildi +- İndex yolu otomatik olarak algılanır ve açılır liste işlevi sağlanır +- Sekme sayfasında "Sık Sorulan Sorular ve Cevaplar" eklendi (ayrıca github RVC wiki'ye bakabilirsiniz) +- Çıkarım sırasında, aynı giriş sesi yolu kullanıldığında harvest pitch önbelleğe alınır (amaç: harvest pitch çıkarma kullanılırken, tüm işlem süreci uzun ve tekrarlayan bir pitch çıkarma sürecinden geçer. Önbellek kullanılmazsa, farklı timbre, index ve pitch median filtre yarıçapı ayarlarıyla deney yapan kullanıcılar ilk çıkarımın ardından çok acı verici bir bekleme süreci yaşayacaktır) + +### 2023-05-14 +- Girişin ses hacmini çıkışın ses hacmiyle karıştırma veya değiştirme seçeneği eklendi ( "giriş sessiz ve çıkış düşük amplitütlü gürültü" sorununu hafifletmeye yardımcı olur. Giriş sesinin arka plan gürültüsü yüksekse, önerilmez ve varsayılan olarak kapalıdır (1 kapalı olarak düşünülebilir) +- Çıkarılan küçük modellerin belirli bir sıklıkta kaydedilmesini destekler (farklı epoch altındaki performansı görmek istiyorsanız, ancak tüm büyük kontrol noktalarını kaydetmek istemiyor ve her seferinde ckpt-processing ile küçük modelleri manuel olarak çıkarmak istemiyorsanız, bu özellik oldukça pratik olacaktır) +- Sunucunun genel proxy'sinin neden olduğu "bağlantı hataları" sorununu, çevre değişkenleri ayarlayarak çözer +- Önceden eğitilmiş v2 modelleri destekler (şu anda sadece 40k sürümleri test için kamuya açıktır ve diğer iki örnekleme hızı henüz tam olarak eğitilmemiştir) +- İnferans öncesi aşırı ses hacmi 1'i aşmasını engeller +- Eğitim kümesinin ayarlarını hafifçe düzeltildi + +####################### + +Geçmiş değişiklik günlükleri: + +### 2023-04-09 +- GPU kullanım oranını artırmak için eğitim parametreleri düzeltilerek: A100% 25'ten yaklaşık 90'a, V100: %50'den yaklaşık 90'a, 2060S: %60'dan yaklaşık 85'e, P40: %25'ten yaklaşık 95'e; eğitim hızı önemli ölçüde artırıldı +- Parametre değiştirildi: toplam batch_size artık her GPU için batch_size +- Toplam_epoch değiştirildi: maksimum sınır 100'den 1000'e yükseltildi; varsayılan 10'dan 20'ye yükseltildi +- Ckpt çıkarımı sırasında pitch yanlış tanıma nedeniyle oluşan anormal çıkarım sorunu + + düzeltildi +- Dağıtılmış eğitimde her sıra için ckpt kaydetme sorunu düzeltildi +- Özellik çıkarımında nan özellik filtreleme uygulandı +- Giriş/çıkış sessiz üretildiğinde rastgele ünsüzler veya gürültü üretme sorunu düzeltildi (eski modeller yeni bir veri kümesiyle yeniden eğitilmelidir) + +### 2023-04-16 Güncellemesi +- Yerel gerçek zamanlı ses değiştirme mini-GUI eklendi, go-realtime-gui.bat dosyasını çift tıklatarak başlayın +- Eğitim ve çıkarımda 50Hz'nin altındaki frekans bantları için filtreleme uygulandı +- Eğitim ve çıkarımda pyworld'ün varsayılan 80'den 50'ye düşürüldü, böylece 50-80Hz aralığındaki erkek düşük perdeli seslerin sessiz kalmaması sağlandı +- WebUI, sistem yereli diline göre dil değiştirme desteği ekledi (şu anda en_US, ja_JP, zh_CN, zh_HK, zh_SG, zh_TW'yi desteklemektedir; desteklenmezse varsayılan olarak en_US kullanılır) +- Bazı GPU'ların tanınmasında sorun giderildi (örneğin, V100-16G tanınma hatası, P4 tanınma hatası) + +### 2023-04-28 Güncellemesi +- Daha hızlı hız ve daha yüksek kalite için faiss indeks ayarları yükseltildi +- total_npy bağımlılığı kaldırıldı; gelecekteki model paylaşımı total_npy girişi gerektirmeyecek +- 16 serisi GPU'lar için kısıtlamalar kaldırıldı, 4GB VRAM GPU'ları için 4GB çıkarım ayarları sağlanıyor +- Belirli ses biçimleri için UVR5 vokal eşlik ayırma hatası düzeltildi +- Gerçek zamanlı ses değiştirme mini-GUI, 40k dışında ve tembelleştirilmemiş pitch modellerini destekler hale geldi + +### Gelecek Planlar: +Özellikler: +- Her epoch kaydetmek için küçük modelleri çıkarma seçeneği ekle +- Çıkarım sırasında çıktı sesleri için belirli bir yola ekstra mp3'leri kaydetme seçeneği ekle +- Birden çok kişi eğitim sekmesini destekle (en fazla 4 kişiye kadar) \ No newline at end of file diff --git a/docs/README.en.md b/docs/README.en.md index 80add24..cbc1c15 100644 --- a/docs/README.en.md +++ b/docs/README.en.md @@ -18,7 +18,7 @@ An easy-to-use Voice Conversion framework based on VITS.

------ [**Changelog**](https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI/blob/main/docs/Changelog_EN.md) | [**FAQ (Frequently Asked Questions)**](https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI/wiki/FAQ-(Frequently-Asked-Questions)) -[**English**](./README.en.md) | [**中文简体**](../README.md) | [**日本語**](./README.ja.md) | [**한국어**](./README.ko.md) ([**韓國語**](./README.ko.han.md)) +[**English**](./README.en.md) | [**中文简体**](../README.md) | [**日本語**](./README.ja.md) | [**한국어**](./README.ko.md) ([**韓國語**](./README.ko.han.md)) | [**Türkçe**](./README.tr.md) Check our [Demo Video](https://www.bilibili.com/video/BV1pm4y1z7Gm/) here! diff --git a/docs/README.ja.md b/docs/README.ja.md index 26ce3af..5bb2ba2 100644 --- a/docs/README.ja.md +++ b/docs/README.ja.md @@ -19,7 +19,7 @@ VITSに基づく使いやすい音声変換(voice changer)framework

[**更新日誌**](https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI/blob/main/docs/Changelog_CN.md) -[**English**](./README.en.md) | [**中文简体**](../README.md) | [**日本語**](./README.ja.md) | [**한국어**](./README.ko.md) ([**韓國語**](./README.ko.han.md)) +[**English**](./README.en.md) | [**中文简体**](../README.md) | [**日本語**](./README.ja.md) | [**한국어**](./README.ko.md) ([**韓國語**](./README.ko.han.md)) | [**Türkçe**](./README.tr.md) > デモ動画は[こちら](https://www.bilibili.com/video/BV1pm4y1z7Gm/)でご覧ください。 diff --git a/docs/README.ko.han.md b/docs/README.ko.han.md index cac9d70..78ceaac 100644 --- a/docs/README.ko.han.md +++ b/docs/README.ko.han.md @@ -18,7 +18,7 @@ VITS基盤의 簡單하고使用하기 쉬운音聲變換틀

------ [**更新日誌**](https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI/blob/main/docs/Changelog_KO.md) -[**English**](./README.en.md) | [**中文简体**](../README.md) | [**日本語**](./README.ja.md) | [**한국어**](./README.ko.md) ([**韓國語**](./README.ko.han.md)) +[**English**](./README.en.md) | [**中文简体**](../README.md) | [**日本語**](./README.ja.md) | [**한국어**](./README.ko.md) ([**韓國語**](./README.ko.han.md)) | [**Türkçe**](./README.tr.md) > [示範映像](https://www.bilibili.com/video/BV1pm4y1z7Gm/)을 確認해 보세요! diff --git a/docs/README.ko.md b/docs/README.ko.md index abea8e6..0689688 100644 --- a/docs/README.ko.md +++ b/docs/README.ko.md @@ -19,7 +19,7 @@ VITS 기반의 간단하고 사용하기 쉬운 음성 변환 프레임워크. [데모 영상](https://www.bilibili.com/video/BV1pm4y1z7Gm/)을 확인해 보세요! diff --git a/docs/README.tr.md b/docs/README.tr.md new file mode 100644 index 0000000..8c04cd2 --- /dev/null +++ b/docs/README.tr.md @@ -0,0 +1,126 @@ +# Retrieval-based-Voice-Conversion-WebUI + +
+ +

Retrieval Tabanlı Ses Dönüşümü Web Arayüzü

+Kolay kullanılabilen VITS tabanlı bir Ses Dönüşümü çerçevesi.

+ +[![madewithlove](https://forthebadge.com/images/badges/built-with-love.svg)](https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI) + +
+ +[![Open In Colab](https://img.shields.io/badge/Colab-F9AB00?style=for-the-badge&logo=googlecolab&color=525252)](https://colab.research.google.com/github/RVC-Project/Retrieval-based-Voice-Conversion-WebUI/blob/main/Retrieval_based_Voice_Conversion_WebUI.ipynb) +[![Licence](https://img.shields.io/github/license/RVC-Project/Retrieval-based-Voice-Conversion-WebUI?style=for-the-badge)](https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI/blob/main/LICENSE) +[![Huggingface](https://img.shields.io/badge/🤗%20-Spaces-yellow.svg?style=for-the-badge)](https://huggingface.co/lj1995/VoiceConversionWebUI/tree/main/) + +[![Discord](https://img.shields.io/badge/RVC%20Developers-Discord-7289DA?style=for-the-badge&logo=discord&logoColor=white)](https://discord.gg/HcsmBBGyVk) + +
+ +------ +[**Değişiklik Kaydı**](https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI/blob/main/docs/Changelog_TR.md) | [**SSS (Sıkça Sorulan Sorular)**](https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI/wiki/FAQ-(Frequently-Asked-Questions)) + +[**English**](./README.en.md) | [**中文简体**](../README.md) | [**日本語**](./README.ja.md) | [**한국어**](./README.ko.md) ([**韓國語**](./README.ko.han.md)) | [**Türkçe**](./README.tr.md) + +Demo Videosu için [buraya](https://www.bilibili.com/video/BV1pm4y1z7Gm/) bakın! + +RVC kullanarak Gerçek Zamanlı Ses Dönüşümü Yazılımı: [w-okada/voice-changer](https://github.com/w-okada/voice-changer) + +> RVC kullanan çevrimiçi bir demo: Vocal'i Akustik Gitar sesine dönüştüren demo: https://huggingface.co/spaces/lj1995/vocal2guitar + +> Vocal2Guitar demo videosu: https://www.bilibili.com/video/BV19W4y1D7tT/ + +> Ön eğitim modeli için neredeyse 50 saatlik yüksek kaliteli VCTK açık kaynaklı veri kümesi kullanılmıştır. + +> Lisanslı yüksek kaliteli şarkı veri kümesi, telif hakkı ihlali endişesi olmadan kullanımınız için sırayla eklenecektir. + +## Özet +Bu depo aşağıdaki özelliklere sahiptir: ++ Top1 geri alım kullanarak kaynak özelliğini eğitim seti özelliğiyle değiştirerek ses tonu sızmasını azaltma; ++ Kolay ve hızlı eğitim, hatta göreceli olarak zayıf grafik kartlarında bile; ++ Az miktarda veri ile bile (en az 10 dakika düşük gürültülü konuşma tavsiye edilir) oldukça iyi sonuçlar elde etme; ++ Timbrları değiştirmek için model birleştirmeyi destekleme (ckpt işleme sekmesinde ckpt birleştirme kullanma); ++ Kolay kullanımlı Webui arayüzü; ++ UVR5 modelini kullanarak hızlı bir şekilde vokalleri ve enstrümanları ayırma. ++ En güçlü Yüksek Tiz Ses Ayıklama Algoritması [InterSpeech2023-RMVPE](#Teşekkürler) sessiz ses sorununu önlemek için kullanılması. En iyi sonuçları (önemli ölçüde) sağlar ve Crepe_full'dan daha düşük kaynak tüketimiyle daha hızlıdır. + +## Ortamı Hazırlama +Aşağıdaki komutlar Python sürümü 3.8 veya daha yüksek olan ortamda çalıştırılmalıdır. + +(Windows/Linux) +Önce pip aracılığıyla ana bağımlılıkları yükleyin: +```bash +# PyTorch ile ilgili temel bağımlılıkları yükleyin, kuruluysa atlayın +# Referans: https://pytorch.org/get-started/locally/ +pip install torch torchvision torchaudio + +#Windows + Nvidia Ampere Mimarisi(RTX30xx) için, deneyime göre https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI/issues/21 adresindeki cuda sürümüne göre pytorch'a karşılık gelen cuda sürümünü belirtmeniz gerekebilir +#pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu117 +``` + +Sonra poetry kullanarak diğer bağımlılıkları yükleyebilirsiniz: +```bash +# Poetry bağımlılık yönetim aracını yükleyin, kuruluysa atlayın +# Referans: https://python-poetry.org/docs/#installation +curl -sSL https://install.python-poetry.org | python3 - + +# Proje bağımlılıklarını yükleyin +poetry install +``` + +Bunun yerine pip kullanarak da yükleyebilirsiniz: +```bash +pip install -r requirements.txt +``` + +------ +Mac kullanıcıları bağımlılıkları `run.sh` üzerinden yükleyebilir: +```bash +sh ./run.sh +``` + +## Diğer Ön-Modellerin Hazırlanması +RVC'n + +in çıkarım ve eğitim için diğer ön-modellere ihtiyacı vardır. + +Onları [Huggingface alanımızdan](https://huggingface.co/lj1995/VoiceConversionWebUI/tree/main/) indirmeniz gerekmektedir. + +İşte RVC'nin ihtiyaç duyduğu Diğer Ön-Modellerin ve diğer dosyaların listesi: +```bash +hubert_base.pt + +./pretrained + +./uvr5_weights + +V2 sürümü modelini test etmek istiyorsanız (v2 sürümü modeli girişi 256 boyutlu 9 katmanlı Hubert+final_proj'dan 768 boyutlu 12 katmanlı Hubert'ın özelliğine ve 3 dönem ayrımına değiştirilmiştir), ek özellikleri indirmeniz gerekecektir. + +./pretrained_v2 + +#Eğer Windows kullanıyorsanız, FFmpeg yüklü değilse bu dictionariyaya da ihtiyacınız olabilir, FFmpeg yüklüyse atlayın +ffmpeg.exe +``` +Daha sonra bu komutu kullanarak Webui'yi başlatabilirsiniz: +```bash +python infer-web.py +``` +Windows veya macOS kullanıyorsanız, RVC-beta.7z'yi indirip çıkarabilir ve Webui'yi başlatmak için windows'ta `go-web.bat` veya macOS'te `sh ./run.sh` kullanarak RVC'yi doğrudan kullanabilirsiniz. + +Ayrıca, RVC hakkında bir rehber de bulunmaktadır ve ihtiyacınız varsa buna göz atabilirsiniz. + +## Teşekkürler ++ [ContentVec](https://github.com/auspicious3000/contentvec/) ++ [VITS](https://github.com/jaywalnut310/vits) ++ [HIFIGAN](https://github.com/jik876/hifi-gan) ++ [Gradio](https://github.com/gradio-app/gradio) ++ [FFmpeg](https://github.com/FFmpeg/FFmpeg) ++ [Ultimate Vocal Remover](https://github.com/Anjok07/ultimatevocalremovergui) ++ [audio-slicer](https://github.com/openvpi/audio-slicer) ++ [Vocal pitch extraction:RMVPE](https://github.com/Dream-High/RMVPE) + + Ön eğitimli model [yxlllc](https://github.com/yxlllc/RMVPE) ve [RVC-Boss](https://github.com/RVC-Boss) tarafından eğitilmiş ve test edilmiştir. + +## Tüm katkıda bulunanlara teşekkürler + + + \ No newline at end of file diff --git a/docs/faiss_tips_tr.md b/docs/faiss_tips_tr.md new file mode 100644 index 0000000..512d544 --- /dev/null +++ b/docs/faiss_tips_tr.md @@ -0,0 +1,105 @@ +faiss ayarları hakkında ipuçları +============================= + +# faiss hakkında +faiss, facebook araştırma tarafından geliştirilen, yoğun vektörler için yakınsaklık aramaları için bir kütüphanedir ve birçok yaklaşık yakınsaklık arama yöntemini verimli bir şekilde uygular. +Yaklaşık Yakınsaklık Arama, biraz doğruluktan ödün vererek benzer vektörleri hızlı bir şekilde bulur. + +## RVC'de faiss +RVC'de, HuBERT tarafından dönüştürülen özelliklerin gömülmesi için eğitim verilerinden oluşturulan gömülmelerle benzer gömülmeleri arar ve onları karıştırarak orijinal konuşmaya daha yakın bir dönüşüm elde ederiz. Ancak, bu arama zaman alıyorsa, yaklaşık yakınsaklık arama kullanarak yüksek hızlı dönüşüm elde edilir. + +# Uygulama genel bakışı +Modelin bulunduğu '/logs/your-experiment/3_feature256' dizininde, her ses verisinden HuBERT tarafından çıkarılan özellikler bulunur. +Burası, dosya adına göre sıralanmış npy dosyalarını okuyarak vektörleri birleştirerek büyük npy oluşturur. (Bu vektörün şekli [N, 256].) +Büyük npy, /logs/your-experiment/total_fea.npy olarak kaydedildikten sonra faiss ile eğitilir. + +Bu makalede, bu parametrelerin anlamını açıklayacağım. + +# Yöntemin Açıklaması +## indeks fabrikası +Bir indeks fabrikası, birden çok yaklaşık yakınsaklık arama yöntemini bir dize olarak bağlayan benzersiz bir faiss gösterimidir. +Bu, indeks fabrikası dizesini değiştirerek kolayca çeşitli yaklaşık yakınsaklık arama yöntemlerini denemenize olanak tanır. +RVC'de bunu şu şekilde kullanıyoruz: + +```python +index = faiss.index_factory(256, "IVF%s,Flat" % n_ivf) +``` +index_factory'nin argümanları arasında ilk olarak vektörün boyutu, ikinci olarak indeks fabrikası dizesi ve üçüncü olarak kullanılacak mesafe bulunur. + +Daha ayrıntılı gösterim için +https://github.com/facebookresearch/faiss/wiki/The-index-factory + +## mesafe için indeks +Aşağıda gömülmenin benzerliğinde kullanılan iki tipik indeks bulunur. + +- Öklidyen mesafesi (METRIC_L2) +- iç çarpım (METRIC_INNER_PRODUCT) + +Öklidyen mesafesi, her boyutta kare farkı alır, tüm boyutlardaki farkları toplar ve ardından karekökünü alır. Bu, günlük hayatta kullandığımız 2D ve 3D'deki mesafeyle aynıdır. +İç çarpım, doğrudan bir benzerlik indeksi olarak kullanılmaz, genellikle L2 normuyla normalize edildikten sonra iç çarpım alınan kosinüs benzerliği kullanılır. + +Hangisinin daha iyi olduğu duruma bağlıdır, ancak word2vec tarafından elde edilen gömülme ve ArcFace ile öğrenilmiş benzer görüntü arama modellerinde genellikle kosinüs benzerliği kullanılır. numpy ile X vektörüne l2 normalizasyonu yapmak için aşağıdaki kodu eps değerini sıfıra bölme hatasından kaçınmak için yeterince küçük bir değerle kullanabilirsiniz. + +```python +X_normed = X / np.maximum(eps, np.linalg.norm(X, ord=2, axis=-1, keepdims=True)) +``` + +Ayrıca, indeks fabrikasında hesaplama için kullanılan mesafe indeksini üçüncü argüman olarak geçerek hesaplanan mesafeyi değiştirebilirsiniz. + +```python +index = faiss.index_factory(dimention, text, faiss.METRIC_INNER_PRODUCT) +``` + +## IVF +IVF (Ters dosya indeksleri), tam metin aramasındaki ters indekse benzer bir algoritmadır. +Öğrenme sırasında, arama hedefi kmeans ile kümeleme yapılır ve küme merkezi ile Voronoi bölümlenmesi yapılır. Her veri noktası bir kümeye atanır, bu nedenle veri noktalarını kümelelerden arayan bir sözlük oluştururuz. + +Örneğin, kümeler şu şekilde atanırsa: +|index|Küme| +|-----|-------| +|1|A| +|2|B| +|3|A| +|4|C| +|5|B| + +Sonuçta elde edilen ters indeks aşağıdaki gibi görünecektir: + +|küme|index| +|-------|-----| +|A|1, 3| +|B|2, 5| +|C|4| + +Arama yaparken, önce kümelerden n_probe kümeleri arar ve ardından her kümeye ait veri noktalarının mesafesini hesaplar. + +# Önerilen parametreler +Önerilen bir indeks seçme konusunda resmi yönergeler bulunur, bu nedenle buna göre açıklayacağım. +https://github.com/facebookresearch/faiss/wiki/Guidelines-to-choose-an-index + +1M'den küçük veri kümeleri için, Nisan 2023 itibarıyla faiss tarafından mevcut olan en verimli yöntem 4bit-PQ'dir. +Bunu IVF ile birleştirerek, 4bit-PQ ile adayları daraltabilir ve nihayetinde doğru bir indeksle mesafeyi yeniden hesaplayarak aşağıdaki indeks fabrikasını kullanarak tanımlayabiliriz. + + + +```python +index = faiss.index_factory(256, "IVF1024,PQ128x4fs,RFlat") +``` + +## IVF için Önerilen Parametreler +Çok fazla IVF'nin olduğu durumu düşünün. Örneğin, IVF tarafından verilerin sayısı için kalın nicelleme yapıldığında, bu, basit bir tam arama ile aynıdır ve verimsizdir. +1M veya daha az için IVF değerleri, veri noktalarının N sayısı için 4*sqrt(N) ~ 16*sqrt(N) arasında önerilir. + +n_probes sayısı arttıkça hesaplama süresi arttığından, doğruluk ile danışın ve uygun şekilde seçin. Kişisel olarak RVC'nin bu kadar hassas olmasını gerektiren bir durum olmadığını düşünüyorum, bu nedenle n_probe = 1 yeterlidir. + +## FastScan +FastScan, bunları kayıtlarda gerçekleştirerek onları kartez ürün kuantizasyonu ile yüksek hızda mesafeye yaklaşık olarak yapılmasını sağlayan bir yöntemdir. +Kartez ürün kuantizasyonu, öğrenme sırasında her d boyut için (genellikle d = 2) bağımsız olarak kümeleme yapar, küme merkezleri arasındaki mesafeyi önceden hesaplar ve bir arama tablosu oluşturur. Tahmin sırasında her boyutun mesafesi, arama tablosuna bakarak O(1) olarak hesaplanabilir. +Bu nedenle PQ'dan sonra belirttiğiniz sayı genellikle vektörün yarısı olarak belirtir. + +FastScan hakkında daha ayrıntılı bilgi için lütfen resmi belgelere başvurun. +https://github.com/facebookresearch/faiss/wiki/Fast-accumulation-of-PQ-and-AQ-codes-(FastScan) + +## RFlat +RFlat, FastScan ile hesaplanan yaklaşık mesafeyi indeks fabrikasının üçüncü argümanı ile belirtilen tam mesafe ile yeniden hesaplamak için bir talimattır. +K-en yakın komşuyu alırken, k*k_factor kadar nokta yeniden hesaplanır. \ No newline at end of file diff --git a/docs/faq_tr.md b/docs/faq_tr.md new file mode 100644 index 0000000..e518f44 --- /dev/null +++ b/docs/faq_tr.md @@ -0,0 +1,96 @@ +## Soru 1: FFmpeg hatası/utf8 hatası. +Muhtemelen bir FFmpeg sorunu değil, ses yolunda bir sorun var; + +FFmpeg, boşluklar ve () gibi özel karakterler içeren yolları okurken bir hata ile karşılaşabilir ve FFmpeg hatası oluşturabilir; ve eğitim setinin sesleri Çince yollar içeriyorsa, bunları filelist.txt'ye yazmak utf8 hatasına neden olabilir. + +## Soru 2: "Tek Tıklamayla Eğitim" sonrasında indeks dosyası bulunamıyor. +"Training is done. The program is closed" şeklinde görüntüleniyorsa, model başarılı bir şekilde eğitilmiş demektir ve sonraki hatalar yanıltıcı olabilir; + +Tek tıklamalı eğitim sonrasında "added" indeks dosyasının eksik olması, eğitim setinin çok büyük olmasından kaynaklanabilir ve indeksin eklenmesinin takılmasına neden olabilir; bunun çözümü, indeksi eklerken bellek aşımı sorununu çözen toplu işlemi kullanmaktır. Geçici bir çözüm olarak, "Train Index" düğmesine tekrar tıklamayı deneyin. + +## Soru 3: Eğitim sonrasında "Timbre Inferencing" bölümünde model bulunamıyor +"Refresh timbre list"e tıklayın ve tekrar kontrol edin; hala görünmüyorsa, eğitim sırasında hatalar olup olmadığını kontrol edin ve geliştiricilere ek analiz için konsol, web UI ve logs/experiment_name/*.log ekran görüntüleri gönderin. + +## Soru 4: Bir modeli nasıl paylaşabilirim/Başkalarının modellerini nasıl kullanabilirim? +rvc_root/logs/experiment_name klasöründe depolanan pth dosyaları, paylaşım veya çıkarım için değil, yeniden üretilebilirlik ve daha fazla eğitim için deney kontrol noktalarını depolamak içindir. Paylaşılacak model, weights klasöründeki 60+MB pth dosyası olmalıdır; + +Gelecekte, weights/exp_name.pth ve logs/exp_name/added_xxx.index birleştirilerek, manuel indeks girişi gerektirmeyen bir tek weights/exp_name.zip dosyası oluşturulacak; bu nedenle, farklı bir makinede eğitime devam etmek istemiyorsanız, pth dosyasını değil zip dosyasını paylaşın; + +Logs klasöründen weights klasörüne birkaç yüz MB'lık pth dosyalarını zorlama çıkarım için kopyalamak/paylaşmak, eksik f0, tgt_sr veya diğer anahtarlar gibi hatalara neden olabilir. Alt kısımdaki ckpt sekmesini kullanarak manuel veya otomatik olarak (bilgiler logs/exp_name'de bulunuyorsa) ton infomasyonu ve hedef ses örnekleme hızı seçmeyi deneyin ve ardından daha küçük modeli çıkarın. Çıkarıldıktan sonra weights klasöründe 60+ MB'lık bir pth dosyası olacak ve sesleri yenileyerek kullanabilirsiniz. + +## Soru 5: Bağlantı Hatası. +Muhtemelen konsolu (siyah komut satırı penceresini) kapattınız. + +## Soru 6: WebUI'de 'Expecting value: line 1 column 1 (char 0)' hatası. +Sistem LAN proxy/global proxy'yi devre dışı bırakın ve sonra yenileyin. + +## Soru 7: WebUI olmadan nasıl eğitilir ve sonuçlandırılır? +Eğitim betiği: +Eğitimi WebUI'de çalıştırabilirsiniz, ve mesaj penceresinde veri seti ön işleme ve eğitiminin komut satırı sürümleri gösterilecektir. + +Sonuçlandırma betiği: +https://huggingface.co/lj1995/VoiceConversionWebUI/blob/main/myinfer.py + +Örneğin: + +```bash +runtime\python.exe myinfer.py 0 "E:\codes\py39\RVC-beta\todo-songs\1111.wav" "E:\codes\py39\logs\mi-test\added_IVF677_Flat_nprobe_7.index" harvest "test.wav" "weights/mi-test.pth" 0.6 cuda:0 True +``` + +f0up_key=sys.argv[1] +input_path=sys.argv[2] +index_path=sys.argv[3] +f0method=sys.argv[4]#harvest or pm +opt_path=sys.argv[5] +model_path=sys.argv[6] +index_rate=float(sys.argv[7]) +device=sys.argv[8] +is_half=bool(sys.argv[9]) + +## Soru 8: Cuda hatası/Cuda bellek dışı. +Küçük bir olasılıkla CUDA yapılandırmasında bir sorun olabilir veya cihaz desteklenmiyor olabilir; daha olası bir şekilde, yeterli belleğiniz yoktur (bellek dışı). + +Eğitim için, toplu boyutunu azaltın (1'e düşürmek hala yeterli değilse, grafik kartını değiştirmeniz gerekebilir); sonuçlandırma için, config.py dosyasında x_pad, x_query, x_center ve x_max ayarlarını ihtiyaca göre ayarlayın. 4G veya daha düşük bellekli kartlar (örn. 1060(3G) ve çeşitli 2G kartlar) terk edilebilir, ancak 4G bellekli kartların hala bir şansı vardır. + +## Soru 9: Optimal kaç total_epoch kullanmalıyım? +Eğitim veri setinin ses kalitesi düşük ve gürültü seviyesi yüksekse, 20-30 epoch yeterlidir. Çok yüksek bir değer ayarlamak, düşük kaliteli eğitim setinizin ses kalitesini artırmaz. + +Eğitim setinin ses kalitesi yüksek, gürültü sevi + +yesi düşük ve yeterli süresi varsa, artırabilirsiniz. 200 kabul edilebilir (çünkü eğitim hızlıdır ve yüksek kaliteli bir eğitim seti hazırlayabiliyorsanız, GPU'nuz muhtemelen sorunsuz bir şekilde daha uzun bir eğitim süresini işleyebilir). + +## Soru 10: Ne kadar eğitim verisi süresine ihtiyacım var? +Yaklaşık 10 dakika ile 50 dakika arasında bir veri seti önerilir. + +Sağlam ses kalitesi ve düşük taban gürültü garantiliyse, veri seti seslerinin homojen olması durumunda daha fazla ekleyebilirsiniz. + +Yüksek seviye bir eğitim seti için (düzgün + belirgin bir ton), 5 dakika ile 10 dakika arasında yeterlidir. + +1 dakika ile 2 dakika veriyle başarıyla eğitim yapan bazı insanlar var, ancak başarı başkaları tarafından tekrarlanabilir değil ve çok bilgi verici değil. Bu, eğitim setinin çok belirgin bir tona sahip olmasını (örneğin yüksek frekanslı havadar anime kız sesi gibi) ve ses kalitesinin yüksek olmasını gerektirir; 1 dakikadan daha kısa veriler şu ana kadar başarılı bir şekilde deneme yapılmamıştır. Bu önerilmez. + +## Soru 11: İndeks oranı nedir ve nasıl ayarlanır? +Önceden eğitilmiş modelin ve çıkarım kaynağının ton kalitesi, eğitim setinin ton kalitesinden daha yüksekse, bunlar çıkarım sonucunun ton kalitesini artırabilir, ancak eğitim setinin tonuna göre değil, genellikle "ton sızıntısı" olarak adlandırılan eğitim setinin tonuna göre bir ton eğilimine yol açabilir. + +İndeks oranı, ton sızıntı sorununu azaltmak/çözmek için kullanılır. İndeks oranı 1 olarak ayarlandığında, teorik olarak çıkarım kaynağından hiç ton sızıntısı olmaz ve ton kalitesi daha çok eğitim setine yönlendirilir. Eğitim seti, çıkarım kaynağından ses kalitesi açısından daha düşükse, daha yüksek bir indeks oranı ses kalitesini azaltabilir. 0'a indirildiğinde, eğitim seti tonlarını korumak için çıkarım karışımı kullanma etkisi yoktur. + +Eğitim seti iyi ses kalitesine sahipse ve uzun süreliyse, total_epoch'ı artırın, modelin kendi başına çıkarım kaynağına ve önceden eğitilmiş temel modeline başvurma olasılığı azaldığında ve "ton sızıntısı" çok az olduğunda, indeks oranı önemli değildir ve hatta indeks dosyası oluşturmak/paylaşmak zorunda kalmazsınız. + +## Soru 12: Çıkarırken hangi gpu'yu seçmeliyim? +config.py dosyasında, "device cuda:" dan sonra kart numarasını seçin. + +Kart numarası ile grafik kartı arasındaki eşleştirmeyi eğitim sekmesinin grafik kartı bilgisi bölümünde görebilirsiniz. + +## Soru 13: Eğitimin ortasında kaydedilen modeli nasıl kullanabilirim? +Çıkartma modeli, ckpt processing sekmesinin alt kısmında kaydedin. + +## Soru 14: Dosya/bellek hatası (eğitim sırasında)? +Çok fazla işlem ve belleğiniz yeterli değil. Bunun düzeltilmesi için: + +1. "Threads of CPU" alanında girişi azaltın. +2. Eğitim setini daha kısa ses dosyalarına önceden kesin. + +## Soru 15: Daha fazla veri kullanarak nasıl eğitime devam ederim? +Adım 1: Tüm wav verilerini path2'ye koyun. +Adım 2: exp_name2+path2 -> veri kümesini işleyin ve özellik çıkarın. +Adım 3: exp_name1 (önceki deneyiminiz) en son G ve D dosyalarını exp_name2 klasörüne kopyalayın. +Adım 4: "train the model" düğmesine tıklayın ve önceki deneyiminiz model epoğunun başlangıcından itibaren eğitime devam edecektir. \ No newline at end of file diff --git a/docs/training_tips_tr.md b/docs/training_tips_tr.md new file mode 100644 index 0000000..ee41043 --- /dev/null +++ b/docs/training_tips_tr.md @@ -0,0 +1,68 @@ +RVC Eğitimi için Talimatlar ve İpuçları +=========================================== + +Bu TIPS, veri eğitiminin nasıl yapıldığını açıklar. + +# Eğitim Süreci +Eğitim sekmesinde adımları takip ederek açıklayacağım. + +## Adım 1 +Burada deney adını ayarlayın. + +Ayrıca burada modelin pitch'i dikkate alıp almayacağını da belirtebilirsiniz. +Eğer model pitch'i dikkate almazsa, model daha hafif olacak ancak şarkı söyleme için uygun olmayacaktır. + +Her deney için veriler `/logs/deney-adınız/` klasörüne yerleştirilir. + +## Adım 2a +Ses yüklenir ve ön işlem yapılır. + +### Ses yükleme +Ses içeren bir klasörü belirtirseniz, o klasördeki ses dosyaları otomatik olarak okunacaktır. +Örneğin, `C:Kullanıcılar\hoge\sese` gibi bir klasör belirtirseniz, `C:Kullanıcılar\hoge\sese\voice.mp3` yüklenecek, ancak `C:Kullanıcılar\hoge\sese\klasör\voice.mp3` yüklenecektir. + +Ses okumak için dahili olarak ffmpeg kullanıldığından, uzantı ffmpeg tarafından destekleniyorsa otomatik olarak okunacaktır. +ffmpeg ile int16'ya dönüştürüldükten sonra, float32'ye çevrilir ve -1 ile 1 arasında normalize edilir. + +### Gürültü Temizleme +Ses, scipy'nin filtfilt fonksiyonu ile düzeltilir. + +### Ses Ayırma +Önceki işlemlerin ardından giriş sesi, belirli bir süreden (max_sil_kept=5 saniye?) daha uzun süren sessiz bölümleri algılayarak bölünür. Ses sessizlik üzerinde bölündükten sonra, sesi her 4 saniyede bir 0.3 saniyelik bir örtüşme ile bölünür. 4 saniye içinde ayrılan ses için, sesin ses düzeyi normalize edildikten sonra wav dosyasına çevrilir ve `/logs/deney-adınız/0_gt_wavs` klasörüne kaydedilir ve ardından 16k örnekleme hızında `/logs/deney-adınız/1_16k_wavs` klasörüne kaydedilir. + +## Adım 2b +### Pitch (Ton Yüksekliği) Çıkarma +Wav dosyalarından pitch bilgisi çıkarılır. Parselmouth veya pyworld tarafından sağlanan yöntem kullanılarak pitch bilgisi (=f0) çıkarılır ve `/logs/deney-adınız/2a_f0` klasöründe kaydedilir. Daha sonra pitch bilgisi logaritmik olarak 1 ile 255 arasında bir tamsayıya dönüştürülür ve `/logs/deney-adınız/2b-f0nsf` klasöründe kaydedilir. + +### Özelliklerin Çıkartılması +Wav dosyası, HuBERT kullanılarak önceden gömme olarak çıkartılır. `/logs/deney-adınız/1_16k_wavs` klasöründe kaydedilen wav dosyası okunur, 256 boyutlu özelliklere HuBERT kullanılarak dönüştürülür ve `/logs/deney-adınız/3_feature256` klasöründe npy formatında kaydedilir. + +## Adım 3 +Modeli eğitin. +### Yeni Başlayanlar İçin Terimler +Derin öğrenmede, veri kümesi bölmeye ve öğrenmeye azar azar devam eder. Bir model güncellemesinde (adım), batch_size veri alınır ve tahminler ve hata düzeltmeleri yapılır. Bunun bir veri kümesi için bir kez yapılması bir epoch olarak sayılır. + +Bu nedenle, öğrenme süresi adım başına öğrenme süresi x (veri kümesindeki veri sayısı / batch boyutu) x epoch sayısıdır. Genel olarak, batch boyutu ne kadar büyükse, öğrenme daha istikrarlı olur (adım başına öğrenme süresi ÷ batch boyutu) daha küçük olur, ancak daha fazla GPU belleği kullanır. GPU RAM, nvidia-smi komutu ile kontrol edilebilir. Makineye göre mümkün olduğunca batch boyutunu artırarak kısa sürede öğrenme yapılabilir. + +### Önceden Eğitilmiş Modeli Belirtme +RVC, modeli 0'dan değil önceden eğitilmiş ağırlıklardan başlayarak eğitmeye başlar, bu nedenle küçük bir veri kümesiyle eğitilebilir. + +Varsayılan olarak + +- Eğer pitch'i dikkate alıyorsanız, `rvc-konumu/pretrained/f0G40k.pth` ve `rvc-konumu/pretrained/f0D40k.pth` yüklenir. +- Eğer pitch'i dikkate almıyorsanız, `rvc-konumu/pretrained/f0G40k.pth` ve `rvc-konumu/pretrained/f0D40k.pth` yüklenir. + +Eğitim sırasında, model parametreleri `logs/deney-adınız/G_{}.pth` ve `logs/deney-adınız/D_{}.pth` olarak her save_every_epoch için kaydedilir, ancak bu yolu belirterek eğitimi başlatabilirsiniz. Farklı bir deneyde öğrenilen model ağırlıklarından eğitime yeniden başlatabilir veya yeni başlatabilirsiniz. + +### Öğrenme İndeksi +RVC, eğitim sırasında kullanılan HuBERT özellik değerlerini kaydeder ve çıkarım sırasında eğitim sırasında kullanılan özellik değerlerine ben + +zer özellik değerlerini aramak için çıkarım yapar. Bu aramayı yüksek hızda gerçekleştirmek için indeksi önceden öğrenir. +İndeks öğrenimi için, yaklaşık komşuluk arama kütüphanesi faiss kullanılır. `/logs/deney-adınız/3_feature256` klasöründe kaydedilen özellik değerini okuyarak indeks öğrenimi yapılır ve `logs/deney-adınız/add_XXX.index` olarak kaydedilir. + +(20230428 güncelleme sürümünden itibaren, indeks okunur ve kaydetme / belirtme artık gerekli değildir.) + +### Buton açıklamaları +- Modeli Eğit: Adım 2b'yi tamamladıktan sonra, modeli eğitmek için bu düğmeye basın. +- Özellik İndeksini Eğit: Model eğitimini tamamladıktan sonra, indeks öğrenimini yapmak için bu düğmeye basın. +- Tek Tıkla Eğitim: Adım 2b, model eğitimi ve özellik indeksi eğitimi hepsi bir arada. \ No newline at end of file