Aniemore
Aniemore - это открытая библиотека искусственного интеллекта для потоковой аналитики эмоциональных оттенков речи человека.
Основные технические параметры
- Объем набора данных Russian Emotional Speech Dialogues содержит более 3000 аудиофрагментов представляющих 200 различных людей;
- Модели способны распознавать эмоции в зашумленных аудиофайлах длительностью в 3 секунды;
- Скорость обработки и ответа модели составляет не более 5 секунд;
- Пословная ошибка модели WER 30%;
- Совокупная точность модели 75%
- Диапазон распознавания эмоций: злость, отвращение, страх, счастье, интерес, грусть, нейтрально;
- Акустические возможности - 3 уровня.
Описание
Aniemore - это библиотека для Python, которая позволяет добавить в ваше программное обеспечение возможность определять эмоциональный фон речи человека, как в голосе, так и в тексте. Для этого в библиотеке разработано два соответсвующих модуля - Voice и Text.
Aniemore содержит свой собственный датасет RESD (Russian Emotional Speech Dialogues) и другие наборы данных разного объема, которые вы можете использовать для обучения своих моделей.
Датасет | Примечание |
---|---|
RESD | 7 эмоций, 4 часа аудиозаписей диалогов студийное качество |
RESD_Annotated | RESD + speech-to-text аннотации |
REPV | 2000 голосовых сообщений (.ogg), 200 актеров, 2 нейтральные фразы, 5 эмоций |
REPV-S | 140 голосовых сообщений (.ogg) "Привет, как дела?" с разными эмоциями |
Вы можете использовать готовые предобученные модели из библиотеки:
Показатели моделей в разрезе эмоций
Установка
pip install aniemore
Минимальные требования к оборудованию
Архитектура | ЦПУ | ОЗУ | SSD |
---|---|---|---|
Wave2Vec2 | 2 ядра | 8 ГБ | 40 ГБ |
WaveLM | 2 ядра | 8 ГБ | 40 ГБ |
Hubert | 2 ядра | 8 ГБ | 40 ГБ |
UniSpeechSAT | 2 ядра | 8 ГБ | 40 ГБ |
Bert_Tiny/Bert_Tiny2 | 2 ядра | 4 ГБ | 40 ГБ |
Bert_Base | 2 ядра | 4 ГБ | 40 ГБ |
Bert_Large | 2 ядра | 8 ГБ | 40 ГБ |
WavLM Bert Base | 2 ядра | 16 ГБ | 40 ГБ |
WavLM Bert Fusion | 2 ядра | 16 ГБ | 40 ГБ |
Whisper Tiny | 2 ядра | 4 ГБ | 40 ГБ |
Whisper Base | 2 ядра | 4 ГБ | 40 ГБ |
Whisper Small | 2 ядра | 4 ГБ | 40 ГБ |
Whisper Medium | 2 ядра | 8 ГБ | 40 ГБ |
Whisper Large | 2 ядра | 16 ГБ | 40 ГБ |
TextEnhancer | 2 ядра | 4 ГБ | 40 ГБ |
Пример использования
Ниже приведены простые примеры использования библиотеки. Для более детальных примеров, в том числе загрузка cобственной модели - смотрите сделанный для этого Google Colab
Распознавание эмоций в тексте
import torchfrom aniemore.recognizers.text import TextRecognizerfrom aniemore.models import HuggingFaceModel
model = HuggingFaceModel.Text.Bert_Tiny2device = 'cuda' if torch.cuda.is_available() else 'cpu'tr = TextRecognizer(model=model, device=device)
tr.recognize('это работает? :(', return_single_label=True)
Распознавание эмоций в голосе
import torchfrom aniemore.recognizers.voice import VoiceRecognizerfrom aniemore.models import HuggingFaceModel
model = HuggingFaceModel.Voice.WavLMdevice = 'cuda' if torch.cuda.is_available() else 'cpu'vr = VoiceRecognizer(model=model, device=device)vr.recognize('/content/ваш-звуковой-файл.wav', return_single_label=True)
Распознавание эмоций (мультимодальный метод)
import torchfrom aniemore.recognizers.multimodal import VoiceTextRecognizerfrom aniemore.utils.speech2text import SmallSpeech2Textfrom aniemore.models import HuggingFaceModel
model = HuggingFaceModel.MultiModal.WavLMBertFusions2t_model = SmallSpeech2Text()
text = SmallSpeech2Text.recognize('/content/ваш-звуковой-файл.wav').textdevice = 'cuda' if torch.cuda.is_available() else 'cpu'
vtr = VoiceTextRecognizer(model=model, device=device)vtr.recognize(('/content/ваш-звуковой-файл.wav', text), return_single_label=True)
Распознавание эмоций (мультимодальный метод с автоматическим распознаванием речи)
import torchfrom aniemore.recognizers.multimodal import MultiModalRecognizerfrom aniemore.utils.speech2text import SmallSpeech2Textfrom aniemore.models import HuggingFaceModel
model = HuggingFaceModel.MultiModal.WavLMBertFusiondevice = '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}}
Описание
Emotions recognition from audio and text files (only russian language)
Языки
Python