Спойлер: Никаких банальных ИИ-оберток, где текст конвертируется в звук через 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().
