انتقل إلى المحتوى

الاستنتاج

نظرًا لأن نموذج vocoder قد تغير، تحتاج إلى VRAM أكثر من ذي قبل، يُنصح بـ 12GB للاستنتاج السلس.

ندعم سطر الأوامر و HTTP API و WebUI للاستنتاج، يمكنك اختيار أي طريقة تفضلها.

تحميل الأوزان

أولاً تحتاج إلى تحميل أوزان النموذج:

hf download fishaudio/openaudio-s1-mini --local-dir checkpoints/openaudio-s1-mini

استنتاج سطر الأوامر

Note

إذا كنت تخطط لترك النموذج يختار نبرة صوت عشوائياً، يمكنك تخطي هذه الخطوة.

1. الحصول على رموز VQ من الصوت المرجعي

python fish_speech/models/dac/inference.py \
    -i "ref_audio_name.wav" \
    --checkpoint-path "checkpoints/openaudio-s1-mini/codec.pth"

يجب أن تحصل على fake.npy و fake.wav.

2. إنتاج الرموز الدلالية من النص:

python fish_speech/models/text2semantic/inference.py \
    --text "النص الذي تريد تحويله" \
    --prompt-text "النص المرجعي الخاص بك" \
    --prompt-tokens "fake.npy" \
    --compile

هذا الأمر سينشئ ملف codes_N في دليل العمل، حيث N هو عدد صحيح يبدأ من 0.

Note

قد ترغب في استخدام --compile لدمج نوى CUDA للاستنتاج الأسرع (~15 رمز/ثانية -> ~150 رمز/ثانية، على GPU RTX 4090). وفقاً لذلك، إذا كنت لا تخطط لاستخدام التسريع، يمكنك التعليق على معامل --compile.

Info

بالنسبة لوحدات GPU التي لا تدعم bf16، قد تحتاج إلى استخدام معامل --half.

3. إنتاج الأصوات من الرموز الدلالية:

تحذير مستقبلي

لقد احتفظنا بإمكانية الوصول إلى الواجهة من المسار الأصلي (tools/vqgan/inference.py)، لكن هذه الواجهة قد تُزال في الإصدارات اللاحقة، لذا يرجى تغيير الكود الخاص بك في أقرب وقت ممكن.

python fish_speech/models/dac/inference.py \
    -i "codes_0.npy"

استنتاج HTTP API

نوفر HTTP API للاستنتاج. يمكنك استخدام الأمر التالي لبدء الخادم:

python -m tools.api_server \
    --listen 0.0.0.0:8080 \
    --llama-checkpoint-path "checkpoints/openaudio-s1-mini" \
    --decoder-checkpoint-path "checkpoints/openaudio-s1-mini/codec.pth" \
    --decoder-config-name modded_dac_vq

إذا كنت تريد تسريع الاستنتاج، يمكنك إضافة معامل --compile.

بعد ذلك، يمكنك عرض واختبار API على http://127.0.0.1:8080/.

استنتاج GUI

تحميل العميل

استنتاج WebUI

يمكنك بدء WebUI باستخدام الأمر التالي:

python -m tools.run_webui \
    --llama-checkpoint-path "checkpoints/openaudio-s1-mini" \
    --decoder-checkpoint-path "checkpoints/openaudio-s1-mini/codec.pth" \
    --decoder-config-name modded_dac_vq

أو ببساطة

python -m tools.run_webui

إذا كنت تريد تسريع الاستنتاج، يمكنك إضافة معامل --compile.

Note

يمكنك حفظ ملف التسمية وملف الصوت المرجعي مسبقاً في مجلد references في الدليل الرئيسي (الذي تحتاج إلى إنشاؤه بنفسك)، بحيث يمكنك استدعاؤها مباشرة في WebUI.

Note

يمكنك استخدام متغيرات بيئة Gradio، مثل GRADIO_SHARE، GRADIO_SERVER_PORT، GRADIO_SERVER_NAME لتكوين WebUI.

استمتع!

الاستدلال باستخدام Docker

يوفر OpenAudio حاويات Docker للاستدلال لكل من واجهة المستخدم الرسومية (WebUI) وخادم API. يمكنك استخدام أمر docker run مباشرة لبدء تشغيل الحاوية.

تحتاج إلى تحضير ما يلي: - تثبيت Docker و NVIDIA Docker runtime (لدعم GPU) - تنزيل أوزان النموذج (راجع قسم تحميل الأوزان) - ملفات الصوت المرجعية (اختياري، لاستنساخ الصوت)

# إنشاء مجلدات لأوزان النموذج والصوت المرجعي
mkdir -p checkpoints references

# تنزيل أوزان النموذج (إذا لم يتم ذلك بعد)
# hf download fishaudio/openaudio-s1-mini --local-dir checkpoints/openaudio-s1-mini

# بدء واجهة المستخدم الرسومية (WebUI) مع دعم CUDA (موصى به للحصول على أفضل أداء)
docker run -d \
    --name fish-speech-webui \
    --gpus all \
    -p 7860:7860 \
    -v ./checkpoints:/app/checkpoints \
    -v ./references:/app/references \
    -e COMPILE=1 \
    fishaudio/fish-speech:latest-webui-cuda

# الاستدلال باستخدام CPU فقط (أبطأ، ولكنه يعمل بدون GPU)
docker run -d \
    --name fish-speech-webui-cpu \
    -p 7860:7860 \
    -v ./checkpoints:/app/checkpoints \
    -v ./references:/app/references \
    fishaudio/fish-speech:latest-webui-cpu
# بدء خادم API مع دعم CUDA
docker run -d \
    --name fish-speech-server \
    --gpus all \
    -p 8080:8080 \
    -v ./checkpoints:/app/checkpoints \
    -v ./references:/app/references \
    -e COMPILE=1 \
    fishaudio/fish-speech:latest-server-cuda

# الاستدلال باستخدام CPU فقط
docker run -d \
    --name fish-speech-server-cpu \
    -p 8080:8080 \
    -v ./checkpoints:/app/checkpoints \
    -v ./references:/app/references \
    fishaudio/fish-speech:latest-server-cpu

يمكنك تخصيص حاويات Docker باستخدام متغيرات البيئة هذه:

  • COMPILE=1 - تمكين torch.compile لتسريع الاستدلال (حوالي 10 أضعاف، CUDA فقط)
  • GRADIO_SERVER_NAME=0.0.0.0 - مضيف خادم واجهة المستخدم الرسومية (WebUI) (الافتراضي: 0.0.0.0)
  • GRADIO_SERVER_PORT=7860 - منفذ خادم واجهة المستخدم الرسومية (WebUI) (الافتراضي: 7860)
  • API_SERVER_NAME=0.0.0.0 - مضيف خادم API (الافتراضي: 0.0.0.0)
  • API_SERVER_PORT=8080 - منفذ خادم API (الافتراضي: 8080)
  • LLAMA_CHECKPOINT_PATH=checkpoints/openaudio-s1-mini - مسار أوزان النموذج
  • DECODER_CHECKPOINT_PATH=checkpoints/openaudio-s1-mini/codec.pth - مسار أوزان وحدة فك التشفير
  • DECODER_CONFIG_NAME=modded_dac_vq - اسم تكوين وحدة فك التشفير ```

استخدام واجهة المستخدم الرسومية (WebUI) وخادم API هو نفسه الموضح في الدليل أعلاه.

استمتع!