AudioX: генерация аудио и музыки из текста, изображений и видео.

Общее введение

AudioX - это проект с открытым исходным кодом на GitHub, созданный Зейюэ Тианом и др. Официальная статья опубликована на arXiv (№ 2503.10522). Проект основан на технологии Diffusion Transformer, которая позволяет генерировать высококачественное аудио и музыку из различных входных данных, таких как текст, видео, изображения, аудио и т. д. AudioX уникален тем, что он не только поддерживает один вход, но и объединяет обработку мультимодальных данных и генерирует результаты с помощью управления естественным языком. Проект предоставляет два набора данных: vggsound-caps (190 000 аудиоописаний) и V2M-caps (6 000 000 музыкальных описаний), которые решают проблему недостаточного количества обучающих данных. AudioX предоставляет открытый исходный код и предварительно обученные модели для разработчиков, исследователей и создателей.

AudioX:参考文本、图像、视频生成音频和音乐

 

Список функций

  • Поддержка нескольких входов для генерации аудио: вы можете использовать текст, видео, изображения или аудио для генерации соответствующего аудио или музыки.
  • Управление на естественном языке: настройка содержания или стиля звука с помощью текстовых описаний, например, "легкая фортепианная музыка".
  • Высококачественный выход: качество генерируемого аудио и музыкального звука высокое и приближено к профессиональному уровню.
  • Унифицированная мультимодальная обработка: способность одновременно обрабатывать различные типы входных данных и генерировать последовательные результаты.
  • Ресурсы с открытым исходным кодом: полный код, предварительно обученные модели и наборы данных доступны для облегчения вторичной разработки.
  • Встроенная поддержка демонстраций: интерактивный интерфейс через Gradio для удобного тестирования функций.

 

Использование помощи

AudioX требует некоторых знаний в области программирования и подходит для пользователей с опытом работы с Python. Ниже приведено подробное руководство по установке и использованию, которое поможет вам начать работу.

Процесс установки

  1. Код загрузки
    Клонируйте репозиторий AudioX, введя в терминале следующую команду:
git clone https://github.com/ZeyueT/AudioX.git

Затем перейдите в каталог проекта:

cd AudioX
  1. Создание среды
    Для работы AudioX требуется Python 3.8.20. Используйте Conda для создания виртуальной среды:
conda create -n AudioX python=3.8.20

Активируйте окружающую среду:

conda activate AudioX
  1. Установка зависимостей
    Установите библиотеки, необходимые для проекта:
pip install git+https://github.com/ZeyueT/AudioX.git

Снова установите инструменты обработки звука:

conda install -c conda-forge ffmpeg libsndfile
  1. Загрузите предварительно обученную модель
    Создайте папку с моделью:
mkdir -p model

Загрузите модели и файлы конфигурации:

wget https://huggingface.co/HKUSTAudio/AudioX/resolve/main/model.ckpt -O model/model.ckpt
wget https://huggingface.co/HKUSTAudio/AudioX/resolve/main/config.json -O model/config.json
  1. Проверка установки
    Проверьте, что окружающая среда в норме:
python -c "import audiox; print('AudioX installed successfully')"

Если сообщения об ошибке нет, значит, установка прошла успешно.

Основные функции

AudioX поддерживает различные задачи генерации, включая преобразование текста в аудио (T2A), видео в музыку (V2M) и так далее. Ниже приведен конкретный метод работы.

Генерация аудио из текста

  1. Создайте файл Python, например text_to_audio.py.
  2. Введите следующий код:
from audiox import AudioXModel
model = AudioXModel.load("model/model.ckpt", "model/config.json")
text = "敲击键盘的声音"
audio = model.generate(text=text)
audio.save("keyboard.wav")
  1. Запустите скрипт:
python text_to_audio.py
  1. Созданное аудио сохраняется в формате keyboard.wavВы можете проверить эффект с помощью плеера.

Создание музыки из видео

  1. Подготовьте видеофайл, например sample.mp4.
  2. Создание сценариев video_to_music.pyВход:
from audiox import AudioXModel
model = AudioXModel.load("model/model.ckpt", "model/config.json")
audio = model.generate(video="sample.mp4", text="为视频生成音乐")
audio.save("video_music.wav")
  1. Бег:
python video_to_music.py
  1. Созданная музыка сохраняется как video_music.wav.

Запустите локальную демонстрацию Gradio

  1. Введите его в терминал:
python3 run_gradio.py --model-config model/config.json --share
  1. После выполнения команды будет сгенерирована локальная ссылка (например, http://127.0.0.1:7860). Откройте ссылку, и вы сможете протестировать AudioX через веб-интерфейс.
  2. Введите текст (например, "Музыка для фортепиано и скрипки") или загрузите видео на интерфейс и нажмите кнопку Generate, чтобы услышать результат.

Пример сценарного рассуждения

Для решения более сложных задач генерации официально предоставляется подробный сценарий рассуждений:

  1. Создание документов generate.pyВход:
import torch
from stable_audio_tools import get_pretrained_model, generate_diffusion_cond
device  `Truncated`torch.torch.torch.torch.torch.torch.torch.torch.torch_torch.torch.torch_torch.torch.torch
device = "cuda" if torch.cuda.is_available() else "cpu"
model, config = get_pretrained_config("HKUSTAudio/AudioX")
model = model.to(device)
sample_rate = config["sample_rate"]
sample_size = config["sample_size"]
video_path = "sample.mp4"
text_prompt = "为视频生成钢琴音乐"
conditioning = [{"video_prompt": [read_video(video_path, 0, 10, config["video_fps"]).unsqueeze(0)],
"text_prompt": text_prompt,
"seconds_start": 0,
"seconds_total": 10}]
output = generate_diffusion_cond(model, steps=250, cfg_scale=7, conditioning=conditioning, sample_size=sample_size, device=device)
output = output.to(torch.float32).div(torch.max(torch.abs(output))).clamp(-1, 1).mul(32767).to(torch.int16).cpu()
torchaudio.save("output.wav", output, sample_rate)
  1. Бег:
python generate.py
  1. Созданное аудио сохраняется в формате output.wav.

Пример конфигурации

Ниже приведены входные конфигурации для различных задач:

  • Текст в аудио::text="敲击键盘的声音"video=None
  • Видео в музыку::video="sample.mp4"text="为视频生成音乐"
  • смешанный ввод::video="sample.mp4"text="海浪声和笑声"

предостережение

  • Графические процессоры значительно увеличивают скорость генерации и рекомендуются к использованию.
  • Формат видео должен быть mp4, а аудио - wav.
  • Убедитесь, что ваша сеть стабильна, загрузка модели может занять несколько минут.

 

сценарий применения

  1. музыкальная композиция
    Введите текстовое описание, например "грустная мелодия для скрипки", чтобы быстро сгенерировать музыкальный клип.
  2. Видеосаундтрек
    Загрузите видео, чтобы создать подходящую фоновую музыку или звуковые эффекты.
  3. исследования и разработки (R&D)
    Совершенствование методов генерации звука с использованием открытого кода и наборов данных.

 

QA

  1. Поддерживает ли он китайский язык?
    Да, он поддерживает китайский ввод, например, "легкая фортепианная музыка".
  2. Сколько места требуется для хранения?
    Код и модель занимают около 2-3 ГБ, а полный набор данных требует еще несколько десятков ГБ.
  3. Сколько времени требуется для генерации?
    От нескольких секунд до минуты на GPU, CPU может занять несколько минут.
© заявление об авторских правах

Похожие статьи

Нет комментариев

Вы должны войти в систему, чтобы участвовать в комментариях!
Войти сейчас
нет
Нет комментариев...