Aniemore

Форк
0

README.md

Aniemore Logo

Aniemore - это открытая библиотека искусственного интеллекта для потоковой аналитики эмоциональных оттенков речи человека.

Open In Colab

PyPI version PyPI - Python Version PyPI - Wheel PyPI - License PyPI - Status Downloads CodeQL Bandit

Основные технические параметры

  • Объем набора данных Russian Emotional Speech Dialogues содержит более 3000 аудиофрагментов представляющих 200 различных людей;
  • Модели способны распознавать эмоции в зашумленных аудиофайлах длительностью в 3 секунды;
  • Скорость обработки и ответа модели составляет не более 5 секунд;
  • Пословная ошибка модели WER 30%;
  • Совокупная точность модели 75%
  • Диапазон распознавания эмоций: злость, отвращение, страх, счастье, интерес, грусть, нейтрально;
  • Акустические возможности - 3 уровня.

Описание

Aniemore - это библиотека для Python, которая позволяет добавить в ваше программное обеспечение возможность определять эмоциональный фон речи человека, как в голосе, так и в тексте. Для этого в библиотеке разработано два соответсвующих модуля - Voice и Text.

Aniemore содержит свой собственный датасет RESD (Russian Emotional Speech Dialogues) и другие наборы данных разного объема, которые вы можете использовать для обучения своих моделей.

ДатасетПримечание
RESD7 эмоций, 4 часа аудиозаписей диалогов студийное качество
RESD_AnnotatedRESD + speech-to-text аннотации
REPV2000 голосовых сообщений (.ogg), 200 актеров, 2 нейтральные фразы, 5 эмоций
REPV-S140 голосовых сообщений (.ogg) "Привет, как дела?" с разными эмоциями

Вы можете использовать готовые предобученные модели из библиотеки:

МодельТочность
Голосовые модели
wav2vec2-xlsr-53-russian-emotion-recognition73%
wav2vec2-emotion-russian-resd75%
wavlm-emotion-russian-resd82%
hubert-emotion-russian-resd75%
unispeech-sat-emotion-russian-resd Copied72%
wavlm-bert-base81%
wavlm-bert-fusion83%
Текстовые модели
rubert-base-emotion-russian-cedr-m774%
rubert-tiny2-russian-emotion-detection85%
rubert-large-emotion-russian-cedr-m776%
rubert-tiny-emotion-russian-cedr-m772%

Показатели моделей в разрезе эмоций

показатели моделей.jpg

Установка

pip install aniemore

Минимальные требования к оборудованию

АрхитектураЦПУОЗУSSD
Wave2Vec22 ядра8 ГБ40 ГБ
WaveLM2 ядра8 ГБ40 ГБ
Hubert2 ядра8 ГБ40 ГБ
UniSpeechSAT2 ядра8 ГБ40 ГБ
Bert_Tiny/Bert_Tiny22 ядра4 ГБ40 ГБ
Bert_Base2 ядра4 ГБ40 ГБ
Bert_Large2 ядра8 ГБ40 ГБ
WavLM Bert Base2 ядра16 ГБ40 ГБ
WavLM Bert Fusion2 ядра16 ГБ40 ГБ
Whisper Tiny2 ядра4 ГБ40 ГБ
Whisper Base2 ядра4 ГБ40 ГБ
Whisper Small2 ядра4 ГБ40 ГБ
Whisper Medium2 ядра8 ГБ40 ГБ
Whisper Large2 ядра16 ГБ40 ГБ
TextEnhancer2 ядра4 ГБ40 ГБ

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

Ниже приведены простые примеры использования библиотеки. Для более детальных примеров, в том числе загрузка cобственной модели - смотрите сделанный для этого Google Colab

Open In Colab

Распознавание эмоций в тексте

import torch
from aniemore.recognizers.text import TextRecognizer
from aniemore.models import HuggingFaceModel
model = HuggingFaceModel.Text.Bert_Tiny2
device = 'cuda' if torch.cuda.is_available() else 'cpu'
tr = TextRecognizer(model=model, device=device)
tr.recognize('это работает? :(', return_single_label=True)

Распознавание эмоций в голосе

import torch
from aniemore.recognizers.voice import VoiceRecognizer
from aniemore.models import HuggingFaceModel
model = HuggingFaceModel.Voice.WavLM
device = 'cuda' if torch.cuda.is_available() else 'cpu'
vr = VoiceRecognizer(model=model, device=device)
vr.recognize('/content/ваш-звуковой-файл.wav', return_single_label=True)

Распознавание эмоций (мультимодальный метод)

import torch
from aniemore.recognizers.multimodal import VoiceTextRecognizer
from aniemore.utils.speech2text import SmallSpeech2Text
from aniemore.models import HuggingFaceModel
model = HuggingFaceModel.MultiModal.WavLMBertFusion
s2t_model = SmallSpeech2Text()
text = SmallSpeech2Text.recognize('/content/ваш-звуковой-файл.wav').text
device = 'cuda' if torch.cuda.is_available() else 'cpu'
vtr = VoiceTextRecognizer(model=model, device=device)
vtr.recognize(('/content/ваш-звуковой-файл.wav', text), return_single_label=True)

Распознавание эмоций (мультимодальный метод с автоматическим распознаванием речи)

import torch
from aniemore.recognizers.multimodal import MultiModalRecognizer
from aniemore.utils.speech2text import SmallSpeech2Text
from aniemore.models import HuggingFaceModel
model = HuggingFaceModel.MultiModal.WavLMBertFusion
device = 'cuda' if torch.cuda.is_available() else 'cpu'
mr = MultiModalRecognizer(model=model, s2t_model=SmallSpeech2Text(), device=device)
mr.recognize('/content/ваш-звуковой-файл.wav', return_single_label=True)

Доп. ссылки

Все модели и датасеты, а так же примеры их использования вы можете посмотреть в нашем HuggingFace профиле

Аффилированость

Aniemore (Artem Nikita Ilya EMOtion REcognition)

Разработка открытой библиотеки произведена коллективом авторов на базе ООО "Социальный код". Результаты работы получены за счет гранта Фонда содействия развитию малых форм предприятий в научно-технической сфере (Договор №1ГУКодИИС12-D7/72697 от 22.12.2021).

Цитирование

Для цитировация воспользуйтесь пунктом Cite this repository в правом меню About этого проекта, или скопируйте информацию ниже:

@software{Lubenets_Aniemore,
author = {Lubenets, Ilya and Davidchuk, Nikita and Amentes, Artem},
license = {MIT},
title = {{Aniemore}},
url = {https://github.com/aniemore/Aniemore}
}

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

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.