felguk-audio.box Logo

GitHub Twitter

felguk-audio.box

Модель felguk-audio.box — это мощная модель для обработки аудиоданных, разработанная для задач классификации, генерации и анализа звуковых сигналов. Модель основана на архитектуре Transformer и обучена на большом наборе аудиоданных, что позволяет ей эффективно работать с различными типами звуков, включая музыку, речь и окружающие шумы.

Model Summary

Вот основные характеристики модели:

Характеристика Значение
Архитектура Transformer-based
Задачи Классификация аудио, генерация звука, анализ звуковых сигналов
Поддерживаемые типы аудио Музыка, речь, окружающие шумы
Обучение Предварительно обучена на большом наборе аудиоданных
Размер модели 300M параметров
Язык Многоязычная поддержка (английский, русский, другие языки)
Лицензия Apache 2.0

Chunked Long-Form Processing

Модель felguk-audio.box поддерживает обработку длинных аудиофайлов путем разбиения их на чанки (фрагменты). Это особенно полезно для задач, где входные аудиофайлы могут быть продолжительными (например, подкасты, лекции или музыкальные композиции).

Как это работает

  1. Разбиение на чанки:

    • Аудиофайл разделяется на перекрывающиеся фрагменты фиксированной длины (например, 10 секунд).
    • Перекрытие (overlap) между чанками помогает избежать потери контекста на границах фрагментов.
  2. Обработка каждого чанка:

    • Каждый чанк обрабатывается моделью независимо.
    • Результаты обработки (например, классификация или транскрипция) объединяются для получения финального результата.
  3. Агрегация результатов:

    • Для задач классификации результаты агрегируются путем усреднения или голосования.
    • Для задач транскрипции результаты объединяются с учетом перекрытий.

Пример кода

Вот как можно реализовать обработку длинных аудиофайлов:

import torchaudio
from transformers import AutoModelForAudioClassification, AutoFeatureExtractor

# Загрузка модели и feature extractor
model_name = "felguk-audio.box"
model = AutoModelForAudioClassification.from_pretrained(model_name)
feature_extractor = AutoFeatureExtractor.from_pretrained(model_name)

# Функция для разбиения аудио на чанки
def split_audio(waveform, sample_rate, chunk_length=10, overlap=2):
    chunk_size = int(chunk_length * sample_rate)
    step_size = int((chunk_length - overlap) * sample_rate)
    chunks = []
    for i in range(0, waveform.shape[1], step_size):
        chunk = waveform[:, i:i + chunk_size]
        if chunk.shape[1] < chunk_size:
            # Дополнение последнего чанка, если он короче
            padding = torch.zeros((1, chunk_size - chunk.shape[1]))
            chunk = torch.cat([chunk, padding], dim=1)
        chunks.append(chunk)
    return chunks

# Загрузка аудиофайла
audio_file = "long_audio.wav"
waveform, sample_rate = torchaudio.load(audio_file)

# Разбиение на чанки
chunks = split_audio(waveform, sample_rate, chunk_length=10, overlap=2)

# Обработка каждого чанка
results = []
for chunk in chunks:
    inputs = feature_extractor(chunk.squeeze().numpy(), sampling_rate=sample_rate, return_tensors="pt")
    with torch.no_grad():
        logits = model(**inputs).logits
    predicted_class_idx = logits.argmax(-1).item()
    results.append(model.config.id2label[predicted_class_idx])

# Агрегация результатов (например, голосование)
from collections import Counter
final_result = Counter(results).most_common(1)[0][0]
print(f"Final classification result: {final_result}")

Использование

Для использования модели felguk-audio.box в вашем проекте, выполните следующие шаги:

Установка зависимостей

Убедитесь, что у вас установлены необходимые библиотеки:

pip install torch transformers datasets

Загрузка модели

from transformers import AutoModelForAudioClassification, AutoFeatureExtractor
import torchaudio

# Загрузка модели и feature extractor
model_name = "felguk-audio.box"
model = AutoModelForAudioClassification.from_pretrained(model_name)
feature_extractor = AutoFeatureExtractor.from_pretrained(model_name)

# Загрузка аудиофайла
audio_file = "path_to_your_audio_file.wav"
waveform, sample_rate = torchaudio.load(audio_file)

# Преобразование аудио в формат, подходящий для модели
inputs = feature_extractor(waveform.squeeze().numpy(), sampling_rate=sample_rate, return_tensors="pt")

# Получение предсказаний
with torch.no_grad():
    logits = model(**inputs).logits

# Интерпретация результатов
predicted_class_idx = logits.argmax(-1).item()
print(f"Predicted class: {model.config.id2label[predicted_class_idx]}")
Пример использование модели
# Пример классификации аудио
audio_file = "example.wav"
waveform, sample_rate = torchaudio.load(audio_file)

inputs = feature_extractor(waveform.squeeze().numpy(), sampling_rate=sample_rate, return_tensors="pt")

with torch.no_grad():
    logits = model(**inputs).logits

predicted_class_idx = logits.argmax(-1).item()
print(f"Predicted class: {model.config.id2label[predicted_class_idx]}")
Обучение

Если вы хотите дообучить модель на своих данных,вы можете использовать этот код:

from datasets import load_dataset
from transformers import Trainer, TrainingArguments

# Загрузка датасета
dataset = load_dataset("your_audio_dataset")

# Определение TrainingArguments
training_args = TrainingArguments(
    output_dir="./results",
    evaluation_strategy="epoch",
    learning_rate=2e-5,
    per_device_train_batch_size=8,
    per_device_eval_batch_size=8,
    num_train_epochs=3,
    weight_decay=0.01,
)

# Инициализация Trainer
trainer = Trainer(
    model=model,
    args=training_args,
    train_dataset=dataset["train"],
    eval_dataset=dataset["test"],
)

# Обучение модели
trainer.train()

Deploy Space

Вы можете легко развернуть модель felguk-audio.box в Hugging Face Spaces с помощью Gradio или Streamlit. Вот пошаговое руководство:

Использование Gradio

  1. Установите Gradio:
pip install gradio

Создать app.py:

import gradio as gr
from transformers import AutoModelForAudioClassification, AutoFeatureExtractor
import torchaudio

# Загрузка модели и feature extractor
model_name = "felguk-audio.box"
model = AutoModelForAudioClassification.from_pretrained(model_name)
feature_extractor = AutoFeatureExtractor.from_pretrained(model_name)

# Функция для классификации аудио
def classify_audio(audio_file):
    waveform, sample_rate = torchaudio.load(audio_file)
    inputs = feature_extractor(waveform.squeeze().numpy(), sampling_rate=sample_rate, return_tensors="pt")
    with torch.no_grad():
        logits = model(**inputs).logits
    predicted_class_idx = logits.argmax(-1).item()
    return model.config.id2label[predicted_class_idx]

# Создание интерфейса Gradio
interface = gr.Interface(
    fn=classify_audio,
    inputs=gr.Audio(type="filepath"),
    outputs="text",
    title="felguk-audio.box: Audio Classification",
    description="Upload an audio file to classify it using the felguk-audio.box model."
)

# Запуск интерфейса
interface.launch()

Потом надо добавить requirements.txt:

torch
torchaudio
transformers
gradio

Gr load

Вы можете загрузить модель с помощью gr load:

import gradio as gr

# Загрузка модели через Hugging Face
model_interface = gr.load(
    "models/felguk-audio.box",  # Укажите путь к вашей модели
    title="felguk-audio.box: Audio Classification",
    description="Upload an audio file to classify it using the felguk-audio.box model."
)

# Запуск интерфейса
model_interface.launch()

Установка в LM Studio

LM Studio — это удобное приложение для локального запуска языковых моделей. Чтобы установить и использовать модель felguk-audio.box в LM Studio, выполните следующие шаги:

  1. Скачайте и установите LM Studio:

    • Перейдите на официальный сайт LM Studio.
    • Скачайте версию для вашей операционной системы (Windows, macOS, Linux).
    • Установите приложение.
  2. Загрузите модель в формате GGUF:

    • Убедитесь, что ваша модель felguk-audio.box доступна в формате GGUF. Если модель еще не конвертирована, используйте инструменты, такие как llama.cpp, для конвертации.
    • Загрузите файл модели (например, felguk-audio.box.gguf) на ваш компьютер.
  3. Добавьте модель в LM Studio:

    • Откройте LM Studio.
    • Перейдите на вкладку "Models".
    • Нажмите "Download a model" и выберите "From a file".
    • Укажите путь к файлу felguk-audio.box.gguf.
  4. Запустите модель:

    • После загрузки модели выберите её в списке.
    • Перейдите на вкладку "Chat".
    • Настройте параметры модели (например, температура, максимальная длина токенов).
    • Начните взаимодействие с моделью.

Пример использования

  1. Запустите LM Studio.
  2. Выберите модель felguk-audio.box из списка.
  3. Введите запрос в текстовое поле и нажмите Enter.
  4. Модель обработает запрос и вернёт ответ.

Примечания

  • Если модель не поддерживает формат GGUF, конвертируйте её с помощью инструментов, таких как llama.cpp.
  • Убедитесь, что ваш компьютер соответствует системным требованиям для запуска модели (например, наличие достаточного объема оперативной памяти и видеопамяти).

Теперь вы можете использовать модель felguk-audio.box локально через LM Studio! 🚀

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference API
Unable to determine this model’s pipeline type. Check the docs .