Целевой говорящий Потоковая обработка Распознавание речи
arXiv eess.AS

VoxLock: выделение целевого говорящего для голосовых агентов без предварительной записи голоса

ArXiv:2610.40727

Распознаватель голосового агента может ответить на телевизор или соседнего человека, потому что обычное шумоподавление сохраняет любую речь. VoxLock дообучает причинный REAL-TSE получать образец нужного голоса из самого звонка. Ценность работы в проверке по ошибкам распознавания на настоящих записях и подробном раскрытии цены автоматического включения фильтра.

Метод. Основа на 27 млн параметров использует BSRNN, комплексный STFT 16 кГц и два пути внимания к трёхсекундному голосовому образцу, включая признаки ECAPA-TDNN. Последовательное обучение на одной L4 объединяет моделируемые звонки, настоящие межканальные помехи AMI, длинные фрагменты и независимую вариацию расстояний. Офлайн выбираются самые громкие три секунды из первых пятнадцати; потоковый режим сначала пропускает звук без обработки и набирает три секунды речи. Две ONNX-схемы отдельно вычисляют признаки образца и обрабатывают последующие блоки.

Результаты. На 265 записях Krisp WER снижается с 23,21% до 4,95%, а в действительно потоковом режиме составляет 5,15%. За 85,3 минуты фоновой речи в текст попадают девять слов против 130 у Krisp Default; различие общего WER с лучшими вариантами Krisp статистически не установлено. На заранее зафиксированных 400 окнах AMI WER 42,95→10,63%, потоковый вариант 11,97%. Восьмибитная модель даёт 5,11% на Krisp. В чистом телефонном сценарии фильтр способен вредить: WER 3,82→5,36%.

Ограничения. Только английский, 16 кГц и один целевой человек; предполагается, что он говорит первым и достаточно громко. Иначе выбирается не тот голос. Krisp и небольшой набор AMI использовались при разработке, только большой AMI является слепой проверкой; в нём нет полного набора конкурентов. Оценка зависит от одного семейства распознавателей и одного обучения, а интервалы по людям не учитывают полностью зависимость внутри встречи. Отсутствие отдельной регистрации не отменяет необходимости накопить образец и не означает защиты с первого отсчёта.

Фишка из статьи. Раздел внедрения отличает установившуюся пропускную способность от полной задержки. CPU измерен на одном потоке Xeon 2,2 ГГц с Python и ONNX Runtime; к размеру блока добавляются 24 мс алгоритмической задержки.

РежимЗатраты / задержка
Блок 80 мс61% одного CPU-потока; не менее 104 мс буферизации и алгоритма
Блок 40 мс77% потока; не менее 64 мс
Блок 20 мс110% потока, один поток не успевает
Первое включение live()После накопления 3 с речи ещё 2–5 с вычислительной остановки

Как это читать: заголовочные 24 мс не являются задержкой готового звонка. При включении сеть прогоняет уже услышанный разговор для прогрева состояния, а этот прогон выполняется синхронно и задерживает выдачу. Для интерактивного агента важны и работа после прогрева, и поведение в первые секунды, когда фоновая речь ещё проходит без защиты. Уменьшать блок до 20 мс без проверки CPU здесь контрпродуктивно.

Источник. Оригинальное название: VoxLock: Target-Speaker Extraction for Voice Agents Without an Enrollment Step. arXiv:2610.40727; полный текст PDF.

Оригинальная статья на arXiv