คุณสามารถสร้างสภาพแวดล้อมด้วย Docker หรือ Conda
หากคุณไม่ได้ติดตั้ง Docker โปรดไปที่ลิงก์เพื่อค้นหาคำแนะนำการติดตั้งสำหรับ Ubuntu, Mac หรือ Windows
สร้างภาพนักเทียบท่า:
docker build -t emospeech .
เรียกใช้ภาพนักเทียบท่า:
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 Directory Run:
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.pypython -m src.scripts.trainการทดสอบถูกนำไปใช้กับชุดย่อยการทดสอบของชุดข้อมูล ESD เพื่อสังเคราะห์เสียงและคำนวณ MOS (NISQA TTS):
config/config.py ภายใต้ Inferencepython -m src.scripts.test คุณสามารถค้นหา Nisqa TTS สำหรับเสียงดั้งเดิมที่สร้างขึ้นใหม่และสร้างขึ้นใน test.log
Emospeech ได้รับการฝึกฝนเกี่ยวกับลำดับเสียง โทรศัพท์ที่รองรับสามารถพบได้ใน data/preprocessed/phones.json repositroy นี้ถูกสร้างขึ้นสำหรับการวิจัยเชิงวิชาการและไม่สนับสนุนการแปลงกราฟเป็นแบบอัตโนมัติเป็น phoneme อย่างไรก็ตามหากคุณต้องการสังเคราะห์ประโยคโดยพลการด้วยการปรับสภาพอารมณ์คุณสามารถ:
สร้างลำดับฟอนิมจาก Graphemes ด้วย MFA
1.1 ทำตามคู่มือการติดตั้ง
1.2 ดาวน์โหลดภาษาอังกฤษ G2P รุ่น: mfa model download g2p english_us_arpa
1.3 สร้าง phoneme.txt จาก graphemes.txt: mfa g2p graphemes.txt english_us_arpa phoneme.txt
เรียกใช้ python -m src.scripts.inference , ระบุอาร์กิวเมนต์:
| อเนกประสงค์ | ความหมาย | ค่าที่เป็นไปได้ | ค่าเริ่มต้น |
|---|---|---|---|
-sq | ลำดับฟอนิมเพื่อสังเคราะห์ | ค้นหาใน data/phones.json | ไม่ได้ตั้งค่าอาร์กิวเมนต์ที่จำเป็น |
-emo | id ของอารมณ์เสียงที่ต้องการ | 0: เป็นกลาง, 1: โกรธ, 2: มีความสุข, 3: เศร้า, 4: เซอร์ไพรส์ | 1 |
-sp | id of Speaker Voice | จาก 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 .logสำหรับโทรศัพท์ OOV