การผสาน LongCat AudioDiT
Libre WebUI รวม plugin JSON และ adapter HTTP ในเครื่องสำหรับ checkpoint ทางการ meituan-longcat/LongCat-AudioDiT-1B และ meituan-longcat/LongCat-AudioDiT-3.5B โปรเจกต์ต้นทางมี API Python แทนเซิร์ฟเวอร์ HTTP ดังนั้น adapter ใน examples/longcat-audiodit-server จึงมีการค้นหาโมเดล เสียงพูด JSON และ endpoint โคลนเสียงแบบ multipart
AudioDiT ส่งกลับไฟล์ WAV โมโน 24 kHz ที่สมบูรณ์แทนการตอบกลับเสียงแบบ streaming ดังนั้น Libre WebUI จะแบ่งคำตอบยาวตามขอบเขตประโยคและวลี สร้างชุดล่วงหน้าในจำนวนจำกัด และจัดลำดับเสียงที่ถอดรหัสเพื่อเล่นต่อเนื่อง
ข้อกำหนด
GPU NVIDIA CUDA เป็นเป้าหมายที่เหมาะสม เริ่มด้วย checkpoint 1B ส่วน 3.5B ต้องใช้ VRAM มากกว่าอย่างมากและโหลดนานกว่า CPU ใช้ทดลองได้แต่ไม่น่าตอบสนองแบบโต้ตอบ
เริ่ม adapter
clone implementation ทางการและสร้างสภาพแวดล้อมแยก:
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"
จากนั้นเริ่ม checkpoint หนึ่งรายการ:
python examples/longcat-audiodit-server/server.py \
--model meituan-longcat/LongCat-AudioDiT-1B \
--device cuda:0
เซิร์ฟเวอร์ผูกกับ 127.0.0.1:8300 โดยค่าเริ่มต้น และตั้งใจไม่ใช้การยืนยันตัวตนสำหรับการใช้งานในเครื่อง จึงอย่าเปิดตรงไปยังเครือข่ายที่ไม่เชื่อถือ ใช้ gateway HTTPS ที่ยืนยันตัวตนเมื่อ Libre WebUI กับ adapter อยู่คนละโฮสต์ เสียงที่นำกลับมาใช้จะส่งไฟล์อ้างอิงที่ถอดรหัสไปยัง endpoint นั้นทุกชุดเสียงพูด ตัวอย่าง Docker CUDA และการตรวจสุขภาพอยู่ใน examples/longcat-audiodit-server/README.md
เปิดใช้ plugin
เปิด การตั้งค่า → Plugin → LongCat AudioDiT เปิดใช้งาน และคง endpoint ในเครื่องเริ่มต้นไว้ เว้นแต่ adapter ทำงานที่อื่น การค้นหาโมเดลประกาศเฉพาะ checkpoint ที่อยู่ในโปรเซสเซิร์ฟเวอร์นั้น เริ่ม adapter ใหม่เพื่อสลับระหว่างโมเดล 1B และ 3.5B
เมื่อมี gateway เช่น llama-swap อยู่หน้า adapter ให้กำหนด endpoint API โมเดลเป็นเส้นทาง GET /v1/models ของ adapter ผ่าน gateway อย่าชี้การค้นหาโมเดลไปที่ POST /v1/audio/speech เพราะหากค้นหาล้มเหลว ระบบจะกลับไปใช้ checkpoint ทั้งสองใน manifest และอาจให้ UI เลือก checkpoint ที่ adapter ไม่ได้โหลด
ใช้ การตั้งค่า → ข้อความเป็นเสียง เพื่อเลือก LongCat สำหรับเล่นเสียงแชต การเล่นตามชุดอย่างเป็นธรรมชาติเปิดโดยค่าเริ่มต้น ขีดจำกัดร่วม 140 อักขระของผู้ให้บริการทำให้ข้อความจีนหนาแน่นอยู่ในช่วงเวลาสั้นของ checkpoint 1B และ Libre WebUI จะสร้างหลายชุดอัตโนมัติสำหรับคำตอบยาว
การโคลนเสียง
เปิด จินตนาการ → เสียง เลือกโมเดลเสียงพูด LongCat และเปิด โคลนเสียงอ้างอิง อัปโหลดไฟล์เสียงสะอาดและป้อนคำพูดที่ตรงกัน คลิปผู้พูดคนเดียว 3–10 วินาทีและเสียงรบกวนน้อยให้ผลดีที่สุด adapter ปฏิเสธคลิปเกิน 15 วินาทีหรือ 10 MiB
การโคลนอาจใช้ครั้งเดียว หรือเลือก บันทึกเป็นเสียงที่ใช้ซ้ำได้ ตั้งชื่อส่วนตัวและยืนยันว่าผู้พูดยินยอมให้เก็บ เสียงที่บันทึกจะเลือกได้สำหรับโมเดล LongCat เดียวกันใน การตั้งค่า → ข้อความเป็นเสียง จากนั้นการอ่านออกเสียงและเล่นอัตโนมัติในแชตจะใช้เสียงนั้นซ้ำในชุดที่รับรู้ประโยคของ Libre WebUI
ไฟล์อ้างอิงใช้ส่วนหนึ่งของช่วงเวลา AudioDiT หากเสียงที่ขอไม่พอดีกับเวลาที่เหลือ adapter จะส่งข้อผิดพลาดไคลเอนต์ชัดเจนแทนการตัดเสียงเงียบ ๆ ให้ย่อไฟล์อ้างอิงหรือข้อความแล้วลองใหม่
โคลนเสียงเมื่อได้รับอนุญาตจากผู้พูดอย่างชัดเจนเท่านั้น สำหรับการสร้างครั้งเดียว Libre WebUI เก็บไฟล์อ้างอิงในหน่วยความจำและ adapter ลบไฟล์ถอดรหัสชั่วคราวหลังคำขอ เมื่อบันทึกเสียงที่ใช้ซ้ำได้ Libre WebUI เก็บเสียงอ้างอิงต้นฉบับและข้อความถอดเสียงที่ตรงในโปรไฟล์ตามผู้ใช้ซึ่งเข้ารหัส AES-GCM และไม่ใช้เสียงเลียนแบบที่สร้างแทนข้อมูลอ้างอิงมาตรฐาน AudioDiT ไม่มี embedding ผู้พูดแบบพกพา จึงต้องถอดรหัสคู่ต้นฉบับและส่งให้ผู้ให้บริการที่กำหนดในทุกชุด คุณลบโปรไฟล์ถาวรได้จากการตั้งค่าข้อความเป็นเสียง โปรไฟล์จะปฏิเสธอย่างปลอดภัยหากเส้นทางหรือ endpoint ที่อนุมัติเปลี่ยน ให้สร้างใหม่หลังตรวจสอบปลายทาง
เสียงพูดที่สร้างเก็บแยกในคลังสื่อเข้ารหัสของผู้ใช้ การลบผลลัพธ์ในคลังไม่ลบโปรไฟล์เสียง และการลบโปรไฟล์เสียงไม่ลบเสียงที่สร้างไว้ก่อนหน้า
ผู้ให้บริการรองรับไฟล์อ้างอิง WAV, FLAC, MP3 และ Ogg ภาษาอังกฤษและจีนกลางเป็นภาษาที่มีผลลัพธ์ดีที่สุดตามเอกสาร LongCat ไม่มีเสียงตั้งชื่อไว้ล่วงหน้า การสังเคราะห์ทั่วไปจึงใช้ค่าเริ่มต้นของโมเดล
การควบคุมการอนุมาน
plugin มีตัวแปรขั้นสูงแบบจำกัดสำหรับขั้น ODE ความแรงการนำทาง วิธี CFG/APG และ seed Libre WebUI ส่งต่อเฉพาะการควบคุมที่ manifest ประกาศไปยัง endpoint เสียงพูดและโคลน ค่าเริ่มต้นตรงกับตัวอย่างอนุมานต้นทางและเหมาะเป็นจุดเริ่ม
AudioDiT ไม่มีการควบคุมความเร็วเล่น เพื่อให้เข้ากับรูปแบบคำขอเสียง OpenAI adapter รับค่า speed ตั้งแต่ 0.25 ถึง 4.0 แต่ตั้งใจไม่ใช้ โมเดลกำหนดจังหวะเสียงจริง การเลือกความเร็วอื่นไม่ยืดเวลา WAV ที่สร้าง
ดู README ของตัวอย่างสำหรับคำขอ curl โดยตรง คำสั่ง Docker ขีดจำกัดที่แน่นอน และคำสั่งตรวจสอบออฟไลน์