Web Analytics

ZipVoice

⭐ 661 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}

۳ راهنمای استفاده بهتر:

#### ۳.۱ طول نمونه

پیشنهاد می‌کنیم فایل wav نمونه کوتاه باشد (مثلاً کمتر از ۳ ثانیه برای تولید گفتار تک‌گوینده، کمتر از ۱۰ ثانیه برای تولید گفتار دیالوگ) تا سرعت استنتاج بیشتر شود. نمونه بسیار طولانی باعث کندی استنتاج و افت کیفیت گفتار خواهد شد.

#### ۳.۲ بهینه‌سازی سرعت

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

#### ۳.۳ کنترل حافظه

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

#### ۳.۴ ارزیابی "خام"

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

#### ۳.۵ متن کوتاه

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

#### ۳.۶ اصلاح تلفظ اشتباه حروف چندآوایی چینی

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

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

مثال:

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

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

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

#### 3.8 دانلود مدل

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

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

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

استقرار C++

راه‌حل استقرار 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-10-06 ---