/ Модель

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

Параметры
403 млн
Лицензия
Apache 2.0
Архитектура
hubert · dense
Опубликована
25 июн 2024

hubert-large-turkish-speech-emotion-recognition

Классификация аудиоАудио → label3 профессии

Модель на основе HuBERT классифицирует эмоции в аудиозаписях турецкой речи.

95скачиваний за 30 дней5лайковвеса обновлены25 июн 2024

Бенчмарки

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

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

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

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

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

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

SeaBenSea представляет модель распознавания эмоций в турецкой речи на основе HuBERT. Она дообучена на наборе данных TurEV-DB и предназначена для классификации аудиозаписей речи по эмоциональным категориям. Модель использует архитектуру HuBERT с классификационной головой и содержит около 402,7 млн параметров.

В карточке приведены метрики для классов «злость», «спокойствие» и «радость»; также упомянуты ещё две строки таблицы, но их содержимое не раскрыто. Модель подходит для анализа эмоций в турецкой речи, однако карточка не описывает проверку на других наборах данных или устойчивость к отличающимся условиям записи. Лицензия — Apache 2.0.

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

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

Ограничения

Модель обучена на TurEV-DB для турецкой речи; качество на других языках и в иных условиях записи в карточке не описано. Полная таблица оценки недоступна.

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

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

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

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

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

Открыть на Hugging Face

Emotion Recognition in Turkish Speech using HuBERT

This HuBERT model is trained on TurEV-DB to achieve speech emotion recognition (SER) in Turkish.

How to use

Requirements

# requirement packages
!pip install git+https://github.com/huggingface/datasets.git
!pip install git+https://github.com/huggingface/transformers.git
!pip install torchaudio
!pip install librosa
!git clone https://github.com/SeaBenSea/HuBERT-SER.git

Prediction

import sys  
sys.path.insert(1, './HuBERT-SER/')
import torch
import torch.nn as nn
import torch.nn.functional as F
import torchaudio
from transformers import AutoConfig, Wav2Vec2FeatureExtractor
from src.models import Wav2Vec2ForSpeechClassification, HubertForSpeechClassification
model_name_or_path = "SeaBenSea/hubert-large-turkish-speech-emotion-recognition"

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
config = AutoConfig.from_pretrained(model_name_or_path)
feature_extractor = Wav2Vec2FeatureExtractor.from_pretrained(model_name_or_path)
sampling_rate = feature_extractor.sampling_rate

model = HubertForSpeechClassification.from_pretrained(model_name_or_path).to(device)
def speech_file_to_array_fn(path, sampling_rate):
    speech_array, _sampling_rate = torchaudio.load(path)
    resampler = torchaudio.transforms.Resample(_sampling_rate, sampling_rate)
    speech = resampler(speech_array).squeeze().numpy()
    return speech


def predict(path, sampling_rate):
    speech = speech_file_to_array_fn(path, sampling_rate)
    inputs = feature_extractor(speech, sampling_rate=sampling_rate, return_tensors="pt", padding=True)
    inputs = {key: inputs[key].to(device) for key in inputs}

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

    scores = F.softmax(logits, dim=1).detach().cpu().numpy()[0]
    outputs = [{"Emotion": config.id2label[i], "Score": f"{round(score * 100, 3):.1f}%"} for i, score in
               enumerate(scores)]
    return outputs
path = "../dataset/TurEV/Angry/1157_kz_acik.wav"
outputs = predict(path, sampling_rate)
outputs
[
  {'Emotion': 'Angry', 'Score': '99.8%'},
  {'Emotion': 'Calm', 'Score': '0.0%'},
  {'Emotion': 'Happy', 'Score': '0.1%'},
  {'Emotion': 'Sad', 'Score': '0.1%'}
]

Evaluation

The following tables summarize the scores obtained by model overall and per each class.

Emotionsprecisionrecallf1-scoreaccuracy
Angry0.970.990.98
Calm0.890.950.92
Happy0.980.930.95
Sad0.970.930.95
Overal0.95

Questions?

Post a Github issue from HERE.

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

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

GPU в ailist

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

Можно запустить

Подбираем GPU…

Класс архитектуры
HubertForSpeechClassification
Ревизия весов
a9576bf

0 моделей