งานก่อนหน้านี้พบว่าการสร้างรูปคลื่นเสียงดิบที่สอดคล้องกันกับ Gans นั้นเป็นสิ่งที่ท้าทาย ในบทความนี้เราแสดงให้เห็นว่าเป็นไปได้ที่จะฝึกฝน Gans อย่างน่าเชื่อถือเพื่อสร้างรูปคลื่นที่สอดคล้องกันคุณภาพสูงโดยการแนะนำชุดของการเปลี่ยนแปลงทางสถาปัตยกรรมและเทคนิคการฝึกอบรมที่เรียบง่าย ตัวชี้วัดการประเมินอัตนัย (คะแนนความคิดเห็นเฉลี่ยหรือ MOS) แสดงประสิทธิภาพของวิธีการที่เสนอสำหรับการผกผันของ mel-spectrogram ที่มีคุณภาพสูง เพื่อสร้างความรู้ทั่วไปของเทคนิคที่เสนอเราแสดงผลลัพธ์เชิงคุณภาพของแบบจำลองของเราในการสังเคราะห์คำพูดการแปลโดเมนเพลงและการสังเคราะห์ดนตรีที่ไม่มีเงื่อนไข เราประเมินองค์ประกอบต่าง ๆ ของแบบจำลองผ่านการศึกษาการระเหยและแนะนำชุดของแนวทางในการออกแบบการเลือกปฏิบัติวัตถุประสงค์ทั่วไปและเครื่องกำเนิดไฟฟ้าสำหรับงานการสังเคราะห์ลำดับตามเงื่อนไข โมเดลของเรานั้นไม่ได้เป็นแบบอัตโนมัติและมีพารามิเตอร์น้อยกว่าแบบจำลองการแข่งขันและพูดคุยกับลำโพงที่มองไม่เห็นอย่างมีนัยสำคัญ การใช้งาน Pytorch ของเราทำงานได้เร็วกว่าจริงกว่า 100 เท่าบน GTX 1080TI GPU และเร็วกว่า 2 เท่าเร็วกว่าเรียลไทม์บน CPU โดยไม่ต้องใช้เทคนิคการเพิ่มประสิทธิภาพเฉพาะฮาร์ดแวร์ บล็อกโพสต์พร้อมตัวอย่างและรหัสประกอบเร็ว ๆ นี้
เยี่ยมชมเว็บไซต์ของเราสำหรับตัวอย่าง คุณสามารถลองใช้แอปพลิเคชั่นการแก้ไขคำพูดที่สร้างขึ้นที่นี่ตามท่อสังเคราะห์คำพูดแบบ end-to-end โดยใช้ Melgan
ตรวจสอบสไลด์หากคุณไม่ได้เข้าร่วมการประชุม Neurips 2019 เพื่อตรวจสอบโปสเตอร์ของเรา
├── README.md <- Top-level README.
├── set_env.sh <- Set PYTHONPATH and CUDA_VISIBLE_DEVICES.
│
├── mel2wav
│ ├── dataset.py <- data loader scripts
│ ├── modules.py <- Model, layers and losses
│ ├── utils.py <- Utilities to monitor, save, log, schedule etc.
│
├── scripts
│ ├── train.py <- training / validation / etc scripts
│ ├── generate_from_folder.py
สร้างโฟลเดอร์ดิบพร้อมตัวอย่างทั้งหมดที่เก็บไว้ใน wavs/ Subfolder เรียกใช้คำสั่งเหล่านี้:
ls wavs/ * .wav | tail -n+10 > train_files.txt
ls wavs/ * .wav | head -n10 > test_files.txt . source set_env.sh 0
# Set PYTHONPATH and use first GPU
python scripts/train.py --save_path logs/baseline --path <root_data_folder>
import torch
vocoder = torch.hub.load('descriptinc/melgan-neurips', 'load_melgan')
vocoder.inverse(audio) # audio (torch.tensor) -> (batch_size, 80, timesteps)