Voice Personification — это отдельный модуль для распознавания пользователя по голосу, ориентированный на интеграцию в LLM, чат-боты, образовательные платформы и другие ИИ-сервисы.
Наша система поддерживает короткие аудио (от 2 секунд), сложные акустические условия и многопользовательские сценарии.
git clone git@github.com:SpeakerRecognizer/VoicePersonification.git
cd VoicePersonification
⚠️ Если у вас не установлен
git, установите его с официального сайта
⚠️ Если вы не настроили SSH-ключ для GitHub, вот инструкция
conda create --prefix ./envs/python3.8 python=3.8 pip
⚠️ Если у вас не установлена
conda, установите ее с официального сайта Miniconda
⚡ Альтернатива: Mamba
Затем активируйте окружение:
conda activate ./envs/python3.8
conda install pytorch==2.2.2 torchvision==0.17.2 torchaudio==2.2.2 pytorch-cuda=12.1 -c pytorch -c nvidia
python3 -m pip install -r requirements/requirements.dev.txt
Теперь проект готов к использованию 🚀
Скачайте и подготовьте датасет VoxCeleb1:
bash scripts/download_and_preprocess_data.sh data/download_data data/raw_data data/scp data/protocols
После выполнения скрипта вы получите:
data/download_data/ — архивы и протоколыdata/raw_data/ — распакованные аудиоdata/scp/ — файлы wav.scp и utt2spkdata/protocols/ — протоколы для тестовЗапустите тест на подготовленных данных:
# Подготовка разметки детектором речи
export CUDA_VISIBLE_DEVICES=0;
export HF_TOKEN_BROUHAHA="YOUR HUGGINGFACE_TOKEN"; # Токен доступа для модели brouhaha, ниже описано как его получить
python -m VoicePersonification.main \
-cp=../experiments/brouhaha_vad \
-cn=predict
# Верификация диктора по протоколу
python -m VoicePersonification.main \
-cp=../experiments/ecapa-tdnn \
-cn=test
Для получения доступа к модели brouhaha (HF_TOKEN_BROUHAHA), необходимо авторизироваться на HuggingFace и перейти на страницу. Заполнить поля ("Company/university", "Website", "I plan to use this model for (task, type of audio data, etc)"), после чего в личном кабинете появится access token.
Вместо
ecapa-tdnnукажите нужную модель:
experiments/itmo_personification_model_large,experiments/itmo_personification_model_fast,experiments/itmo_personification_model_segmentation, и т.д.
В результаты работы скрипта будет выведено качество работы алгоритма на выбранном датасете (EER, порог EER):
────────────────────────────────────────────────
Test metric DataLoader 0
────────────────────────────────────────────────
EER 1.27
Thr 0.31
────────────────────────────────────────────────
| Название модели | Особенности | Архитектура | Размер |
|---|---|---|---|
itmo_personification_model_large | Основная модель с высокой точностью и устойчивостью; использует SSL-предобучение | wav2vec-BERT | 203 |
itmo_personification_model_fast | Лёгкая и быстрая модель для верификации | Next-TDNN | 17.1 |
itmo_personification_model_segmentation | Позволяет точно выделять участки речи отдельных говорящих для улучшения верификации | Whisper | 24.9 |
ecapa-tdnn baseline | Бейзлайн-модель для сравнения | ECAPA-TDNN | 22.2 |
Сравнение проводилось по метрике EER (Equal Error Rate, %)
| Модель | VoxCeleb1 | Voices | NIST SRE 2016 | NIST SRE 2019 |
|---|---|---|---|---|
itmo personification model large | 0.71 | 4.36 | 10.23 | 9.35 |
itmo personification model fast | 5.42 | 9.75 | 1.72 | 5.86 |
itmo personification model segmentation | 3.56 | 6.09 | 19.07 | 16.33 |
ecapa-tdnn baseline | 1.27 | 6.74 | 18.77 | 16.12 |
notebooks/verification-tutorial.ipynb — быстрый старт и простая верификация на двух примерахexamples/ — примеры enrollment и test аудиофайловgrpcio-services - Запуск сервисовdemo examination - Демонстрация проведения экзаменаЕсли вам интересно, как работает голосовая биометрия изнутри — загляните в репозиторий нашего курса!
Там мы рассказываем, как строятся системы распознавания дикторов, как оценивается их качество, и как они применяются в реальных сценариях.
Все задания, материалы и код доступны в репозитории по ссылке выше.
💡 Курс читается в рамках магистерской программы «Речевые технологии и машинное обучение» в Университете ИТМО, но мы будем рады, если он окажется полезен и за ее пределами.
Ниже — некоторые статьи, опубликованные в рамках этого проекта и нашей работы в целом
🔖 Robust Speaker Recognition with Transformers Using wav2vec 2.0
🔖 Joint Voice Activity Detection and Quality Estimation for Efficient Speech Preprocessing
🔖 STCON NIST SRE24 System: Composite Speaker Recognition Solution for Challenging Scenarios
🔖 CRYFISH: On deep audio analysis with Large Language Models
🔖 Cryfish: Как научить большую языковую модель слышать и понимать звуки?
Этот проект распространяется под лицензией
Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0).
Вы можете:
При соблюдении условий:
☑️ Исключение: коммерческое использование разрешено только Университету ИТМО и группе компаний «Центр Речевых Технологий».
Все остальные должны получить отдельное согласие от авторов.
📄 Полный текст лицензии
📬 По вопросам коммерческого использования: VoicePersonificationITMO@gmail.com
Если вы используете этот проект в научной публикации, пожалуйста, цитируйте нас следующим образом:
@misc{itmo_voice_personification_2025,
title = {Voice Personification for Artificial Intelligence Systems},
author = {Khmelev, N. and Novoselov, S. and Zorkina, A. and et.al},
year = {2025},
note = {ITMO University, open-source implementation},
howpublished = {\url{https://github.com/SpeakerRecognizer/VoicePersonification}}
}
Проект был выполнен при поддержке Университета ИТМО (Россия) в рамках гранта «Научно-исследовательская работа в сфере искусственного интеллекта», проект № 640110 — «Персонификация по голосу для систем искусственного интеллекта».
Python
85.6%
Shell
9.6%
Jupyter Notebook
4.7%
Voice Personification — это отдельный модуль для распознавания пользователя по голосу, ориентированный на интеграцию в LLM, чат-боты, образовательные платформы и другие ИИ-сервисы.
Наша система поддерживает короткие аудио (от 2 секунд), сложные акустические условия и многопользовательские сценарии.
git clone git@github.com:SpeakerRecognizer/VoicePersonification.git
cd VoicePersonification
⚠️ Если у вас не установлен
git, установите его с официального сайта
⚠️ Если вы не настроили SSH-ключ для GitHub, вот инструкция
conda create --prefix ./envs/python3.8 python=3.8 pip
⚠️ Если у вас не установлена
conda, установите ее с официального сайта Miniconda
⚡ Альтернатива: Mamba
Затем активируйте окружение:
conda activate ./envs/python3.8
conda install pytorch==2.2.2 torchvision==0.17.2 torchaudio==2.2.2 pytorch-cuda=12.1 -c pytorch -c nvidia
python3 -m pip install -r requirements/requirements.dev.txt
Теперь проект готов к использованию 🚀
Скачайте и подготовьте датасет VoxCeleb1:
bash scripts/download_and_preprocess_data.sh data/download_data data/raw_data data/scp data/protocols
После выполнения скрипта вы получите:
data/download_data/ — архивы и протоколыdata/raw_data/ — распакованные аудиоdata/scp/ — файлы wav.scp и utt2spkdata/protocols/ — протоколы для тестовЗапустите тест на подготовленных данных:
# Подготовка разметки детектором речи
export CUDA_VISIBLE_DEVICES=0;
export HF_TOKEN_BROUHAHA="YOUR HUGGINGFACE_TOKEN"; # Токен доступа для модели brouhaha, ниже описано как его получить
python -m VoicePersonification.main \
-cp=../experiments/brouhaha_vad \
-cn=predict
# Верификация диктора по протоколу
python -m VoicePersonification.main \
-cp=../experiments/ecapa-tdnn \
-cn=test
Для получения доступа к модели brouhaha (HF_TOKEN_BROUHAHA), необходимо авторизироваться на HuggingFace и перейти на страницу. Заполнить поля ("Company/university", "Website", "I plan to use this model for (task, type of audio data, etc)"), после чего в личном кабинете появится access token.
Вместо
ecapa-tdnnукажите нужную модель:
experiments/itmo_personification_model_large,experiments/itmo_personification_model_fast,experiments/itmo_personification_model_segmentation, и т.д.
В результаты работы скрипта будет выведено качество работы алгоритма на выбранном датасете (EER, порог EER):
────────────────────────────────────────────────
Test metric DataLoader 0
────────────────────────────────────────────────
EER 1.27
Thr 0.31
────────────────────────────────────────────────
| Название модели | Особенности | Архитектура | Размер |
|---|---|---|---|
itmo_personification_model_large | Основная модель с высокой точностью и устойчивостью; использует SSL-предобучение | wav2vec-BERT | 203 |
itmo_personification_model_fast | Лёгкая и быстрая модель для верификации | Next-TDNN | 17.1 |
itmo_personification_model_segmentation | Позволяет точно выделять участки речи отдельных говорящих для улучшения верификации | Whisper | 24.9 |
ecapa-tdnn baseline | Бейзлайн-модель для сравнения | ECAPA-TDNN | 22.2 |
Сравнение проводилось по метрике EER (Equal Error Rate, %)
| Модель | VoxCeleb1 | Voices | NIST SRE 2016 | NIST SRE 2019 |
|---|---|---|---|---|
itmo personification model large | 0.71 | 4.36 | 10.23 | 9.35 |
itmo personification model fast | 5.42 | 9.75 | 1.72 | 5.86 |
itmo personification model segmentation | 3.56 | 6.09 | 19.07 | 16.33 |
ecapa-tdnn baseline | 1.27 | 6.74 | 18.77 | 16.12 |
notebooks/verification-tutorial.ipynb — быстрый старт и простая верификация на двух примерахexamples/ — примеры enrollment и test аудиофайловgrpcio-services - Запуск сервисовdemo examination - Демонстрация проведения экзаменаЕсли вам интересно, как работает голосовая биометрия изнутри — загляните в репозиторий нашего курса!
Там мы рассказываем, как строятся системы распознавания дикторов, как оценивается их качество, и как они применяются в реальных сценариях.
Все задания, материалы и код доступны в репозитории по ссылке выше.
💡 Курс читается в рамках магистерской программы «Речевые технологии и машинное обучение» в Университете ИТМО, но мы будем рады, если он окажется полезен и за ее пределами.
Ниже — некоторые статьи, опубликованные в рамках этого проекта и нашей работы в целом
🔖 Robust Speaker Recognition with Transformers Using wav2vec 2.0
🔖 Joint Voice Activity Detection and Quality Estimation for Efficient Speech Preprocessing
🔖 STCON NIST SRE24 System: Composite Speaker Recognition Solution for Challenging Scenarios
🔖 CRYFISH: On deep audio analysis with Large Language Models
🔖 Cryfish: Как научить большую языковую модель слышать и понимать звуки?
Этот проект распространяется под лицензией
Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0).
Вы можете:
При соблюдении условий:
☑️ Исключение: коммерческое использование разрешено только Университету ИТМО и группе компаний «Центр Речевых Технологий».
Все остальные должны получить отдельное согласие от авторов.
📄 Полный текст лицензии
📬 По вопросам коммерческого использования: VoicePersonificationITMO@gmail.com
Если вы используете этот проект в научной публикации, пожалуйста, цитируйте нас следующим образом:
@misc{itmo_voice_personification_2025,
title = {Voice Personification for Artificial Intelligence Systems},
author = {Khmelev, N. and Novoselov, S. and Zorkina, A. and et.al},
year = {2025},
note = {ITMO University, open-source implementation},
howpublished = {\url{https://github.com/SpeakerRecognizer/VoicePersonification}}
}
Проект был выполнен при поддержке Университета ИТМО (Россия) в рамках гранта «Научно-исследовательская работа в сфере искусственного интеллекта», проект № 640110 — «Персонификация по голосу для систем искусственного интеллекта».
Python
85.6%
Shell
9.6%
Jupyter Notebook
4.7%