본문으로 건너뛰기

LongCat AudioDiT 통합

Libre WebUI에는 공식 meituan-longcat/LongCat-AudioDiT-1Bmeituan-longcat/LongCat-AudioDiT-3.5B 체크포인트용 JSON 플러그인과 로컬 HTTP 어댑터가 포함되어 있습니다. 업스트림 프로젝트는 HTTP 서버 대신 Python API를 제공하므로 examples/longcat-audiodit-server의 어댑터가 모델 검색, JSON 음성, multipart 음성 복제 엔드포인트를 제공합니다.

AudioDiT는 스트리밍 오디오 응답 대신 완성된 24 kHz 모노 WAV 파일을 반환합니다. 따라서 Libre WebUI는 긴 응답을 문장 및 구문 경계에서 나누고, 제한된 수의 배치를 미리 생성한 뒤, 디코딩한 오디오를 순서대로 예약해 연속 재생합니다.

요구 사항

실용적인 대상은 NVIDIA CUDA GPU입니다. 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에 바인딩합니다. 로컬 사용을 위해 의도적으로 인증이 없으므로 신뢰할 수 없는 네트워크에 직접 공개하지 마세요. Libre WebUI와 어댑터가 서로 다른 호스트에 있으면 인증된 HTTPS 게이트웨이를 사용하세요. 재사용 음성은 각 음성 배치마다 복호화된 참조 녹음을 해당 엔드포인트로 보냅니다. CUDA Docker 예제와 상태 확인은 examples/longcat-audiodit-server/README.md에 설명되어 있습니다.

플러그인 활성화

설정 → 플러그인 → LongCat AudioDiT를 열어 활성화하고, 어댑터가 다른 곳에서 실행되지 않는 한 기본 로컬 엔드포인트를 유지합니다. 모델 검색에는 해당 서버 프로세스에 올라간 체크포인트만 표시됩니다. 1B와 3.5B 모델을 전환하려면 어댑터를 다시 시작하세요.

llama-swap 같은 게이트웨이가 어댑터 앞에 있으면 Models API Endpoint를 게이트웨이를 통한 어댑터의 GET /v1/models 경로로 설정하세요. 모델 검색을 POST /v1/audio/speech로 지정하지 마세요. 검색에 실패하면 두 매니페스트 체크포인트로 대체되어 UI가 어댑터에 로드되지 않은 체크포인트를 선택할 수 있습니다.

채팅 재생용 LongCat을 선택하려면 설정 → 음성 합성을 사용합니다. 자연스러운 배치 재생은 기본으로 활성화됩니다. 공유된 제공자 제한인 140자는 조밀한 중국어 텍스트를 1B 체크포인트의 짧은 지속 시간 창 안에 유지합니다. Libre WebUI는 긴 응답을 자동으로 여러 배치로 만듭니다.

음성 복제

Imagine → 오디오를 열고 LongCat 음성 모델을 선택한 다음 참조 음성 복제를 활성화합니다. 깨끗한 녹음을 업로드하고 실제로 말한 정확한 문장을 입력하세요. 배경 소음이 적은 단일 화자의 3~10초 클립이 가장 좋습니다. 어댑터는 15초 또는 10 MiB를 넘는 클립을 거부합니다.

복제를 일회성 생성으로 유지하거나 재사용 음성으로 저장을 선택해 비공개 이름을 지정하고 화자가 저장에 동의했음을 명시적으로 확인할 수 있습니다. 저장된 음성은 설정 → 음성 합성의 동일 LongCat 모델에서 선택할 수 있습니다. 채팅 읽어 주기와 자동 재생은 Libre WebUI의 문장 인식 배치 전체에서 해당 음성을 재사용합니다.

참조는 AudioDiT 지속 시간 창의 일부를 차지합니다. 요청한 음성이 남은 시간에 맞지 않으면 어댑터는 조용히 오디오를 자르지 않고 명확한 클라이언트 오류를 반환합니다. 참조 또는 생성 문장을 줄이고 다시 시도하세요.

화자의 명시적 허가가 있는 음성만 복제하세요. 일회성 생성에서는 Libre WebUI가 참조를 메모리에 보관하고 어댑터가 요청 후 임시 디코딩 파일을 제거합니다. 재사용 음성을 명시적으로 저장하면 Libre WebUI는 원본 참조 오디오와 정확한 전사를 사용자 범위의 AES-GCM 암호화 프로필에 저장합니다. 생성된 모방 음성을 기준 참조로 대체하지 않습니다. AudioDiT는 이동 가능한 화자 임베딩을 제공하지 않으므로 각 생성 배치마다 원본 쌍을 복호화해 설정한 제공자에게 보냅니다. 음성 합성 설정에서 프로필을 영구 삭제할 수 있습니다. 플러그인의 승인된 경로나 엔드포인트가 바뀌면 저장 프로필은 안전하게 실패합니다. 새 목적지를 확인한 뒤 다시 만드세요.

생성된 음성은 사용자의 암호화 미디어 갤러리에 별도로 저장됩니다. 갤러리 결과를 삭제해도 저장 음성 프로필은 삭제되지 않으며, 음성 프로필을 삭제해도 이전에 생성한 갤러리 오디오는 제거되지 않습니다.

제공자는 WAV, FLAC, MP3, Ogg 참조를 지원합니다. 가장 강하게 문서화된 언어 대상은 영어와 중국어(표준어)입니다. LongCat은 미리 설정된 이름 있는 음성을 공개하지 않으므로 일반 합성은 모델 기본값을 사용합니다.

추론 제어

플러그인은 ODE 단계, guidance strength, CFG/APG guidance method, seed를 위한 제한된 고급 변수를 제공합니다. Libre WebUI는 매니페스트에 선언된 제어만 음성 및 복제 엔드포인트 모두에 전달합니다. 기본값은 업스트림 추론 예제와 일치하며 좋은 출발점입니다.

AudioDiT는 재생 속도 제어를 제공하지 않습니다. OpenAI 음성 요청 형식과의 호환성을 위해 어댑터는 0.25부터 4.0까지의 speed 값을 받지만 의도적으로 무시합니다. 실제 음성 속도는 모델이 결정합니다. 다른 속도를 선택해도 생성된 WAV의 시간을 늘이거나 줄이지 않습니다.

직접 curl 요청, Docker 명령, 정확한 제한, 오프라인 검증 명령은 예제 README를 참조하세요.