speaker embedding
Плотный вектор, кодирующий уникальные характеристики голоса конкретного человека.
Что такое speaker embedding
Speaker embedding — плотный числовой вектор фиксированной размерности (обычно 192–512), описывающий акустические характеристики голоса конкретного человека. Модель обучается так, чтобы embeddings одного спикера были близки, а разных — далеки в метрическом пространстве.
Применения
Speaker diarization: сравнение embeddings временных сегментов для кластеризации по спикерам. Сегменты с похожими embeddings → один спикер.
Speaker verification: «это тот же человек?» — сравнить embedding аудио с эталонным embedding. Используется в биометрической аутентификации.
Voice cloning (TTS): TTS-системы как XTTS используют speaker embedding эталонного голоса для генерации аудио с тем же тембром.
Модели speaker embeddings
d-vectors (Google): ранняя нейросетевая модель speaker embeddings.
x-vectors (Kaldi/JHU): обученные на задаче классификации спикеров. Долго были стандартом.
ECAPA-TDNN (SpeechBrain): современный SOTA для speaker verification. Используется в pyannote.
WavLM-based: embeddings из self-supervised speech моделей (WavLM, HuBERT). Лучшее качество на сложных условиях.
Вычисление speaker embedding
from speechbrain.inference import EncoderClassifier
classifier = EncoderClassifier.from_hparams(
source="speechbrain/spkrec-ecapa-voxceleb",
run_opts={"device": "cuda"}
)
# Вычислить embedding из аудио (3–10 секунд)
embeddings = classifier.encode_batch(
classifier.load_audio("speaker.wav").unsqueeze(0)
)
# embeddings.shape: (1, 1, 192)
Связанные термины
- диаризация — основное применение speaker embeddings
- pyannote — использует speaker embeddings для кластеризации
- TTS — использует speaker embedding для voice cloning
- VAD — предшествует извлечению speaker embeddings
Готовы запустить GPU-задачу?
Запустить GPU-сервер