Web Analytics

ZipVoice

⭐ 748 stars Arabic by k2-fsa

🌐 اللغة

ZipVoice⚡

تحويل النص إلى كلام سريع وعالي الجودة بدون تدريب مسبق باستخدام مطابقة التدفق

نظرة عامة

ZipVoice هي سلسلة من نماذج تحويل النص إلى كلام (TTS) السريعة وعالية الجودة بدون تدريب مسبق، تعتمد على تقنية مطابقة التدفق.

1. الميزات الرئيسية

2. أنواع النماذج

اسم النموذج الوصف البحث العلمي التجربة
ZipVoice النموذج الأساسي الذي يدعم تحويل النص إلى كلام بدون تدريب مسبق لمتحدث واحد بالصينية والإنجليزية.
ZipVoice-Distill النسخة المقطرة من ZipVoice، وتتميز بسرعة محسنة مع تدهور طفيف في الأداء.
ZipVoice-Dialog نموذج توليد الحوار مبني على ZipVoice، وقادر على توليد حوارات منطوقة لطرفين في قناة واحدة.
ZipVoice-Dialog-Stereo النسخة الستيريو من ZipVoice-Dialog، والتي تتيح توليد حوارات ثنائية القناة مع تخصيص كل متحدث لقناة منفصلة.

الأخبار

2025/07/14: تم إصدار ZipVoice-Dialog و ZipVoice-Dialog-Stereo، وهما نموذجان لتوليد الحوارات المنطوقة. arXiv demo page

2025/07/14: تم إصدار قاعدة بيانات OpenDialog، وهي قاعدة بيانات للحوارات المنطوقة مدتها 6.8 ألف ساعة. يمكن التحميل من hf، ms. تفاصيل إضافية على arXiv.

2025/06/16: تم إصدار ZipVoice و ZipVoice-Distill. arXiv demo page

التثبيت

1. استنساخ مستودع ZipVoice

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

2. (اختياري) إنشاء بيئة افتراضية في بايثون

python3 -m venv zipvoice
source zipvoice/bin/activate

3. تثبيت الحزم المطلوبة

pip install -r requirements.txt

4. تثبيت 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__)"

الاستخدام

1. توليد الكلام لمتحدث واحد

لتوليد كلام لمتحدث واحد باستخدام نماذج ZipVoice أو ZipVoice-Distill المدربة مسبقًا، استخدم الأوامر التالية (سيتم تنزيل النماذج المطلوبة من HuggingFace):

#### 1.1 الاستدلال على جملة واحدة

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 طول المقطع الصوتي

ننصح باستخدام ملف مقطع صوتي قصير (مثلاً، أقل من 3 ثوانٍ لتوليد الكلام لمتحدث واحد، وأقل من 10 ثوانٍ لتوليد الحوار) للحصول على سرعة استنتاج أعلى. المقطع الطويل جدًا سيبطئ عملية الاستنتاج ويؤثر سلبًا على جودة الصوت.

#### 3.2 تحسين السرعة

إذا كانت سرعة الاستنتاج غير مرضية، يمكنك تسريعها كما يلي:

#### 3.3 التحكم في الذاكرة

سيتم تقسيم النص المقدم إلى أجزاء حسب علامات الترقيم (لتوليد الكلام لمتحدث واحد) أو رمز تبديل المتحدث (لتوليد الحوار). بعد ذلك ستتم معالجة النصوص المجزأة على دفعات. وبالتالي، يمكن للنموذج معالجة نصوص طويلة جدًا مع استخدام شبه ثابت للذاكرة. يمكنك التحكم في استهلاك الذاكرة عن طريق ضبط معامل --max-duration.

#### 3.4 التقييم "الخام"

افتراضيًا، نقوم بمعالجة المدخلات (ملف المقطع الصوتي، النص التفريغي، والنص) مسبقًا لاستنتاج فعال وأداء أفضل. إذا أردت تقييم أداء النموذج "الخام" باستخدام المدخلات المقدمة بالضبط (مثلاً، لإعادة إنتاج النتائج في ورقتنا)، يمكنك تمرير --raw-evaluation True.

#### 3.5 النصوص القصيرة

عند توليد الكلام لنصوص قصيرة جدًا (مثل كلمة أو كلمتين)، قد يتم أحيانًا حذف بعض النطق في الكلام الناتج. لحل هذه المشكلة، يمكنك تمرير --speed 0.3 (حيث 0.3 قيمة قابلة للتعديل) لإطالة مدة الكلام الناتج.

#### 3.6 تصحيح نطق الأحرف الصينية متعددة الأصوات

نستخدم pypinyin لتحويل الحروف الصينية إلى بينيين. ومع ذلك، قد يخطئ أحيانًا في نطق الأحرف متعددة النطق (多音字).

لتصحيح هذه الأخطاء يدويًا، ضع البينيين المصحح بين علامتي زاوية < > وتضمين علامة النغمة.

مثال:

> ملاحظة: إذا أردت تعيين عدة بينيين يدويًا، ضع كل بينيين بين < >، مثل: 这把十公分

#### 3.7 إزالة الصمت الطويل من الكلام الناتج

سيقوم النموذج تلقائيًا بتحديد أماكن وطول الصمت في الكلام الناتج. أحيانًا يوجد صمت طويل في منتصف الكلام. إذا لم ترغب في ذلك، يمكنك تمرير الخيار --remove-long-sil لإزالة الصمت الطويل من منتصف الكلام الناتج (سيتم إزالة الصمت عند الأطراف تلقائيًا).

#### 3.8 تنزيل النموذج

إذا واجهت مشاكل في الاتصال بموقع HuggingFace أثناء تنزيل النماذج المدربة مسبقًا، حاول تغيير نقطة النهاية إلى موقع المرآة: export HF_ENDPOINT=https://hf-mirror.com.

تدريب نموذجك الخاص

راجع دليل egs للحصول على أمثلة حول التدريب، التخصيص والتقييم.

النشر في بيئة الإنتاج

وقت التشغيل على وحدة معالجة الرسوميات NVIDIA Triton

للنشر الجاهز للإنتاج مع أداء عالي وقابلية للتوسع، راجع اندماج خادم الاستدلال Triton الذي يوفر محركات TensorRT محسنة، معالجة طلبات متزامنة، ودعم واجهات gRPC/HTTP للاستخدام المؤسسي.

النشر على وحدة المعالجة المركزية

راجع sherpa-onnx لحل النشر بلغة C++ على وحدة المعالجة المركزية.

النقاش والتواصل

يمكنك النقاش مباشرة على مشاكل Github.

يمكنك أيضًا مسح رمز الاستجابة السريعة للانضمام إلى مجموعة wechat أو متابعة الحساب الرسمي على wechat.

| مجموعة Wechat | الحساب الرسمي على Wechat | | ------------ | ----------------------- | |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 ---