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

Список функций
- Поддержка нескольких входов для генерации аудио: вы можете использовать текст, видео, изображения или аудио для генерации соответствующего аудио или музыки.
- Управление на естественном языке: настройка содержания или стиля звука с помощью текстовых описаний, например, "легкая фортепианная музыка".
- Высококачественный выход: качество генерируемого аудио и музыкального звука высокое и приближено к профессиональному уровню.
- Унифицированная мультимодальная обработка: способность одновременно обрабатывать различные типы входных данных и генерировать последовательные результаты.
- Ресурсы с открытым исходным кодом: полный код, предварительно обученные модели и наборы данных доступны для облегчения вторичной разработки.
- Встроенная поддержка демонстраций: интерактивный интерфейс через Gradio для удобного тестирования функций.
Использование помощи
AudioX требует некоторых знаний в области программирования и подходит для пользователей с опытом работы с Python. Ниже приведено подробное руководство по установке и использованию, которое поможет вам начать работу.
Процесс установки
- Код загрузки
Клонируйте репозиторий AudioX, введя в терминале следующую команду:
git clone https://github.com/ZeyueT/AudioX.git
Затем перейдите в каталог проекта:
cd AudioX
- Создание среды
Для работы AudioX требуется Python 3.8.20. Используйте Conda для создания виртуальной среды:
conda create -n AudioX python=3.8.20
Активируйте окружающую среду:
conda activate AudioX
- Установка зависимостей
Установите библиотеки, необходимые для проекта:
pip install git+https://github.com/ZeyueT/AudioX.git
Снова установите инструменты обработки звука:
conda install -c conda-forge ffmpeg libsndfile
- Загрузите предварительно обученную модель
Создайте папку с моделью:
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
- Проверка установки
Проверьте, что окружающая среда в норме:
python -c "import audiox; print('AudioX installed successfully')"
Если сообщения об ошибке нет, значит, установка прошла успешно.
Основные функции
AudioX поддерживает различные задачи генерации, включая преобразование текста в аудио (T2A), видео в музыку (V2M) и так далее. Ниже приведен конкретный метод работы.
Генерация аудио из текста
- Создайте файл Python, например
text_to_audio.py
. - Введите следующий код:
from audiox import AudioXModel
model = AudioXModel.load("model/model.ckpt", "model/config.json")
text = "敲击键盘的声音"
audio = model.generate(text=text)
audio.save("keyboard.wav")
- Запустите скрипт:
python text_to_audio.py
- Созданное аудио сохраняется в формате
keyboard.wav
Вы можете проверить эффект с помощью плеера.
Создание музыки из видео
- Подготовьте видеофайл, например
sample.mp4
. - Создание сценариев
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")
- Бег:
python video_to_music.py
- Созданная музыка сохраняется как
video_music.wav
.
Запустите локальную демонстрацию Gradio
- Введите его в терминал:
python3 run_gradio.py --model-config model/config.json --share
- После выполнения команды будет сгенерирована локальная ссылка (например, http://127.0.0.1:7860). Откройте ссылку, и вы сможете протестировать AudioX через веб-интерфейс.
- Введите текст (например, "Музыка для фортепиано и скрипки") или загрузите видео на интерфейс и нажмите кнопку Generate, чтобы услышать результат.
Пример сценарного рассуждения
Для решения более сложных задач генерации официально предоставляется подробный сценарий рассуждений:
- Создание документов
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)
- Бег:
python generate.py
- Созданное аудио сохраняется в формате
output.wav
.
Пример конфигурации
Ниже приведены входные конфигурации для различных задач:
- Текст в аудио::
text="敲击键盘的声音"
,video=None
- Видео в музыку::
video="sample.mp4"
,text="为视频生成音乐"
- смешанный ввод::
video="sample.mp4"
,text="海浪声和笑声"
предостережение
- Графические процессоры значительно увеличивают скорость генерации и рекомендуются к использованию.
- Формат видео должен быть mp4, а аудио - wav.
- Убедитесь, что ваша сеть стабильна, загрузка модели может занять несколько минут.
сценарий применения
- музыкальная композиция
Введите текстовое описание, например "грустная мелодия для скрипки", чтобы быстро сгенерировать музыкальный клип. - Видеосаундтрек
Загрузите видео, чтобы создать подходящую фоновую музыку или звуковые эффекты. - исследования и разработки (R&D)
Совершенствование методов генерации звука с использованием открытого кода и наборов данных.
QA
- Поддерживает ли он китайский язык?
Да, он поддерживает китайский ввод, например, "легкая фортепианная музыка". - Сколько места требуется для хранения?
Код и модель занимают около 2-3 ГБ, а полный набор данных требует еще несколько десятков ГБ. - Сколько времени требуется для генерации?
От нескольких секунд до минуты на GPU, CPU может занять несколько минут.
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...