يمكنك بناء بيئة مع Docker أو Conda .
إذا لم يكن لديك تثبيت Docker ، فيرجى اتباع الروابط للعثور على تعليمات التثبيت لـ Ubuntu أو Mac أو Windows.
بناء صورة Docker:
docker build -t emospeech .
تشغيل صورة Docker:
bash run_docker.sh
إذا لم يكن لديك Conda مثبتة ، فيرجى العثور على تعليمات التثبيت لنظام التشغيل الخاص بك هنا.
conda create -n etts python=3.10
conda activate etts
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu117
pip install -r requirements.txt
إذا كان لديك إصدار مختلف من CUDA على جهازك ، فيمكنك العثور على رابط قابل للتطبيق لتثبيت Pytorch هنا.
استخدمنا بيانات 10 مكبرات صوت باللغة الإنجليزية من مجموعة بيانات ESD. لتنزيل جميع ملفات .wav ، .txt جنبًا إلى جنب مع ملفات .TextGrid التي تم إنشاؤها باستخدام MFA:
bash download_data.sh
لتدريب نموذج ، نحتاج إلى فترات محسوبة ، وميزات الطاقة ، والملعب ، و egemap. من دليل دليل src :
python -m src.preprocess.preprocess
هذه هي الطريقة التي يجب أن يبدو بها مجلد البيانات الخاص بك:
.
├── data
│ ├── ssw_esd
│ ├── test_ids.txt
│ ├── val_ids.txt
└── └── preprocessed
├── duration
├── egemap
├── energy
├── mel
├── phones.json
├── pitch
├── stats.json
├── test.txt
├── train.txt
├── trimmed_wav
└── val.txt
config/config.py .python -m src.scripts.train .يتم تنفيذ الاختبار على مجموعة فرعية اختبار مجموعة بيانات ESD. لتوليف الصوت وحساب MOS العصبي (NISQA TTS):
config/config.py ضمن قسم Inference .python -m src.scripts.test . يمكنك العثور على NISQA TTS لصوت أصلي ، أعيد بناؤه وإنشاء في test.log .
يتم تدريب Emospeech على تسلسل phoneme. يمكن العثور على الهواتف المدعومة في data/preprocessed/phones.json . يتم إنشاء هذا REPOSTROY للبحث الأكاديمي ولا يدعم تحويل GRAPHEME إلى PHONEME التلقائي. ومع ذلك ، إذا كنت ترغب في تجميع جملة تعسفية مع تكييف العاطفة ، فيمكنك:
توليد تسلسل صوتي من الرسوم البيانية مع MFA.
1.1 اتبع دليل التثبيت
1.2 تنزيل English G2P Model: mfa model download g2p english_us_arpa
1.3 إنشاء phoneme.txt من graphemes.txt: mfa g2p graphemes.txt english_us_arpa phoneme.txt
Run python -m src.scripts.inference ، تحديد الوسائط:
| аrgument | معنى | القيم الممكنة | القيمة الافتراضية |
|---|---|---|---|
-sq | تسلسل صوتي لتوليف | البحث في data/phones.json . | لا تعيين ، حجة مطلوبة. |
-emo | معرف العاطفة الصوتية المطلوبة | 0: محايد ، 1: غاضب ، 2: سعيد ، 3: حزين ، 4: مفاجأة. | 1 |
-sp | معرف صوت المتحدث | من 1 إلى 10 ، تتوافق مع 0011 ... 0020 في تدوين ESD الأصلي. | 5 |
-p | المسار حيث لحفظ الصوت المركب | أي مع .wav تمديد. | generation_from_phoneme_sequence.wav |
على سبيل المثال
python -m src.scripts.inference --sq "S P IY2 K ER1 F AY1 V T AO1 K IH0 NG W IH0 TH AE1 NG G R IY0 IH0 M OW0 SH AH0 N"
إذا لم يتم توليف ملف النتيجة ، تحقق من inference.log للهواتف OOV.