Web Analytics

ZipVoice

⭐ 661 stars Thai by k2-fsa

🌐 ภาษา

ZipVoice⚡

ระบบแปลงข้อความเป็นเสียงคุณภาพสูงและรวดเร็วแบบ Zero-Shot ด้วย Flow Matching

ภาพรวม

ZipVoice เป็นชุดโมเดล TTS แบบ zero-shot ที่รวดเร็วและคุณภาพสูงโดยใช้ flow matching

1. คุณสมบัติเด่น

2. รุ่นของโมเดล

ชื่อโมเดล คำอธิบาย เอกสารวิจัย เดโม
ZipVoice โมเดลพื้นฐานที่รองรับ TTS zero-shot สำหรับผู้พูดเดี่ยวในภาษาจีนและอังกฤษ
ZipVoice-Distill เวอร์ชันกลั่นของ ZipVoice ที่เพิ่มความเร็วโดยลดความเสื่อมของประสิทธิภาพให้น้อยที่สุด
ZipVoice-Dialog โมเดลสร้างบทสนทนาที่พัฒนาบน ZipVoice สามารถสร้างบทสนทนาแบบสองฝ่ายในช่องเสียงเดียว
ZipVoice-Dialog-Stereo รูปแบบสเตอริโอของ ZipVoice-Dialog ที่รองรับการสร้างบทสนทนาแบบสองช่อง โดยแต่ละผู้พูดจะอยู่ในช่องเสียงที่แตกต่างกัน

ข่าวสาร

2025/07/14: ZipVoice-Dialog และ ZipVoice-Dialog-Stereo สองโมเดลสร้างบทสนทนาแบบเสียง ได้เปิดตัวแล้ว arXiv demo page

2025/07/14: ชุดข้อมูล OpenDialog ชุดข้อมูลบทสนทนาเสียงขนาด 6.8k ชั่วโมง ได้เปิดให้ดาวน์โหลดแล้วที่ hf, ms ดูรายละเอียดได้ที่ arXiv

2025/06/16: ZipVoice และ ZipVoice-Distill เปิดตัวแล้ว arXiv demo page

การติดตั้ง

1. โคลนคลังข้อมูล ZipVoice

git clone https://github.com/k2-fsa/ZipVoice.git

2. (ไม่บังคับ) สร้างสภาพแวดล้อมเสมือนของ Python

python3 -m venv zipvoice
source zipvoice/bin/activate

3. ติดตั้งแพ็กเกจที่จำเป็น

pip install -r requirements.txt

4. ติดตั้ง k2 สำหรับการฝึกหรือการอนุมานที่มีประสิทธิภาพ

k2 จำเป็นสำหรับการฝึก และสามารถเพิ่มความเร็วในการอนุมานได้ อย่างไรก็ตาม คุณยังสามารถใช้โหมดอนุมานของ ZipVoice ได้โดยไม่ต้องติดตั้ง k2

หมายเหตุ: โปรดตรวจสอบให้แน่ใจว่าคุณติดตั้ง k2 เวอร์ชันที่ตรงกับเวอร์ชันของ PyTorch และ CUDA ของคุณ ตัวอย่างเช่น หากคุณใช้ pytorch 2.5.1 และ CUDA 12.1 คุณสามารถติดตั้ง k2 ได้ดังนี้:

pip install k2==1.24.4.dev20250208+cuda12.1.torch2.5.1 -f https://k2-fsa.github.io/k2/cuda.html
โปรดดูรายละเอียดได้ที่ https://k2-fsa.org/get-started/k2/ ผู้ใช้ในจีนแผ่นดินใหญ่สามารถดูได้ที่ https://k2-fsa.org/zh-CN/get-started/k2/

python3 -c "import k2; print(k2.__file__)"

วิธีการใช้งาน

1. การสร้างเสียงพูดจากผู้พูดเดียว

เพื่อสร้างเสียงพูดจากผู้พูดเดียวด้วยโมเดล ZipVoice หรือ ZipVoice-Distill ที่ผ่านการฝึกมาแล้ว กรุณาใช้คำสั่งต่อไปนี้ (โมเดลที่จำเป็นจะถูกดาวน์โหลดจาก HuggingFace):

#### 1.1 การทำนายผลของประโยคเดียว

python3 -m zipvoice.bin.infer_zipvoice \
    --model-name zipvoice \
    --prompt-wav prompt.wav \
    --prompt-text "I am the transcription of the prompt wav." \
    --text "I am the text to be synthesized." \
    --res-wav-path result.wav
#### 1.2 การอนุมานรายการประโยค

python3 -m zipvoice.bin.infer_zipvoice \
    --model-name zipvoice \
    --test-list test.tsv \
    --res-dir results

2. การสร้างเสียงสนทนา

#### 2.1 คำสั่งสำหรับการอนุมาน

เพื่อสร้างเสียงสนทนาแบบสองฝ่ายด้วยโมเดล ZipVoice-Dialogue หรือ ZipVoice-Dialogue-Stereo ที่ฝึกมาแล้วของเรา ให้ใช้คำสั่งดังต่อไปนี้ (โมเดลที่จำเป็นจะถูกดาวน์โหลดจาก HuggingFace):

python3 -m zipvoice.bin.infer_zipvoice_dialog \
    --model-name "zipvoice_dialog" \
    --test-list test.tsv \
    --res-dir results
#### 2.2 รูปแบบอินพุต

แต่ละบรรทัดของ test.tsv จะอยู่ในหนึ่งในรูปแบบต่อไปนี้:

(1) รูปแบบพรอมต์รวม ซึ่งไฟล์เสียงและข้อความถอดเสียงของผู้พูดสองคนจะถูกรวมเป็นไฟล์พรอมต์ wav เดียว:

{wav_name}\t{prompt_transcription}\t{prompt_wav}\t{text}

(2) รูปแบบแยกไฟล์บทสนทนา ที่ไฟล์เสียงและข้อความถอดเสียงของผู้พูดสองคนอยู่ในไฟล์แยกกัน:

{wav_name}\t{spk1_prompt_transcription}\t{spk2_prompt_transcription}\t{spk1_prompt_wav}\t{spk2_prompt_wav}\t{text}

3 แนวทางการใช้งานที่ดียิ่งขึ้น:

#### 3.1 ความยาวของตัวอย่างเสียง

เราแนะนำให้ใช้ไฟล์ wav ตัวอย่างที่สั้น (เช่น น้อยกว่า 3 วินาทีสำหรับการสร้างเสียงผู้พูดเดียว น้อยกว่า 10 วินาทีสำหรับการสร้างเสียงสนทนา) เพื่อความเร็วในการประมวลผลที่ดีกว่า ไฟล์ตัวอย่างที่ยาวมากจะทำให้การประมวลผลช้าลงและคุณภาพเสียงลดลง

#### 3.2 การปรับแต่งความเร็ว

หากความเร็วในการประมวลผลไม่เป็นที่น่าพอใจ คุณสามารถเพิ่มความเร็วได้ดังนี้:

#### 3.3 การควบคุมหน่วยความจำ

ข้อความที่ให้มาจะถูกแบ่งเป็นส่วนๆ ตามเครื่องหมายวรรคตอน (สำหรับสร้างเสียงผู้พูดเดียว) หรือสัญลักษณ์เปลี่ยนผู้พูด (สำหรับสร้างเสียงสนทนา) จากนั้นข้อความที่แบ่งส่วนจะถูกประมวลผลแบบแบทช์ ดังนั้นโมเดลสามารถประมวลผลข้อความที่ยาวมากได้โดยใช้หน่วยความจำเกือบคงที่ สามารถควบคุมการใช้หน่วยความจำได้โดยปรับพารามิเตอร์ --max-duration

#### 3.4 การประเมิน "Raw"

โดยค่าเริ่มต้น เราจะประมวลผลอินพุต (ไฟล์ตัวอย่าง, การถอดเสียงตัวอย่าง, และข้อความ) เพื่อการประมวลผลที่มีประสิทธิภาพและผลลัพธ์ที่ดีกว่า หากต้องการประเมินประสิทธิภาพ "raw" ของโมเดลโดยใช้อินพุตตามที่ให้มา (เช่น เพื่อจำลองผลการทดลองในเอกสารของเรา) สามารถใช้ --raw-evaluation True

#### 3.5 ข้อความสั้น

เมื่อสร้างเสียงสำหรับข้อความที่สั้นมาก (เช่น หนึ่งหรือสองคำ) เสียงที่สร้างขึ้นอาจละบางเสียงบางส่วน เพื่อแก้ไขปัญหานี้ สามารถใช้ --speed 0.3 (โดยที่ 0.3 เป็นค่าที่ปรับได้) เพื่อยืดระยะเวลาของเสียงที่สร้างขึ้น

#### 3.6 การแก้ไขการออกเสียงผิดของอักขระจีนที่ออกเสียงได้หลายแบบ

เราใช้ pypinyin เพื่อแปลงอักขระจีนเป็น pinyin อย่างไรก็ตาม อาจเกิดการออกเสียงผิดสำหรับ อักขระหลายเสียง (多音字) ได้เป็นครั้งคราว

ในการแก้ไขการออกเสียงผิดด้วยตนเอง ให้วงเล็บ พินอินที่ถูกต้อง ไว้ในเครื่องหมายมุม < > และใส่ เครื่องหมายวรรณยุกต์ ด้วย

ตัวอย่าง:

> หมายเหตุ: หากต้องการกำหนดหลายพินอินด้วยตนเอง ให้วงเล็บแต่ละพินอินด้วย <> เช่น 这把十公分

#### 3.7 การลบช่วงเงียบที่ยาวจากเสียงที่สร้างขึ้น

โมเดลจะกำหนดตำแหน่งและระยะเวลาของช่วงเงียบในเสียงที่สร้างขึ้นโดยอัตโนมัติ บางครั้งจะมีช่วงเงียบที่ยาวในกลางเสียง หากไม่ต้องการ สามารถใช้ --remove-long-sil เพื่อลบช่วงเงียบที่ยาวในกลางเสียงที่สร้างขึ้น (ช่วงเงียบที่ขอบจะถูกลบโดยค่าเริ่มต้น)

#### 3.8 การดาวน์โหลดโมเดล

หากคุณมีปัญหาในการเชื่อมต่อกับ HuggingFace ขณะดาวน์โหลดโมเดลที่ผ่านการฝึกมาแล้ว ลองเปลี่ยน endpoint ไปยังเว็บไซต์มิเรอร์: export HF_ENDPOINT=https://hf-mirror.com

ฝึกโมเดลของคุณเอง

ดูไดเรกทอรี egs สำหรับตัวอย่างการฝึก การปรับแต่ง และการประเมินผล

การใช้งาน C++

ตรวจสอบ sherpa-onnx สำหรับโซลูชันการใช้งาน C++ บน CPU

การพูดคุยและสื่อสาร

คุณสามารถพูดคุยโดยตรงผ่าน Github Issues

คุณยังสามารถสแกน QR code เพื่อเข้าร่วมกลุ่ม wechat ของเรา หรือกดติดตามบัญชีทางการ wechat ของเรา

| กลุ่ม Wechat | บัญชีทางการ Wechat | | ------------ | ----------------------- | |wechat |wechat |

การอ้างอิง

@article{zhu2025zipvoice,
      title={ZipVoice: Fast and High-Quality Zero-Shot Text-to-Speech with Flow Matching},
      author={Zhu, Han and Kang, Wei and Yao, Zengwei and Guo, Liyong and Kuang, Fangjun and Li, Zhaoqing and Zhuang, Weiji and Lin, Long and Povey, Daniel},
      journal={arXiv preprint arXiv:2506.13053},
      year={2025}
}

@article{zhu2025zipvoicedialog, title={ZipVoice-Dialog: Non-Autoregressive Spoken Dialogue Generation with Flow Matching}, author={Zhu, Han and Kang, Wei and Guo, Liyong and Yao, Zengwei and Kuang, Fangjun and Zhuang, Weiji and Li, Zhaoqing and Han, Zhifeng and Zhang, Dong and Zhang, Xin and Song, Xingchen and Lin, Long and Povey, Daniel}, journal={arXiv preprint arXiv:2507.09318}, year={2025} }

--- Tranlated By Open Ai Tx | Last indexed: 2025-10-06 ---