Skip to main content

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:

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 in dist/.
  • pip install your local wheel version, and run pytest 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

frechet_audio_distance-0.1.2.tar.gz (19.9 kB view details)

Uploaded Source

Built Distribution

frechet_audio_distance-0.1.2-py3-none-any.whl (18.8 kB view details)

Uploaded Python 3

File details

Details for the file frechet_audio_distance-0.1.2.tar.gz.

File metadata

File hashes

Hashes for frechet_audio_distance-0.1.2.tar.gz
Algorithm Hash digest
SHA256 4ef25940818ee3d45a7c795db1149d838e10de38b5de89a794bbe39f13414716
MD5 41eb48bbdaaae900afe65b7da8d69322
BLAKE2b-256 e7ce14ebedea47a3c8f33ca8a9b96c556824850aebd736606de52d8ae9ebd08f

See more details on using hashes here.

File details

Details for the file frechet_audio_distance-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for frechet_audio_distance-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 dc742afb4f31bdee637aae22f2cd0a14d9a6fa6f75e5a20e5eeefdc9bcd0579c
MD5 c40ce1ef9e9d4d1b8029497d39a134e2
BLAKE2b-256 f6a39908fb80f234ebf772c65448f6de66b4ff8151331ad2971f4688d53cd23c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page