musicnn-pytorch / README.md
debuglevel's picture
Update README.md
42413d8 verified
---
license: apache-2.0
tags:
- audio
- music
- music-tagging
- pytorch
---
(Backup of https://huggingface.co/oriyonay/musicnn-pytorch)
# MusicNN-PyTorch
This is a PyTorch reimplementation of the [MusicNN](https://github.com/jordipons/musicnn) library for music audio tagging.
It contains the model architecture and converted weights from the original TensorFlow 1.x checkpoints.
## Supported Models
- `MTT_musicnn`: Trained on MagnaTagATune (50 tags) - **Default model**
- `MSD_musicnn`: Trained on Million Song Dataset (50 tags)
- `MSD_musicnn_big`: Larger version trained on MSD (512 filters)
## Super Simple Usage (Hugging Face Transformers)
```python
from transformers import AutoModel
# Load the model (downloads automatically)
model = AutoModel.from_pretrained("oriyonay/musicnn-pytorch", trust_remote_code=True)
# Use the model
tags = model.predict_tags("your_audio.mp3", top_k=5)
print(f"Top 5 tags: {tags}")
```
## Embeddings (Optional)
```python
from transformers import AutoModel
model = AutoModel.from_pretrained("oriyonay/musicnn-pytorch", trust_remote_code=True)
# Extract embeddings from any layer
emb = model.extract_embeddings("your_audio.mp3", layer="penultimate", pool="mean")
print(emb.shape)
```
## Colab Example
```python
# Install dependencies
!pip install transformers torch librosa soundfile
# Load with AutoModel
from transformers import AutoModel
model = AutoModel.from_pretrained("oriyonay/musicnn-pytorch", trust_remote_code=True)
# Use the model
tags = model.predict_tags("your_audio.mp3", top_k=5)
print(tags)
```
## Traditional Usage
If you prefer to download the code manually:
```python
from musicnn_torch import top_tags
# Get top 5 tags for an audio file
tags = top_tags('path/to/audio.mp3', model='MTT_musicnn', topN=5)
print(tags)
```
## Installation
```bash
pip install transformers torch librosa soundfile
```
## Credits
Original implementation by [Jordi Pons](https://github.com/jordipons).
PyTorch port by Gemini.