Anda dapat membangun lingkungan dengan Docker atau Conda .
Jika Anda tidak menginstal Docker, silakan ikuti tautan untuk menemukan instruksi instalasi untuk Ubuntu, Mac atau Windows.
Bangun Gambar Docker:
docker build -t emospeech .
Jalankan gambar Docker:
bash run_docker.sh
Jika Anda tidak menginstal Conda, silakan temukan instruksi instalasi untuk OS Anda di sini.
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
Jika Anda memiliki versi CUDA yang berbeda di mesin Anda, Anda dapat menemukan tautan yang berlaku untuk instalasi Pytorch di sini.
Kami menggunakan data 10 penutur bahasa Inggris dari ESD Dataset. Untuk mengunduh semua file .wav , .txt bersama dengan file .TextGrid yang dibuat menggunakan MFA:
bash download_data.sh
Untuk melatih model, kami membutuhkan fitur Durations, Energi, Pitch, dan Egemap yang dihitung sebelumnya. Dari src Directory Run:
python -m src.preprocess.preprocess
Beginilah folder data Anda seharusnya:
.
├── 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 .Pengujian diimplementasikan pada pengujian subset dataset ESD. Untuk mensintesis audio dan menghitung mos saraf (nisqa tts):
config/config.py di bawah Inference .python -m src.scripts.test . Anda dapat menemukan NISQA TTS untuk audio asli, direkonstruksi dan dihasilkan di test.log .
Emospeech dilatih pada urutan fonem. Ponsel yang didukung dapat ditemukan dalam data/preprocessed/phones.json . Repositroy ini dibuat untuk penelitian akademik dan tidak mendukung konversi grafe-ke-fonem otomatis. Namun, jika Anda ingin mensintesis kalimat sewenang -wenang dengan pengkondisian emosi, Anda bisa:
Menghasilkan urutan fonem dari grafem dengan MFA.
1.1 Ikuti Panduan Instalasi
1.2 Unduh Bahasa Inggris Model G2P: mfa model download g2p english_us_arpa
1.3 Hasilkan phoneme.txt dari graphemes.txt: mfa g2p graphemes.txt english_us_arpa phoneme.txt
Jalankan python -m src.scripts.inference , Menentukan Argumen:
| Аrgument | Arti | Nilai yang mungkin | Nilai default |
|---|---|---|---|
-sq | Urutan fonem ke sintesis | Temukan di data/phones.json . | Tidak diatur, argumen yang diperlukan. |
-emo | ID dari emosi suara yang diinginkan | 0: Netral, 1: Angry, 2: Happy, 3: Sad, 4: Kejutan. | 1 |
-sp | ID Voice Speaker | Dari 1 hingga 10, sesuai dengan 0011 ... 0020 dalam notasi ESD asli. | 5 |
-p | Jalur di mana untuk menyimpan audio yang disintesis | Apa pun dengan ekstensi .wav . | generasi_from_phoneme_cesterence.wav |
Misalnya
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"
Jika file hasil tidak disintasi, periksa inference.log untuk ponsel OOV.