พื้นที่เก็บข้อมูลนี้มีพนักงานสังเคราะห์ข้อความประสาทหลายลำโพงเอสโตเนียซึ่งเป็นผู้ดำเนินการตามคำร้องขอจาก RabbitMQ
โครงการได้รับการพัฒนาโดยกลุ่มวิจัย NLP ที่มหาวิทยาลัยทาร์ตู การสังเคราะห์คำพูดยังสามารถทดสอบได้ในการสาธิตของเรา
ส่วนการเปิดตัวมีไฟล์รุ่นหรือคำแนะนำในการดาวน์โหลด หากการเปิดตัวไม่ได้ระบุข้อมูลโมเดลโมเดลจากรุ่นก่อนหน้าสามารถใช้ได้ เราแนะนำให้ใช้เวอร์ชันล่าสุดที่มีอยู่เสมอเพื่อให้แน่ใจว่าคุณภาพของโมเดลและความเข้ากันได้ของรหัสได้ดีที่สุด
ไฟล์การกำหนดค่าโมเดลที่รวมอยู่ใน config/config.yaml สอดคล้องกับ models/ โครงสร้างไดเรกทอรีต่อไปนี้:
models
├── hifigan
│ ├── ljspeech
│ │ ├── config.json
│ │ └── model.pt
│ ├── vctk
│ │ ├── config.json
│ │ └── model.pt
└── tts
└── multispeaker
├── config.yaml
└── model_weights.hdf5
ผู้ปฏิบัติงาน TTS สามารถปรับใช้ได้โดยใช้ภาพ Docker ที่เผยแพร่ควบคู่ไปกับที่เก็บ แต่ละเวอร์ชันภาพมีความสัมพันธ์กับการเปิดตัวเฉพาะ ไฟล์โมเดลที่ต้องการจะถูกแยกออกจากภาพเพื่อลดขนาดภาพและควรดาวน์โหลดจากส่วนรุ่นและไดเรกทอรีของพวกเขาควรแนบกับระดับเสียง /app/models
การกำหนดค่าการบันทึกถูกโหลดจาก /app/config/logging.prod.ini และการกำหนดค่าบริการจากไฟล์ /app/config/config.yaml การกำหนดค่าที่รวมอยู่จะแสดงความคิดเห็นเพื่อแสดงให้เห็นว่าสามารถเพิ่มการกำหนดค่าโมเดลใหม่ได้อย่างไร
ควรกำหนดค่าตัวแปรสภาพแวดล้อมต่อไปนี้เมื่อเรียกใช้คอนเทนเนอร์:
MQ_USERNAME - ชื่อผู้ใช้ RabbitMQMQ_PASSWORD - รหัสผ่านผู้ใช้ RabbitMQMQ_HOST - โฮสต์ RabbitMQMQ_PORT (ไม่บังคับ) - พอร์ต RabbitMQ ( 5672 โดยค่าเริ่มต้น)MQ_EXCHANGE (ไม่บังคับ)-ชื่อแลกเปลี่ยน RabbitMQ ( text-to-speech โดยค่าเริ่มต้น)MQ_HEARTBEAT (ไม่บังคับ) - ช่วงการเต้นของหัวใจ ( 60 วินาทีโดยค่าเริ่มต้น)MQ_CONNECTION_NAME (ไม่บังคับ) - ชื่อการเชื่อมต่อที่เป็นมิตร ( TTS worker โดยค่าเริ่มต้น)MKL_NUM_THREADS (ไม่บังคับ) - จำนวนเธรดที่ใช้สำหรับการขนานระหว่าง intra -op โดย pytorch (ใช้สำหรับโมเดล Vocoder) 16 โดยค่าเริ่มต้น หากตั้งค่าเป็นค่าว่างจะเริ่มต้นเป็นจำนวนแกน CPU ซึ่งอาจทำให้เกิดค่าใช้จ่ายในการคำนวณเมื่อปรับใช้กับโหนดที่ใหญ่กว่า อีกวิธีหนึ่งคือธง docker run --cpuset-cpus สามารถใช้ในการควบคุมสิ่งนี้ได้ สำหรับรายละเอียดเพิ่มเติมโปรดดูส่วนข้อกำหนดด้านประสิทธิภาพและฮาร์ดแวร์ด้านล่าง โดยค่าเริ่มต้นจุดเข้าคอนเทนเนอร์เป็น main.py โดยไม่มีอาร์กิวเมนต์เพิ่มเติม แต่ควรกำหนดอาร์กิวเมนต์ด้วยตัวเลือก COMMAND ธงที่ต้องการเท่านั้นคือ --model-name ที่จะเลือกรุ่นที่โหลดโดยคนงาน รายการธงที่รองรับทั้งหมดสามารถมองเห็นได้โดยใช้ python main.py -h :
usage: main.py [-h] [--model-config MODEL_CONFIG] [--model-name MODEL_NAME] [--log-config LOG_CONFIG]
A text-to-speech worker that processes incoming TTS requests via RabbitMQ.
optional arguments:
-h, --help show this help message and exit
--model-config MODEL_CONFIG
The model config YAML file to load.
--model-name MODEL_NAME
The model to load. Refers to the model name in the config file.
--log-config LOG_CONFIG
Path to log config file.
การตั้งค่าสามารถทดสอบได้ด้วยการกำหนดค่าตัวอย่าง docker-compose.yml ต่อไปนี้:
version : ' 3 '
services :
rabbitmq :
image : ' rabbitmq '
environment :
- RABBITMQ_DEFAULT_USER=${RABBITMQ_USER}
- RABBITMQ_DEFAULT_PASS=${RABBITMQ_PASS}
tts_api :
image : ghcr.io/tartunlp/text-to-speech-api:latest
environment :
- MQ_HOST=rabbitmq
- MQ_PORT=5672
- MQ_USERNAME=${RABBITMQ_USER}
- MQ_PASSWORD=${RABBITMQ_PASS}
ports :
- ' 8000:8000 '
depends_on :
- rabbitmq
tts_worker :
image : ghcr.io/tartunlp/text-to-speech-worker:latest
environment :
- MQ_HOST=rabbitmq
- MQ_PORT=5672
- MQ_USERNAME=${RABBITMQ_USER}
- MQ_PASSWORD=${RABBITMQ_PASS}
command : [ "--model-name", "multispeaker" ]
volumes :
- ./models:/app/models
depends_on :
- rabbitmqขั้นตอนต่อไปนี้ได้รับการทดสอบใน Ubuntu และเป็นทั้ง CPU และ GPU ที่เข้ากันได้ (จำเป็นต้องใช้ CUDA)
โคลนที่เก็บนี้ด้วย submodules
ติดตั้งข้อกำหนดเบื้องต้น:
GNU Compiler Collection ( sudo apt install build-essential )
สำหรับการติดตั้ง CPU เราขอแนะนำให้ใช้ไฟล์ requirements.txt ที่รวมอยู่ในสภาพแวดล้อมที่สะอาด (ทดสอบด้วย Python 3.9)
pip install -r requirements.txt
สำหรับการติดตั้ง GPU ให้ใช้ไฟล์ environment.yml แทน
ตรวจสอบให้แน่ใจว่าคุณมีข้อกำหนดเบื้องต้นต่อไปนี้:
จากนั้นสร้างและเปิดใช้งานสภาพแวดล้อม conda ด้วยการพึ่งพาทั้งหมด:
conda env create -f environment.yml -n tts
conda activate tts
ดาวน์โหลดโมเดลจากส่วนเผยแพร่และสถานที่ภายใน models/ ไดเรกทอรี
ตรวจสอบไฟล์การกำหนดค่าและเปลี่ยนค่าเริ่มต้นใด ๆ ตามต้องการ ตรวจสอบให้แน่ใจว่าพารามิเตอร์ model_path ใน config/config.yaml ชี้ไปที่รุ่นที่คุณเพิ่งดาวน์โหลด
ระบุพารามิเตอร์การเชื่อมต่อ RABBITMQ ที่มีตัวแปรสภาพแวดล้อมหรือในไฟล์ config/.env ดังแสดงใน config/sample.env
รันคนงานกับที่ MODEL_NAME ตรงกับชื่อรุ่นในไฟล์กำหนดค่าของคุณ:
python main.py --model-name $MODEL_NAME [--log-config config/logging.ini --config config/config.yaml]