โครงการนี้ได้รับแรงบันดาลใจจาก Silero-Api-Server และใช้ XTTSV2
เซิร์ฟเวอร์นี้ถูกสร้างขึ้นสำหรับ sillytaver แต่คุณสามารถใช้ตามความต้องการของคุณ
อย่าลังเลที่จะสร้าง PRS หรือใช้รหัสสำหรับความต้องการของคุณเอง
มีเวอร์ชัน Google Collab ที่คุณสามารถใช้งานได้หากคอมพิวเตอร์ของคุณอ่อนแอ
หากคุณกำลังมองหาตัวเลือกสำหรับ xtts ปกติให้ดูที่นี่ https://github.com/daswer123/xtts-webui
เมื่อเร็ว ๆ นี้ฉันมีเวลาน้อยในการทำโครงการนี้ดังนั้นฉันขอแนะนำให้คุณทำความคุ้นเคยกับโครงการที่คล้ายกัน
คุณสามารถติดตามการเปลี่ยนแปลงทั้งหมดในหน้ารีลีส
การติดตั้งง่าย ๆ :
pip install xtts-api-serverสิ่งนี้จะติดตั้งการพึ่งพาที่จำเป็นทั้งหมดรวมถึง การสนับสนุน CPU รุ่น Pytorch เท่านั้น
ฉันขอแนะนำให้คุณติดตั้ง เวอร์ชัน GPU เพื่อปรับปรุงความเร็วในการประมวลผล (เร็วขึ้นถึง 3 เท่า)
python -m venv venv
venv S cripts a ctivate
pip install xtts-api-server
pip install torch==2.1.1+cu118 torchaudio==2.1.1+cu118 --index-url https://download.pytorch.org/whl/cu118sudo apt install -y python3-dev python3-venv portaudio19-dev
python -m venv venv
source venv b in a ctivate
pip install xtts-api-server
pip install torch==2.1.1+cu118 torchaudio==2.1.1+cu118 --index-url https://download.pytorch.org/whl/cu118 # Clone REPO
git clone https://github.com/daswer123/xtts-api-server
cd xtts-api-server
# Create virtual env
python -m venv venv
venv/scripts/activate or source venv/bin/activate
# Install deps
pip install -r requirements.txt
pip install torch==2.1.1+cu118 torchaudio==2.1.1+cu118 --index-url https://download.pytorch.org/whl/cu118
# Launch server
python -m xtts_api_server
DockerFile มีให้เพื่อสร้างอิมเมจนักเทียบท่าและไฟล์ Docker-compose.yml นั้นมีให้เพื่อเรียกใช้เซิร์ฟเวอร์ด้วย Docker Compose เป็นบริการ
คุณสามารถสร้างภาพด้วยคำสั่งต่อไปนี้:
mkdir xtts-api-server
cd xtts-api-server
docker run -d daswer123/xtts-api-server
หรือ
cd docker
docker compose buildจากนั้นคุณสามารถเรียกใช้เซิร์ฟเวอร์ด้วยคำสั่งต่อไปนี้:
docker compose up # or with -d to run in background python -m xtts_api_server จะทำงานบน IP และพอร์ตเริ่มต้น (localHost: 8020)
ใช้-ธง --deepspeed ลึกความเร็วเพื่อประมวลผลผลลัพธ์ที่รวดเร็ว (การเร่งความเร็ว 2-3x)
usage: xtts_api_server [-h] [-hs HOST] [-p PORT] [-sf SPEAKER_FOLDER] [-o OUTPUT] [-t TUNNEL_URL] [-ms MODEL_SOURCE] [--listen] [--use-cache] [--lowvram] [--deepspeed] [--streaming-mode] [--stream-play-sync]
Run XTTSv2 within a FastAPI application
options:
-h, --help show this help message and exit
-hs HOST, --host HOST
-p PORT, --port PORT
-d DEVICE, --device DEVICE `cpu` or `cuda`, you can specify which video card to use, for example, `cuda:0`
-sf SPEAKER_FOLDER, --speaker-folder The folder where you get the samples for tts
-o OUTPUT, --output Output folder
-mf MODELS_FOLDERS, --model-folder Folder where models for XTTS will be stored, finetuned models should be stored in this folder
-t TUNNEL_URL, --tunnel URL of tunnel used (e.g: ngrok, localtunnel)
-ms MODEL_SOURCE, --model-source ["api","apiManual","local"]
-v MODEL_VERSION, --version You can download the official model or your own model, official version you can find [here](https://huggingface.co/coqui/XTTS-v2/tree/main) the model version name is the same as the branch name [v2.0.2,v2.0.3, main] etc. Or you can load your model, just put model in models folder
--listen Allows the server to be used outside the local computer, similar to -hs 0.0.0.0
--use-cache Enables caching of results, your results will be saved and if there will be a repeated request, you will get a file instead of generation
--lowvram The mode in which the model will be stored in RAM and when the processing will move to VRAM, the difference in speed is small
--deepspeed allows you to speed up processing by several times, automatically downloads the necessary libraries
--streaming-mode Enables streaming mode, currently has certain limitations, as described below.
--streaming-mode-improve Enables streaming mode, includes an improved streaming mode that consumes 2gb more VRAM and uses a better tokenizer and more context.
--stream-play-sync Additional flag for streaming mod that allows you to play all audio one at a time without interruption
คุณสามารถระบุพา ธ ไปยังไฟล์เป็นข้อความจากนั้นจะนับพา ธ และไฟล์จะถูกเปล่งออกมา
คุณสามารถโหลดโมเดลของคุณเองได้สำหรับสิ่งนี้คุณต้องสร้างโฟลเดอร์ในรุ่นและโหลดโมเดลด้วยการกำหนดค่าหมายเหตุในโฟลเดอร์ควรเป็น 3 ไฟล์ config.json vocab.json model.pth
หากคุณต้องการให้โฮสต์ของคุณฟังใช้ -HS 0.0.0.0 หรือใช้ -ฟัง -ฟัง
จำเป็นต้องใช้ธง -T หรือ - -อุโมงค์เพื่อให้เมื่อคุณได้รับลำโพงผ่านคุณจะได้รับลิงก์ที่ถูกต้องเพื่อฟังตัวอย่าง ข้อมูลเพิ่มเติมที่นี่
โมเดลซอร์ซกำหนดรูปแบบที่คุณต้องการใช้ XTTS:
local - โหลดเวอร์ชัน 2.0.2 โดยค่าเริ่มต้น แต่คุณสามารถระบุเวอร์ชันผ่านการตั้งค่าสถานะ -v โมเดลบันทึกลงในโฟลเดอร์รุ่นและใช้ XttsConfig และ inferenceapiManual - โหลดเวอร์ชัน 2.0.2 โดยค่าเริ่มต้น แต่คุณสามารถระบุเวอร์ชันผ่านธง -v โมเดลบันทึกลงในโฟลเดอร์รุ่นและใช้ฟังก์ชัน tts_to_file จาก TTS APIapi - จะโหลดรุ่นล่าสุดของรุ่น ธง -v ไม่ทำงานรุ่น XTTSV2 ทุกรุ่นสามารถพบได้ที่นี่ชื่อรุ่นรุ่นเหมือนกับชื่อสาขา [v2.0.2, v2.0.3, Main] ฯลฯ
ครั้งแรกที่คุณเรียกใช้หรือสร้างคุณอาจต้องยืนยันว่าคุณตกลงที่จะใช้ XTTS
โหมดสตรีมมิ่งช่วยให้คุณได้รับเสียงและเล่นกลับมาเกือบจะในทันที อย่างไรก็ตามมีข้อ จำกัด มากมาย
คุณสามารถดูว่าโหมดนี้ทำงานอย่างไรที่นี่และที่นี่
ตอนนี้เกี่ยวกับข้อ จำกัด
tts_to_file เท่านั้น tts_to_audio และจะส่งคืน 1 วินาทีของความเงียบ คุณสามารถระบุรุ่นของรุ่น XTTS ได้โดยใช้ค่าสถานะ -v
โหมดสตรีมมิ่งที่ได้รับการปรับปรุงเหมาะสำหรับภาษาที่ซับซ้อนเช่นภาษาจีนญี่ปุ่นภาษาฮินดีหรือหากคุณต้องการให้เอ็นจิ้นภาษาคำนึงถึงข้อมูลเพิ่มเติมเมื่อประมวลผลคำพูด
--stream-play-sync -ช่วยให้คุณเล่นข้อความทั้งหมดตามลำดับคิวมีประโยชน์หากคุณใช้แชทเป็นกลุ่ม ใน sillytaver คุณต้องปิดสตรีมมิ่งเพื่อทำงานอย่างถูกต้อง
เอกสาร API สามารถเข้าถึงได้จาก http: // localhost: 8020/เอกสาร
โดยค่าเริ่มต้นโฟลเดอร์ speakers ควรปรากฏในโฟลเดอร์คุณต้องใส่ไฟล์ WAV ด้วยตัวอย่างเสียงคุณยังสามารถสร้างโฟลเดอร์และใส่ตัวอย่างเสียงได้หลายตัวอย่างซึ่งจะให้ผลลัพธ์ที่แม่นยำยิ่งขึ้น
คุณสามารถเปลี่ยนโฟลเดอร์สำหรับลำโพงและโฟลเดอร์สำหรับเอาต์พุตผ่าน API
โพสต์ต่อไปนี้เป็นใบเสนอราคาโดยวัสดุผู้ใช้ 1276 จาก reddit
คำแนะนำบางอย่างเกี่ยวกับการทำตัวอย่างที่ดี
ให้ความยาวประมาณ 7-9 วินาที อีกต่อไปไม่จำเป็นต้องดีกว่า
ตรวจสอบให้แน่ใจว่าเสียงลงตัวอย่างเป็นโมโน, 22050Hz 16 บิต WAV ไฟล์ คุณจะชะลอการประมวลผลโดยมีจำนวนมากและดูเหมือนว่าจะทำให้เกิดผลลัพธ์ที่มีคุณภาพไม่ดีเป็นอย่างอื่น (จากการทดสอบเล็กน้อย) 24000Hz คือคุณภาพที่ส่งออกมาแล้ว!
การใช้ Audacity เวอร์ชันล่าสุดเลือกคลิปและแทร็กของคุณ> Resample เป็น 22050Hz จากนั้นติดตาม> Mix> Stereo to Mono จากนั้นไฟล์> ส่งออกเสียงบันทึกเป็น WAV ของ 22050Hz
หากคุณต้องการทำความสะอาดเสียงให้ทำก่อนที่คุณจะบีบอัดลงไปที่การตั้งค่าข้างต้น (Mono, 22050Hz, 16 บิต)
ตรวจสอบให้แน่ใจว่าคลิปที่คุณใช้ไม่มีเสียงพื้นหลังหรือดนตรีในภาพยนตร์จำนวนมากมีเพลงที่เงียบสงบเมื่อนักแสดงหลายคนกำลังพูดคุยกัน เสียงที่มีคุณภาพไม่ดีจะมีเสียงฟู่ที่ต้องการการล้าง AI จะรับสิ่งนี้แม้ว่าเราจะไม่ทำและในระดับหนึ่งให้ใช้ในเสียงจำลองในระดับหนึ่งดังนั้นเสียงที่สะอาดจึงเป็นกุญแจสำคัญ!
ลองทำให้คลิปของคุณเป็นหนึ่งในคำพูดที่ไหลลื่นเช่นไฟล์ตัวอย่างที่รวมอยู่ ไม่มีการหยุดครั้งใหญ่ช่องว่างหรือเสียงอื่น ๆ โดยเฉพาะอย่างยิ่งคนที่คนที่คุณพยายามคัดลอกจะแสดงช่วงเสียงเล็กน้อย ไฟล์ตัวอย่างอยู่ที่นี่
ตรวจสอบให้แน่ใจว่าคลิปไม่ได้เริ่มต้นหรือจบลงด้วยเสียงลมหายใจ (หายใจเข้า/ออก ฯลฯ )
การใช้คลิปเสียงที่สร้างขึ้น AI อาจแนะนำเสียงที่ไม่พึงประสงค์เนื่องจากมีการคัดลอก/จำลองเสียงแล้ว แต่สิ่งนี้จะต้องมีการทดสอบ