เครื่องมือโคลนเสียง
1. เอกสารการโคลนเสียง TTS
คำอธิบาย
สคริปต์นี้ดำเนินการสังเคราะห์ข้อความเป็นคำพูดโดยใช้ไลบรารี TTS (text-to-speech) ที่มีสองรุ่นที่แตกต่างกัน: XTTS v2.0.2 และ Tortoise สคริปต์ยังมีฟังก์ชั่นยูทิลิตี้สำหรับการแปลงไฟล์ MP3 เป็นไฟล์ WAV ที่แบ่งเป็นส่วน
ข้อกำหนดเบื้องต้น
ก่อนเรียกใช้สคริปต์ตรวจสอบให้แน่ใจว่ามีการติดตั้งไลบรารี TTS โดยใช้คำสั่งต่อไปนี้:
pip install TTS==0.22.0 transformers==4.37.2 torch torchaudio soundfile librosa
การประหารชีวิต
python tortoise_TTS_local_best.py
งาน
XTTS v2.0.2 การสังเคราะห์:
- ใช้รุ่น XTTS v2.0.2 จากไลบรารี Coqui TTS
- ทำการสังเคราะห์ข้อความเป็นคำพูดด้วยข้อความอินพุตที่ระบุ
- บันทึกเสียงสังเคราะห์ไปยังไฟล์ WAV ทั้งที่มีและไม่มีประโยคแยก
mp3 เป็น WAV Conversion
- แปลงไฟล์ MP3 ที่ป้อนเข้าเป็นไฟล์ WAV แบบแบ่งส่วนโดยไม่ต้องใช้ไลบรารี PYDUB
- แบ่งส่วนเสียงเป็นช่วงเวลา 10 วินาทีและบันทึกไว้เป็นไฟล์ WAV แต่ละไฟล์ (จำเป็นสำหรับเต่า)
คำอธิบายการสังเคราะห์แบบจำลองเต่า:
- ใช้โมเดลเต่าจากห้องสมุด Coqui TTS สำหรับการสังเคราะห์คุณภาพสูง
- โหลดโมเดลเต่าที่ผ่านการฝึกอบรมมาก่อนและสังเคราะห์คำพูดตามข้อความอินพุต
- บันทึกเสียงสังเคราะห์เป็นไฟล์ WAV
ข้อมูลเพิ่มเติม
แนะนำให้ใช้ XTTS v2.0.2 สำหรับความเร็วและคุณภาพที่สมเหตุสมผล เต่าให้คุณภาพที่ดีที่สุด แต่มีเวลาอนุมานนานขึ้น
หมายเหตุ
- ตรวจสอบให้แน่ใจว่ามีการติดตั้งการพึ่งพาและเส้นทางไฟล์จะถูกปรับตาม
- URL ในความคิดเห็นให้ข้อมูลเพิ่มเติมเกี่ยวกับโมเดลและการกำหนดค่า
- อย่าลังเลที่จะปรับเปลี่ยนสคริปต์ตามข้อกำหนดเฉพาะและตรวจสอบให้แน่ใจว่ามีการปรับเปลี่ยนที่จำเป็นสำหรับเส้นทางไฟล์และการพึ่งพาสำหรับการดำเนินการที่ประสบความสำเร็จ
2. เอกสารวิเคราะห์แบบจำลอง TTS
คำอธิบาย
สคริปต์นี้วิเคราะห์โมเดล Text-to-Speech (TTS) ที่มีอยู่ในไลบรารี TTS โดยเฉพาะการมุ่งเน้นไปที่การสนับสนุนภาษาและความสามารถของคำแนะนำ มันจัดหมวดหมู่โมเดลตาม:
- หลายภาษากับภาษาอังกฤษเท่านั้น : โมเดลรองรับหลายภาษาหรือภาษาอังกฤษเท่านั้น
- custom vs. jocoder ภาษาอังกฤษเริ่มต้น : ไม่ว่าโมเดลจะมีนักร้องภาษาอังกฤษแบบกำหนดเองที่อนุญาตให้ใช้การโคลนด้วยเสียงหรือนักร้องเริ่มต้นที่ไม่ได้
สคริปต์ยังติดตามจำนวนโมเดลที่มีข้อผิดพลาดและรายการที่ถูกละเว้นเนื่องจากเหตุผลเฉพาะ (เช่นโมเดลที่ก่อให้เกิดข้อผิดพลาดที่รู้จัก)
การแบ่งรหัส
ข้อกำหนดเบื้องต้น
ก่อนเรียกใช้สคริปต์ตรวจสอบให้แน่ใจว่ามีการติดตั้งไลบรารี TTS โดยใช้คำสั่งต่อไปนี้:
การประหารชีวิต
python TTS_download_and_test_all_models.py
เอาท์พุท
สคริปต์สร้างข้อมูลเกี่ยวกับโมเดลหลายภาษาที่มีนักร้องภาษาอังกฤษรุ่นภาษาอังกฤษที่มีนักร้องที่กำหนดเองโมเดลหลายภาษาที่มีนักร้องภาษาอังกฤษเริ่มต้นและโมเดลภาษาอังกฤษที่มีคำแนะนำภาษาอังกฤษเริ่มต้น นอกจากนี้ยังระบุโมเดลที่สนับสนุนภาษาที่ไม่ใช่ภาษาอังกฤษโมเดลที่มีข้อผิดพลาดและโมเดลที่ควรเพิกเฉย
คำอธิบายสคริปต์
สคริปต์ดำเนินการต่อไปนี้:
นำเข้าไลบรารีที่จำเป็น (TTS, เวลา, ระบบปฏิบัติการ)
ตั้งค่าตัวจับเวลาเพื่อวัดเวลาดำเนินการสคริปต์
กำหนดข้อความตัวอย่างสำหรับการสังเคราะห์เสียงพูด
เริ่มต้นเคาน์เตอร์และรายการสำหรับหมวดหมู่รุ่นต่างๆ
วนซ้ำผ่านรุ่น TTS ที่มีอยู่ทั้งหมด
ดาวน์โหลดและโหลดแต่ละรุ่นเพื่อดำเนินการงานข้อความเป็นคำพูดที่แตกต่างกันจัดหมวดหมู่ตามประเภทการสนับสนุนภาษาและประเภท Vocoder
พิมพ์ผลลัพธ์รวมถึงการนับและชื่อของโมเดลในแต่ละหมวดหมู่พร้อมกับข้อผิดพลาดใด ๆ ที่พบในระหว่างกระบวนการ
แสดงจำนวนโมเดลทั้งหมดที่ตรวจสอบและเวลาดำเนินการสคริปต์
ทำการตรวจสอบการยืนยันเพื่อให้แน่ใจว่าการนับรุ่นที่ถูกต้อง
แสดงตัวอย่างของการใช้ TTS สำหรับข้อความเป็นคำพูดด้วยโมเดลหลายลำโพงและหลายภาษา
หมายเหตุ
บางรุ่นอาจถูกละเว้นเนื่องจากข้อผิดพลาดหรือเหตุผลอื่น ๆ (ระบุไว้ในรหัส) สคริปต์ยังมีตัวอย่างสำหรับข้อความภาษากรีกเป็นคำพูดใน colab โดยใช้โมเดลเฉพาะ
ข้อมูลเพิ่มเติม
- TTS Library: https://github.com/mozilla/tts
- เอกสาร TTS: https://tts.readthedocs.io/
อย่าลังเลที่จะปรับเปลี่ยนสคริปต์ตามความจำเป็นสำหรับกรณีการใช้งานเฉพาะของคุณหรือรวมเข้ากับโครงการของคุณสำหรับการวิเคราะห์โมเดล TTS
3. เสียงโคลนโดยใช้ที่เก็บเต่าอย่างเป็นทางการ
ภาพรวม
สคริปต์นี้แสดงให้เห็นถึงการใช้งานของ Tortoise TTS (text-to-speech) ระบบเพื่อสร้างคำพูดจากข้อความอินพุต สคริปต์ใช้ไลบรารี Tortoise TTS และให้คำแนะนำสำหรับการติดตั้ง คำพูดที่สร้างขึ้นจะถูกบันทึกเป็นไฟล์ WAV
การติดตั้ง
git clone https://github.com/neonbjb/tortoise-tts.git
cd tortoise-tts
pip install -r requirements.txt
pip install librosa einops rotary_embedding_torch omegaconf pydub inflect
python setup.py install
การใช้งาน
- แทนที่เส้นทางในตัวแปรเสียงด้วยตัวอย่างเสียงของลำโพงที่ต้องการ
- เลือกแก้ไขตัวแปรข้อความเพื่อระบุข้อความอินพุตที่ต้องการ
- เรียกใช้สคริปต์ด้วย
python tortoise_API.py เพื่อดำเนินการ Tortoise TTS และบันทึกคำพูดที่สร้างขึ้นเป็นไฟล์ WAV
งาน descritpion
นำเข้าห้องสมุดที่จำเป็น:
- นำเข้าห้องสมุดที่ต้องการ ได้แก่ Torchaudio, tortoise.api, Tortoise.utils และ OS
เริ่มต้นเต่า TTS:
- เริ่มต้น Tortoise TTS โดยใช้ Tortoise.api.TextTospeech
- เป็นทางเลือกเปิดใช้งาน DeepSpeed เพื่อประสิทธิภาพที่เร็วขึ้น (แสดงความคิดเห็นเนื่องจากอาจช้าลงในทางปฏิบัติ)
ระบุข้อความอินพุต:
- ตั้งค่าข้อความอินพุตที่จะแปลงเป็นคำพูด
เลือกที่ตั้งไว้ล่วงหน้าและเสียง:
- เลือกโหมดที่ตั้งไว้ล่วงหน้าสำหรับการกำหนดคุณภาพของเอาต์พุต ("Ultra_fast", "Fast", "Standard" หรือ "High_quality")
- เลือกเสียงที่เฉพาะเจาะจงโดยการให้เส้นทางไปยังตัวอย่างเสียงของผู้พูด
โหลดคลิปอ้างอิง:
- โหลดคลิปเสียงอ้างอิงจากเส้นทางเสียงที่เลือก
ดำเนินการ TTS ด้วย Tortoise:
- ใช้ Tortoise TT เพื่อสร้างคำพูดจากข้อความอินพุต
- บันทึกคำพูดที่สร้างขึ้นในรูปแบบ WAV
ข้อมูลเพิ่มเติม
- การดาวน์โหลดสคริปต์ที่ต้องการโมเดลที่ต้องการจาก Hugging Face (HF) Model Hub
- ปรับพารามิเตอร์เช่นที่ตั้งไว้ล่วงหน้าและเสียงตามการตั้งค่าของคุณ
- เสียงที่สร้างขึ้นจะถูกบันทึกเป็น 'generated_hq_faceswap.wav' ในไดเรกทอรีที่ระบุ
4. การแปลง Opus to MP3 (สำหรับการโคลนนิ่งจากการบันทึก WhatsApp)
ภาพรวม
สคริปต์นี้อำนวยความสะดวกในการแปลงไฟล์เสียงเปิดเป็นรูปแบบ mp3 มันมีฟังก์ชั่นในการอ่านไฟล์โอเพ่นแปลงเป็น MP3 และรวมไฟล์ MP3 หลายไฟล์ไว้ในไฟล์เดียว สคริปต์ให้ความยืดหยุ่นโดยอนุญาตให้ผู้ใช้ระบุโฟลเดอร์อินพุตและเอาต์พุต
พารามิเตอร์
opus_folder: เส้นทางไปยังโฟลเดอร์ที่มีไฟล์โอเพ่น
mp3_output_folder: PATH เพื่อบันทึกไฟล์ MP3 แต่ละไฟล์
combined_output_folder: เส้นทางที่จะบันทึกไฟล์ MP3 รวมกัน
สคริปต์สร้างโฟลเดอร์เอาท์พุทหากไม่มีอยู่
ข้อกำหนดเบื้องต้น
งาน
- อ่านไฟล์ Opus:
- อ่านไฟล์โอเพ่นโดยใช้ไลบรารี SoundFile
- ส่งคืนอาร์เรย์ numpy และอัตราตัวอย่าง
- แปลงโอเพ่นเป็น mp3
- ใช้ฟังก์ชั่น read_opus เพื่ออ่านไฟล์ opus
- แปลงโอเพ่นเป็น MP3 โดยใช้อัตราตัวอย่างเดียวกัน
- บันทึกไฟล์ MP3 ไปยังโฟลเดอร์เอาต์พุตที่ระบุ
- แปลงไฟล์โอเพ่น
- วนซ้ำผ่านไฟล์โอเพ่นในโฟลเดอร์และแปลงแต่ละรายการเป็น mp3
- ส่งคืนรายการชื่อไฟล์ MP3 ที่บันทึกไว้
- รวมไฟล์ mp3
- รวมไฟล์ MP3 แต่ละไฟล์เป็นหนึ่งเดียว
- บันทึกไฟล์ MP3 รวมไปยังโฟลเดอร์เอาต์พุตที่ระบุ
5. BARK Google COLAB (ไม่ดีมาก)
ภาพรวม
สมุดบันทึก Jupyter นี้แสดงให้เห็นถึงกระบวนการโคลนนิ่งเสียงโดยใช้ระบบ Bark Voice Clone มันเกี่ยวข้องกับการติดตั้ง Google Drive เพื่อเข้าถึงตัวอย่างเสียงสำหรับการโคลนนิ่งการติดตั้งไลบรารีที่จำเป็นรุ่นโหลดสร้างโทเค็นความหมายและในที่สุดก็ใช้โทเค็นเหล่านี้สำหรับการโคลนเสียง
งาน
ติดตั้ง Google Drive:
- ติดตั้ง Google Drive เพื่อเข้าถึงโฟลเดอร์ที่มีตัวอย่างเสียงเพื่อโคลน
ตั้งค่าพารามิเตอร์:
- กำหนดพารามิเตอร์เช่นพา ธ ไปยังไฟล์เสียงชื่อของเสียงและเส้นทางเอาท์พุทสำหรับการบันทึกเสียงที่โคลน
ติดตั้งและนำเข้าไลบรารี:
- ติดตั้งและนำเข้าไลบรารีที่จำเป็น Pytorch, Numpy และอื่น ๆ
ติดตั้งเปลือกไม้ด้วยเสียงโคลน:
- ติดตั้งเปลือกไม้ด้วยห้องสมุดเสียงโคลนจากที่เก็บ GitHub ที่ให้ไว้
โหลดโมเดลและเริ่มต้น Hubert:
- โหลดโมเดลที่จำเป็นและเริ่มต้นผู้จัดการ Hubert สำหรับการสกัดโทเค็นความหมาย
โหลดและประมวลผลเสียง:
- โหลดไฟล์เสียงและแปลงสำหรับการประมวลผลเพิ่มเติม
- สารสกัดเวกเตอร์ความหมายและโทเค็นโดยใช้โมเดลฮิวเบิร์ต
เข้ารหัสและบันทึกพรอมต์:
- เข้ารหัสเฟรมเสียงโดยใช้ encodec
- บันทึกการปรับค่าใช้จ่ายที่ดีหยาบและความหมายเป็นอาร์เรย์ numpy
สร้างเสียงโดยใช้เปลือก:
- Preloads BARK MODELS สำหรับข้อความหยาบการสร้างและ CODEC
- สร้างเสียงโดยใช้ข้อความแจ้งข้อความความหมายและการแจ้งเตือนประวัติ
เล่นและบันทึกเสียงที่สร้างขึ้น:
- เล่นเสียงที่สร้างขึ้นโดยใช้เสียงของ Ipython
- เป็นทางเลือกบันทึกเสียงที่สร้างขึ้นเป็นไฟล์ WAV
รันไทม์ทั้งหมด:
- แสดงเวลาทั้งหมดที่ใช้ในการเรียกใช้สคริปต์
การใช้สคริปต์
- ตรวจสอบให้แน่ใจว่า Google ไดรฟ์ติดตั้งด้วยการเข้าถึงโฟลเดอร์ตัวอย่างเสียงที่ต้องการ
- แก้ไขพารามิเตอร์เช่น
audio_filepath , voice_name และ output_path ตามการตั้งค่าของคุณ - เรียกใช้สคริปต์เพื่อโคลนเสียงสร้างเสียงและเลือกบันทึกเอาต์พุต
ข้อมูลเพิ่มเติม
- สคริปต์ติดตั้งและใช้เปลือกไม้กับไลบรารีเสียงโคลนจากที่เก็บ GitHub ที่ให้ไว้
- ปรับเส้นทางพารามิเตอร์และแจ้งให้ทราบตามต้องการสำหรับโครงการโคลนเสียงของคุณ
- เสียงที่สร้างขึ้นสามารถเล่นได้โดยตรงหรือบันทึกเป็นไฟล์ WAV
- ตรวจสอบให้แน่ใจว่ามีการติดตั้งการพึ่งพาที่จำเป็นและกำหนดค่าอย่างเหมาะสม
6. Coqui TTS Calling API (ไม่มีอยู่อีกต่อไป - ไม่สามารถใช้งานได้)
ภาพรวม
สคริปต์นี้แสดงกระบวนการโคลนเสียงโดยใช้ Coqui TTS API มันเกี่ยวข้องกับการนำเข้าไลบรารีที่จำเป็นทำให้การโทร API เพื่อโคลนเสียงจากไฟล์เสียงและสร้างข้อความเป็นคำพูดโดยใช้เสียงที่โคลน
งาน
นำเข้าไลบรารี:
- นำเข้าไลบรารีที่ต้องการรวมถึง
requests โทร API
ตั้งค่าพารามิเตอร์:
- ตั้งค่าพารามิเตอร์เช่นพา ธ ไปยังไฟล์เสียงอินพุตพา ธ เพื่อบันทึกไฟล์เสียงใหม่และข้อความที่จะอ่าน
เรียก coqui tts api สำหรับการโคลนเสียง:
- เรียก Coqui TTS API เพื่อโคลนเสียงจากไฟล์เสียงที่ให้ไว้
- แยก ID เสียงของเสียงโคลนสำหรับข้อความต่อคำพูดที่ตามมา
โทร COQUI TTS API สำหรับข้อความเป็นคำพูด:
- เรียก Coqui TTS API เพื่อแปลงข้อความที่ระบุเป็นคำพูดโดยใช้เสียงโคลน
- ดึง URL เสียงของคำพูดที่สร้างขึ้น
ดาวน์โหลดและบันทึกเสียง:
- ดาวน์โหลดไฟล์เสียงที่สร้างขึ้นจาก URL ที่ให้ไว้
- บันทึกไฟล์เสียงไปยังเส้นทางที่ระบุ
การใช้สคริปต์
- ระบุพา ธ ไปยังไฟล์เสียงอินพุต (
path_audio ) พา ธ เพื่อบันทึกไฟล์เสียงใหม่ ( save_path ) และข้อความที่จะอ่าน ( text_to_read ) - รับคีย์ API ที่จำเป็นจากเว็บไซต์ Coqui TTS และแทนที่ตัวยึดตำแหน่งใน
headers ด้วยคีย์จริง - เรียกใช้สคริปต์เพื่อโคลนเสียงและสร้างข้อความเป็นคำพูด
ข้อมูลเพิ่มเติม
- สคริปต์ใช้ COQUI TTS API สำหรับการโคลนเสียงและข้อความเป็นคำพูด
- ปรับพารามิเตอร์และแทนที่คีย์ API เพื่อให้เหมาะกับกรณีการใช้งานเฉพาะของคุณ
- ตรวจสอบให้แน่ใจว่าคุณปฏิบัติตามนโยบายการใช้งาน Coqui TTS API
- ไฟล์เสียงที่ดาวน์โหลดจะถูกบันทึกไว้ในเครื่องตามที่ระบุไว้ใน
save_path