Black technology based on the three giants of artificial intelligence:
OpenAI's whisper, 680,000 hours in multiple languages
Nvidia's bigvgan, anti-aliasing for speech generation
Microsoft's adapter, high-efficiency for fine-tuning
لم يتم تنفيذ Lora بالكامل في هذا المشروع ، ولكن يمكن العثور عليه هنا: Lora TTS & Paper
استخدم نموذج ما قبل الأمل
المعالجة المسبقة اللازمة:
ثم ضع مجموعة البيانات في دليل Data_raw وفقًا لهيكل الملف التالي
data_raw
├───speaker0
│ ├───000001.wav
│ ├───...
│ └───000xxx.wav
└───speaker1
├───000001.wav
├───...
└───000xxx.wav1 تبعية البرنامج
PIP تثبيت -r متطلبات. txt
2 قم بتنزيل Timbre Encoder: مكبر صوت من قِبل @mueller91 ، وضع best_model.pth.tar في speaker_pretrain/
3 قم whisper_pretrain/ طراز Whisper Model Model Language Model medium.pt تأكد
نصيحة: Whisper مدمج ، ولا تقم بتثبيته بالإضافة إلى ذلك ، وسوف يتعارض ويبلغ عن خطأ
4 قم بتنزيل نموذج presrain maxgan_pretrain_32k.pth ، وقم بالاختبار
Python SVC_INFERENCE.PY -CONFIG configs/maxgan.yaml -model maxgan_pretrain_32k.pth -spk ./configs/singers/singer0001.npy -wave test.wav.wav
استخدم هذا الأمر إذا كنت تريد أتمتة هذا:
Python3 إعداد/easyprocess.py
أو خطوة بخطوة ، على النحو التالي:
1 , إعادة أخذ العينات
توليد الصوت بمعدل أخذ العينات 16000 هرتز
Python إعداد/preprocess_a.py -w.
قم بتوليد الصوت بمعدل أخذ عينات من 32000 هرتز
Python إعداد/preprocess_a.py -w ./data_raw -o ./data_svc/waves-32k -s 32000
2 , استخدم الصوت 16K لاستخراج الملعب
Python إعداد/preprocess_f0.py -w data_svc/waves -16k/-p data_svc/pitch
3 , استخدم الصوت 16K لاستخراج PPG
Python إعداد/preprocess_ppg.py -w data_svc/waves -16k/-p data_svc/whisper
4 , استخدم الصوت 16K لاستخراج رمز timbre
Python إعداد/preprocess_speaker.py data_svc/waves-16k/data_svc/speaker
5 , استخراج رمز المغني للاستدلال
Python إعداد/preprocess_speaker_ave.py data_svc/speaker/data_svc/singer
6 , استخدم 32 كيلو صوت لإنشاء فهرس التدريب
Python إعداد/preprocess_train.py
7 , ملف تصحيح تصحيح ملف التدريب
Python إعداد/preprocess_zzz.py -c configs/maxgan.yaml
data_svc/
└── waves-16k
│ └── speaker0
│ │ ├── 000001.wav
│ │ └── 000xxx.wav
│ └── speaker1
│ ├── 000001.wav
│ └── 000xxx.wav
└── waves-32k
│ └── speaker0
│ │ ├── 000001.wav
│ │ └── 000xxx.wav
│ └── speaker1
│ ├── 000001.wav
│ └── 000xxx.wav
└── pitch
│ └── speaker0
│ │ ├── 000001.pit.npy
│ │ └── 000xxx.pit.npy
│ └── speaker1
│ ├── 000001.pit.npy
│ └── 000xxx.pit.npy
└── whisper
│ └── speaker0
│ │ ├── 000001.ppg.npy
│ │ └── 000xxx.ppg.npy
│ └── speaker1
│ ├── 000001.ppg.npy
│ └── 000xxx.ppg.npy
└── speaker
│ └── speaker0
│ │ ├── 000001.spk.npy
│ │ └── 000xxx.spk.npy
│ └── speaker1
│ ├── 000001.spk.npy
│ └── 000xxx.spk.npy
└── singer
├── speaker0.spk.npy
└── speaker1.spk.npy0 , إذا كان صقلًا استنادًا إلى النموذج الذي تم تدريبه مسبقًا ، فأنت بحاجة إلى تنزيل النموذج الذي تم تدريبه مسبقًا: maxgan_pretrain_32k.pth
تعيين presrain: ".
1 , ابدأ التدريب
Python svc_trainer.py -c configs/maxgan.yaml -n svc
2 , استئناف التدريب
Python svc_trainer.py -c configs/maxgan.yaml -n svc -p chkpt/svc/***. pth
3 , عرض السجل
Tensorboard -سجلات Logdir/

استخدم هذا الأمر إذا كنت تريد واجهة المستخدم الرسومية يقوم بجميع الأوامر أدناه:
Python3 svc_gui.py
أو خطوة بخطوة ، على النحو التالي:
1 , نموذج استنتاج التصدير
Python svc_export.py -Config configs/maxgan.yaml -checkpoint_path chkpt/svc/***. pt
2 , استخدم Whisper لاستخراج ترميز المحتوى ، دون استخدام منطق واحد ، من أجل تقليل استخدام ذاكرة GPU
Python Whisper/Interference.py -w test.wav -p test.ppg.npy
3 , استخراج المعلمة F0 إلى تنسيق نص CSV
Python Pitch/Interference.py -w test.wav -p test.csv
4 , حدد المعلمات واستنتج
Python svc_inference.py -config configs/maxgan.yaml -model maxgan_g.pth -spk.
عندما يتم تحديد PPG ، عندما يتم تعليم الصوت نفسه عدة مرات ، يمكنه تجنب الاستخراج المتكرر لرموز محتوى الصوت ؛ إذا لم يتم تحديده ، فسيتم استخلاصه تلقائيًا ؛
عندما يتم تحديد -PIT ، يمكن تحميل المعلمة F0 التي تم ضبطها يدويًا ؛ إذا لم يتم تحديده ، فسيتم استخلاصه تلقائيًا ؛
إنشاء ملفات في الدليل الحالي: svc_out.wav
| args | --Config | --نموذج | -بوة | --موجة | -PPG | --حفرة | --يحول |
|---|---|---|---|---|---|---|---|
| اسم | مسار التكوين | مسار النموذج | المتحدث | مدخلات الموجة | موجة PPG | موجة الملعب | تحول الملعب |
5 ، بعد Vad
Python svc_inference_post.py -ref test.wav -svc svc_out.wav -out svc_post.wav
امتداد قائم على المحول لنموذج النص إلى الكلام متعدد النطاقات للسماعات الجديدة
Adaspeech: نص تكيفي إلى الكلام للحصول على صوت مخصص
https://github.com/nii-yamagishilab/project-nn-pytorch-scripts/tree/master/project/01-nsf
https://github.com/mindslab-ai/univnet [ورقة]
https://github.com/openai/whisper/ [paper]
https://github.com/nvidia/bigvgan [ورقة]