Web Analytics

ZipVoice

⭐ 748 stars Persian by k2-fsa

🌐 زبان

ZipVoice⚡

تبدیل متن به گفتار سریع و باکیفیت بدون نمونه‌گیری با تطبیق جریان

مرور کلی

ZipVoice مجموعه‌ای از مدل‌های TTS سریع و با کیفیت بالا به صورت zero-shot است که بر پایه flow matching توسعه یافته‌اند.

۱. ویژگی‌های کلیدی

۲. انواع مدل

نام مدل توضیحات مقاله دمو
ZipVoice مدل پایه که از TTS zero-shot تک‌گوینده به زبان‌های چینی و انگلیسی پشتیبانی می‌کند.
ZipVoice-Distill نسخه تقطیر شده ZipVoice که سرعت بهبود یافته با افت حداقلی عملکرد را ارائه می‌دهد.
ZipVoice-Dialog مدل تولید دیالوگ مبتنی بر ZipVoice که قادر به تولید دیالوگ‌های گفتاری دوطرفه در یک کانال است.
ZipVoice-Dialog-Stereo نوع استریوی ZipVoice-Dialog که امکان تولید گفتگوی دو کاناله را فراهم می‌کند، به طوری که هر سخنگو در یک کانال مجزا قرار می‌گیرد.

اخبار

۱۴۰۴/۰۴/۲۳: ZipVoice-Dialog و ZipVoice-Dialog-Stereo، دو مدل تولید گفتگوی گفتاری منتشر شدند. arXiv demo page

۱۴۰۴/۰۴/۲۳: مجموعه داده OpenDialog، یک مجموعه داده گفتگوی گفتاری با مدت زمان ۶.۸ هزار ساعت منتشر شد. دانلود از hf، ms. جزئیات در arXiv.

۱۴۰۴/۰۳/۲۶: ZipVoice و ZipVoice-Distill منتشر شدند. arXiv demo page

نصب

۱. مخزن ZipVoice را کلون کنید

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

۲. (اختیاری) ایجاد یک محیط مجازی پایتون

python3 -m venv zipvoice
source zipvoice/bin/activate

۳. بسته‌های مورد نیاز را نصب کنید

pip install -r requirements.txt

۴. نصب 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__)"

نحوه استفاده

۱. تولید گفتار تک‌گوینده

برای تولید گفتار تک‌گوینده با مدل‌های ZipVoice یا ZipVoice-Distill آموزش‌دیده ما، از دستورات زیر استفاده کنید (مدل‌های مورد نیاز از HuggingFace دانلود خواهند شد):

#### ۱.۱ استنتاج یک جمله منفرد

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_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.2 بهینه‌سازی سرعت

اگر سرعت استنتاج مطلوب نیست، می‌توانید با روش‌های زیر آن را افزایش دهید:

#### 3.3 کنترل حافظه

متن داده شده بر اساس علائم نگارشی (برای تولید گفتار تک‌گوینده) یا نماد تغییر گوینده (برای تولید گفتار محاوره‌ای) به بخش‌هایی تقسیم می‌شود. سپس، متن‌های بخش‌بندی شده به صورت دسته‌ای پردازش می‌شوند. بنابراین، مدل می‌تواند متن‌های بسیار طولانی را با تقریباً حافظه ثابت پردازش کند. شما می‌توانید با تنظیم پارامتر --max-duration میزان مصرف حافظه را کنترل کنید.

#### 3.4 ارزیابی "خام"

به طور پیش‌فرض، ورودی‌ها (فایل نمونه wav، رونویسی نمونه، و متن) را برای استنتاج بهینه و عملکرد بهتر پیش‌پردازش می‌کنیم. اگر می‌خواهید عملکرد "خام" مدل را با ورودی‌های دقیقاً داده شده ارزیابی کنید (مثلاً برای بازتولید نتایج مقاله ما)، می‌توانید مقدار --raw-evaluation True را وارد کنید.

#### 3.5 متن کوتاه

هنگام تولید گفتار برای متن‌های بسیار کوتاه (مثلاً یک یا دو کلمه)، ممکن است گفتار تولیدشده برخی تلفظ‌ها را حذف کند. برای رفع این مشکل، می‌توانید مقدار --speed 0.3 (که عدد ۰.۳ قابل تنظیم است) را وارد کنید تا مدت زمان گفتار تولیدشده افزایش یابد.

#### 3.6 اصلاح تلفظ اشتباه نویسه‌های چندآوایی چینی

ما از pypinyin برای تبدیل حروف چینی به پین‌یین استفاده می‌کنیم. با این حال، گاهی اوقات ممکن است حروف چندآوایی (多音字) را اشتباه تلفظ کند.

برای اصلاح دستی این تلفظ‌های اشتباه، پین‌یین اصلاح‌شده را درون علامت زاویه‌ای < > قرار دهید و علامت نغمه را نیز درج کنید.

مثال:

> توجه: اگر می‌خواهید چند پین‌یین را به صورت دستی تعیین کنید، هر پین‌یین را داخل < > قرار دهید، مانند: 这把十公分

#### ۳.۷ حذف سکوت‌های طولانی از گفتار تولیدشده

مدل به طور خودکار موقعیت و طول سکوت‌ها در گفتار تولیدشده را تشخیص می‌دهد. گاهی اوقات سکوت طولانی در وسط گفتار ایجاد می‌شود. اگر این مورد را نمی‌خواهید، می‌توانید با پارامتر --remove-long-sil سکوت‌های طولانی در وسط گفتار تولیدشده را حذف کنید (سکوت‌های لبه‌ای به طور پیش‌فرض حذف خواهند شد).

#### ۳.۸ دانلود مدل

اگر هنگام دانلود مدل‌های از پیش آموزش‌دیده از HuggingFace با مشکل اتصال مواجه شدید، می‌توانید نقطه انتهایی را به سایت میرور تغییر دهید: export HF_ENDPOINT=https://hf-mirror.com.

آموزش مدل اختصاصی

برای مثال‌های آموزش، تنظیم دقیق و ارزیابی به دایرکتوری egs مراجعه کنید.

استقرار در محیط تولید

اجرای GPU با NVIDIA Triton

برای استقرار آماده تولید با کارایی و مقیاس‌پذیری بالا، به ادغام سرور استنتاج Triton مراجعه کنید که موتورهای بهینه‌شده TensorRT، مدیریت درخواست‌های همزمان و هر دو API گراف/HTTP برای استفاده سازمانی را ارائه می‌دهد.

استقرار روی CPU

برای راه‌حل استقرار C++ روی CPU به sherpa-onnx مراجعه کنید.

بحث و ارتباط

می‌توانید به طور مستقیم در Github Issues بحث کنید.

همچنین می‌توانید کد QR را اسکن کنید تا به گروه وی‌چت ما بپیوندید یا حساب رسمی وی‌چت ما را دنبال کنید.

| گروه وی‌چت | حساب رسمی وی‌چت | | ------------ | ----------------------- | |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-12-30 ---