Web Analytics

ZipVoice

⭐ 661 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 Prompt uzunluğu

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

#### 3.2 Hız optimizasyonu

Eğer çıkarım hızı yeterli 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ı dönüşü sembolüne (diyalog konuşma üretimi için) göre parçalara ayrılır. Sonra, parçalanmış metinler toplu olarak işlenir. Bu nedenle, model neredeyse sabit bellek kullanımıyla sınırsız uzunlukta metni işleyebilir. Bellek kullanımını --max-duration parametresini ayarlayarak kontrol edebilirsiniz.

#### 3.4 "Ham" değerlendirme

Varsayılan olarak, girdileri (prompt wav, prompt transkripsiyonu ve metin) verimli çıkarım ve daha iyi performans için ön işliyoruz. Modelin "ham" performansını tam olarak sağlanan girdilerle değerlendirmek isterseniz (örneğin, makalemizdeki sonuçları yeniden üretmek için), --raw-evaluation True parametresini geçebilirsiniz.

#### 3.5 Kısa metin

Çok kısa metinler için konuşma üretirken (örneğin, bir veya iki kelime), üretilen konuşma bazen bazı telaffuzları atlayabilir. Bu sorunu çözmek için, üretilen konuşmanın süresini uzatmak için --speed 0.3 (burada 0.3 ayarlanabilir bir değerdir) parametresini kullanabilirsiniz.

#### 3.6 Yanlış telaffuz edilen Çince çok sesli karakterleri düzeltme

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

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

Örnek:

> Not: Birden fazla pinyin manuel olarak atamak isterseniz, her pinyini <> ile ayırın, örn. 这把十公分

#### 3.7 Oluşturulan sesten uzun sessizlikleri kaldırma

Model, oluşturulan seste sessizliklerin konumunu ve süresini otomatik olarak belirleyecektir. Bazen konuşmanın ortasında uzun bir sessizlik olur. Bunu istemiyorsanız, oluşturulan sesin ortasındaki uzun sessizlikleri kaldırmak için --remove-long-sil parametresini kullanabilirsiniz (kenar sessizlikler varsayılan olarak kaldırılır).

#### 3.8 Model indirme

Önceden eğitilmiş modelleri indirirken HuggingFace ile bağlantı kurmakta sorun yaşarsanız, uç noktayı aynalı siteye değiştirmeyi 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.

C++ Dağıtımı

CPU üzerinde C++ dağıtım çözümü için sherpa-onnx adresine göz atın.

Tartışma & İletişim

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

Ayrıca QR kodu tarayarak wechat grubumuza katılabilir veya resmi wechat 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-10-06 ---