إنتقل إلى المحتوى الرئيسي

تكامل LongCat AudioDiT

يتضمن Libre WebUI مكوّن JSON إضافيًا ومهايئ HTTP محليًا لنقطتي التحقق الرسميتين meituan-longcat/LongCat-AudioDiT-1B وmeituan-longcat/LongCat-AudioDiT-3.5B. يوفر المشروع الأصلي API بلغة Python بدلًا من خادم HTTP، ولذلك يقدم المهايئ في examples/longcat-audiodit-server نقاط نهاية لاكتشاف النماذج والكلام عبر JSON واستنساخ الصوت متعدد الأجزاء.

يعيد AudioDiT ملفات WAV أحادية كاملة بتردد 24 kHz، لا استجابة صوتية متدفقة. لذلك يقسم Libre WebUI الردود الطويلة عند حدود الجمل والعبارات، وينشئ مسبقًا مجموعة محدودة من الدفعات، ويجدول الصوت المفكوك بالترتيب لتشغيل متواصل.

المتطلبات

بطاقة NVIDIA CUDA هي الهدف العملي. ابدأ بنقطة التحقق 1B؛ تحتاج 3.5B إلى VRAM أكبر بكثير ويستغرق تحميلها وقتًا أطول. ويمكن استخدام CPU للتجربة، لكن من غير المرجح أن يكون تفاعليًا.

بدء المهايئ

استنسخ التنفيذ الرسمي وأنشئ بيئة معزولة:

git clone https://github.com/meituan-longcat/LongCat-AudioDiT.git
python3 -m venv .venv
source .venv/bin/activate
pip install -r examples/longcat-audiodit-server/requirements.txt
export PYTHONPATH="$PWD/LongCat-AudioDiT"

ثم شغّل نقطة تحقق واحدة:

python examples/longcat-audiodit-server/server.py \
--model meituan-longcat/LongCat-AudioDiT-1B \
--device cuda:0

يرتبط الخادم افتراضيًا بـ 127.0.0.1:8300. وهو بلا مصادقة عمدًا للاستخدام المحلي، فلا تعرّضه مباشرة لشبكة غير موثوقة. استخدم بوابة HTTPS موثقة إذا كان Libre WebUI والمهايئ على مضيفين مختلفين؛ إذ ترسل الأصوات القابلة لإعادة الاستخدام التسجيل المرجعي بعد فك تشفيره إلى تلك النقطة مع كل دفعة كلام. ويوثق examples/longcat-audiodit-server/README.md مثال Docker باستخدام CUDA وفحص السلامة.

تفعيل المكوّن الإضافي

افتح الإعدادات ← المكونات الإضافية ← LongCat AudioDiT، وفعّله واترك نقاط النهاية المحلية الافتراضية ما لم يعمل المهايئ في مكان آخر. لا يعلن اكتشاف النماذج إلا نقطة التحقق المحملة في عملية الخادم. أعد تشغيل المهايئ للتبديل بين 1B و3.5B.

عندما توضع بوابة مثل llama-swap أمام المهايئ، اضبط نقطة نهاية API النماذج على مسار GET /v1/models للمهايئ عبر تلك البوابة. لا توجه الاكتشاف إلى POST /v1/audio/speech؛ ففشل الاكتشاف يعود إلى نقطتي التحقق في البيان وقد يتيح للواجهة اختيار نقطة لم يحمّلها المهايئ.

استخدم الإعدادات ← تحويل النص إلى كلام لاختيار LongCat لتشغيل المحادثات. التشغيل الطبيعي بالدفعات مفعّل افتراضيًا. ويحافظ حد المزوّد المشترك البالغ 140 حرفًا على النص الصيني الكثيف ضمن نافذة المدة الأقصر لـ 1B؛ وينشئ Libre WebUI دفعات متعددة تلقائيًا للردود الأطول.

استنساخ الصوت

افتح Imagine ← الصوت، واختر نموذج كلام LongCat وفعّل استنساخ صوت مرجعي. ارفع تسجيلًا نقيًا وأدخل الكلمات المنطوقة فيه حرفيًا. تعمل أفضل نتيجة مع مقطع من متحدث واحد مدته 3–10 ثوانٍ وضجيج خلفي قليل؛ ويرفض المهايئ المقاطع التي تتجاوز 15 ثانية أو 10 MiB.

يمكن أن يظل الاستنساخ لتوليد واحد، أو يمكنك اختيار الحفظ كصوت قابل لإعادة الاستخدام، وتسميته باسم خاص، والتأكيد صراحة على موافقة المتحدث على التخزين. تصبح الأصوات المحفوظة قابلة للاختيار للنموذج نفسه تحت الإعدادات ← تحويل النص إلى كلام. وتعيد القراءة بصوت عالٍ والتشغيل التلقائي استخدام الصوت عبر دفعات Libre WebUI المراعية للجمل.

يستهلك المرجع جزءًا من نافذة مدة AudioDiT. وإذا لم يتسع الكلام المطلوب للوقت المتبقي، يعيد المهايئ خطأ عميل واضحًا بدلًا من قص الصوت بصمت؛ اختصر المرجع أو النص المولّد وأعد المحاولة.

لا تستنسخ صوتًا إلا بإذن صريح من صاحبه. في التوليد الواحد، يحتفظ Libre WebUI بالمرجع في الذاكرة ويحذف المهايئ ملف فك الترميز المؤقت بعد الطلب. وعند حفظ صوت قابل لإعادة الاستخدام صراحة، يخزن Libre WebUI الصوت المرجعي الأصلي والنص الحرفي في ملف شخصي خاص بالمستخدم ومشفر بـ AES-GCM. ولا يستبدل التقليد المولّد بالمرجع الأساسي أبدًا. لا يقدم AudioDiT تضمين متحدث قابلًا للنقل، ولذلك تُفك شفرة الزوج الأصلي ويُرسل إلى المزوّد المهيأ لكل دفعة. ويمكن حذف الملف نهائيًا من إعدادات تحويل النص إلى كلام. ويفشل الملف المحفوظ بأمان إذا تغير التوجيه المعتمد أو نقطة نهاية المكوّن؛ أعد إنشاءه بعد التحقق من الوجهة الجديدة.

يُخزن الكلام المولّد منفصلًا في معرض الوسائط المشفر للمستخدم. حذف نتيجة من المعرض لا يحذف ملفها الصوتي المحفوظ، وحذف ملف صوتي لا يزيل صوت المعرض المولّد سابقًا.

يدعم المزوّد مراجع WAV وFLAC وMP3 وOgg. والإنجليزية والصينية المندرينية هما أقوى اللغات المستهدفة الموثقة. لا ينشر LongCat أصواتًا مسماة مسبقًا، ولذلك يستخدم التوليد العادي القيمة الافتراضية للنموذج.

عناصر التحكم في الاستدلال

يعرض المكوّن متغيرات متقدمة محدودة لخطوات ODE وقوة التوجيه وطريقة CFG/APG والبذرة. ولا يمرر Libre WebUI إلا عناصر التحكم المعلنة في البيان إلى نقطتي الكلام والاستنساخ. تطابق القيم الافتراضية مثال الاستدلال الأصلي وتشكل نقطة بداية جيدة.

لا يقدم AudioDiT تحكمًا في سرعة التشغيل. وللتوافق مع شكل طلب الكلام في OpenAI، يقبل المهايئ قيم speed من 0.25 إلى 4.0 ويتجاهلها عمدًا. يحدد النموذج توقيت الكلام الفعلي؛ ولا يؤدي اختيار سرعة مختلفة إلى تمديد ملف WAV.

راجع README الخاص بالمثال لطلبات curl المباشرة وأوامر Docker والحدود الدقيقة وأوامر التحقق بلا اتصال.