الاستنتاج
نظرًا لأن نموذج vocoder قد تغير، تحتاج إلى VRAM أكثر من ذي قبل، يُنصح بـ 12GB للاستنتاج السلس.
ندعم سطر الأوامر و HTTP API و WebUI للاستنتاج، يمكنك اختيار أي طريقة تفضلها.
تحميل الأوزان
أولاً تحتاج إلى تحميل أوزان النموذج:
استنتاج سطر الأوامر
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)، لكن هذه الواجهة قد تُزال في الإصدارات اللاحقة، لذا يرجى تغيير الكود الخاص بك في أقرب وقت ممكن.
استنتاج 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
أو ببساطة
إذا كنت تريد تسريع الاستنتاج، يمكنك إضافة معامل
--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 هو نفسه الموضح في الدليل أعلاه.
استمتع!