A lightweight library of Frechet Audio Distance calculation.
Project description
Frechet Audio Distance in PyTorch
A lightweight library of Frechet Audio Distance calculation.
Currently, we support embedding from:
VGGish
by S. Hershey et al.PANN
by Kong et al..
Installation
pip install frechet_audio_distance
Demo
from frechet_audio_distance import FrechetAudioDistance
# to use `vggish`
frechet = FrechetAudioDistance(
model_name="vggish",
use_pca=False,
use_activation=False,
verbose=False
)
# to use `PANN`
frechet = FrechetAudioDistance(
model_name="pann",
use_pca=False,
use_activation=False,
verbose=False
)
fad_score = frechet.score("/path/to/background/set", "/path/to/eval/set", dtype="float32")
When computing the Frechet Audio Distance, you can choose to save the embeddings for future use. This capability not only ensures consistency across evaluations but can also significantly reduce computation time, especially if you're evaluating multiple times using the same dataset.
# Specify the paths to your saved embeddings
background_embds_path = "/path/to/saved/background/embeddings.npy"
eval_embds_path = "/path/to/saved/eval/embeddings.npy"
# Compute FAD score while reusing the saved embeddings (or saving new ones if paths are provided and embeddings don't exist yet)
fad_score = frechet.score(
"/path/to/background/set",
"/path/to/eval/set",
background_embds_path=background_embds_path,
eval_embds_path=eval_embds_path,
dtype="float32"
)
Result validation
Test 1: Distorted sine waves on vggish (as provided here) [notes]
FAD scores comparison w.r.t. to original implementation in google-research/frechet-audio-distance
baseline vs test1 | baseline vs test2 | |
---|---|---|
google-research |
12.4375 | 4.7680 |
frechet_audio_distance |
12.7398 | 4.9815 |
Test 2: Distorted sine waves on PANN
baseline vs test1 | baseline vs test2 | |
---|---|---|
frechet_audio_distance |
0.000465 | 0.00008594 |
To contribute
- Run
python3 -m build
to build your version locally. The built wheel should be indist/
. pip install
your local wheel version, and runpytest test/
to validate your changes.
References
VGGish in PyTorch: https://github.com/harritaylor/torchvggish
Frechet distance implementation: https://github.com/mseitzer/pytorch-fid
Frechet Audio Distance paper: https://arxiv.org/abs/1812.08466
PANN paper: https://arxiv.org/abs/1912.10211
Project details
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
File details
Details for the file frechet_audio_distance-0.1.2.tar.gz
.
File metadata
- Download URL: frechet_audio_distance-0.1.2.tar.gz
- Upload date:
- Size: 19.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4ef25940818ee3d45a7c795db1149d838e10de38b5de89a794bbe39f13414716 |
|
MD5 | 41eb48bbdaaae900afe65b7da8d69322 |
|
BLAKE2b-256 | e7ce14ebedea47a3c8f33ca8a9b96c556824850aebd736606de52d8ae9ebd08f |
File details
Details for the file frechet_audio_distance-0.1.2-py3-none-any.whl
.
File metadata
- Download URL: frechet_audio_distance-0.1.2-py3-none-any.whl
- Upload date:
- Size: 18.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | dc742afb4f31bdee637aae22f2cd0a14d9a6fa6f75e5a20e5eeefdc9bcd0579c |
|
MD5 | c40ce1ef9e9d4d1b8029497d39a134e2 |
|
BLAKE2b-256 | f6a39908fb80f234ebf772c65448f6de66b4ff8151331ad2971f4688d53cd23c |