Перейти до основного вмісту

Інтеграція LongCat AudioDiT

Libre WebUI містить JSON-плагін і локальний HTTP-адаптер для офіційних контрольних точок meituan-longcat/LongCat-AudioDiT-1B і meituan-longcat/LongCat-AudioDiT-3.5B. Вихідний проєкт надає Python API, а не HTTP-сервер, тому адаптер у examples/longcat-audiodit-server забезпечує виявлення моделей, JSON-синтез і multipart-клонування голосу.

AudioDiT повертає повні монофонічні WAV 24 kHz, а не потік. Libre WebUI ділить довгі відповіді за реченнями й фразами, наперед генерує обмежену кількість пакетів і послідовно планує декодований звук для безперервного відтворення.

Вимоги

Практична ціль — GPU 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. Для локального використання він навмисно не має автентифікації, тому не відкривайте його недовіреній мережі. Якщо Libre WebUI й адаптер на різних хостах, використовуйте автентифікований HTTPS-шлюз: багаторазовий голос надсилає розшифрований еталон до цієї точки для кожного пакета мовлення. Приклад CUDA Docker і перевірку стану описано в examples/longcat-audiodit-server/README.md.

Увімкнення плагіна

Відкрийте Налаштування → Плагіни → LongCat AudioDiT, активуйте й залиште типові локальні точки, якщо адаптер працює тут. Виявлення повідомляє лише контрольну точку, завантажену в поточному процесі. Перезапустіть адаптер, щоб перемкнути 1B і 3.5B.

Якщо попереду стоїть шлюз на кшталт llama-swap, задайте кінцеву точку API моделей як маршрут адаптера GET /v1/models через цей шлюз. Не спрямовуйте виявлення на POST /v1/audio/speech: невдале виявлення повертає обидві точки маніфесту й може дозволити вибрати модель, яку адаптер не завантажив.

Виберіть LongCat у Налаштування → Текст у мовлення. Природне пакетне відтворення ввімкнено типово. Спільний ліміт 140 символів утримує щільний китайський текст у коротшому вікні 1B; довші відповіді Libre автоматично розбиває на пакети.

Клонування голосу

Відкрийте Imagine → Аудіо, виберіть модель LongCat і ввімкніть Клонувати еталонний голос. Завантажте чистий запис і введіть точні вимовлені слова. Найкраще працює один голос тривалістю 3–10 секунд із мінімальним шумом; адаптер відхиляє понад 15 секунд або 10 MiB.

Клонування може бути одноразовим або збереженим як багаторазовий приватний голос із явним підтвердженням згоди мовця на зберігання. Збережений голос доступний для тієї самої моделі в Налаштування → Текст у мовлення, а читання чату й автоматичне відтворення використовують його в пакетах.

Еталон займає частину вікна тривалості AudioDiT. Якщо запитане мовлення не вміщується, адаптер повертає зрозумілу помилку замість обрізання; скоротіть еталон або текст.

Клонуйте голос лише з явного дозволу мовця. Для одноразової генерації Libre тримає еталон у пам’яті, а адаптер видаляє тимчасовий файл. При збереженні оригінальне аудіо й точний транскрипт записуються в профіль користувача, зашифрований AES-GCM. Створена імітація ніколи не замінює канонічний еталон. AudioDiT не надає переносного векторного подання мовця, тому оригінальна пара розшифровується й надсилається провайдеру для кожного пакета. Профіль можна назавжди видалити. Після зміни затвердженого маршруту або точки профіль безпечно відмовить; перевірте нове місце й створіть його знову.

Створена мова окремо зберігається в зашифрованій медіагалереї. Видалення результату не видаляє профіль голосу, а видалення профілю — раніше створене аудіо.

Підтримуються WAV, FLAC, MP3 та Ogg. Найкраще задокументовано англійську й китайську мандаринську. LongCat не публікує іменованих голосів, тому звичайний синтез використовує типовий голос моделі.

Керування інференсом

Плагін надає обмежені розширені змінні для кроків ODE, сили наведення, методу CFG/APG та seed. Libre передає обом точкам лише змінні, оголошені в маніфесті. Типові значення відповідають прикладу вихідного проєкту.

AudioDiT не має керування швидкістю відтворення. Для сумісності з формою OpenAI адаптер приймає speed від 0.25 до 4.0 і навмисно ігнорує. Фактичний темп визначає модель; інше значення не розтягує WAV.

Прямі запити curl, команди Docker, точні ліміти й автономні перевірки дивіться в README прикладу.