Web Analytics

ZipVoice

⭐ 748 stars Indonesian by k2-fsa

🌐 Bahasa

ZipVoice⚡

Teks-ke-Ucapan Zero-Shot yang Cepat dan Berkualitas Tinggi dengan Flow Matching

Ikhtisar

ZipVoice adalah serangkaian model TTS zero-shot yang cepat dan berkualitas tinggi berbasis flow matching.

1. Fitur utama

2. Varian model

Nama Model Deskripsi Paper Demo
ZipVoice Model dasar yang mendukung TTS zero-shot pembicara tunggal dalam Bahasa Mandarin dan Inggris.
ZipVoice-Distill Versi distilasi dari ZipVoice, dengan kecepatan yang ditingkatkan dan penurunan performa yang minimal.
ZipVoice-Dialog Model generasi dialog yang dibangun di atas ZipVoice, mampu menghasilkan dialog dua pihak dalam satu kanal.
ZipVoice-Dialog-Stereo Varian stereo dari ZipVoice-Dialog, memungkinkan generasi dialog dua saluran dengan masing-masing pembicara ditempatkan pada saluran yang berbeda.

Berita

2025/07/14: ZipVoice-Dialog dan ZipVoice-Dialog-Stereo, dua model generasi dialog lisan, telah dirilis. arXiv demo page

2025/07/14: Dataset OpenDialog, dataset dialog lisan berdurasi 6.8k-jam, telah dirilis. Unduh di hf, ms. Lihat detailnya di arXiv.

2025/06/16: ZipVoice dan ZipVoice-Distill telah dirilis. arXiv demo page

Instalasi

1. Clone repositori ZipVoice

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

2. (Opsional) Buat lingkungan virtual Python

python3 -m venv zipvoice
source zipvoice/bin/activate

3. Instal paket yang diperlukan

pip install -r requirements.txt

4. Instal k2 untuk pelatihan atau inferensi efisien

k2 diperlukan untuk pelatihan dan dapat mempercepat inferensi. Namun demikian, Anda masih dapat menggunakan mode inferensi ZipVoice tanpa menginstal k2.

Catatan: Pastikan untuk menginstal versi k2 yang sesuai dengan versi PyTorch dan CUDA Anda. Sebagai contoh, jika Anda menggunakan pytorch 2.5.1 dan CUDA 12.1, Anda dapat menginstal k2 sebagai berikut:

pip install k2==1.24.4.dev20250208+cuda12.1.torch2.5.1 -f https://k2-fsa.github.io/k2/cuda.html
Silakan merujuk ke https://k2-fsa.org/get-started/k2/ untuk detailnya. Pengguna di Tiongkok daratan dapat merujuk ke https://k2-fsa.org/zh-CN/get-started/k2/.

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

Penggunaan

1. Pembuatan Ucapan Satu Pembicara

Untuk menghasilkan ucapan satu pembicara dengan model pra-latih ZipVoice atau ZipVoice-Distill kami, gunakan perintah berikut (Model yang diperlukan akan diunduh dari HuggingFace):

#### 1.1 Inferensi satu kalimat

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 Inferensi daftar kalimat

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

2. Generasi Ucapan Dialog

#### 2.1 Perintah Inferensi

Untuk menghasilkan dialog lisan dua pihak dengan model ZipVoice-Dialogue atau ZipVoice-Dialogue-Stereo pra-latih kami, gunakan perintah berikut (Model yang diperlukan akan diunduh dari HuggingFace):

python3 -m zipvoice.bin.infer_zipvoice_dialog \
    --model-name "zipvoice_dialog" \
    --test-list test.tsv \
    --res-dir results
yang masing-masing menghasilkan dialog mono dan stereo.

#### 2.2 Format Input

Setiap baris dari test.tsv menggunakan salah satu format berikut:

(1) Format prompt gabungan di mana audio dan transkripsi dari dua pembicara digabungkan menjadi satu file wav prompt:

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

(2) Format prompt terpisah di mana audio dan transkripsi dari dua pembicara ada di file terpisah:

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

3 Panduan penggunaan yang lebih baik:

#### 3.1 Panjang prompt

Kami merekomendasikan file wav prompt yang pendek (misalnya, kurang dari 3 detik untuk generasi suara satu pembicara, kurang dari 10 detik untuk generasi suara dialog) untuk kecepatan inferensi yang lebih cepat. Prompt yang sangat panjang akan memperlambat inferensi dan menurunkan kualitas suara.

#### 3.2 Optimasi kecepatan

Jika kecepatan inferensi tidak memuaskan, Anda dapat mempercepatnya sebagai berikut:

#### 3.3 Kontrol memori

Teks yang diberikan akan dipotong menjadi beberapa bagian berdasarkan tanda baca (untuk generasi suara satu pembicara) atau simbol pergantian pembicara (untuk generasi suara dialog). Kemudian, teks yang sudah dipotong akan diproses secara batch. Oleh karena itu, model dapat memproses teks sepanjang apapun dengan penggunaan memori yang hampir konstan. Anda dapat mengontrol penggunaan memori dengan mengatur parameter --max-duration.

#### 3.4 Evaluasi "Raw"

Secara default, kami memproses input (prompt wav, transkripsi prompt, dan teks) untuk inferensi yang efisien dan kinerja lebih baik. Jika Anda ingin mengevaluasi performa "raw" model menggunakan input persis seperti yang diberikan (misalnya, untuk mereproduksi hasil di makalah kami), Anda dapat menambahkan --raw-evaluation True.

#### 3.5 Teks pendek

Saat menghasilkan suara untuk teks yang sangat pendek (misalnya, satu atau dua kata), suara yang dihasilkan kadang-kadang dapat melewatkan beberapa pelafalan. Untuk mengatasi masalah ini, Anda dapat menambahkan --speed 0.3 (di mana 0.3 adalah nilai yang dapat diubah) untuk memperpanjang durasi suara yang dihasilkan.

#### 3.6 Koreksi pelafalan karakter polifon Tiongkok yang salah

Kami menggunakan pypinyin untuk mengonversi karakter Tiongkok ke pinyin. Namun, terkadang dapat salah mengucapkan karakter polifonik (多音字).

Untuk memperbaiki pengucapan yang salah secara manual, lampirkan pinyin yang dikoreksi dalam tanda sudut < > dan sertakan tanda nada.

Contoh:

> Catatan: Jika Anda ingin menetapkan beberapa pinyin secara manual, lampirkan setiap pinyin dengan <>, misalnya 这把十公分

#### 3.7 Hapus keheningan panjang dari suara yang dihasilkan

Model secara otomatis akan menentukan posisi dan durasi keheningan pada suara yang dihasilkan. Kadang-kadang terdapat keheningan panjang di tengah suara. Jika Anda tidak menginginkan ini, Anda dapat menambahkan --remove-long-sil untuk menghapus keheningan panjang di tengah suara yang dihasilkan (keheningan pada tepi akan dihapus secara default).

#### 3.8 Pengunduhan model

Jika Anda mengalami masalah saat menghubungkan ke HuggingFace ketika mengunduh model pra-latih, coba ubah endpoint ke situs mirror: export HF_ENDPOINT=https://hf-mirror.com.

Latih Model Anda Sendiri

Lihat direktori egs untuk contoh pelatihan, fine-tuning, dan evaluasi.

Deployment Produksi

NVIDIA Triton GPU Runtime

Untuk deployment siap produksi dengan performa tinggi dan skalabilitas, lihat integrasi Triton Inference Server yang menyediakan engine TensorRT yang telah dioptimalkan, penanganan permintaan secara bersamaan, dan API gRPC/HTTP untuk penggunaan enterprise.

Deployment CPU

Lihat sherpa-onnx untuk solusi deployment C++ pada CPU.

Diskusi & Komunikasi

Anda dapat berdiskusi langsung di Github Issues.

Anda juga dapat memindai kode QR untuk bergabung dengan grup wechat kami atau mengikuti akun resmi wechat kami.

| Grup Wechat | Akun Resmi Wechat | | ------------ | ----------------------- | |wechat |wechat |

Sitasi

@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-12-30 ---