Ugrás a fő tartalomra

LongCat AudioDiT-integráció

A Libre WebUI JSON-bővítményt és helyi HTTP-adaptert mellékel a hivatalos meituan-longcat/LongCat-AudioDiT-1B és meituan-longcat/LongCat-AudioDiT-3.5B ellenőrzőpontokhoz. Az upstream projekt HTTP-szerver helyett Python API-t biztosít, ezért az examples/longcat-audiodit-server adapter modellfelderítési, JSON-beszéd- és multipart hangklónozási endpointokat nyújt.

Az AudioDiT streamelt hangválasz helyett teljes, 24 kHz-es mono WAV-fájlokat ad vissza. A Libre WebUI ezért mondat- és kifejezéshatároknál felosztja a hosszabb válaszokat, korlátozott számú köteget előre létrehoz, majd a dekódolt hangot sorrendben ütemezi a folyamatos lejátszáshoz.

Követelmények

A gyakorlatban NVIDIA CUDA GPU ajánlott. Kezdje az 1B ellenőrzőponttal; a 3.5B ellenőrzőpont lényegesen több VRAM-ot igényel és lassabban töltődik be. CPU használható kísérletezéshez, de várhatóan nem lesz interaktív sebességű.

Az adapter indítása

Klónozza a hivatalos megvalósítást, és hozzon létre elkülönített környezetet:

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"

Ezután indítsa el az egyik ellenőrzőpontot:

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

A szerver alapértelmezés szerint a 127.0.0.1:8300 címhez kötődik. Helyi használathoz szándékosan nincs hitelesítés, ezért ne tegye közvetlenül elérhetővé nem megbízható hálózaton. Ha a Libre WebUI és az adapter külön gazdagépen fut, használjon hitelesített HTTPS-átjárót: az újrahasználható hangok minden Beszéd-kötegnél erre az endpointra küldik a visszafejtett referenciafelvételt. A CUDA Docker-példa és az állapotellenőrzés az examples/longcat-audiodit-server/README.md fájlban található.

A bővítmény engedélyezése

Nyissa meg a Beállítások → Bővítmények → LongCat AudioDiT elemet, aktiválja, és hagyja meg az alapértelmezett helyi endpointokat, hacsak az adapter nem máshol fut. A modellfelderítés csak a szerverfolyamatban betöltött ellenőrzőpontot hirdeti. Az 1B és 3.5B modellek közötti váltáshoz indítsa újra az adaptert.

Ha az adapter előtt átjáró, például llama-swap áll, a Modellek API-endpointját az adapter GET /v1/models útvonalára állítsa az átjárón keresztül. Ne irányítsa a modellfelderítést a POST /v1/audio/speech útvonalra: sikertelen felderítésnél mindkét manifest-ellenőrzőpontra visszaáll, így a felület olyan ellenőrzőpontot választhat, amelyet az adapter nem töltött be.

A csevegés lejátszásához válassza a LongCat modellt a Beállítások → Szövegből beszéd alatt. A természetes kötegelt lejátszás alapértelmezés szerint engedélyezett. A szolgáltató közös, 140 karakteres korlátja a tömör kínai szöveget az 1B ellenőrzőpont rövidebb időablakán belül tartja; hosszabb válaszokhoz a Libre WebUI automatikusan több köteget hoz létre.

Hangklónozás

Nyissa meg az Alkotás → Hang részt, válasszon LongCat beszédmodellt, és engedélyezze a Referenciahang klónozása lehetőséget. Töltsön fel tiszta felvételt, és írja be az elhangzott pontos szavakat. A 3–10 másodperces, egyetlen beszélőt és kevés háttérzajt tartalmazó klip működik a legjobban; az adapter elutasítja a 15 másodpercnél vagy 10 MiB-nál nagyobb klipeket.

A klónozás maradhat egyszeri generálás, vagy kiválaszthatja a Mentés újrahasználható hangként lehetőséget, privát nevet adhat a hangnak, és kifejezetten megerősítheti, hogy a beszélő hozzájárult a tároláshoz. A mentett hangok ugyanahhoz a LongCat modellhez kiválaszthatók a Beállítások → Szövegből beszéd alatt. A csevegés felolvasása és automatikus lejátszása ezután újrahasználja a hangot a Libre WebUI mondathatárokat figyelembe vevő kötegeiben.

A referencia felhasználja az AudioDiT időablakának egy részét. Ha a kért beszéd nem fér bele a hátralévő időbe, az adapter egyértelmű klienshibát ad vissza a hang észrevétlen levágása helyett; rövidítse le a referenciát vagy a generált szakaszt, majd próbálja újra.

Csak a beszélő kifejezett engedélyével klónozzon hangot. Egyszeri generálásnál a Libre WebUI memóriában tartja a referenciát, az adapter pedig a kérés után eltávolítja ideiglenes dekódolófájlját. Újrahasználható hang kifejezett mentésekor a Libre WebUI az eredeti referenciahangot és a pontos átiratot felhasználóhoz kötött, AES-GCM-mel titkosított profilban tárolja. A generált utánzatot soha nem helyettesíti be kanonikus referenciaként. Az AudioDiT nem tesz elérhetővé hordozható beszélő-embeddinget, ezért az eredeti pár minden generált kötegnél visszafejtődik és elküldődik a beállított szolgáltatónak. A profil véglegesen törölhető a Szövegből beszéd beállításaiban. A mentett profil biztonságosan meghiúsul, ha a bővítmény jóváhagyott útválasztása vagy endpointja megváltozik; az új cél ellenőrzése után hozza létre újra.

A generált beszéd külön, a felhasználó titkosított médiagalériájában tárolódik. Egy galériaeredmény törlése nem törli a mentett hangprofilt, a hangprofil törlése pedig nem távolítja el a korábban létrehozott galériahangokat.

A szolgáltató WAV-, FLAC-, MP3- és Ogg-referenciákat támogat. Az angol és a mandarin kínai a legjobban dokumentált célnyelv. A LongCat nem tesz közzé előre beállított elnevezett hangokat, ezért a normál szintézis a modell alapértékét használja.

Következtetési vezérlők

A bővítmény korlátozott speciális változókat tesz elérhetővé az ODE-lépésekhez, az irányítás erősségéhez, a CFG/APG irányítási módszerhez és a seedhez. A Libre WebUI csak a manifestben deklarált vezérlőket továbbítja a beszéd- és klónozási endpointoknak. Az alapértékek az upstream következtetési példának felelnek meg, és jó kiindulópontot jelentenek.

Az AudioDiT nem tesz elérhetővé lejátszásisebesség-vezérlést. Az OpenAI beszédkérés formájával való kompatibilitás érdekében az adapter elfogad speed értékeket 0.25 és 4.0 között, de szándékosan figyelmen kívül hagyja őket. A tényleges beszédidőzítést a modell határozza meg; más sebesség választása nem nyújtja időben a generált WAV-fájlt.

A közvetlen curl kérésekért, Docker-parancsokért, pontos korlátokért és offline ellenőrzési parancsokért lásd a példa README-fájlját.