Web Analytics

ZipVoice

⭐ 748 stars Turkish by k2-fsa

🌐 Dil

ZipVoice⚡

Flow Matching ile Hızlı ve Yüksek Kaliteli Sıfırdan Metinden Sese Dönüşüm

Genel Bakış

ZipVoice, flow matching tabanlı hızlı ve yüksek kaliteli sıfır atışlı TTS modellerinden oluşan bir seridir.

1. Temel Özellikler

2. Model varyantları

Model Adı Açıklama Makale Demo
ZipVoice Çince ve İngilizce'de sıfır atışlı tek konuşmacılı TTS'yi destekleyen temel model.
ZipVoice-Distill ZipVoice’un damıtılmış sürümü; minimum performans kaybıyla geliştirilmiş hız sunar.
ZipVoice-Dialog ZipVoice üzerine kurulu, tek kanallı iki taraflı konuşma diyalogları üretebilen bir diyalog üretim modeli.
ZipVoice-Dialog-Stereo ZipVoice-Dialog'ın stereo varyantı, her konuşmacının ayrı bir kanala atanmasıyla iki kanallı diyalog üretimini sağlar.

Haberler

2025/07/14: ZipVoice-Dialog ve ZipVoice-Dialog-Stereo, iki konuşma diyalogu üretim modeli yayınlandı. arXiv demo page

2025/07/14: OpenDialog veri seti, 6.8k saatlik konuşma diyalogu veri seti yayınlandı. İndir: hf, ms. Detaylara bakınız: arXiv.

2025/06/16: ZipVoice ve ZipVoice-Distill yayınlandı. arXiv demo page

Kurulum

1. ZipVoice deposunu klonlayın

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

2. (İsteğe bağlı) Bir Python sanal ortamı oluşturun

python3 -m venv zipvoice
source zipvoice/bin/activate

3. Gerekli paketleri yükleyin

pip install -r requirements.txt

4. Eğitim veya verimli çıkarım için k2'yi kurun

k2 eğitim için gereklidir ve çıkarımı hızlandırabilir. Yine de, k2 yüklemeden ZipVoice'ın çıkarım modunu kullanabilirsiniz.

Not: Kullandığınız PyTorch ve CUDA sürümüne uygun k2 sürümünü kurduğunuzdan emin olun. Örneğin, eğer pytorch 2.5.1 ve CUDA 12.1 kullanıyorsanız, k2'yi şu şekilde kurabilirsiniz:

pip install k2==1.24.4.dev20250208+cuda12.1.torch2.5.1 -f https://k2-fsa.github.io/k2/cuda.html
Lütfen ayrıntılar için https://k2-fsa.org/get-started/k2/ adresine bakınız. Çin anakarasındaki kullanıcılar https://k2-fsa.org/zh-CN/get-started/k2/ adresine başvurabilirler.

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

Kullanım

1. Tek konuşmacılı konuşma üretimi

Önceden eğitilmiş ZipVoice veya ZipVoice-Distill modellerimizle tek konuşmacılı konuşma üretmek için aşağıdaki komutları kullanın (Gerekli modeller HuggingFace üzerinden indirilecektir):

#### 1.1 Tek bir cümlenin çıkarımı

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 Bir cümle listesinin çıkarımı

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

2. Diyalog konuşma üretimi

#### 2.1 Çıkarım komutu

Önceden eğitilmiş ZipVoice-Dialogue veya ZipVoice-Dialogue-Stereo modellerimizle iki taraflı konuşmalı diyaloglar üretmek için aşağıdaki komutları kullanın (Gerekli modeller HuggingFace üzerinden indirilecektir):

python3 -m zipvoice.bin.infer_zipvoice_dialog \
    --model-name "zipvoice_dialog" \
    --test-list test.tsv \
    --res-dir results
sırasıyla mono ve stereo diyaloglar üretir.

#### 2.2 Girdi formatları

test.tsv dosyasındaki her satır aşağıdaki formatlardan birindedir:

(1) Birleştirilmiş istem formatı: İki konuşmacının sesleri ve transkriptleri tek bir istem wav dosyasında birleştirilir:

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

(2) Bölünmüş istem formatı: iki konuşmacının sesleri ve transkripsiyonları ayrı dosyalarda bulunur:

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

3 Daha iyi kullanım için rehberlik:

#### 3.1 İstem uzunluğu

Daha hızlı çıkarım hızı için kısa bir istem wav dosyası öneriyoruz (örn., tek konuşmacılı konuşma üretimi için 3 saniyeden az, diyalog konuşma üretimi için 10 saniyeden az). Çok uzun bir istem, çıkarımı yavaşlatır ve konuşma kalitesini düşürür.

#### 3.2 Hız optimizasyonu

Çıkarım hızı tatmin edici değilse, aşağıdaki şekilde hızlandırabilirsiniz:

#### 3.3 Bellek kontrolü

Verilen metin, noktalama işaretlerine (tek konuşmacılı konuşma üretimi için) veya konuşmacı değişim sembolüne (diyalog konuşma üretimi için) göre parçalara ayrılacaktır. Sonra, parçalara ayrılan metinler toplu halde işlenecektir. Bu nedenle, model neredeyse sabit bellek kullanımıyla rastgele uzunluktaki metni işleyebilir. Bellek kullanımını --max-duration parametresiyle ayarlayabilirsiniz.

#### 3.4 "Ham" değerlendirme

Varsayılan olarak, verimli çıkarım ve daha iyi performans için girdileri (istem wav, istem transkripsiyonu ve metin) ön işleme tabi tutuyoruz. Modelin tam olarak verilen girdilerle ("ham" performansını) değerlendirmek isterseniz (örn., makalemizdeki sonuçları çoğaltmak için), --raw-evaluation True parametresini geçebilirsiniz.

#### 3.5 Kısa metin

Çok kısa metinler için konuşma üretirken (örn., bir ya da iki kelime), üretilen konuşma bazen bazı telaffuzları atlayabilir. Bu sorunu çözmek için, --speed 0.3 (0.3 ayarlanabilir bir değerdir) parametresiyle üretilen konuşmanın süresini uzatabilirsiniz.

#### 3.6 Yanlış telaffuz edilen Çince polifon karakterlerin düzeltilmesi

Çince karakterleri pinyin’e dönüştürmek için pypinyin kullanıyoruz. Ancak bazen çok sesli karakterleri (多音字) yanlış telaffuz edebilir.

Bu yanlış telaffuzları elle düzeltmek için, düzeltilmiş pinyin’i köşeli parantezler < > içine alın ve ton işaretini ekleyin.

Örnek:

> Not: Birden fazla pinyin’i elle atamak isterseniz, her pinyin’i <> ile çevreleyin, örn: 这把十公分

#### 3.7 Oluşturulan konuşmadan uzun sessizlikleri kaldırma

Model, oluşturulan konuşmadaki sessizliklerin yerini ve uzunluğunu otomatik olarak belirler. Bazen konuşmanın ortasında uzun bir sessizlik olabilir. Bunu istemiyorsanız, oluşturulan konuşmanın ortasındaki uzun sessizlikleri kaldırmak için --remove-long-sil komutunu kullanabilirsiniz (kenar sessizlikleri varsayılan olarak kaldırılır).

#### 3.8 Model indirme

Önceden eğitilmiş modelleri indirirken HuggingFace’e bağlanmada sorun yaşarsanız, uç noktayı yansı (mirror) siteye geçirmeyi deneyin: export HF_ENDPOINT=https://hf-mirror.com.

Kendi Modelinizi Eğitin

Eğitim, ince ayar ve değerlendirme örnekleri için egs dizinine bakın.

Üretim Ortamında Kullanım

NVIDIA Triton GPU Çalışma Zamanı

Yüksek performans ve ölçeklenebilir üretim dağıtımı için, optimize edilmiş TensorRT motorları, eşzamanlı istek işleme ve kurumsal kullanım için gRPC/HTTP API’leri sağlayan Triton Inference Server entegrasyonuna göz atın.

CPU Dağıtımı

CPU üzerinde C++ ile dağıtım çözümü için sherpa-onnx inceleyin.

Tartışma ve İletişim

Doğrudan Github Issues üzerinden tartışabilirsiniz.

Ayrıca QR kodunu tarayarak WeChat grubumuza katılabilir veya WeChat resmi hesabımızı takip edebilirsiniz.

| Wechat Grubu | Wechat Resmi Hesabı | | ------------ | ----------------------- | |wechat |wechat |

Atıf

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