Web Analytics

ZipVoice

⭐ 661 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 طول الموجه

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

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

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

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

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

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

بشكل افتراضي، نقوم بمعالجة المدخلات مسبقاً (ملف wav للموجه، نص الموجه، والنص) لتحقيق استنتاج فعال وأداء أفضل. إذا رغبت في تقييم أداء النموذج "الخام" باستخدام المدخلات المقدمة بالضبط (مثل لإعادة إنتاج نتائج بحثنا)، يمكنك تمرير --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 لأمثلة التدريب، وضبط النموذج، والتقييم.

النشر باستخدام C++

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

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

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

يمكنك أيضًا مسح رمز الاستجابة السريعة للانضمام إلى مجموعة 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-10-06 ---