/ Модель

Характеристики

Параметры
113 млн
Лицензия
MIT
Архитектура
wav2vec2 · dense
Базовая модель
wav2vec2-base-960h
Опубликована
7 мар 2025

Musical-Instrument-Classification

Классификация текстаТекст → label3 профессии

Аудиоклассификатор на базе Wav2Vec2, определяющий один из девяти музыкальных инструментов в короткой записи.

140скачиваний за 30 дней2лайкавеса обновлены22 авг 2025

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

Bhaveen разработал модель для классификации музыкальных инструментов и дообучил её на базе facebook/wav2vec2-base-960h. Это аудиоклассификатор на архитектуре Wav2Vec2 с примерно 113,3 млн параметров, который относит запись к одному из девяти классов: акустическая гитара, бас-гитара, ударная установка, электрогитара, флейта, хай-хэт, клавишные, труба или скрипка. Модель принимает аудио и выдаёт метки классов с оценками вероятности; для обработки требуется частота дискретизации 16 кГц, а входные фрагменты приводятся к длине 3 секунды.

В README для тестовой выборки указаны точность 93,33% и макро ROC AUC 98,59%, но размер и состав данных ограничены: использовались 200 примеров на класс, поэтому эти результаты не гарантируют качество на других записях. Модель рассчитана на распознавание отдельного инструмента; смешанные записи, шум, иные варианты инструментов и манеры исполнения могут снижать точность. Лицензия — MIT.

Сценарии применения

  • определение музыкального инструмента в аудиофрагменте
  • автоматическая разметка одиночных инструментальных записей
  • сортировка аудиозаписей по типу инструмента

Ограничения

Модель обучена на ограниченном пользовательском наборе записей и ориентирована на один инструмент в клипе; смешанные звуки, шум и отличия записи могут ухудшать результат. Для оптимальной работы нужны фрагменты длиной около 3 секунд с частотой 16 кГц.

Для каких профессий подходит3

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

Musical Instrument Classification Model

This model is a fine-tuned version of facebook/wav2vec2-base-960h for musical instrument classification. It can identify 9 different musical instruments from audio recordings with high accuracy.

Model Description

  • Model type: Audio Classification
  • Base model: facebook/wav2vec2-base-960h
  • Language: Audio (no specific language)
  • License: MIT
  • Fine-tuned on: Custom musical instrument dataset (200 samples for each class)

Performance

The model achieves excellent performance on the evaluation set after 5 epochs of training:

  • Final Accuracy: 93.33%
  • Final ROC AUC (Macro): 98.59%
  • Final Validation Loss: 1.064
  • Evaluation Runtime: 14.18 seconds
  • Evaluation Speed: 25.39 samples/second

Training Progress

EpochTraining LossValidation LossROC AUCAccuracy
11.98721.88750.92480.6639
21.86521.47930.97990.8000
31.38681.23110.98610.8194
41.32421.11210.98270.9250
51.18691.06390.98590.9333

Supported Instruments

The model can classify the following 9 musical instruments:

  1. Acoustic Guitar
  2. Bass Guitar
  3. Drum Set
  4. Electric Guitar
  5. Flute
  6. Hi-Hats
  7. Keyboard
  8. Trumpet
  9. Violin

Usage

Quick Start with Pipeline

from transformers import pipeline
import torchaudio

# Load the classification pipeline
classifier = pipeline("audio-classification", model="Bhaveen/epoch_musical_instruments_identification_2")

# Load and preprocess audio
audio, rate = torchaudio.load("your_audio_file.wav")
transform = torchaudio.transforms.Resample(rate, 16000)
audio = transform(audio).numpy().reshape(-1)[:48000]

# Classify the audio
result = classifier(audio)
print(result)

Using Transformers Directly

from transformers import AutoFeatureExtractor, AutoModelForAudioClassification
import torchaudio
import torch

# Load model and feature extractor
model_name = "Bhaveen/epoch_musical_instruments_identification_2"
feature_extractor = AutoFeatureExtractor.from_pretrained(model_name)
model = AutoModelForAudioClassification.from_pretrained(model_name)

# Load and preprocess audio
audio, rate = torchaudio.load("your_audio_file.wav")
transform = torchaudio.transforms.Resample(rate, 16000)
audio = transform(audio).numpy().reshape(-1)[:48000]

# Extract features and make prediction
inputs = feature_extractor(audio, sampling_rate=16000, return_tensors="pt")
with torch.no_grad():
    outputs = model(**inputs)
    predictions = torch.nn.functional.softmax(outputs.logits, dim=-1)
    predicted_class = torch.argmax(predictions, dim=-1)

print(f"Predicted instrument: {model.config.id2label[predicted_class.item()]}")

Training Details

Dataset and Preprocessing

  • Custom dataset with audio recordings of 9 musical instruments
  • Train/Test Split: 80/20 using file numbering (files < 160 for training)
  • Data Balancing: Random oversampling applied to minority classes
  • Audio Preprocessing:
    • Resampling to 16,000 Hz
    • Fixed length of 48,000 samples (3 seconds)
    • Truncation of longer audio files

Training Configuration

# Training hyperparameters
batch_size = 1
gradient_accumulation_steps = 4
learning_rate = 5e-6
num_train_epochs = 5
warmup_steps = 50
weight_decay = 0.02

Model Architecture

  • Base Model: facebook/wav2vec2-base-960h
  • Classification Head: Added for 9-class classification
  • Parameters: ~95M trainable parameters
  • Features: Wav2Vec2 audio representations with fine-tuned classification layer

Technical Specifications

  • Audio Format: WAV files
  • Sample Rate: 16,000 Hz
  • Input Length: 3 seconds (48,000 samples)
  • Model Framework: PyTorch + Transformers
  • Inference Device: GPU recommended (CUDA)

Evaluation Metrics

The model uses the following evaluation metrics:

  • Accuracy: Standard classification accuracy
  • ROC AUC: Macro-averaged ROC AUC with one-vs-rest approach
  • Multi-class Classification: Softmax probabilities for all 9 instrument classes

Limitations and Considerations

  1. Audio Duration: Model expects exactly 3-second audio clips (truncates longer, may not work well with shorter)
  2. Single Instrument Focus: Optimized for single instrument classification, mixed instruments may produce uncertain results
  3. Audio Quality: Performance depends on audio quality and recording conditions
  4. Sample Rate: Input must be resampled to 16kHz for optimal performance
  5. Domain Specificity: Trained on specific instrument recordings, may not generalize to all variants or playing styles

Training Environment

  • Platform: Google Colab
  • GPU: CUDA-enabled device
  • Libraries:
    • transformers==4.28.1
    • torchaudio==0.12
    • datasets
    • evaluate
    • imblearn

Model Files

The repository contains:

  • Model weights and configuration
  • Feature extractor configuration
  • Training logs and metrics
  • Label mappings (id2label, label2id)

Model trained as part of a hackathon project

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · text-classification

Нельзя запустить

Для архитектуры wav2vec2 нет загрузчика под задачу text-classification.

Класс архитектуры
Wav2Vec2ForSequenceClassification
Ревизия весов
5c9f529

0 моделей