Распознаватели речи в голосовых агентах транскрибируют речь всех людей, находящихся рядом с микрофоном. VoxLock — это каузальная модель извлечения целевого говорящего с 27 млн параметров, дообученная на одной GPU на основе открытой базовой модели REAL-TSE: она извлекает образец голоса звонящего непосредственно из самого звонка (по умолчанию берутся первые 15 секунд, а в потоковом режиме начало отсчета происходит после 3 секунд), после чего сохраняет только голос этого человека, удаляя речь посторонних, и передает аудио в систему распознавания речи.
Лайки 3 · Звезды на GitHub 88
Причины
- Авторы заявляют, что на 265 реальных записях от Krisp показатель WER (word error rate) снизился с 23.21% до 4.95%, что статистически не отличается от результатов лучшего платного фильтра Krisp; на окнах совещаний AMI, не использовавшихся при обучении, WER снизился с 42.95% до 10.63%.
- Легковесность и работа в реальном времени: модель с 8-битным квантованием занимает 77% и обрабатывает один звонок на одном потоке CPU, алгоритмическая задержка составляет 24 мс; формат ONNX поддерживает различные точности: int8 / fp16 / fp32.
- Простота интеграции: pip install voxlock, включает аудиофильтр Pipecat и плагин LiveKit Agents, встроенная поддержка начиная с sherpa-onnx 2.0.1; модель, код и пофайловые оценки открыты под лицензией Apache-2.0.
Использование
- Командная строка: pip install voxlock → voxlock call.wav -o caller.wav (модель загружается автоматически при первом запуске).
- Потоковая обработка в Python: vl = voxlock.VoxLock(threads=1); stream = vl.live(), при получении каждого фрагмента аудио с частотой 16 кГц вызывается stream.push(chunk), по завершении — stream.flush(); если образец голоса звонящего уже доступен, можно использовать vl.stream(sample) для начала изоляции с первого фрагмента.
- Голосовые агенты: после установки pip install "voxlock[pipecat]" установите VoxLockFilter() в качестве audio_in_filter; для LiveKit используйте "voxlock[livekit]", передавая его в параметр noise_cancellation.
- Демо в браузере: Hugging Face Space arbazsiddiqui/voxlock.
Риски
- Обучающие данные на английском языке (LibriSpeech, AMI), в карточке модели указан английский язык, эффективность для китайского и других языков не сообщается.
- В первые секунды система автоматически определяет звонящего в начале разговора; если в начале говорит другой человек, возможно ошибочное определение, что можно обойти, передав sample вручную; сравнение с коммерческими продуктами выполнено самими авторами.
- Проект индивидуального автора, скрипты оценки и пофайловые результаты находятся в директории bench/ репозитория, их можно проверить самостоятельно.