Pular para o conteúdo principal

Integração com LongCat AudioDiT

O Libre WebUI inclui um plugin JSON e um adaptador HTTP local para os checkpoints oficiais meituan-longcat/LongCat-AudioDiT-1B e meituan-longcat/LongCat-AudioDiT-3.5B. Como o projeto original fornece uma API Python e não um servidor HTTP, o adaptador em examples/longcat-audiodit-server oferece descoberta de modelos, fala via JSON e endpoints multipart de clonagem.

O AudioDiT retorna arquivos WAV mono completos de 24 kHz, não uma resposta por streaming. Por isso, o Libre WebUI divide respostas longas em limites de frases e orações, gera antecipadamente um conjunto limitado de lotes e agenda o áudio decodificado na ordem para reprodução contínua.

Requisitos

Uma GPU NVIDIA CUDA é o alvo prático. Comece pelo checkpoint 1B; o 3.5B precisa de muito mais VRAM e demora mais para carregar. CPU serve para experimentos, mas dificilmente será interativa.

Iniciar o adaptador

Clone a implementação oficial e crie um ambiente isolado:

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"

Inicie um checkpoint:

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

O servidor escuta em 127.0.0.1:8300 por padrão. Ele é intencionalmente sem autenticação para uso local; não o exponha diretamente a redes não confiáveis. Use um gateway HTTPS autenticado se Libre WebUI e adaptador estiverem em hosts diferentes: vozes reutilizáveis enviam a gravação de referência descriptografada a esse endpoint em cada lote de fala. Um exemplo CUDA Docker e a verificação de saúde estão em examples/longcat-audiodit-server/README.md.

Ativar o plugin

Abra Configurações → Plugins → LongCat AudioDiT, ative-o e mantenha os endpoints locais padrão, salvo se o adaptador estiver em outro lugar. A descoberta anuncia somente o checkpoint residente no processo. Reinicie o adaptador para trocar entre 1B e 3.5B.

Quando um gateway como llama-swap estiver à frente, configure Models API Endpoint como a rota GET /v1/models do adaptador pelo gateway. Não aponte a descoberta para POST /v1/audio/speech: uma falha recorre aos dois checkpoints do manifesto e pode deixar a interface selecionar um modelo que não foi carregado.

Use Configurações → Conversão de texto em fala para selecionar LongCat na reprodução. A reprodução natural em lotes vem ativa. O limite compartilhado de 140 caracteres mantém texto chinês denso dentro da janela curta do 1B; respostas maiores são divididas automaticamente.

Clonagem de voz

Abra Imagine → Áudio, selecione um modelo LongCat e ative Clonar uma voz de referência. Envie uma gravação limpa e informe exatamente as palavras faladas. Um clipe de 3 a 10 segundos, com uma pessoa e pouco ruído, funciona melhor. O adaptador rejeita mais de 15 segundos ou 10 MiB.

A clonagem pode ser usada uma vez ou salva com Salvar como voz reutilizável, um nome privado e confirmação explícita de consentimento do falante. Vozes salvas ficam disponíveis para o mesmo modelo em Configurações → Conversão de texto em fala. Leitura e reprodução automática reutilizam a voz nos lotes conscientes de frases.

A referência ocupa parte da janela de duração do AudioDiT. Se a fala solicitada não couber no tempo restante, o adaptador retorna um erro claro em vez de cortar o áudio. Reduza a referência ou a passagem.

Clone somente com permissão explícita. Em uma geração única, o Libre WebUI mantém a referência na memória e o adaptador remove o arquivo temporário após a solicitação. Ao salvar, o áudio original e sua transcrição exata ficam em um perfil AES-GCM criptografado e limitado ao usuário. A imitação gerada nunca substitui a referência original. O AudioDiT não fornece embedding portátil do falante; o par original é descriptografado e enviado ao provedor em cada lote. É possível excluir o perfil permanentemente. Um perfil falha de forma segura se o roteamento aprovado ou endpoint mudar; recrie após verificar o novo destino.

A fala gerada é armazenada separadamente na galeria criptografada. Excluir um resultado não exclui o perfil, e excluir o perfil não remove áudios já gerados.

O provedor aceita referências WAV, FLAC, MP3 e Ogg. Inglês e mandarim são os idiomas mais fortes documentados. O LongCat não publica vozes predefinidas nomeadas, então a síntese comum usa o padrão do modelo.

Controles de inferência

O plugin oferece variáveis avançadas limitadas para etapas ODE, intensidade de orientação, método CFG/APG e seed. O Libre WebUI envia somente os controles declarados no manifesto aos endpoints de fala e clonagem. Os padrões correspondem ao exemplo original.

O AudioDiT não oferece controle de velocidade. Para compatibilidade com o formato OpenAI, o adaptador aceita speed de 0.25 a 4.0 e ignora intencionalmente. O modelo determina o ritmo real; escolher outra velocidade não altera a duração do WAV.

Consulte o README do exemplo para solicitações curl, comandos Docker, limites exatos e validação offline.