Подключите нашего Telegram-бота для уведомлений о новых проектах
|
Идентификация сотрудников по голосу (Speaker Recognition)
Разместить заказ
a
Заказчик
Отзывы фрилансеров:
+ 0
- 0
Зарегистрирован на сайте меньше месяца
Бюджет:
по договоренности
📋 Описание:
Нужно реализовать модуль, который определяет кто говорит в аудиозаписи на основе заранее обученных голосовых профилей (эталонов).
Цель — подставить реальные имена вместо "Спикер 1", "Спикер 2" в транскрибированных текстах.
⚙️ Что должно быть:
Загрузка голосовых профилей из папки:
WAV-файлы сотрудников
Пример структуры: rabbit/voice_profiles/Марина.wav, Иван.wav
Получение эмбеддингов для голосов:
С использованием resemblyzer или другой аналогичной модели
Все аудио должны быть нормализованы (16 kHz, моно, WAV)
Сравнение эмбеддинга неизвестного фрагмента с профилями
Косинусное сходство (или аналог)
Использовать threshold, чтобы определить “Неизвестный”, если нет хорошего совпадения
Функция:
python
Копировать
Редактировать
def identify_speaker(wav_path: str, profiles: dict) -> str
Принимает путь к тестовому фрагменту
Возвращает имя из профилей или "Неизвестный"
Функция для загрузки профилей:
python
Копировать
Редактировать
def load_voice_profiles(directory_path: str) -> dict
🧪 Будет плюсом:
Возможность обновления/дозаписи профилей
Логирование результатов и похожести
Кеширование эмбеддингов, чтобы не пересчитывать каждый раз
✅ Входные данные:
Пример аудио-фрагментов для сравнения (для тестов)
Примеры профилей
Текущий pipeline: мы вырезаем блоки по speakerTag после транскрибации (есть timestamps)
💾 Формат сдачи:
Python-модуль voice_identifier.py
Пример работы в test_voice_id.py
Инструкция по запуску и обновлению профилей
🔐 Безопасность:
Никакой необходимости в доступе к базе, очередям или другим микросервисам
Работа в отдельном модуле, передача данных через функцию или временные файлы
Нужно реализовать модуль, который определяет кто говорит в аудиозаписи на основе заранее обученных голосовых профилей (эталонов).
Цель — подставить реальные имена вместо "Спикер 1", "Спикер 2" в транскрибированных текстах.
⚙️ Что должно быть:
Загрузка голосовых профилей из папки:
WAV-файлы сотрудников
Пример структуры: rabbit/voice_profiles/Марина.wav, Иван.wav
Получение эмбеддингов для голосов:
С использованием resemblyzer или другой аналогичной модели
Все аудио должны быть нормализованы (16 kHz, моно, WAV)
Сравнение эмбеддинга неизвестного фрагмента с профилями
Косинусное сходство (или аналог)
Использовать threshold, чтобы определить “Неизвестный”, если нет хорошего совпадения
Функция:
python
Копировать
Редактировать
def identify_speaker(wav_path: str, profiles: dict) -> str
Принимает путь к тестовому фрагменту
Возвращает имя из профилей или "Неизвестный"
Функция для загрузки профилей:
python
Копировать
Редактировать
def load_voice_profiles(directory_path: str) -> dict
🧪 Будет плюсом:
Возможность обновления/дозаписи профилей
Логирование результатов и похожести
Кеширование эмбеддингов, чтобы не пересчитывать каждый раз
✅ Входные данные:
Пример аудио-фрагментов для сравнения (для тестов)
Примеры профилей
Текущий pipeline: мы вырезаем блоки по speakerTag после транскрибации (есть timestamps)
💾 Формат сдачи:
Python-модуль voice_identifier.py
Пример работы в test_voice_id.py
Инструкция по запуску и обновлению профилей
🔐 Безопасность:
Никакой необходимости в доступе к базе, очередям или другим микросервисам
Работа в отдельном модуле, передача данных через функцию или временные файлы
Разделы:
Заказ
Опубликован:
28.03.2025 | 09:23 [поднят: 28.03.2025 | 09:23]