This package is written for text-to-audio generation.
Project description
Text-to-Audio Generation
Generate speech, sound effects, music and beyond.
Important tricks to make your generated audio sound better
- Try to provide more hints to AudioLDM, such as using more adjectives to describe your sound (e.g., clearly, high quality) or make your target more specific (e.g., "water stream in a forest" instead of "stream"). This can make sure AudioLDM understand what you want.
- Try to use different random seeds, which can affect the generation quality significantly sometimes.
- It's best to use general terms like 'man' or 'woman' instead of specific names for individuals or abstract objects that humans may not be familiar with.
Change Log
2023-02-15: Add audio style transfer. Add more options on generation.
Web APP
- Prepare running environment
conda create -n audioldm python=3.8; conda activate audioldm
pip3 install audioldm
git clone https://github.com/haoheliu/AudioLDM; cd AudioLDM
- Start the web application (powered by Gradio)
python3 app.py
- A link will be printed out. Click the link to open the browser and play.
Commandline Usage
- Prepare running environment
# Optional
conda create -n audioldm python=3.8; conda activate audioldm
# Install AudioLDM
pip3 install audioldm
- text-to-audio generation
# Test run
audioldm -t "A hammer is hitting a wooden surface" # The default --mode is "generation"
- audio-to-audio style transfer
# Test run
# --file_path is the original audio file for transfer
# -t is the text AudioLDM uses for transfer.
# Please make sure that --file_path exist
audioldm --mode "transfer" --file_path trumpet.wav -t "Children Singing"
# Tune the value of --transfer_strength is important!
# --transfer_strength: A value between 0 and 1. 0 means original audio without transfer, 1 means completely transfer to the audio indicated by text
audioldm --mode "transfer" --file_path trumpet.wav -t "Children Singing" --transfer_strength 0.25
For more options on guidance scale, batchsize, seed, ddim steps, etc., please run
audioldm -h
usage: audioldm [-h] [--mode {generation,transfer}] [-t TEXT] [-f FILE_PATH] [--transfer_strength TRANSFER_STRENGTH] [-s SAVE_PATH] [-ckpt CKPT_PATH] [-b BATCHSIZE] [--ddim_steps DDIM_STEPS] [-gs GUIDANCE_SCALE]
[-dur DURATION] [-n N_CANDIDATE_GEN_PER_TEXT] [--seed SEED]
optional arguments:
-h, --help show this help message and exit
--mode {generation,transfer}
generation: text-to-audio generation; transfer: style transfer. DEFAULT "generation"
-t TEXT, --text TEXT Text prompt to the model for audio generation
-f FILE_PATH, --file_path FILE_PATH
Original audio file for style transfer
--transfer_strength TRANSFER_STRENGTH
A value between 0 and 1. 0 means original audio without transfer, 1 means completely transfer to the audio indicated by text. DEFAULT 0.5
-s SAVE_PATH, --save_path SAVE_PATH
The path to save model output. DEFAULT "./output"
-ckpt CKPT_PATH, --ckpt_path CKPT_PATH
The path to the pretrained .ckpt model. DEFAULT "~/.cache/audioldm/audioldm-s-full.ckpt"
-b BATCHSIZE, --batchsize BATCHSIZE
Generate how many samples at the same time. DEFAULT 1
--ddim_steps DDIM_STEPS
The sampling step for DDIM. DEFAULT 200
-gs GUIDANCE_SCALE, --guidance_scale GUIDANCE_SCALE
Guidance scale (Large => better relavancy to text; Small => better diversity). DEFAULT 2.5
-dur DURATION, --duration DURATION
The duration of the samples. DEFAULT 10
-n N_CANDIDATE_GEN_PER_TEXT, --n_candidate_gen_per_text N_CANDIDATE_GEN_PER_TEXT
Automatic quality control. This number control the number of candidates (e.g., generate three audios and choose the best to show you). A Larger value usually lead to better quality with heavier
computation. DEFAULT 3
--seed SEED Change this value (any integer number) will lead to a different generation result. DEFAULT 42
For the evaluation of audio generative model, please refer to audioldm_eval.
Web Demo
Integrated into Hugging Face Spaces 🤗 using Gradio. Try out the Web Demo
TODO
- Update the checkpoint with more training steps.
- Add AudioCaps finetuned AudioLDM-S model
- Build pip installable package for commandline use
- Build Gradio web application
- Add text-guided style transfer
- Add audio super-resolution
- Add audio inpainting
Cite this work
If you found this tool useful, please consider citing
@article{liu2023audioldm,
title={AudioLDM: Text-to-Audio Generation with Latent Diffusion Models},
author={Liu, Haohe and Chen, Zehua and Yuan, Yi and Mei, Xinhao and Liu, Xubo and Mandic, Danilo and Wang, Wenwu and Plumbley, Mark D},
journal={arXiv preprint arXiv:2301.12503},
year={2023}
}
Hardware requirement
- GPU with 8GB of dedicated VRAM
- A system with a 64-bit operating system (Windows 7, 8.1 or 10, Ubuntu 16.04 or later, or macOS 10.13 or later) 16GB or more of system RAM
Reference
Part of the code is borrowed from the following repos. We would like to thank the authors of these repos for their contribution.
We build the model with data from AudioSet, Freesound and BBC Sound Effect library. We share this demo based on the UK copyright exception of data for academic research.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for audioldm-0.0.11-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b65c7daaa9fe31d91c8a5a532bcb6e4cf89c6cbde0f8a3937097d579862dfb6a |
|
MD5 | d2035665185bfe35b03bbc79bced1c50 |
|
BLAKE2b-256 | be02784f1d5a264c8e7383a985a63c62138d562112991bcbc74eb28501b07182 |