From Text to Sound: How Make-An-Audio Revolutionizes Audio Generation with Diffusion Models

From Text to Sound: How Make-An-Audio Revolutionizes Audio Generation with Diffusion Models

What is From Text to Sound: How Make-An-Audio Changes Audio Generation with Diffusion Models

Make-An-Audio is a research project and open-source toolkit that turns text, images, videos, or even other sounds into new audio. It uses a step-by-step noise-removal process called diffusion to build clean, high-quality sound that matches your prompt. You can use it to generate music-like textures, sound effects, voice-like sounds, and more.

From Text to Sound: How Make-An-Audio Revolutionizes Audio Generation with Diffusion Models

It also supports smart controls. You can fill in missing parts of a clip (audio inpainting), personalize results with a starter sound, and switch input types (X-to-Audio) with the same model. The team built it with PyTorch and shares ready-to-run models, so you can try it on your own machine with a GPU.

From Text to Sound: How Make-An-Audio Changes Audio Generation with Diffusion Models Overview

Here is a quick view of what the project offers.

ItemDetails
Project NameMake-An-Audio
TypeOpen-source research code (PyTorch)
PurposeGenerate audio from text, images, videos, or other audio (X-to-Audio)
Main FeaturesText-to-Audio, Audio Inpainting, Image-to-Audio, Video-to-Audio, Audio-to-Audio, Personalized prompts, Classifier-free guidance
InputsText prompts, Audio clips, Images, Videos
OutputWAV audio files (high-quality sound)
Core IdeasPrompt-enhanced diffusion, spectrogram autoencoder, CLAP embeddings
Pretrained ModelsMake-An-Audio checkpoint, BigVGAN vocoder, CLAP weights
HardwareNVIDIA GPU with CUDA and cuDNN recommended
Code BasePython, PyTorch
Demo Pagehttps://text-to-audio.github.io/

If you need a friendly primer on prompt-based sound tools, check our simple overview here: intro to text-to-audio.

From Text to Sound: How Make-An-Audio Changes Audio Generation with Diffusion Models Key Features

  • Text-to-Audio: Type a short line like “a bird chirps,” and get a fitting sound.
  • Image-to-Audio: Feed a picture and get a sound that matches what is shown.
  • Video-to-Audio: Add sound to videos by mapping frames to audio that fits the scene.
  • Audio Inpainting: Fix or fill missing parts of an audio clip with a natural result.
  • Audio-to-Audio: Use an input sound and prompt to steer the final style or content.
  • Personalized Generation: Keep a source sound’s “character” while changing scenes or styles.
  • Strong Prompt Control: Use guidance strength to balance faithfulness vs. variety.

From Text to Sound: How Make-An-Audio Changes Audio Generation with Diffusion Models Use Cases

  • Film and video: Create sound effects for scenes without a sound library.
  • Games: Build ambient loops, creature sounds, or quick prototypes.
  • Podcasts and radio: Fill background textures or transitions that match topics.
  • Education: Turn a picture or video into sound to aid learning and access.
  • Prototyping for artists: Explore ideas fast without recording sessions.

Performance & Showcases

Showcase 1 — Samples from the project These Samples show how the model responds to different prompts across types. You can hear variety while keeping clear links to the text or input.

Showcase 2 — Samples from the project These Samples highlight how the system produces clean sound with good detail. It also shows strong match between inputs and outputs.

Showcase 3 — Samples from the project These Samples cover more prompts and input styles. You can notice how the audio stays relevant to the scene.

Showcase 4 — Samples from the project These Samples include cases where motion or events change over time. The audio keeps up with the change.

Showcase 5 — Samples from the project These Samples test rare or busy scenes. The model still creates sound that fits the prompt.

Showcase 6 — Samples from the project These Samples wrap up the demo set and show steady quality. Prompts and outputs match well.

How It Works (Plain English)

The model starts with noise and slowly shapes it into sound that matches your input. It does this in many small steps, guided by your prompt and learned audio patterns. This helps it create clear and rich audio clips.

To make training easier, the team turns sounds into a picture-like view called a spectrogram. A special autoencoder works on these spectrograms, which are easier to model than raw waveforms. A separate module (CLAP) helps link text to audio, so prompts connect to the right sound.

The Technology Behind It

  • Prompt-Enhanced Diffusion: The model boosts prompt quality using extra steps that strengthen the link between text and sound.
  • Spectrogram Autoencoder: It predicts a compact sound picture, then a vocoder converts it back to a waveform.
  • CLAP Embeddings: It uses learned audio-text features to guide the model toward results that match the prompt.
  • Classifier-Free Guidance: You can turn a knob (scale) during inference to control how strongly the model follows your prompt.

If you also work with AI video, you may like this overview of modern tools: text to video methods.

From Text, Image, or Video to Sound

Make-An-Audio supports X-to-Audio, which means you can start from text, image, video, or audio. It can adapt to the input type while keeping prompt control. This helps with video dubbing, image sound design, and source-driven sound edits.

Samples

It can also fill gaps (audio inpainting) or reshape a sound with a light touch (audio-to-audio). For example, you can start with thunder and nudge it toward “a baby crying,” while keeping a feel of the original clip.

Installation & Setup (Getting Started)

Below are the exact steps and commands from the project so you can run it on a GPU machine.

Quick note:

  • You need an NVIDIA GPU with CUDA and cuDNN.
  • Pretrained files are required (see below).
  • Dependencies are listed in requirement.txt.

Support Datasets and Pretrained Models

Simply run following command to download the weights from Google drive. Download CLAP weights from Hugging Face.

Download:
 maa1_full.ckpt and put it into ./useful_ckpts 
 BigVGAN vocoder and put it into ./useful_ckpts 
 CLAP_weights_2022.pth and put it into ./useful_ckpts/CLAP

The directory structure should be:

useful_ckpts/
├── bigvgan
│ ├── args.yml
│ └── best_netG.pt
├── CLAP
│ ├── config.yml
│ └── CLAP_weights_2022.pth
└── maa1_full.ckpt

Inference with pretrained model

Generate your first sound from a text prompt (edit the text, length, and other options if you like):

python gen_wav.py --prompt "a bird chirps" --ddim_steps 100 --duration 10 --scale 3 --n_samples 1 --save_name "results"

Dataset Preparation (for training)

We can't provide the dataset download link for copyright issues. We provide the process code to generate melspec. Before training, we need to construct the dataset information into a tsv file, which includes name (id for each audio), dataset (which dataset the audio belongs to), audio_path (the path of .wav file),caption (the caption of the audio) ,mel_path (the processed melspec file path of each audio). We provide a tsv file of audiocaps test set: ./data/audiocaps_test.tsv as a sample.

Assume you have already got a tsv file to link each caption to its audio_path, which mean the tsv_file have "name","audio_path","dataset" and "caption" columns in it. To get the melspec of audio, run the following command, which will save mels in ./processed

python preprocess/mel_spec.py --tsv_path tmp.tsv --num_gpus 1 --max_duration 10

Train Variational Autoencoder

Assume we have processed several datasets, and save the .tsv files in data/*.tsv . Replace data.params.spec_dir_path with the data(the directory that contain tsvs) in the config file. Then we can train VAE with the following command. If you don't have 8 gpus in your machine, you can replace --gpus 0,1,...,gpu_nums

python main.py --base configs/train/vae.yaml -t --gpus 0,1,2,3,4,5,6,7

The training result will be save in ./logs/

Train Latent Diffusion

After Trainning VAE, replace model.params.first_stage_config.params.ckpt_path with your trained VAE checkpoint path in the config file. Run the following command to train Diffusion model

python main.py --base configs/train/diffusion.yaml -t --gpus 0,1,2,3,4,5,6,7

The training result will be save in ./logs/

Evaluation

Generate audiocaps samples:

python gen_wavs_by_tsv.py --tsv_path data/audiocaps_test.tsv --save_dir audiocaps_gen

Calculate FD,FAD,IS,KL: first install audioldm_eval and then run tests.

git clone git@github.com:haoheliu/audioldm_eval.git

Then test with:

python scripts/test.py --pred_wavsdir {the directory that saves the audios you generated} --gt_wavsdir {the directory that saves audiocaps test set waves}

Calculate Clap_score:

python wav_evaluation/cal_clap_score.py --tsv_path {the directory that saves the audios you generated}/result.tsv

X-To-Audio (Audio-to-Audio)

Run Audio2Audio with an init sound and prompt:

python scripts/audio2audio.py --prompt "a bird chirping" --strength 0.3 --init-audio sample.wav --ckpt useful_ckpts/maa1_full.ckpt --vocoder_ckpt useful_ckpts/bigvgan --config configs/text_to_audio/txt2audio_args.yaml --outdir audio2audio_samples

Tip: Dependencies are listed in requirement.txt (install those to match your system). For help comparing text-to-audio tools and workflows, see our short note on the Goku video generation project and how sound pairs with s.

Why This Project Stands Out

  • One system for many inputs: text, image, video, or audio.
  • Strong prompt control so you can get closer to the sound in your head.
  • Open-source code and checkpoints to test and learn.

FAQ

Do I need a GPU to run Make-An-Audio?

You should use a machine with an NVIDIA GPU, CUDA, and cuDNN for best speed. CPU-only runs are not advised for this project.

How do I get the required checkpoints?

Follow the download notes above and place files exactly in the shown folders. The code blocks list the Make-An-Audio checkpoint, BigVGAN vocoder, and CLAP weights and their target paths.

Can I train on my own data?

Yes, but you must build a TSV file that lists audio paths and captions. Then create mel spectrograms and run the VAE and diffusion training commands shown in the setup section.

If you want a quick tour of prompt-to-sound tools for beginners, see this short piece: helpful text-to-audio guide. For adding sound to motion content, here is a brief overview of modern text to video tools.

Image source: From Text to Sound: How Make-An-Audio Audio Generation with Diffusion Models