Спойлер: Никаких банальных ИИ-оберток, где текст конвертируется в звук через API. Только хардкорная хирургия нейросетей, кросс-модальные мосты и перехват мыслей LLM в реальном времени.
За последний год Hugging Face превратился в конвейер одинаковых проектов: берем Llama/Gemma, прикручиваем к ней интерфейс на Gradio, называем это стартапом. Мы для нашего виртуального музыкального артиста Livadies решили пойти другим путем. Мы задались вопросом: как звучит чистая мысль нейросети, если не переводить ее в текст? И как звучит математическая геометрия доисторического камня или кожи рептилии?
Чтобы это выяснить, нам пришлось вскрывать архитектуры SOTA-моделей и сшивать их напрямую на уровне тензоров. Вот два наших главных инженерных эксперимента.
Эксперимент 1: PaleoSonic Engine (Слушаем голую математику)
Задача: Заставить нейросеть сгенерировать звук макро-текстуры (например, куска янтаря) НАПРЯМУЮ, минуя текстовое описание.
Обычно пайплайн выглядит так: Image -> Text (LLM) -> Audio. Это долго, грязно и убивает суть картинки. Мы решили сделать прямой мост: Vision Latent -> Audio Latent.
Мы взяли зрительную кору от google/siglip-base-patch16-224 и генератор звука от facebook/musicgen-small. Обе модели мы перевели в формат bfloat16, чтобы они влезли в бесплатные 16 ГБ RAM на Hugging Face.
Магия сшивания:
Мы создали кастомный мост nn.Linear, который переводит 196 визуальных патчей картинки в 196 звуковых векторов. Но функция generate() в MusicGen защищена от чужих тензоров. Что мы сделали? Применили Monkey Patching.
Мы буквально на лету подменили оригинальный текстовый энкодер MusicGen на нашу функцию-троян:
Python
# Сохраняем оригинальный "мозг"
original_text_encoder = self.audio_decoder.text_encoder.forward
# Создаем класс-подделку
class VisualThoughts:
def __init__(self, hidden_states):
self.last_hidden_state = hidden_states
def __getitem__(self, idx):
return [self.last_hidden_state][idx]
def spoofed_text_encoder(*args, **kwargs):
# Подсовываем визуальные тензоры вместо текста!
return VisualThoughts(audio_conditioning)
# Заражаем генератор
self.audio_decoder.text_encoder.forward = spoofed_text_encoder
MusicGen “думал”, что читает 196 токенов текста, а на самом деле поглощал чистую геометрию пикселей.
Почему звук такой странный? Если вы зайдете в этот проект, вы услышите резкий, скрежещущий шум, похожий на модем из 90-х. Это необработанный математический звук. Наш тензорный мост заполнился случайными весами (random initialization), и мы не стали его дообучать. Вы слышите физическое столкновение двух архитектур: сырую, грубую трансляцию геометрии картинки в акустические волны без фильтров и прикрас. Это звук самой логики машины.
🔗 Попробовать: PaleoSonic_Engine на Hugging Face
Эксперимент 2: Neural-Analog Engine (Эмбиент из мыслей ИИ)
После первого эксперимента мы поняли: прямое сшивание дает концептуальный, но “грязный” звук. Мы решили сделать шаг в сторону изящества и вернуть звуку красоту, не теряя связи с ИИ.
Мы полностью выбросили нейросети, генерирующие аудио (типа MusicGen или AudioLDM). Вместо этого мы превратили LLM в виртуозного музыканта, который крутит ручки классического аналогового синтезатора (DSP).
Мы взяли открытую Qwen/Qwen2.5-1.5B-Instruct. Идея: пока модель генерирует текст по промпту (например, “Тишина замерзшей квантовой звезды”), мы с помощью PyTorch Forward Hooks вклиниваемся в ее 15-й слой (центр абстрактного мышления) и воруем значения активаций нейронов в реальном времени.
Python
neural_activations = []
# Функция-шпион для перехвата мыслей
def steal_thoughts_hook(module, input, output):
# Берем текущее состояние нейронов
current_thought = output[0].detach().cpu().to(torch.float32).numpy()
compressed_thought = np.mean(current_thought, axis=1)[0]
neural_activations.append(compressed_thought)
# Втыкаем "шприц" в 15-й слой Qwen
hook_handle = model.model.layers[15].register_forward_hook(steal_thoughts_hook)
Затем мы прогоняем эти сырые векторы через математический осциллятор (numpy + scipy.signal).
Почему этот звук такой приятный?
В отличие от первого проекта, здесь звук генерируется законами физики (чистые синусоиды, плавное затухание, математически точные фильтры). Нейросеть выступает лишь как дирижер. Изменение тональности, частота нот, сдвиги фаз — всё это модулируется буквальной пульсацией нейронов Qwen 2.5. Получился кристально чистый, кинематографичный Dark Ambient, где музыка — это процесс вычисления графов внимания.
🔗 Попробовать: Neural-Analog-Engine на Hugging Face
Зачем это все?
Вся эта архитектурная дичь была создана как экспериментальный baseline-инструментарий для виртуального артиста Livadies. Мы не хотим генерировать «попсу по кнопке». Мы исследуем, как звучит машинное подсознание и как слияние старого (аналоговый синтез/палео-текстуры) и нового (Latent Space) рождает искусство.
Залетайте в наши Спейсы, ломайте их, слушайте разницу между сырой математикой тензоров и кинематографичным DSP, управляемым мыслями LLM. Будем рады обсудить в комментах ваши способы изящного обхода защиты .generate().
Автор: Livadies


