AudioBox
Выложила мета модель для генерации речи и звуков, ну и звуков на фоне речи. Та и чтобы с хорошей настройкой.
0️⃣ В чем цель?
Уйти от modality-specific части, когда генерится только музыка/речь/звуки.
NON-Autoregressive generative model - генери не по одному токену/элементу, это необходимо для быстрого инференса)
1️⃣Как работает?
Для этого используется conditional-flow matching алгоритм (p.6, background) (
статья). Его работа похожа на диффузии (
введение на русском)
Спасибо Леше за помощь 🙌🏻
x0 - какое-то априорное пространство
x1 - какое-то сложное постериорное пространство (для нас какие-то эмбеддинги или спектрограммы)
t - шаг трансформации
Наша flow matching модель должна из x0 перейти в x1 с помощью предсказывания изменений на t шаге трансформации. К этому классическому пайплайну был добавлен метод Lipman'а 2023 года, где для более простого/эффективного обучения и помощи модели в простраивании пути от x0 к x1 мы добавляем Optimal Paths.
лекция
И тут начинается самый экшен:
- masked audio - максированное аудио
- z transcript embedding aligned текстовые транскрипты прогоняем через линейный слой
- аудио тащим через Encodec (о нем в
этом посте), к нему добавляем шум и маски, конкатим по каналам, все через линейный слой
- эмбеддинг транскрипта и аудио конактим
- перчим sinusoidal embedding наконец по временной dimension
- запускаем в transformer 2017
2️⃣ Какой претрейн? Он не поменялся с
Voice Box - это self-supervised infilling objective - BERT на максималках
3️⃣Но мы же не про TTS тут говорим? (глава 6)
Да, поэтому мы возьмем caption descriptions типо (the wind is blowing), прогоним его через T5. В трансформере все attention поменяем на cross attention, keys and values - text embeddings. Также и будем делать с voice prompt.
4️⃣А что с voice prompt? (глава 7)
Он нужен, чтобы описать хар-и голоса (age, accent, emotion). Если не прокидывать аудио промт, а делать описание речи, то задача становится похожа на TTA (Text-to-audio). Тут для валидации предлагают Joint-CLAP - две ветки на аудио и на текст и учим их через contrastive loss. Для звука у нас WavLM, для текста RoBERTa. А вот где брать сами промты?
🌈LLaMa
🌈 прикиньте и здесь она
Достают классификаторами или из metadata age, gender, audio quality, pitch, speaking rate, accent, emotion, environment и просят LLM сделать caption. Например,
"Young man is angry. Audio is okay, small place. Accent from South Asia. Speaks normal" (если честно, листая примеры на сайте, я подумала - ну точно llm, а потом читаю статью и это реально она) Ну и без human annotation не обошлось. А дальше (как я поняла) прокидываем также как и в TTA (text to audio)
Как оно все звучит? Примеры внизу
👇🏻
#grokaem_audio
ПОИГРАТЬСЯ С ГЕНЕРАЦИЕЙ БЕЗ РЕГИСТРАЦИИ И СМС (но с vpn)