GennadyPRO (с прикрученными сисечками)

Промпт для AI-агента
Тема: Разработка визуального аватара (синхронизация губ/Live2D) для AI-ассистента OpenClaude.
Цель: Создать облегченный визуальный интерфейс (Персона) для существующего AI-ассистента (OpenClaude). Аватар должен быть «живым» (анимация простоя) и синхронизировать движения губ с генерируемой речью в реальном времени.
Аппаратные ограничения: Целевой GPU VRAM — 2–4 ГБ. Используйте эффективные, нетяжелые модели.
Требования к архитектуре:
Оркестратор: Сценарий «Glue» на основе Python.
Преобразование текста в речь (TTS): Используйте Silero TTS (локальный, удобный для ЦП) или API ElevenLabs.
Визуальный движок: Предложите решение на основе Live2D (VTube Studio API) или Talking Head Anime 3 (Lightweight).
Интеграция с OpenClaude: Система должна подключаться к выходному потоку OpenClaude.
Задача для ИИ:
Пожалуйста, предоставьте пошаговое руководство по технической реализации, включая:
Структура проекта: Определите структуру каталогов (например, /core, /assets, /services/tts, /services/visual).
Логика «Glue»:
Как получить текст от OpenClaude (через WebSocket или API).
Как отправить этот текст в механизм TTS.
Как извлечь метки времени синхронизации губ (виземы) или данные об объеме звука из аудио.
Как отправить пакеты команд в визуальный движок для перемещения рта аватара.
Конкретные инструменты:
Рекомендуйте конкретные библиотеки Python (например, sounddevice, librosa, requests).
Предоставьте шаблонный код для основного сценария bridge.py.
Развертывание:
Где разместить файлы модели Live2D.
Как настроить режим «Заставки» (анимация простоя, например, дыхание/мигание).
Оптимизация производительности: Как обеспечить, чтобы лимит VRAM 2–4 ГБ не был превышен, сохраняя при этом отзывчивость аватара.
Формат вывода: Техническая спецификация + фрагменты кода Python + Отображение каталогов.
Почему этот промпт сработает:
Ограничение по VRAM: Я указал AI, что нужно избегать тяжелых диффузионных моделей.
Структура: Промпт требует четкого разделения на папки, что поможет вам не запутаться при внедрении в OpenClaude.
Событийная модель: AI поймет, что нужно строить цепочку «Текст Звук Движение».

или используя вот этот готовый промпт

Для ваших условий (2–4 Гб VRAM) оптимальным выбором будет связка OpenClaude + Silero TTS + VTube Studio (Live2D). Это решение практически не потребляет видеопамять (VTube Studio ест около 400–800 Мб), оставляя ресурсы для системы.

  1. Структура проекта
    Предлагаю разместить «клей» в отдельной директории рядом с OpenClaude:
    text
    /openclaude_visual_proxy
    ├── main.py # Главный оркестратор (bridge.py)
    ├── /core
    │ └── processor.py # Обработка текста и очереди
    ├── /services
    │ ├── tts_engine.py # Логика Silero TTS (генерация аудио)
    │ └── vts_connector.py # Связь с VTube Studio через WebSocket API
    ├── /assets
    │ └── /models # Путь к Live2D моделям (для VTube Studio)
    └── requirements.txt # Зависимости (pyvts, sounddevice, torch, librosa)
    Используйте код с осторожностью.
  2. Техническая спецификация «Клея»
    TTS (Silero): Работает на CPU. Генерирует WAV-поток.
    Lip-Sync: Мы не будем вычислять сложные виземы. Используем VTube Studio API, который умеет открывать рот модели на основе громкости входящего аудиопотока (параметр MouthOpen).
    Связь: OpenClaude отправляет текст
    main.py ловит его
    отправляет в tts_engine.py
    аудио играет в систему, а уровень громкости дублируется в VTube Studio.
  3. Шаблон кода (bridge.py / main.py)
    Вам понадобится библиотека pyvts для управления аватаром.
    python
    import asyncio
    import pyvts
    import sounddevice as sd
    import numpy as np

class AvatarBridge:
def init(self):

Параметры подключения к VTube Studio

    self.vts = pyvts.vts(plugin_info={
        "plugin_name": "ClaudeVisualBridge",
        "developer": "User",
        "authentication_token_path": "./vts_token.txt"
    })

async def connect_vts(self):
    await self.vts.connect()
    await self.vts.request_authenticate()

async def animate_mouth(self, audio_data):
    """
    Простейший маппинг громкости звука на параметр открывания рта
    """
    amplitude = np.linalg.norm(audio_data) / 10
    # Ограничиваем значение от 0 до 1
    mouth_open = min(amplitude, 1.0)

    # Отправляем параметр в VTube Studio
    parameter_data = [
        {"id": "MouthOpen", "value": mouth_open}
    ]
    await self.vts.request_set_custom_parameter(parameter_data)

async def process_text_from_claude(self, text):
    # 1. Генерируем аудио через Silero TTS (псевдокод)
    audio_stream = tts_engine.generate(text)

    # 2. Воспроизводим и одновременно двигаем рот
    with sd.OutputStream(callback=self.audio_callback):
        # Логика синхронизации здесь
        pass

Это каркас. Основная магия в том, что VTube Studio

сама поддерживает "дыхание" и "моргание" из коробки.

Используйте код с осторожностью.

  1. Как прикрутить к OpenClaude
    Вам нужно найти в коде OpenClaude место, где он выводит финальный текст (обычно это метод on_message или display_answer).
    Вставьте туда хук:
    python

В коде OpenClaude

answer = response.text

Отправка в наш мост

requests.post("http://localhost:5000/speak", json={"text": answer})
Используйте код с осторожностью.

  1. Оптимизация и «Живость»
    Заставка: В VTube Studio включите плагин "Idle Animation". Аватар будет покачиваться и моргать сам по себе, пока нет команд.
    VRAM: Сама VTube Studio почти не нагружает GPU. Основной вес будет на OpenClaude (если он локальный). Если OpenClaude в облаке — у вас вообще не будет проблем.
    Задержка: Silero TTS отрабатывает почти мгновенно, что важно для ощущения "живого" диалога.
    Для начала работы вам нужно скачать VTube Studio (бесплатно в Steam) и любую бесплатную Live2D модель
Edit

Pub: 17 Apr 2026 11:19 UTC

Views: 64